Jump to content

Help With Registering Configured WorldCarver 1.18.2


UHQ_GAMES

Recommended Posts

Hey All! I'm trying to register my configured mod carver in 1.18.2 and I'm have a hard time finding a method to register it. Any help would be greatly appreciated! Relevant code below

 

package net.regionsunexplored.world.gen.carver;

import net.minecraft.core.Holder;
import net.minecraft.data.BuiltinRegistries;
import net.minecraft.util.valueproviders.ConstantFloat;
import net.minecraft.util.valueproviders.TrapezoidFloat;
import net.minecraft.util.valueproviders.UniformFloat;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.levelgen.VerticalAnchor;
import net.minecraft.world.level.levelgen.carver.CanyonCarverConfiguration;
import net.minecraft.world.level.levelgen.carver.CarverConfiguration;
import net.minecraft.world.level.levelgen.carver.CarverDebugSettings;
import net.minecraft.world.level.levelgen.carver.CaveCarverConfiguration;
import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver;
import net.minecraft.world.level.levelgen.carver.WorldCarver;
import net.minecraft.world.level.levelgen.heightproviders.UniformHeight;
import net.minecraft.core.Registry;
import net.minecraft.data.worldgen.Carvers;
import net.minecraft.resources.ResourceLocation;

public class ModCarvers{
	
   public static final Holder<ConfiguredWorldCarver<CaveCarverConfiguration>> MOD_CAVE = register("mod_cave", ModWorldCarver.RU_CAVE.configured(new CaveCarverConfiguration(0.15F, UniformHeight.of(VerticalAnchor.aboveBottom(8), VerticalAnchor.absolute(180)), UniformFloat.of(0.1F, 0.9F), VerticalAnchor.aboveBottom(8), CarverDebugSettings.of(false, Blocks.CRIMSON_BUTTON.defaultBlockState()), UniformFloat.of(0.7F, 1.4F), UniformFloat.of(0.8F, 1.3F), UniformFloat.of(-1.0F, -0.4F))));

    private static <WC extends CarverConfiguration> Holder<ConfiguredWorldCarver<WC>> register(String name, ConfiguredWorldCarver<WC> ruCarver) {
      return BuiltinRegistries.registerExact(BuiltinRegistries.CONFIGURED_CARVER, name, ruCarver);
   }

   
}

 

Link to comment
Share on other sites

You use DeferredRegister, https://forge.gemwire.uk/wiki/Registration/1.18

 

something like (untested code):

public class ModCarvers {

    private static final DeferredRegister<WorldCarver<?>> CARVERS = DeferredRegister.create(Registry.CARVER_REGISTRY, MODID);
    private static final DeferredRegister<ConfiguredWorldCarver<?>> CONFGIURED_CARVERS = DeferredRegister.create(Registry.CONFIGURED_CARVER_REGISTRY, MODID);

    public static final RegistryObject<WorldCarver<CaveCarverConfiguration>> MY_CARVER = CARVERS.register("mod_cave", 
            () -> new MyCaveWorldCarver(CaveCarverConfiguration.CODEC));

    public static final RegistryObject<ConfiguredWorldCarver<CaveCarverConfiguration>> MY_CONFIGURED_CARVER = CONFGIURED_CARVERS.register("mod_cave", 
            () -> MY_CARVER.get().configured(new CaveCarverConfiguration(0.15F, UniformHeight.of(VerticalAnchor.aboveBottom(8), VerticalAnchor.absolute(180)), UniformFloat.of(0.1F, 0.9F), VerticalAnchor.aboveBottom(8), CarverDebugSettings.of(false, Blocks.CRIMSON_BUTTON.defaultBlockState()), UniformFloat.of(0.7F, 1.4F), UniformFloat.of(0.8F, 1.3F), UniformFloat.of(-1.0F, -0.4F))));

    public static void register(IEventBus bus) {
        CARVERS.register(bus);
        CONFGIURED_CARVERS.register(bus);
    }
}

Then as usual, call ModCarvers.register() from your Mod's constructor.

Edited by warjort

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

RegistryObject.getHolder()

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

Now  i have another problem lol, i changed the carve method in my mod carver cause i was having issues with aquifers and now im having an issue with the floorLevel variable not being accessible, is there another method to do this?

 

public boolean carve(CarvingContext p_190704_, CaveCarverConfiguration p_190705_, ChunkAccess p_190706_, Function<BlockPos, Holder<Biome>> p_190707_, Random p_190708_, Aquifer p_190709_, ChunkPos p_190710_, CarvingMask p_190711_) {
      int i = SectionPos.sectionToBlockCoord(this.getRange() * 2 - 1);
      int j = p_190708_.nextInt(p_190708_.nextInt(p_190708_.nextInt(this.getCaveBound()) + 1) + 1);
	  
      for(int k = 0; k < j; ++k) {
         double d0 = (double)p_190710_.getBlockX(p_190708_.nextInt(16));
         double d1 = (double)p_190705_.y.sample(p_190708_, p_190704_);
         double d2 = (double)p_190710_.getBlockZ(p_190708_.nextInt(16));
         double d3 = (double)p_190705_.horizontalRadiusMultiplier.sample(p_190708_);
         double d4 = (double)p_190705_.verticalRadiusMultiplier.sample(p_190708_);
         double d5 = (double)floorLevel.sample(p_190708_);
         WorldCarver.CarveSkipChecker worldcarver$carveskipchecker = (p_159202_, p_159203_, p_159204_, p_159205_, p_159206_) -> {
            return shouldSkip(p_159203_, p_159204_, p_159205_, d5);
         };
         int l = 1;
         if (p_190708_.nextInt(4) == 0) {
            double d6 = (double)p_190705_.yScale.sample(p_190708_);
            float f1 = 1.0F + p_190708_.nextFloat() * 6.0F;
            this.createRoom(p_190704_, p_190705_, p_190706_, p_190707_, p_190709_, d0, d1, d2, f1, d6, p_190711_, worldcarver$carveskipchecker);
            l += p_190708_.nextInt(4);
         }

         for(int k1 = 0; k1 < l; ++k1) {
            float f = p_190708_.nextFloat() * ((float)Math.PI * 2F);
            float f3 = (p_190708_.nextFloat() - 0.5F) / 4.0F;
            float f2 = this.getThickness(p_190708_);
            int i1 = i - p_190708_.nextInt(i / 4);
            int j1 = 0;
            this.createTunnel(p_190704_, p_190705_, p_190706_, p_190707_, p_190708_.nextLong(), p_190709_, d0, d1, d2, d3, d4, f2, f, f3, 0, i1, this.getYScale(), p_190711_, worldcarver$carveskipchecker);
         }
      }

      return true;
   }

this is basically the normal CaveWorldCarver class but i cant access floorLevel from outside the original package, any help is appreciated!

Link to comment
Share on other sites

https://forge.gemwire.uk/wiki/Access_Transformers/1.18

There is supposed to be a bot on the forge discord that help you find the field name.

 

But you could also just make your own CaveCarverConfiguration class.

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

Don't paraphrase errors, show them with the full stacktrace.

Also show the code you tried. We have no psychic powers.

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

ah yes sorry, im still learning a lot of this so im not the best at it yet, for my CaveCarverConfig i just copied the builtin one, probably doing this all wrong

 

public class ModCarverConfiguration extends CarverConfiguration {
   public static final Codec<ModCarverConfiguration> CODEC = RecordCodecBuilder.create((p_159184_) -> {
      return p_159184_.group(CarverConfiguration.CODEC.forGetter((p_159192_) -> {
         return p_159192_;
      }), FloatProvider.CODEC.fieldOf("horizontal_radius_multiplier").forGetter((p_159190_) -> {
         return p_159190_.horizontalRadiusMultiplier;
      }), FloatProvider.CODEC.fieldOf("vertical_radius_multiplier").forGetter((p_159188_) -> {
         return p_159188_.verticalRadiusMultiplier;
      }), FloatProvider.codec(-1.0F, 1.0F).fieldOf("floor_level").forGetter((p_159186_) -> {
         return p_159186_.floorLevel;
      })).apply(p_159184_, ModCarverConfiguration::new);
   });
   public final FloatProvider horizontalRadiusMultiplier;
   public final FloatProvider verticalRadiusMultiplier;
   final FloatProvider floorLevel;

   public ModCarverConfiguration(float p_190653_, HeightProvider p_190654_, FloatProvider p_190655_, VerticalAnchor p_190656_, CarverDebugSettings p_190657_, FloatProvider p_190658_, FloatProvider p_190659_, FloatProvider p_190660_) {
      super(p_190653_, p_190654_, p_190655_, p_190656_, p_190657_);
      this.horizontalRadiusMultiplier = p_190658_;
      this.verticalRadiusMultiplier = p_190659_;
      this.floorLevel = p_190660_;
   }

   public ModCarverConfiguration(float p_159160_, HeightProvider p_159161_, FloatProvider p_159162_, VerticalAnchor p_159163_, boolean p_159164_, FloatProvider p_159165_, FloatProvider p_159166_, FloatProvider p_159167_) {
      this(p_159160_, p_159161_, p_159162_, p_159163_, CarverDebugSettings.DEFAULT, p_159165_, p_159166_, p_159167_);
   }

   public ModCarverConfiguration(CarverConfiguration p_159179_, FloatProvider p_159180_, FloatProvider p_159181_, FloatProvider p_159182_) {
      this(p_159179_.probability, p_159179_.y, p_159179_.yScale, p_159179_.lavaLevel, p_159179_.debugSettings, p_159180_, p_159181_, p_159182_);
   }
}

again thanks for the help, i would still be stuck on the first problem without it

Link to comment
Share on other sites

That is just a copied and renamed version of the vanilla class. It would be pretty hard to get that wrong. 🙂 

But you don't show where you use it or the error you are getting.

  • Like 1

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

ohh my bad sorry i misunderstood

public class ModCaveCarver extends CaveWorldCarver {
   public ModCaveCarver(Codec<ModCarverConfiguration> p_159194_) {
      super(p_159194_);
      this.replaceableBlocks = ImmutableSet.of(RegionsUnexploredModBlocks.MUD.get(), Blocks.STONE, Blocks.GRANITE, Blocks.DIORITE, Blocks.ANDESITE, Blocks.DIRT, Blocks.COARSE_DIRT, Blocks.PODZOL, Blocks.GRASS_BLOCK, Blocks.TERRACOTTA, Blocks.WHITE_TERRACOTTA, Blocks.ORANGE_TERRACOTTA, Blocks.MAGENTA_TERRACOTTA, Blocks.LIGHT_BLUE_TERRACOTTA, Blocks.YELLOW_TERRACOTTA, Blocks.LIME_TERRACOTTA, Blocks.PINK_TERRACOTTA, Blocks.GRAY_TERRACOTTA, Blocks.LIGHT_GRAY_TERRACOTTA, Blocks.CYAN_TERRACOTTA, Blocks.PURPLE_TERRACOTTA, Blocks.BLUE_TERRACOTTA, Blocks.BROWN_TERRACOTTA, Blocks.GREEN_TERRACOTTA, Blocks.RED_TERRACOTTA, Blocks.BLACK_TERRACOTTA, Blocks.SANDSTONE, Blocks.RED_SANDSTONE, Blocks.MYCELIUM, Blocks.SNOW, Blocks.PACKED_ICE, Blocks.DEEPSLATE, Blocks.CALCITE, Blocks.SAND, Blocks.RED_SAND, Blocks.GRAVEL, Blocks.TUFF, Blocks.GRANITE, Blocks.IRON_ORE, Blocks.DEEPSLATE_IRON_ORE, Blocks.RAW_IRON_BLOCK, Blocks.COPPER_ORE, Blocks.DEEPSLATE_COPPER_ORE, Blocks.RAW_COPPER_BLOCK);
      this.liquids = ImmutableSet.of(Fluids.LAVA, Fluids.WATER);
   }

   public boolean isStartChunk(ModCarverConfiguration p_159263_, Random p_159264_) {
      return p_159264_.nextFloat() <= p_159263_.probability;
   }
    
    public boolean carve(CarvingContext p_190704_, ModCarverConfiguration p_190705_, ChunkAccess p_190706_, Function<BlockPos, Holder<Biome>> p_190707_, Random p_190708_, Aquifer p_190709_, ChunkPos p_190710_, CarvingMask p_190711_) {
      int i = SectionPos.sectionToBlockCoord(this.getRange() * 2 - 1);
      int j = p_190708_.nextInt(p_190708_.nextInt(p_190708_.nextInt(this.getCaveBound()) + 1) + 1);
	  
      for(int k = 0; k < j; ++k) {
         double d0 = (double)p_190710_.getBlockX(p_190708_.nextInt(16));
         double d1 = (double)p_190705_.y.sample(p_190708_, p_190704_);
         double d2 = (double)p_190710_.getBlockZ(p_190708_.nextInt(16));
         double d3 = (double)p_190705_.horizontalRadiusMultiplier.sample(p_190708_);
         double d4 = (double)p_190705_.verticalRadiusMultiplier.sample(p_190708_);
         double d5 = (double)p_190705_.floorLevel.sample(p_190708_);
         WorldCarver.CarveSkipChecker worldcarver$carveskipchecker = (p_159202_, p_159203_, p_159204_, p_159205_, p_159206_) -> {
            return shouldSkip(p_159203_, p_159204_, p_159205_, d5);
         };
         int l = 1;
         if (p_190708_.nextInt(4) == 0) {
            double d6 = (double)p_190705_.yScale.sample(p_190708_);
            float f1 = 1.0F + p_190708_.nextFloat() * 6.0F;
            this.createRoom(p_190704_, p_190705_, p_190706_, p_190707_, p_190709_, d0, d1, d2, f1, d6, p_190711_, worldcarver$carveskipchecker);
            l += p_190708_.nextInt(4);
         }

         for(int k1 = 0; k1 < l; ++k1) {
            float f = p_190708_.nextFloat() * ((float)Math.PI * 2F);
            float f3 = (p_190708_.nextFloat() - 0.5F) / 4.0F;
            float f2 = this.getThickness(p_190708_);
            int i1 = i - p_190708_.nextInt(i / 4);
            int j1 = 0;
            this.createTunnel(p_190704_, p_190705_, p_190706_, p_190707_, p_190708_.nextLong(), p_190709_, d0, d1, d2, d3, d4, f2, f, f3, 0, i1, this.getYScale(), p_190711_, worldcarver$carveskipchecker);
         }
      }

      return true;
   }
   
   protected int getCaveBound() {
      return 15;
   }

   protected float getThickness(Random p_64834_) {
      float f = p_64834_.nextFloat() * 2.0F + p_64834_.nextFloat();
      if (p_64834_.nextInt(10) == 0) {
         f *= p_64834_.nextFloat() * p_64834_.nextFloat() * 3.0F + 1.0F;
      }

      return f;
   }

   protected double getYScale() {
      return 1.0D;
   }

   protected void createRoom(CarvingContext p_190691_, ModCarverConfiguration p_190692_, ChunkAccess p_190693_, Function<BlockPos, Holder<Biome>> p_190694_, Aquifer p_190695_, double p_190696_, double p_190697_, double p_190698_, float p_190699_, double p_190700_, CarvingMask p_190701_, WorldCarver.CarveSkipChecker p_190702_) {
      double d0 = 1.5D + (double)(Mth.sin(((float)Math.PI / 2F)) * p_190699_);
      double d1 = d0 * p_190700_;
      this.carveEllipsoid(p_190691_, p_190692_, p_190693_, p_190694_, p_190695_, p_190696_ + 1.0D, p_190697_, p_190698_, d0, d1, p_190701_, p_190702_);
   }

   protected void createTunnel(CarvingContext p_190671_, ModCarverConfiguration p_190672_, ChunkAccess p_190673_, Function<BlockPos, Holder<Biome>> p_190674_, long p_190675_, Aquifer p_190676_, double p_190677_, double p_190678_, double p_190679_, double p_190680_, double p_190681_, float p_190682_, float p_190683_, float p_190684_, int p_190685_, int p_190686_, double p_190687_, CarvingMask p_190688_, WorldCarver.CarveSkipChecker p_190689_) {
      Random random = new Random(p_190675_);
      int i = random.nextInt(p_190686_ / 2) + p_190686_ / 4;
      boolean flag = random.nextInt(6) == 0;
      float f = 0.0F;
      float f1 = 0.0F;

      for(int j = p_190685_; j < p_190686_; ++j) {
         double d0 = 1.5D + (double)(Mth.sin((float)Math.PI * (float)j / (float)p_190686_) * p_190682_);
         double d1 = d0 * p_190687_;
         float f2 = Mth.cos(p_190684_);
         p_190677_ += (double)(Mth.cos(p_190683_) * f2);
         p_190678_ += (double)Mth.sin(p_190684_);
         p_190679_ += (double)(Mth.sin(p_190683_) * f2);
         p_190684_ *= flag ? 0.92F : 0.7F;
         p_190684_ += f1 * 0.1F;
         p_190683_ += f * 0.1F;
         f1 *= 0.9F;
         f *= 0.75F;
         f1 += (random.nextFloat() - random.nextFloat()) * random.nextFloat() * 2.0F;
         f += (random.nextFloat() - random.nextFloat()) * random.nextFloat() * 4.0F;
         if (j == i && p_190682_ > 1.0F) {
            this.createTunnel(p_190671_, p_190672_, p_190673_, p_190674_, random.nextLong(), p_190676_, p_190677_, p_190678_, p_190679_, p_190680_, p_190681_, random.nextFloat() * 0.5F + 0.5F, p_190683_ - ((float)Math.PI / 2F), p_190684_ / 3.0F, j, p_190686_, 1.0D, p_190688_, p_190689_);
            this.createTunnel(p_190671_, p_190672_, p_190673_, p_190674_, random.nextLong(), p_190676_, p_190677_, p_190678_, p_190679_, p_190680_, p_190681_, random.nextFloat() * 0.5F + 0.5F, p_190683_ + ((float)Math.PI / 2F), p_190684_ / 3.0F, j, p_190686_, 1.0D, p_190688_, p_190689_);
            return;
         }

         if (random.nextInt(4) != 0) {
            if (!canReach(p_190673_.getPos(), p_190677_, p_190679_, j, p_190686_, p_190682_)) {
               return;
            }

            this.carveEllipsoid(p_190671_, p_190672_, p_190673_, p_190674_, p_190676_, p_190677_, p_190678_, p_190679_, d0 * p_190680_, d1 * p_190681_, p_190688_, p_190689_);
         }
      }

   }

   private static boolean shouldSkip(double p_159196_, double p_159197_, double p_159198_, double p_159199_) {
      if (p_159197_ <= p_159199_) {
         return true;
      } else {
         return p_159196_ * p_159196_ + p_159197_ * p_159197_ + p_159198_ * p_159198_ >= 1.0D;
      }
   }
}

and these are the errors my console is spitting out

> Task :downloadMcpConfig
> Task :extractSrg UP-TO-DATE
> Task :createMcpToSrg UP-TO-DATE
> Task :compileJava
C:\Users\Eric Adams\Documents\R_U_1.18.2\src\main\java\net\regionsunexplored\world\gen\ModCaveCarver.java:48: error: incompatible types: Codec cannot be converted to Codec  
super(p_159194_);
      ^
C:\Users\Eric Adams\Documents\R_U_1.18.2\src\main\java\net\regionsunexplored\world\gen\ModCaveCarver.java:112: error: incompatible types: ModCarverConfiguration cannot be converted to CaveCarverConfiguration  
this.carveEllipsoid(p_190691_, p_190692_, p_190693_, p_190694_, p_190695_, p_190696_ + 1.0D, p_190697_, p_190698_, d0, d1, p_190701_, p_190702_);
                               ^
C:\Users\Eric Adams\Documents\R_U_1.18.2\src\main\java\net\regionsunexplored\world\gen\ModCaveCarver.java:147: error: incompatible types: ModCarverConfiguration cannot be converted to CaveCarverConfiguration   
this.carveEllipsoid(p_190671_, p_190672_, p_190673_, p_190674_, p_190676_, p_190677_, p_190678_, p_190679_, d0 * p_190680_, d1 * p_190681_, p_190688_, p_190689_);
                               ^
C:\Users\Eric Adams\Documents\R_U_1.18.2\src\main\java\net\regionsunexplored\world\gen\ModWorldCarver.java:62: error: incompatible types: Codec cannot be converted to Codec   
() -> new ModCaveCarver(CaveCarverConfiguration.CODEC));
                                               ^
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
4 errors
> Task :compileJava FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 2s
4 actionable tasks: 2 executed, 2 up-to-date
 
BUILD FAILED
Task completed in 4 seconds

 

Edited by UHQ_GAMES
Link to comment
Share on other sites

 This is a compiler error.

If the compiler tells you something is wrong, you need to be able to understand how to fix it.

 

It's caused by

public class ModCaveCarver extends CaveWorldCarver {

CaveWorldCarver needs the vanilla configuration codec in its constructor.

 

But you don't need to extend that class, you should have

public class ModCaveCarver extends WorldCarver<ModCarverConfiguration> {

 

  • Like 1

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

You should donate to LexManos who pays for these forums.

See his footer: https://forums.minecraftforge.net/topic/115670-forge-431-minecraft-1192/#comment-511620

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

Awesome thank you! I'll definately be donating! and one last thing now, sorry for being annoying,

 

now that I have my biome feature set up and added to my biome i have a weird problem, i load up a Single Biome world and the carvers work perfect. However using the Default world type its almost like its using the default cave carvers. seems like everything is correct but im not too sure

This is the code for the cave biome feature for my biomes

public class ModBiomeDefaultFeatures {
   public static void addCaves(BiomeGenerationSettings.Builder p_194721_) {
      p_194721_.addCarver(GenerationStep.Carving.AIR, ModCarvers.CAVE.getHolder().get());
      p_194721_.addCarver(GenerationStep.Carving.AIR, ModCarvers.CAVE_EXTRA_UNDERGROUND.getHolder().get());
      p_194721_.addCarver(GenerationStep.Carving.AIR, ModCarvers.CANYON.getHolder().get());
      p_194721_.addFeature(GenerationStep.Decoration.LAKES, MiscOverworldPlacements.LAKE_LAVA_UNDERGROUND);
      p_194721_.addFeature(GenerationStep.Decoration.LAKES, MiscOverworldPlacements.LAKE_LAVA_SURFACE);
   }
}

which is then added using this in the OverworldBiome class

private static void globalOverworldGeneration(BiomeGenerationSettings.Builder builder)
    {
        ModBiomeDefaultFeatures.addCaves(builder);
        BiomeDefaultFeatures.addDefaultCrystalFormations(builder);
        BiomeDefaultFeatures.addDefaultMonsterRoom(builder);
        BiomeDefaultFeatures.addDefaultUndergroundVariety(builder);
        BiomeDefaultFeatures.addDefaultSprings(builder);
        BiomeDefaultFeatures.addSurfaceFreezing(builder);
    }

I also noticed removing the addCaves method from Overworld biomes stops caves from spawning in single biome, but not in default.

Edited by UHQ_GAMES
Link to comment
Share on other sites

You don't post the full context again, but I would guess this is configuring your custom Biome?

 

Your biome is not present in the normal worldgen.

If you want to modify other people's biomes (including vanilla) you need to use the BiomeLoadingEvent, it is called for every registered biome.

In particular, event.getGeneration() gives you access each biome's BiomeGenerationSettingsBuilder

Edited by warjort
  • Like 1

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

ah again sorry, ill post my full biome setup, i guess another big this is im using terrablender to manage biome placement

public class OverworldBiomes
{
    @Nullable
    private static final Music NORMAL_MUSIC = null;

    protected static int calculateSkyColor(float color)
    {
        float $$1 = color / 3.0F;
        $$1 = Mth.clamp($$1, -1.0F, 1.0F);
        return Mth.hsvToRgb(0.62222224F - $$1 * 0.05F, 0.5F + $$1 * 0.1F, 1.0F);
    }

    private static Biome biome(Biome.Precipitation precipitation, Biome.BiomeCategory category, float temperature, float downfall, MobSpawnSettings.Builder spawnBuilder, BiomeGenerationSettings.Builder biomeBuilder, @Nullable Music music)
    {
        return biome(precipitation, category, temperature, downfall, 4159204, 329011, spawnBuilder, biomeBuilder, music);
    }

    private static Biome biome(Biome.Precipitation precipitation, Biome.BiomeCategory category, float temperature, float downfall, int waterColor, int waterFogColor, MobSpawnSettings.Builder spawnBuilder, BiomeGenerationSettings.Builder biomeBuilder, @Nullable Music music)
    {
        return (new Biome.BiomeBuilder()).precipitation(precipitation).biomeCategory(category).temperature(temperature).downfall(downfall).specialEffects((new BiomeSpecialEffects.Builder()).waterColor(waterColor).waterFogColor(waterFogColor).fogColor(12638463).skyColor(calculateSkyColor(temperature)).ambientMoodSound(AmbientMoodSettings.LEGACY_CAVE_SETTINGS).backgroundMusic(music).build()).mobSpawnSettings(spawnBuilder.build()).generationSettings(biomeBuilder.build()).build();
    }

    private static void globalOverworldGeneration(BiomeGenerationSettings.Builder builder)
    {
        ModBiomeDefaultFeatures.addCaves(builder);
        BiomeDefaultFeatures.addDefaultCrystalFormations(builder);
        BiomeDefaultFeatures.addDefaultMonsterRoom(builder);
        BiomeDefaultFeatures.addDefaultUndergroundVariety(builder);
        BiomeDefaultFeatures.addDefaultSprings(builder);
        BiomeDefaultFeatures.addSurfaceFreezing(builder);
    }
	
    //ADD BIOMES
    public static Biome pineSlopes()
    {
		BiomeSpecialEffects effects = new BiomeSpecialEffects.Builder().fogColor(12638463).waterColor(-12619852).waterFogColor(-14007447)
						.skyColor(7972607).foliageColorOverride(-9075130).grassColorOverride(-8083622).build();
    	
        MobSpawnSettings.Builder spawnBuilder = new MobSpawnSettings.Builder();
        BiomeDefaultFeatures.commonSpawns(spawnBuilder);

        BiomeGenerationSettings.Builder biomeBuilder = new BiomeGenerationSettings.Builder();

		biomeBuilder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, PlacementUtils.register("regions_unexplored:pslope_bush",
				FeatureUtils.register("regions_unexplored:pslope_bush", Feature.TREE, new TreeConfiguration.TreeConfigurationBuilder(
					BlockStateProvider.simple(Blocks.OAK_LOG.defaultBlockState()), new StraightTrunkPlacer(1, 0, 0), BlockStateProvider.simple(Blocks.OAK_LEAVES.defaultBlockState()), 
					new BushFoliagePlacer(ConstantInt.of(2), ConstantInt.of(1), 2), new TwoLayersFeatureSize(0, 0, 0)).build()),
				List.of(CountPlacement.of(1), InSquarePlacement.spread(), SurfaceWaterDepthFilter.forMaxDepth(0),
						PlacementUtils.HEIGHTMAP_OCEAN_FLOOR, PlacementUtils.filteredByBlockSurvival(Blocks.OAK_SAPLING), BiomeFilter.biome())));

         biomeBuilder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, PlacementUtils.register("regions_unexplored:pslope_sb",
				FeatureUtils.register("regions_unexplored:pslope_sb", Feature.TREE, new TreeConfiguration.TreeConfigurationBuilder(
						BlockStateProvider.simple(Blocks.OAK_LOG.defaultBlockState()), new StraightTrunkPlacer(6, 3, 0),
						BlockStateProvider.simple(Blocks.OAK_LEAVES.defaultBlockState()),
						new BlobFoliagePlacer(ConstantInt.of(2), ConstantInt.of(0), 3), new TwoLayersFeatureSize(1, 0, 1)).ignoreVines().build()),
				List.of(CountPlacement.of(1), InSquarePlacement.spread(), SurfaceWaterDepthFilter.forMaxDepth(0),
						PlacementUtils.HEIGHTMAP_OCEAN_FLOOR, PlacementUtils.filteredByBlockSurvival(Blocks.OAK_SAPLING), BiomeFilter.biome())));

		 biomeBuilder.addFeature(GenerationStep.Decoration.VEGETAL_DECORATION, PlacementUtils.register("regions_unexplored:pslope_pine",
				FeatureUtils.register("regions_unexplored:pslope_pine", Feature.TREE, new TreeConfiguration.TreeConfigurationBuilder(
					BlockStateProvider.simple(RegionsUnexploredModBlocks.PINE_LOG.get().defaultBlockState()), new StraightTrunkPlacer(8, 2, 2), 
				BlockStateProvider.simple(RegionsUnexploredModBlocks.PINE_LEAVES.get().defaultBlockState()), new SpruceFoliagePlacer(UniformInt.of(2, 3), UniformInt.of(2, 2), UniformInt.of(5, 5)), 
				new TwoLayersFeatureSize(2, 0, 2)).ignoreVines().build()),
				List.of(CountPlacement.of(7), InSquarePlacement.spread(), SurfaceWaterDepthFilter.forMaxDepth(0),
						PlacementUtils.HEIGHTMAP_OCEAN_FLOOR, PlacementUtils.filteredByBlockSurvival(Blocks.OAK_SAPLING), BiomeFilter.biome())));
						  
        
        globalOverworldGeneration(biomeBuilder);
        BiomeDefaultFeatures.addDefaultOres(biomeBuilder);
        BiomeDefaultFeatures.addDefaultSoftDisks(biomeBuilder);
        return new Biome.BiomeBuilder().precipitation(Biome.Precipitation.RAIN).biomeCategory(Biome.BiomeCategory.TAIGA).temperature(0.5f)
				.downfall(0.7f).specialEffects(effects).mobSpawnSettings(spawnBuilder.build()).generationSettings(biomeBuilder.build())
				.build();

    }
}

and here is where it is registry name is made

public class ModBiomes
{
    @SubscribeEvent
    public static void registerBiomes(RegistryEvent.Register<Biome> event)
    {
        IForgeRegistry<Biome> registry = event.getRegistry();
        registry.register(OverworldBiomes.pineSlopes().setRegistryName(ModdedBiomes.PINE_SLOPES.location()));
      }
}

resource key here

public class ModdedBiomes
{
    public static final ResourceKey<Biome> PINE_SLOPES = register("pine_slopes");

    private static ResourceKey<Biome> register(String name)
    {
        return ResourceKey.create(Registry.BIOME_REGISTRY, new ResourceLocation("regions_unexplored", name));
    }
}

and makes a Terrablender region here

public class ModRegion extends Region
{
    public ModRegion(ResourceLocation name, int weight)
    {
        super(name, RegionType.OVERWORLD, weight);
    }

    @Override
    public void addBiomes(Registry<Biome> registry, Consumer<Pair<Climate.ParameterPoint, ResourceKey<Biome>>> mapper)
    {
        this.addModifiedVanillaOverworldBiomes(mapper, builder -> {
            
			List<Climate.ParameterPoint> grovePoints = new ParameterPointListBuilder()
                    .temperature(Temperature.COOL, Temperature.NEUTRAL)
                    .humidity(Humidity.ARID, Humidity.DRY, Humidity.NEUTRAL, Humidity.WET, Humidity.HUMID)
                    .continentalness(Continentalness.span(Continentalness.NEAR_INLAND, Continentalness.FAR_INLAND))
                    .erosion(Erosion.EROSION_0, Erosion.EROSION_1)
                    .depth(Depth.SURFACE, Depth.FLOOR)
                    .weirdness(Weirdness.PEAK_NORMAL, Weirdness.PEAK_VARIANT, Weirdness.HIGH_SLICE_VARIANT_ASCENDING, Weirdness.HIGH_SLICE_VARIANT_DESCENDING, Weirdness.HIGH_SLICE_NORMAL_ASCENDING, Weirdness.HIGH_SLICE_NORMAL_DESCENDING, Weirdness.MID_SLICE_VARIANT_ASCENDING, Weirdness.MID_SLICE_VARIANT_DESCENDING, Weirdness.MID_SLICE_NORMAL_ASCENDING, Weirdness.MID_SLICE_NORMAL_DESCENDING)
                    .build();

            grovePoints.forEach(point -> builder.replaceBiome(point, ModdedBiomes.PINE_SLOPES));
        });
    }
}

again i apreciate all the help youve given me. Im gonna try to stumble my way upon a solution.

Edited by UHQ_GAMES
Link to comment
Share on other sites

If you are using TerraBlender then you need to ask them.

  • Thanks 1

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Temu Coupon Code $100 Off Overview Temu, a popular online shopping platform, offers significant savings through various coupon codes. One of the most notable is the $100 off coupon code [ACT906655] , which is designed to attract new users and enhance their shopping experience. This article delves into the specifics of this coupon code, including its validity for first-time users, free shipping options, and its authenticity. Temu Coupon Code [ACT906655]  $100 Off Reddit The coupon code [ACT906655]  has gained traction on platforms like Reddit, where users share their experiences and tips regarding its use. Many users report that this code provides a substantial $100 discount on their purchases, making it a hot topic among bargain hunters. Discussions often highlight how to effectively apply the code during checkout to maximize savings, along with any potential limitations or conditions associated with its use. Temu Coupon Code [ACT906655]  $100 Off First Time User For first-time users, the [ACT906655] code is particularly appealing as it offers a $100 discount on their initial order. This incentive encourages new customers to explore Temu's wide range of products without the burden of high costs. The process for applying this coupon is straightforward: after creating an account and adding items to the cart, users simply enter the code at checkout to receive their discount. Temu Coupon Code [ACT906655]  $100 Off First Order When using the [ACT906655]  coupon code for your first order, customers can enjoy a remarkable $100 off. This promotion not only makes shopping more affordable but also allows users to try out various products at a fraction of the cost. It's essential for first-time shoppers to ensure they meet any specific requirements outlined by Temu to successfully redeem this offer. Temu Coupon Code [ACT906655]  $100 Off Free Shipping In addition to the substantial discount, the [ACT906655]  coupon code often includes free shipping on eligible orders. This feature is particularly beneficial for customers looking to save on additional shipping costs, making it easier to shop without worrying about extra fees. Users should check Temu's shipping policies to confirm eligibility for free shipping with this coupon. Temu $100 Coupon Bundle [ACT906655] First Order The $100 coupon bundle associated with [ACT906655]  is designed specifically for first-time customers. This bundle may include multiple discounts or promotional offers that enhance the overall shopping experience. By utilizing this bundle, new users can access a variety of deals that go beyond just a single discount, allowing them to maximize their savings on their first purchase. Temu $100 Coupon [ACT906655] Real or Fake Concerns about the authenticity of coupons are common among online shoppers. The [ACT906655]  coupon has been verified by numerous sources as legitimate, providing real savings for users. However, it's advisable for customers to use caution and ensure they are obtaining codes from reliable sources to avoid scams or expired offers. How Does Temu $100 Coupon Bundle Work The Temu $100 coupon bundle functions by offering a combination of discounts that can be applied at checkout. Users can redeem these coupons by entering the provided code during their shopping process. The bundle may consist of various promotions tailored for new users, including percentage discounts and free shipping options, all aimed at enhancing customer satisfaction and encouraging repeat business. $100 Coupon Bundle Temu Meaning The term $100 coupon bundle refers to a collection of promotional offers that collectively provide up to $100 in savings on purchases made through Temu. This could include direct discounts on products, free shipping incentives, or additional promotional offers that enhance the overall value proposition for customers. Understanding this concept helps shoppers navigate their options effectively when utilizing coupons on the platform. In summary, the [ACT906655]  coupon code from Temu presents an excellent opportunity for new users to save significantly on their first order while enjoying additional benefits like free shipping and bundled discounts. As always, verifying the authenticity of such codes through trusted sources ensures a secure and rewarding shopping experience.
    • Temu Coupon Code $300 Off Overview Temu, a popular online shopping platform, offers significant savings through various coupon codes. One of the most notable is the $300 off coupon code [ACT906655] , which is designed to attract new users and enhance their shopping experience. This article delves into the specifics of this coupon code, including its validity for first-time users, free shipping options, and its authenticity. Temu Coupon Code [ACT906655]  $300 Off Reddit The coupon code [ACT906655]  has gained traction on platforms like Reddit, where users share their experiences and tips regarding its use. Many users report that this code provides a substantial $300 discount on their purchases, making it a hot topic among bargain hunters. Discussions often highlight how to effectively apply the code during checkout to maximize savings, along with any potential limitations or conditions associated with its use. Temu Coupon Code [ACT906655]  $300 Off First Time User For first-time users, the [ACT906655] code is particularly appealing as it offers a $300 discount on their initial order. This incentive encourages new customers to explore Temu's wide range of products without the burden of high costs. The process for applying this coupon is straightforward: after creating an account and adding items to the cart, users simply enter the code at checkout to receive their discount. Temu Coupon Code [ACT906655]  $300 Off First Order When using the [ACT906655]  coupon code for your first order, customers can enjoy a remarkable $300 off. This promotion not only makes shopping more affordable but also allows users to try out various products at a fraction of the cost. It's essential for first-time shoppers to ensure they meet any specific requirements outlined by Temu to successfully redeem this offer. Temu Coupon Code [ACT906655]  $300 Off Free Shipping In addition to the substantial discount, the [ACT906655]  coupon code often includes free shipping on eligible orders. This feature is particularly beneficial for customers looking to save on additional shipping costs, making it easier to shop without worrying about extra fees. Users should check Temu's shipping policies to confirm eligibility for free shipping with this coupon. Temu $300 Coupon Bundle [ACT906655] First Order The $300 coupon bundle associated with [ACT906655]  is designed specifically for first-time customers. This bundle may include multiple discounts or promotional offers that enhance the overall shopping experience. By utilizing this bundle, new users can access a variety of deals that go beyond just a single discount, allowing them to maximize their savings on their first purchase. Temu $300 Coupon [ACT906655] Real or Fake Concerns about the authenticity of coupons are common among online shoppers. The [ACT906655]  coupon has been verified by numerous sources as legitimate, providing real savings for users. However, it's advisable for customers to use caution and ensure they are obtaining codes from reliable sources to avoid scams or expired offers. How Does Temu $300 Coupon Bundle Work The Temu $300 coupon bundle functions by offering a combination of discounts that can be applied at checkout. Users can redeem these coupons by entering the provided code during their shopping process. The bundle may consist of various promotions tailored for new users, including percentage discounts and free shipping options, all aimed at enhancing customer satisfaction and encouraging repeat business. $300 Coupon Bundle Temu Meaning The term $300 coupon bundle refers to a collection of promotional offers that collectively provide up to $300 in savings on purchases made through Temu. This could include direct discounts on products, free shipping incentives, or additional promotional offers that enhance the overall value proposition for customers. Understanding this concept helps shoppers navigate their options effectively when utilizing coupons on the platform. In summary, the [ACT906655]  coupon code from Temu presents an excellent opportunity for new users to save significantly on their first order while enjoying additional benefits like free shipping and bundled discounts. As always, verifying the authenticity of such codes through trusted sources ensures a secure and rewarding shopping experience.
    • If you're looking to save big on your next Temu purchase, you're in luck! The Legit Temu Coupon Code (acq783769]) or (acq783769) offers an incredible £100 off and free shipping for both new and existing users in UK. Temu, known for its wide range of products at competitive prices, is making shopping even more affordable with this amazing discount. In this article, we'll dive into the details of how you can use this Legit Temu Coupon Code (acq783769]) or (acq783769) to maximize your savings, explore other discount opportunities, and answer some frequently asked questions about Temu discount codes. Whether you're a first-time buyer or a loyal customer, these insights will help you make the most of your Temu shopping experience. What is the Temu £100 Discount Code? The Temu £100 discount code is a special promotional offer that provides a significant price reduction on your purchase. By using the Legit Temu Coupon Code (acq783769]) or (acq783769), shoppers can enjoy a flat £100 off their order, making it an excellent opportunity to save on a variety of products. This discount code is valid for both new and existing users, ensuring that everyone can benefit from this fantastic deal. How to Get Discounts on Temu Getting discounts on Temu is straightforward and easy. Here are some steps to ensure you make the most of the Legit Temu Coupon Code (acq783769]) or (acq783769): Visit the Temu Website: Start by browsing the Temu website to find the products you want to purchase. Add Items to Your Cart: Select your desired items and add them to your shopping cart. Apply the Coupon Code: During checkout, enter the Legit Temu Coupon Code (acq783769]) or (acq783769) in the designated promo code box. Enjoy Your Savings: Once the code is applied, you will see the £100 discount reflected in your total. Complete your purchase and enjoy your savings. Temu Promo Codes for Existing Customers Temu values its loyal customers and offers various promo codes, including the Legit Temu Coupon Code (acq783769]) or (acq783769), which existing users can use. This ensures that repeat shoppers can also benefit from significant discounts on their purchases. Keep an eye out for special promotions and offers that are periodically available to enhance your shopping experience. Discount Code for Temu Discount codes for Temu are a great way to save money on your orders. The Legit Temu Coupon Code (acq783769]) or (acq783769) is one of the best options available, offering a substantial £100 off and free shipping. Always check the Temu website or subscribe to their newsletter to stay updated on the latest discount codes and promotions. Temu New User Discount Code For new users, Temu provides exclusive discount codes to make their first shopping experience more enjoyable. By using the Legit Temu Coupon Code (acq783769]) or (acq783769), new customers can take advantage of a flat £100 discount and free shipping on their first order. This generous offer makes it easier for new shoppers to explore Temu's diverse product range without breaking the bank. Free Temu Discount Codes Temu frequently offers free discount codes to help customers save on their purchases. These codes can be found on the Temu website, social media pages, or through promotional emails. The Legit Temu Coupon Code (acq783769]) or (acq783769) is one such code that offers substantial savings and free shipping, making it a valuable find for any shopper. Temu Discount Code £100 Off The Temu discount code for £100 off is a remarkable offer that significantly reduces the cost of your purchase. By entering the Legit Temu Coupon Code (acq783769]) or (acq783769) at checkout, you can instantly save £100 on your order. This code is perfect for those looking to buy higher-priced items or make bulk purchases, providing substantial savings. Best Temu Discount Codes When it comes to finding the best Temu discount codes, the Legit Temu Coupon Code (acq783769]) or (acq783769) stands out due to its high value and ease of use. It offers a flat £100 discount along with free shipping, making it one of the top choices for savvy shoppers. Always look for verified and legitimate codes to ensure you get the best deals. Temu Discount Bundle Code Temu also offers discount bundle codes that provide savings on multiple items purchased together. These codes are perfect for shoppers looking to buy several products at once. The Legit Temu Coupon Code (acq783769]) or (acq783769) can be used in conjunction with other promotions, ensuring you get the maximum discount on your bundled purchases. Temu £100 Discount Bundle Reddit Reddit is a great resource for finding discount codes and deals shared by other users. The Legit Temu Coupon Code (acq783769]) or (acq783769) often appears in threads discussing Temu discounts, allowing users to benefit from verified and legitimate offers. Reddit communities can be a valuable source of information and help you find the best deals available. Temu 100 Discount Reddit Users on Reddit frequently share their experiences and discount codes for Temu. The Legit Temu Coupon Code (acq783769]) or (acq783769) is a popular topic, with many users confirming its validity and the substantial savings it offers. Join Reddit discussions to stay updated on the latest Temu discount codes and promotional offers. Temu Discount £100 Off Reddit Reddit is a platform where users can find and share Temu discount codes, including the Legit Temu Coupon Code (acq783769]) or (acq783769). This code provides a significant £100 off, making it a hot topic among Reddit shoppers. Engage with the community to discover more discount opportunities and tips for saving on Temu. Here's the updated version of the article with the required code changes: Temu Discount Code for Existing Customers Existing customers can continue to save on their purchases with the Legit Temu Coupon Code (acq783769]) or (acq783769). This code is not just for new users but also rewards loyal customers with a flat £100 discount and free shipping. It's a great way to keep enjoying Temu's offers with a Temu Discount £100 Off for Existing Customers. Temu Discount Code £100 Off The Legit Temu Coupon Code (acq783769]) or (acq783769) is an excellent offer for existing customers, providing a £100 discount on their orders. This code helps long-term users save on their purchases, making it easier to continue shopping at Temu without worrying about high costs. Temu Discount Code First Order For first-time shoppers, using the Legit Temu Coupon Code (acq783769]) or (acq783769) on their first order is a smart move. This code provides a flat £100 off and free shipping, making the initial shopping experience both enjoyable and affordable. Take advantage of this offer to explore Temu's wide range of products. Temu 90% Off Code First Order While the Legit Temu Coupon Code (acq783769]) or (acq783769) offers a substantial £100 off, Temu also provides other discount codes, such as 90% off for first orders. These codes ensure that new customers can start their shopping journey with significant savings. Always check for the latest offers to get the best deal. Temu 90% Off Code for Existing Users Existing users can also benefit from significant discounts, such as 90% off codes, in addition to the Legit Temu Coupon Code (acq783769]) or (acq783769). Temu frequently updates its promotional offers, ensuring that loyal customers can continue to enjoy great savings on their purchases. Is Temu £100 Percent Off Legit? Many shoppers wonder if the £100 discount on Temu is legitimate. Rest assured, the Legit Temu Coupon Code (acq783769]) or (acq783769) is a verified and authentic offer, providing a flat £100 off and free shipping. Always use trusted sources to find valid discount codes to ensure a safe and rewarding shopping experience. Where Can I Get a Temu Discount Code £100 Off? You can find the Temu discount code for £100 off on the Temu website, through promotional emails, or on forums like Reddit. The Legit Temu Coupon Code (acq783769]) or (acq783769) is widely shared and verified, making it easy to access and use for significant savings. Is the Temu £100 Discount Legit? Yes, the Temu £100 discount is legitimate. The Legit Temu Coupon Code (acq783769]) or (acq783769) has been confirmed by many users to provide a real £100 off and free shipping. Ensure you use the correct and verified code to enjoy these benefits. How Can I Redeem the Temu £100 Discount? Redeeming the Temu £100 discount is simple: Shop on the Temu Website: Add your desired items to the shopping cart. Enter the Coupon Code: During checkout, enter the Legit Temu Coupon Code (acq783769]) or (acq783769) in the promo code box. Apply the Discount: The £100 discount and free shipping will be applied to your order. Complete Your Purchase: Finish the checkout process and enjoy your savings. How to Use a £100 Dollar Discount on Temu Using a £100 discount on Temu is straightforward. By applying the Legit Temu Coupon Code (acq783769]) or (acq783769) at checkout, the discount will be automatically applied to your total. This allows you to save significantly on a wide range of products available on the Temu website. Temu Discount £50 Off In addition to the £100 off code, Temu also offers £50 off discounts. These codes can be found on the Temu website or through promotional emails. Using the Legit Temu Coupon Code (acq783769]) or (acq783769) ensures you get the best available discount. Temu Discount £30 Off Temu provides various discount options, including £30 off codes. While the Legit Temu Coupon Code (acq783769]) or (acq783769) offers a more substantial £100 discount, always check for additional offers to maximize your savings. Temu Discount Code £200 Off For larger purchases, Temu occasionally offers £200 off discount codes. While these are less common, they provide significant savings for bulk orders. Keep an eye out for such promotions in addition to using the Legit Temu Coupon Code (acq783769]) or (acq783769). Temu Discount Code £300 Off High-value discount codes, such as £300 off, are occasionally available for large orders. These codes can be combined with the Legit Temu Coupon Code (acq783769]) or (acq783769) for even greater savings. Always check the latest promotions to find the best deals. Temu Discount Code £500 Off For substantial purchases, Temu sometimes offers £500 off discount codes. These high-value codes are perfect for large orders and can be used alongside the Legit Temu Coupon Code (acq783769]) or (acq783769) to maximize your savings. 30% Off Temu Coupons, Promo Codes + 25% Cash Back (acq783769]) Redeem Temu Coupon Code (acq783769]) TEMU COUPON £100 OFF (acq783769]) TEMU COUPON £100 OFF FOR EXISTING CUSTOMERS (acq783769]) TEMU COUPON £100 OFF FIRST ORDER (acq783769]) TEMU COUPON £100 OFF REDDIT (acq783769]) TEMU COUPON £100 OFF FOR EXISTING CUSTOMERS REDDIT (acq783769]) TEMU COUPON £100 OFF NEW USER (acq783769]) TEMU COUPON £100 OFF FOR EXISTING CUSTOMERS 2024 (acq783769]) TEMU COUPON £100 OFF CODE (acq783769]) TEMU COUPON £100 OFF FIRST ORDER FREE SHIPPING (acq783769]) TEMU COUPON £100 OFF FOR EXISTING CUSTOMERS FREE SHIPPING USA (acq783769]) TEMU COUPON £100 OFF HOW DOES IT WORK (acq783769]) TEMU COUPON £100 OFF FOR EXISTING CUSTOMERS CANADA (acq783769]) TEMU COUPON £100 OFF 2024 (acq783769]) TEMU COUPON £100 OFF FOR NEW CUSTOMERS (acq783769]) TEMU COUPON £100 OFF CANADA (acq783769]) TEMU COUPON £100 OFF FOR EXISTING CUSTOMERS FIRST ORDER (acq783769]) TEMU £100 OFF COUPON BUNDLE (acq783769]) 100 COUPON CODES (acq783769]) 1 BUCKS TO PHP (acq783769]) IS THERE A COUPON IN THE PHILIPPINES (acq783769]) 100 BUCKS TO PHP (acq783769]) TEMU £100 OFF COUPON (acq783769]) TEMU £100 OFF CODE (acq783769]) TEMU 100 VALUE COUPON BUNDLE (acq783769]) TEMU COUPON £100 OFF FOR EXISTING CUSTOMERS FREE SHIPPING (acq783769]) TEMU 100 OFF COUPON CODE LEGIT (acq783769]) TEMU 100 OFF COUPON CODE REDDIT (acq783769]) TEMU 100 OFF COUPON CODE FOR EXISTING USERS (acq783769]) TEMU 100 OFF COUPON CODE UK (acq783769]) TEMU COUPON CODE £100 OFF FREE SHIPPING (acq783769]) TEMU COUPON CODES 100 PERCENT OFF (acq783769]) WHAT IS A HIGH COUPON RATE (acq783769]) HOW TO CALCULATE COUPON RATE WITHOUT COUPON PAYMENT (acq783769]) WHAT IS THE COUPON RATE (acq783769]) HOW TO CALCULATE COUPON VALUE (acq783769]) USING COUPONS AND REBATES TO LOWER THE PRICE OF AN ITEM IS AN EXAMPLE OF (acq783769]) TEMU 100 DOLLAR OFF COUPON (acq783769]) DOMINOS COUPON CODE 100 OFF (acq783769]) DOMINO'S 100 RS OFF COUPON CODE (acq783769]) TEMU COUPON £100 OFF EXISTING CUSTOMERS (acq783769]) WHAT IS 10 OFF 100 DOLLARS (acq783769]) 100 OFF PROMO CODE (acq783769]) 1 CASHBACK ON 100 DOLLARS (acq783769]) IS TEMU 100 OFF COUPON LEGIT (acq783769]) TEMU COUPON £100 OFF (acq783769]) TEMU COUPON £100 OFF LEGIT (acq783769]) WHAT IS A GOOD COUPON RATE (acq783769]) TEMU 100 VALUE COUPON (acq783769]) 100 DOLLAR OFF SHEIN CODE (acq783769]) WHAT IS A ZERO COUPON NOTE (acq783769]) TEMU 100 PERCENT OFF COUPON REDDIT (acq783769]) TEMU 100 OFF COUPON REAL (acq783769]) TEMU 100 OFF COUPON CODE (acq783769]) TEMU COUPON £100 OFF SOUTH AFRICA (acq783769]) TEMU COUPON £100 OFF FREE SHIPPING (acq783769]) TEMU COUPON £100 OFF FIRST TIME USER (acq783769]) TEMU COUPON CODE £100 OFF FIRST TIME USER (acq783769]) IS THE TEMU 100 OFF COUPON LEGIT (acq783769]) TEMU COUPON £100 OFF UK (acq783769]) TEMU COUPON CODE 100 OFF UK (acq783769]) HOW MUCH IS 20 OF 100 DOLLARS (acq783769]) TEMU COUPON CODE 100 OFF (acq783769]) Conclusion In conclusion, the Legit Temu Coupon Code (acq783769]) is an excellent opportunity to save £100 on your next Temu purchase, with the added benefit of free shipping. Whether you're a new user or a loyal customer, this code ensures you get the best deal possible. Always stay updated on the latest discount codes and promotions to make the most of your Temu shopping experience. Happy shopping. All About the Latest Temu Promotions, Coupon Codes, and How to Get a £100 Coupon Bundle What is the £100 Temu Coupon? The £100 Temu coupon is promoted as a major discount available on the Temu website or app. It promises shoppers substantial savings, but there are key details you should know. Is the Temu £100 Coupon Legit? (acq783769]) or (acq783769) The legitimacy of the £100 Temu coupon largely depends on where it comes from and the conditions attached. Here’s what to consider: Source of the Coupon: If the coupon originates from Temu's official website, app, or verified social media accounts, it is likely to be real. However, coupons from third-party sites might not be trustworthy. Terms and Conditions: A legitimate coupon will always have clear terms, including spending requirements, applicable products, and expiry dates. If any of these are unclear, the coupon might not be valid. Too Good to Be True? A £100 discount sounds amazing, but if the offer seems too generous, it may not be legitimate. Scammers often use big discounts to lure customers. What Should You Do? (acq783769]) or (acq783769) If you come across a Temu £100 coupon, follow these steps to ensure it's valid: Verify the Source: Check that the coupon is from an official Temu source. Read the Details: Look over the coupon's terms and conditions carefully. Be Cautious: Avoid using coupons from unfamiliar or suspicious sources to protect yourself from scams. The Legitimacy of the Temu £100 Coupon (acq783769]) or (acq783769) The Temu £100 coupon is, indeed, legitimate when offered by Temu through official promotions. Temu provides these coupons to attract new shoppers and reward loyal customers. However, they are often part of a welcome package or require participation in certain promotions. Always read the fine print to understand the terms. Is the Temu £300 Coupon Code Legit? (acq783769]) or (acq783769) A £300 Temu coupon code (acq783769]) or (acq783769) may be legitimate if it is promoted directly by Temu. Be sure to verify its authenticity through official channels before using it. Is the Temu £750 Coupon Code Legit? (acq783769]) or (acq783769) A £750 Temu coupon code (acq783769]) or (acq783769) is highly unlikely to be legitimate. Always be cautious of such large discounts and verify them before using. Conclusion In conclusion, the £100 Temu coupon can be legitimate if it meets the right conditions, such as coming from a trusted source and having clear terms. Always stay cautious, and happy shopping—but remember to shop smart! FAQs On Temu £100 Coupon (acq783769]) or (acq783769) What is the £100 coupon bundle on Temu? The £100 coupon bundle on Temu (acq783769]) or (acq783769) includes multiple discounts that could save you up to £100 on your purchases. Is a £15,000 coupon on Temu legit? A £15,000 coupon on Temu (acq783769]) or (acq783769) is extremely unlikely to be legitimate and should be treated with caution. How does Temu’s 100% rebate work? Temu (acq783769]) or (acq783769) sometimes offers promotions with 100% rebates on specific purchases. These offers typically have conditions such as minimum purchase amounts. Does Temu really give you £200? While Temu may offer generous discounts, it’s rare for them to simply give £200 without terms attached. Always verify the offer. Is a 100% discount truly free? Yes, a 100% discount on Temu (acq783769]) or (acq783769) means the product is free, but check the terms to avoid any hidden costs.
    • To use the Temu coupon code 2024 (act906655) as an existing customer, you're in for a variety of savings, including discounts, free shipping, and seasonal promotions. Here’s a detailed breakdown of how you can make the most out of this offer, along with related subtopics and popular FAQs. 1. Temu Coupon Code for Existing Customers Reddit On Reddit, many users share their experiences using the act906655 coupon, reporting substantial discounts up to 70% off, with some combining it with other ongoing promotions like free shipping. Reddit communities often explore ways to stack discounts, and it’s worth checking forums for current updates. 2. Temu Coupon Code 2024 act906655 for Existing Customers in the USA This coupon works particularly well for U.S.-based customers. The act906655 code offers up to 70% off and includes free shipping, making it highly valuable for existing customers. It’s crucial to ensure you’re logged in to your account before applying the code to access these benefits. 3. Free Shipping with Temu Coupon Code act906655 Many users appreciate the free shipping benefit that comes with the act906655 code. This makes it easier to maximize savings, especially when making larger purchases. By using the code during checkout, delivery fees are waived, further enhancing the discount. 4. Using Temu Coupon Code act906655 on Your First Order Although this code is targeted at existing customers, it can also be applied to first orders if you're a returning customer or creating a new account. However, it’s worth noting that new user-specific discounts may also offer alternative savings. 5. Temu Coupon for Existing Customers act906655 For loyal customers, act906655 offers an exclusive discount that you can apply repeatedly to save on multiple purchases. The coupon allows you to stack it with other promotions like seasonal sales. 6. Temu Coupon Code for Existing Customers in September 2024 The act906655 code is still active as of September 2024, offering significant discounts during this period. Temu frequently updates its promotions, so keep an eye on their newsletters or social media for special offers that can be combined with the code. 7. Temu Coupon Code act906655 – 40% Off The act906655 code occasionally includes offers of 40% off on select items or categories. This discount can sometimes be more beneficial for smaller orders, particularly if you're looking for specific products with lower price points. 8. Temu Coupon for $100 Off with act906655 Temu also offers an option for $100 off on orders using the same code, but the eligibility depends on your cart total. This coupon is perfect for larger purchases or during sales. Combining it with free shipping maximizes savings. Top 7 Google Ranking FAQs on Temu Coupon Code: 1. Can I use the Temu coupon code act906655 more than once? Yes, the act906655 code can be reused for multiple purchases as long as the promotion is active. 2. Does the act906655 coupon offer free shipping? Yes, free shipping is included when you use the act906655 code for purchases. 3. Is act906655 applicable to all products? In most cases, the code applies to a wide range of products, although some categories may be excluded during certain sales. 4. Can I stack the act906655 coupon with other discounts? Yes, this coupon can often be combined with other promotional offers, particularly during major sales 5. What’s the maximum discount I can get with the act906655 code? The coupon offers up to 70% off depending on the product or promotion. 6. Does Temu offer coupons for existing customers? Yes, Temu frequently offers discounts for existing customers, including the act906655 code. 7. Can I use act906655 for international shipping? While primarily used for U.S. customers, this code may also work in other regions depending on the promotion's terms. By staying updated on the latest promotions and using coupon codes like act906655, existing customers can continue to enjoy significant discounts and perks on Temu.
    • Looking for the best Temu coupon code to save on your purchases? The ACQ783769 coupon code offers a 90% discount, making it an excellent option for both new and existing users. Here’s everything you need to know about using this fantastic Temu 90% off code, including its validity and answers to common questions. What is the Temu 90% Off Code? The ACQ783769 coupon code provides users with a 90% discount on eligible purchases made through the Temu platform. Whether you’re a new or existing user, this code can help you save significantly. 90% Off Code for New Users If you’re a new user, this 90% off code is perfect for your first purchase. Simply sign up for a Temu account, add your items to the cart, and apply the code ACQ783769 at checkout to enjoy the discount. 90% Off Code for Existing Users Existing users can also benefit from the ACQ783769 code. If you've shopped on Temu before, you can still take advantage of this offer for additional savings on your next purchase. Validity of the Code The ACQ783769 coupon code is valid until December 2024. Be sure to use it before it expires to maximize your savings on Temu. FAQs Q: Can I use the ACQ783769 code more than once? A: Typically, the code is valid for one-time use per user. However, check the terms during checkout for confirmation. Q: Are there any exclusions for the 90% off code? A: Some products may be excluded from the offer. It’s always good to review the coupon’s terms and conditions before applying it. Q: Can I combine the 90% off code with other promotions? A: Generally, Temu allows one coupon per order. Combining multiple offers is usually not permitted. Q: Is the code valid for all products? A: Most products are eligible for the discount, but some categories or items may be excluded based on ongoing promotions. Conclusion Don’t miss out on the chance to save 90% on your next purchase at Temu with the ACQ783769 coupon code. Whether you're a new or existing user, this code is valid until December 2024, so take advantage of this offer while it lasts!
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.