Jump to content

[1.7.10] [Resolved] Help with creating custom tree generation.


Recommended Posts

Posted

I've hit yet ANOTHER snag in my mod. I need to know how generate a simple tree. I have attempted this a few times but to know avail. Minecraft has always crashed, stopped generating chucks, or corrupted worlds all the time I've tried. So I came here once again :). Thanks in advance.

 

Edit: Well it still isn't working. It crashes now. Here is the mod log.

 

[17:20:59] [main/INFO] [GradleStart]: No arguments specified, assuming client.
[17:21:00] [main/INFO] [GradleStart]: Extra: []
[17:21:00] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --assetsDir, C:/Users/Wyatt/.gradle/caches/minecraft/assets, --assetIndex, 1.7.10, --accessToken, {REDACTED}, --version, 1.7.10, --tweakClass, cpw.mods.fml.common.launcher.FMLTweaker]
[17:21:00] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[17:21:00] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker
[17:21:00] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker
[17:21:01] [main/INFO] [FML]: Forge Mod Loader version 7.10.85.1232 for Minecraft 1.7.10 loading
[17:21:01] [main/INFO] [FML]: Java is Java HotSpot(TM) Client VM, version 1.8.0_11, running on Windows 8.1:x86:6.3, installed at C:\Users\Wyatt\Documents\eclipse\jre
[17:21:01] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[17:21:01] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[17:21:01] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLDeobfTweaker
[17:21:01] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[17:21:01] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker
[17:21:01] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[17:21:05] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
[17:21:13] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[17:21:13] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper
[17:21:13] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLDeobfTweaker
[17:21:15] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.TerminalTweaker
[17:21:15] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.TerminalTweaker
[17:21:15] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[17:21:20] [main/ERROR] [LaunchWrapper]: Unable to launch
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_11]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_11]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_11]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_11]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_11]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_11]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_11]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_11]
at GradleStart.bounce(GradleStart.java:107) [start/:?]
at GradleStart.startClient(GradleStart.java:100) [start/:?]
at GradleStart.main(GradleStart.java:55) [start/:?]
Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source) ~[?:1.8.0_11]
at java.lang.Runtime.loadLibrary0(Unknown Source) ~[?:1.8.0_11]
at java.lang.System.loadLibrary(Unknown Source) ~[?:1.8.0_11]
at org.lwjgl.Sys$1.run(Sys.java:73) ~[lwjgl-2.9.1.jar:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_11]
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66) ~[lwjgl-2.9.1.jar:?]
at org.lwjgl.Sys.loadLibrary(Sys.java:95) ~[lwjgl-2.9.1.jar:?]
at org.lwjgl.Sys.<clinit>(Sys.java:112) ~[lwjgl-2.9.1.jar:?]
at net.minecraft.client.Minecraft.getSystemTime(Minecraft.java:2807) ~[Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:79) ~[Main.class:?]
... 13 more
Exception in thread "main" [17:21:20] [main/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: java.lang.ArrayIndexOutOfBoundsException: 0
[17:21:20] [main/INFO] [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:-1]: 	at GradleStart.main(GradleStart.java:59)
Java HotSpot(TM) Client VM warning: Using incremental CMS is deprecated and will likely be removed in a future release

 

Here is the generation code:

 

package com.awsp8.wizardry.Gen;

import java.util.Random;

import com.awsp8.wizardry.Wizardry;

import cpw.mods.fml.common.IWorldGenerator;
import net.minecraft.block.Block;
import net.minecraft.block.BlockSapling;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
import net.minecraft.util.Direction;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.feature.WorldGenAbstractTree;
import net.minecraft.world.gen.feature.WorldGenBigTree;
import net.minecraft.world.gen.feature.WorldGenerator;
import net.minecraftforge.common.util.ForgeDirection;

public class MaztrixTreeGen 
			extends WorldGenAbstractTree implements IWorldGenerator{

/** The minimum height of a generated tree. */
    private final int minTreeHeight;
    /** True if this tree should grow Vines. */
    private final boolean vinesGrow;
    /** The metadata value of the wood to use in tree generation. */
    private final int metaWood;
    /** The metadata value of the leaves to use in tree generation. */
    private final int metaLeaves;
    private static final String __OBFID = "CL_00000438";

    public MaztrixTreeGen(boolean p_i2027_1_)
    {
        this(p_i2027_1_, 4, 0, 0, false);
    }

    public MaztrixTreeGen(boolean doBlockNotify, int treeHeight, int wood, int leaves, boolean vines)
    {
        super(doBlockNotify);
        this.minTreeHeight = treeHeight;
        this.metaWood = wood;
        this.metaLeaves = leaves;
        this.vinesGrow = vines;
    }

    public boolean generate(World p_76484_1_, Random p_76484_2_, int p_76484_3_, int p_76484_4_, int p_76484_5_)
    {
        int l = p_76484_2_.nextInt(3) + this.minTreeHeight;
        boolean flag = true;

        if (p_76484_4_ >= 1 && p_76484_4_ + l + 1 <= 256)
        {
            byte b0;
            int k1;
            Block block;

            for (int i1 = p_76484_4_; i1 <= p_76484_4_ + 1 + l; ++i1)
            {
                b0 = 1;

                if (i1 == p_76484_4_)
                {
                    b0 = 0;
                }

                if (i1 >= p_76484_4_ + 1 + l - 2)
                {
                    b0 = 2;
                }

                for (int j1 = p_76484_3_ - b0; j1 <= p_76484_3_ + b0 && flag; ++j1)
                {
                    for (k1 = p_76484_5_ - b0; k1 <= p_76484_5_ + b0 && flag; ++k1)
                    {
                        if (i1 >= 0 && i1 < 256)
                        {
                            block = p_76484_1_.getBlock(j1, i1, k1);

                            if (!this.isReplaceable(p_76484_1_, j1, i1, k1))
                            {
                                flag = false;
                            }
                        }
                        else
                        {
                            flag = false;
                        }
                    }
                }
            }

            if (!flag)
            {
                return false;
            }
            else
            {
                Block block2 = p_76484_1_.getBlock(p_76484_3_, p_76484_4_ - 1, p_76484_5_);

                boolean isSoil = block2.canSustainPlant(p_76484_1_, p_76484_3_, p_76484_4_ - 1, p_76484_5_, ForgeDirection.UP, (BlockSapling)Blocks.sapling);
                if (isSoil && p_76484_4_ < 256 - l - 1)
                {
                    block2.onPlantGrow(p_76484_1_, p_76484_3_, p_76484_4_ - 1, p_76484_5_, p_76484_3_, p_76484_4_, p_76484_5_);
                    b0 = 3;
                    byte b1 = 0;
                    int l1;
                    int i2;
                    int j2;
                    int i3;

                    for (k1 = p_76484_4_ - b0 + l; k1 <= p_76484_4_ + l; ++k1)
                    {
                        i3 = k1 - (p_76484_4_ + l);
                        l1 = b1 + 1 - i3 / 2;

                        for (i2 = p_76484_3_ - l1; i2 <= p_76484_3_ + l1; ++i2)
                        {
                            j2 = i2 - p_76484_3_;

                            for (int k2 = p_76484_5_ - l1; k2 <= p_76484_5_ + l1; ++k2)
                            {
                                int l2 = k2 - p_76484_5_;

                                if (Math.abs(j2) != l1 || Math.abs(l2) != l1 || p_76484_2_.nextInt(2) != 0 && i3 != 0)
                                {
                                    Block block1 = p_76484_1_.getBlock(i2, k1, k2);

                                    if (block1.isAir(p_76484_1_, i2, k1, k2) || block1.isLeaves(p_76484_1_, i2, k1, k2))
                                    {
                                        this.setBlockAndNotifyAdequately(p_76484_1_, i2, k1, k2, Wizardry.maztrixLeaf, this.metaLeaves);
                                    }
                                }
                            }
                        }
                    }

                    for (k1 = 0; k1 < l; ++k1)
                    {
                        block = p_76484_1_.getBlock(p_76484_3_, p_76484_4_ + k1, p_76484_5_);

                        if (block.isAir(p_76484_1_, p_76484_3_, p_76484_4_ + k1, p_76484_5_) || block.isLeaves(p_76484_1_, p_76484_3_, p_76484_4_ + k1, p_76484_5_))
                        {
                            this.setBlockAndNotifyAdequately(p_76484_1_, p_76484_3_, p_76484_4_ + k1, p_76484_5_, Wizardry.maztrixLog, this.metaWood);

                            if (this.vinesGrow && k1 > 0)
                            {
                                if (p_76484_2_.nextInt(3) > 0 && p_76484_1_.isAirBlock(p_76484_3_ - 1, p_76484_4_ + k1, p_76484_5_))
                                {
                                    this.setBlockAndNotifyAdequately(p_76484_1_, p_76484_3_ - 1, p_76484_4_ + k1, p_76484_5_, Blocks.vine, ;
                                }

                                if (p_76484_2_.nextInt(3) > 0 && p_76484_1_.isAirBlock(p_76484_3_ + 1, p_76484_4_ + k1, p_76484_5_))
                                {
                                    this.setBlockAndNotifyAdequately(p_76484_1_, p_76484_3_ + 1, p_76484_4_ + k1, p_76484_5_, Blocks.vine, 2);
                                }

                                if (p_76484_2_.nextInt(3) > 0 && p_76484_1_.isAirBlock(p_76484_3_, p_76484_4_ + k1, p_76484_5_ - 1))
                                {
                                    this.setBlockAndNotifyAdequately(p_76484_1_, p_76484_3_, p_76484_4_ + k1, p_76484_5_ - 1, Blocks.vine, 1);
                                }

                                if (p_76484_2_.nextInt(3) > 0 && p_76484_1_.isAirBlock(p_76484_3_, p_76484_4_ + k1, p_76484_5_ + 1))
                                {
                                    this.setBlockAndNotifyAdequately(p_76484_1_, p_76484_3_, p_76484_4_ + k1, p_76484_5_ + 1, Blocks.vine, 4);
                                }
                            }
                        }
                    }

                    if (this.vinesGrow)
                    {
                        for (k1 = p_76484_4_ - 3 + l; k1 <= p_76484_4_ + l; ++k1)
                        {
                            i3 = k1 - (p_76484_4_ + l);
                            l1 = 2 - i3 / 2;

                            for (i2 = p_76484_3_ - l1; i2 <= p_76484_3_ + l1; ++i2)
                            {
                                for (j2 = p_76484_5_ - l1; j2 <= p_76484_5_ + l1; ++j2)
                                {
                                    if (p_76484_1_.getBlock(i2, k1, j2).isLeaves(p_76484_1_, i2, k1, j2))
                                    {
                                        if (p_76484_2_.nextInt(4) == 0 && p_76484_1_.getBlock(i2 - 1, k1, j2).isAir(p_76484_1_, i2 - 1, k1, j2))
                                        {
                                            this.growVines(p_76484_1_, i2 - 1, k1, j2, ;
                                        }

                                        if (p_76484_2_.nextInt(4) == 0 && p_76484_1_.getBlock(i2 + 1, k1, j2).isAir(p_76484_1_, i2 + 1, k1, j2))
                                        {
                                            this.growVines(p_76484_1_, i2 + 1, k1, j2, 2);
                                        }

                                        if (p_76484_2_.nextInt(4) == 0 && p_76484_1_.getBlock(i2, k1, j2 - 1).isAir(p_76484_1_, i2, k1, j2 - 1))
                                        {
                                            this.growVines(p_76484_1_, i2, k1, j2 - 1, 1);
                                        }

                                        if (p_76484_2_.nextInt(4) == 0 && p_76484_1_.getBlock(i2, k1, j2 + 1).isAir(p_76484_1_, i2, k1, j2 + 1))
                                        {
                                            this.growVines(p_76484_1_, i2, k1, j2 + 1, 4);
                                        }
                                    }
                                }
                            }
                        }

                        if (p_76484_2_.nextInt(5) == 0 && l > 5)
                        {
                            for (k1 = 0; k1 < 2; ++k1)
                            {
                                for (i3 = 0; i3 < 4; ++i3)
                                {
                                    if (p_76484_2_.nextInt(4 - k1) == 0)
                                    {
                                        l1 = p_76484_2_.nextInt(3);
                                        this.setBlockAndNotifyAdequately(p_76484_1_, p_76484_3_ + Direction.offsetX[Direction.rotateOpposite[i3]], p_76484_4_ + l - 5 + k1, p_76484_5_ + Direction.offsetZ[Direction.rotateOpposite[i3]], Blocks.cocoa, l1 << 2 | i3);
                                    }
                                }
                            }
                        }
                    }

                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
        else
        {
            return false;
        }
    }

    /**
     * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length
     */
    private void growVines(World p_76529_1_, int p_76529_2_, int p_76529_3_, int p_76529_4_, int p_76529_5_)
    {
        this.setBlockAndNotifyAdequately(p_76529_1_, p_76529_2_, p_76529_3_, p_76529_4_, Blocks.vine, p_76529_5_);
        int i1 = 4;

        while (true)
        {
            --p_76529_3_;

            if (!p_76529_1_.getBlock(p_76529_2_, p_76529_3_, p_76529_4_).isAir(p_76529_1_, p_76529_2_, p_76529_3_, p_76529_4_) || i1 <= 0)
            {
                return;
            }

            this.setBlockAndNotifyAdequately(p_76529_1_, p_76529_2_, p_76529_3_, p_76529_4_, Blocks.vine, p_76529_5_);
            --i1;
        }
}

@Override
public void generate(Random random, int chunkX, int chunkZ, World world,
		IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
	int x = random.nextInt(16);
	int z = random.nextInt(16);

	this.generate(world, random, x, world.getHeightValue(x, z), z);
}
}

 

Here is what I used to register the terrain generator:

 

GameRegistry.registerWorldGenerator(new MaztrixTreeGen(true, 4, 0, 0, false), 1);

 

Any further help would be great. :)

Posted
  On 11/13/2014 at 9:16 PM, shieldbug1 said:

What have you tried? Also, post the crash logs.

 

Sorry, I've recently updated my mod to 1.7.10 so I don't have access to the crash logs. But if this helps it was saying something about an ArrayIndexOutOfBoundsException.

Posted

Code is always more informative than a crash report alone, even if you remember what the exception was.

 

You said you're trying to generate a "simple" tree, but I assume you're trying to accomplish something beyond what the vanilla tree generation methods provide, as in, a different shape, or different blocks than vanilla leaves and logs?

 

Even if not, it might be worth a while to poke around in the vanilla methods, all in net.minecraft.world.gen.feature, to see how they're doing things. Spoiler: it's just huge mess of if statements and loops.

Posted
  On 11/13/2014 at 9:29 PM, MrCaracal said:

Code is always more informative than a crash report alone, even if you remember what the exception was.

 

You said you're trying to generate a "simple" tree, but I assume you're trying to accomplish something beyond what the vanilla tree generation methods provide, as in, a different shape, or different blocks than vanilla leaves and logs?

 

Even if not, it might be worth a while to poke around in the vanilla methods, all in net.minecraft.world.gen.feature, to see how they're doing things. Spoiler: it's just huge mess of if statements and loops.

 

I'm trying to generate a tree with a custom leaf type and log type (already implemented). Oh, also I will look at the tree generation classes again, but which class is that generates oak trees? I can't find it :) There is just WorldGenAbstractTree and WorldGenBigTree that I can find.

 

Edit: Oh, and on doing more digging in net.minecraft.world.gen.feature, I also found WorldGenCanopyTree. That might beit, but I just need confirmation.

Posted

The "minor" trees are handled by the WorldGenTrees class. This does the 1x1 trunk oak, birch, and jungle trees.

 

Did you mean you already had the custom leaf block and log block implemented, or that you had the generation method itself implemented?

Posted
  On 11/13/2014 at 9:54 PM, MrCaracal said:

The "minor" trees are handled by the WorldGenTrees class. This does the 1x1 trunk oak, birch, and jungle trees.

 

Did you mean you already had the custom leaf block and log block implemented, or that you had the generation method itself implemented?

 

I have the leaves and log implemented. Sorry for the confusion.

Posted
  On 11/13/2014 at 10:09 PM, MrCaracal said:

To answer the question in your edit, WorldGenCanopyTree is the "big" oak trees' generation algorithm.

Oh ok :)

 

I'll try using the code in WorldGenTrees.

Posted

At first you have to make a class that implements IWorldGenerator and register it. Let's call it Generate.java:

 

Generate.java

  Reveal hidden contents

 

 

Then create a var to register it:

Main mod class:

Generate generate = new Generate();

 

And register it in init():

GameRegistry.registerWorldGenerator(generate, 0);

 

And in Generate.java you can generate your trees

Write this in generateSurface method:

 

  Reveal hidden contents

 

 

I hope it helps.

Posted

Is it just me or would your code for the tree Y position have some nasty sideeffects?

int randPosY=random.nextInt(250); //Max Y coordinate

 

afaik, random.nextInt would give a random height from 0 to 250 in this case, and the tree should be on the ground level, not randomly flying or appearing underground which would be the case here.

--Remember to "Thank you" posts that actually helped you, and if a person seems nice, why not give them an applaud while you're at it--

Posted
  On 11/14/2014 at 3:01 PM, MuffinMonster said:

Is it just me or would your code for the tree Y position have some nasty sideeffects?

int randPosY=random.nextInt(250); //Max Y coordinate

 

afaik, random.nextInt would give a random height from 0 to 250 in this case, and the tree should be on the ground level, not randomly flying or appearing underground which would be the case here.

 

so what you're saying is this:

int randPosY= world.getHeightValue(randPosX, randPosZ);

 

instead of this:

 

int randPosY=random.nextInt(250); //Max Y coordinate

 

Edit: It still has this crash.

Posted
  On 11/14/2014 at 3:22 PM, Awesome_Spider said:

so what you're saying is this:

int randPosY= world.getHeightValue(randPosX, randPosZ);

 

instead of this:

 

int randPosY=random.nextInt(250); //Max Y coordinate

 

Edit: It still has this crash.

 

Well, yea. That's what I'd do, however I do not have even the slightest knowledge how the world generation works in Minecraft but that's how I'd do it.

 

Another thing to note is that you might want to check the max-height there. Afaik the terrain in minecraft can sometimes reach about 240 blocks up (technically I think it may go all the way to 256 but it's not likely) but that means that if your tree is 11 blocks high and you create it at a height of 245 your tree will try to grow outside of the world. This is just a side-note and is doubtfully the cause of your crash but it's noteworthy.

 

Also, just to clarify, does your minecraft run without the generation code?

Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path

This seems rather strange to me, though it could be a sideeffect of some other faulty code.

 

 

--Remember to "Thank you" posts that actually helped you, and if a person seems nice, why not give them an applaud while you're at it--

Posted
  On 11/14/2014 at 4:20 PM, MuffinMonster said:

  Quote

so what you're saying is this:

int randPosY= world.getHeightValue(randPosX, randPosZ);

 

instead of this:

 

int randPosY=random.nextInt(250); //Max Y coordinate

 

Edit: It still has this crash.

 

Well, yea. That's what I'd do, however I do not have even the slightest knowledge how the world generation works in Minecraft but that's how I'd do it.

 

Another thing to note is that you might want to check the max-height there. Afaik the terrain in minecraft can sometimes reach about 240 blocks up (technically I think it may go all the way to 256 but it's not likely) but that means that if your tree is 11 blocks high and you create it at a height of 245 your tree will try to grow outside of the world. This is just a side-note and is doubtfully the cause of your crash but it's noteworthy.

 

That's true.

 

  Quote

Also, just to clarify, does your minecraft run without the generation code?

Caused by: java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path

This seems rather strange to me, though it could be a sideeffect of some other faulty code.

 

Well, it did run, but every time I add any form of generation code it doesn't run. However, now it's doing something funny where when I remove all the generation code it still doesn't run. I saw on Minecraft Forum that someone was having this same problem with some other code and it is caused be lack of LWJGL for some reason. I'm running

 gradlew.bat setupDecompWorkspace --refresh-dependencies 

again to see if that solves the problem.

 

Edit: Well, that fixed the crash, I added the generation code back in and it launches now. Yay! The bad news: World Corruption (Aqain!). I was flying through my test world looking for my custom tree, then the chucks stoped loading and the loaded chunks were unloading. I said to myself, "Uh oh." I clicked escape and exited out of the world. The forge took forever to shutdown the world, and once it did, it then took forever to quit the game. I have no idea what's going on.

Posted

	@Override
public void generate(Random random, int chunkX, int chunkZ, World world,
		IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
	int x = random.nextInt(16);
	int z = random.nextInt(16);

	this.generate(world, random, x, world.getHeightValue(x, z), z);
}

 

Umm, this is placing every single tree at chunk 0,0

 

It should be

 

int x = chunkX*16 + random.nextInt(16);
int z = chunkZ*16 + random.nextInt(16);

Posted
  On 11/14/2014 at 7:28 PM, MrCaracal said:

What does your world generator look like, Awesome_Spider? Not the tree bit, the one that implements IWorldGenerator.

 

It looks like this:

 

package com.awsp8.wizardry.Gen;

import java.util.Random;

import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import cpw.mods.fml.common.IWorldGenerator;

public class Generate implements IWorldGenerator
{
    public void generate(Random random, int x, int z, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider){
        switch (world.provider.dimensionId){
        case -1:
            generateNether(world, random, x * 16, z * 16);
            break;
        case 0:
            generateSurface(world, random, x * 16, z * 16);
            break;
        case 1:
            generateEnd(world, random, x * 16, z * 16);
            break;
        }
    }

    private void generateEnd(World world, Random random, int x, int z){
        
    }

    private void generateSurface(World world, Random random, int x, int z){
        for(int i = 0; i < 15; i++){ // 15 is rarity
            int randPosX= x + random.nextInt(16);
            int randPosZ= z + random.nextInt(16);
            int randPosY= world.getHeightValue(randPosX, randPosZ);
            (new MaztrixTreeGen(false, 4, 0, 0, false)).generate(world, random, randPosX, randPosY, randPosZ);
        }
    }

    private void generateNether(World world, Random random, int x, int z){
        
    }
}

Posted

I'm going to be blunt here, Awesome_Spider, and I hope you don't find this discouraging. I see a lot of copy-paste going on with little thought given to what the methods you're using actually do or how they function.

 

For instance, I see you directly copy-pasted Kuu's world generation suggestion, which is itself lifted directly from the Forge Wiki's tutorial section. You even preserved the number of iterations in the for-loop and the comment label, erroneously referring to the value 15 as "rarity". If we look at your code however, what it does is call the tree generator 15 times per generateSurface call, which itself is called on every chunk. Is this actually what you want?

 

My advice to you at this point is to set aside a bit of time to go through the code you are using and try to determine how all the pieces fit together. If you must copy-paste, you should at least understand the bits you are using, otherwise, how will you understand what's going on when things don't work? Moreover, how will you know whether the suggestions you are taking are actually what you want?

 

I am certain that if you sit down and sift through your current code and figure out how it is working, the source of the issue you are having will become apparent. You got this far, so I know you can do it! Go forth and conquer!

Posted
  On 11/14/2014 at 3:01 PM, MuffinMonster said:

Is it just me or would your code for the tree Y position have some nasty sideeffects?

int randPosY=random.nextInt(250); //Max Y coordinate

 

afaik, random.nextInt would give a random height from 0 to 250 in this case, and the tree should be on the ground level, not randomly flying or appearing underground which would be the case here.

 

It won't generate in air because MaztrixTreeGen should check if the block is grass, but i think i've got long world generating because of this, thanks, i'll use

int randPosY= world.getHeightValue(randPosX, randPosZ);

  :D

Posted

Awesome_Spider, I copied all the code from my working mod, so I can't understand what's the problem. Do you use big or small oak tree generation?

 

Hmm, try to remove IWorldGenerator implementation and remove this from MaztrixTreeGen:

@Override
public void generate(Random random, int chunkX, int chunkZ, World world,
		IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
	int x = random.nextInt(16);
	int z = random.nextInt(16);

	this.generate(world, random, x, world.getHeightValue(x, z), z);
}

Posted
  On 11/15/2014 at 4:21 AM, MrCaracal said:

I'm going to be blunt here, Awesome_Spider, and I hope you don't find this discouraging. I see a lot of copy-paste going on with little thought given to what the methods you're using actually do or how they function.

 

For instance, I see you directly copy-pasted Kuu's world generation suggestion, which is itself lifted directly from the Forge Wiki's tutorial section. You even preserved the number of iterations in the for-loop and the comment label, erroneously referring to the value 15 as "rarity". If we look at your code however, what it does is call the tree generator 15 times per generateSurface call, which itself is called on every chunk. Is this actually what you want?

 

My advice to you at this point is to set aside a bit of time to go through the code you are using and try to determine how all the pieces fit together. If you must copy-paste, you should at least understand the bits you are using, otherwise, how will you understand what's going on when things don't work? Moreover, how will you know whether the suggestions you are taking are actually what you want?

 

I am certain that if you sit down and sift through your current code and figure out how it is working, the source of the issue you are having will become apparent. You got this far, so I know you can do it! Go forth and conquer!

 

Thanks for the suggestion. I will go through the code. Btw, I don't get discouraged easily.

 

Edit: Ok, I've gone through the generation code, figured out how it works, and figured out what the problem might be. My custom leaf block extends Block instead of BlockLeaves. A lot of the if statements check for if there is leaves in a given location. But my leaf block, MaztrixLeaf wouldn't count as a leaf, causing errors. So if I change it to BlockLeaves it should work. :)

 

Edit Again: It Worked! :D The color of the leaves is a little off but I can fix that.

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

    • my game crashed when loading a schematic and now i cant load into the world. ---- Minecraft Crash Report ---- // Why did you do that? Time: 6/22/25 1:37 AM Description: Unexpected error java.lang.NullPointerException: Unexpected error     at de.ellpeck.prettypipes.pipe.PipeTileEntity.getItems(PipeTileEntity.java:201) ~[?:1.9.5] {re:classloading}     at de.ellpeck.prettypipes.pipe.PipeTileEntity.func_145843_s(PipeTileEntity.java:424) ~[?:1.9.5] {re:classloading}     at net.minecraft.world.chunk.Chunk.func_177425_e(Chunk.java:449) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:forgematica.mixins.json:MixinWorldChunk,pl:mixin:A}     at net.minecraft.world.World.func_175713_t(World.java:662) ~[?:?] {re:mixin,pl:accesstransformer:B,xf:fml:advancedrocketry:coremodmethod,re:classloading,pl:accesstransformer:B,xf:fml:advancedrocketry:coremodmethod,pl:mixin:APP:forgematica.mixins.json:MixinWorld,pl:mixin:APP:kubejs-common.mixins.json:LevelMixin,pl:mixin:APP:flywheel.mixins.json:TileWorldHookMixin,pl:mixin:A}     at fi.dy.masa.litematica.world.ChunkSchematic.func_177436_a(ChunkSchematic.java:96) ~[?:?] {re:classloading}     at fi.dy.masa.litematica.world.WorldSchematic.func_180501_a(WorldSchematic.java:129) ~[?:?] {re:mixin,re:classloading}     at fi.dy.masa.litematica.util.SchematicPlacingUtils.placeBlocksWithinChunk(SchematicPlacingUtils.java:211) ~[?:?] {re:classloading}     at fi.dy.masa.litematica.util.SchematicPlacingUtils.placeToWorldWithinChunk(SchematicPlacingUtils.java:65) ~[?:?] {re:classloading}     at fi.dy.masa.litematica.schematic.placement.SchematicPlacementManager.processQueuedChunks(SchematicPlacementManager.java:152) ~[?:?] {re:classloading,re:mixin}     at fi.dy.masa.litematica.scheduler.ClientTickHandler.onClientTick(ClientTickHandler.java:31) ~[?:?] {re:classloading}     at fi.dy.masa.malilib.event.TickHandler.onClientTick(TickHandler.java:36) ~[?:?] {re:mixin,re:classloading}     at net.minecraft.client.Minecraft.handler$zeo000$onPostKeyboardInput(Minecraft.java:3027) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:forgematica.mixins.json:MixinMinecraftClient,pl:mixin:APP:mafglib.mixins.json:MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1545) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:forgematica.mixins.json:MixinMinecraftClient,pl:mixin:APP:mafglib.mixins.json:MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:954) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:forgematica.mixins.json:MixinMinecraftClient,pl:mixin:APP:mafglib.mixins.json:MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:forgematica.mixins.json:MixinMinecraftClient,pl:mixin:APP:mafglib.mixins.json:MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}     at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.5-36.2.20.jar:36.2] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$493/904351240.call(Unknown Source) [forge-1.16.5-36.2.20.jar:36.2] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {re:classloading}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {re:classloading} A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at de.ellpeck.prettypipes.pipe.PipeTileEntity.getItems(PipeTileEntity.java:201) ~[?:1.9.5] {re:classloading}     at de.ellpeck.prettypipes.pipe.PipeTileEntity.func_145843_s(PipeTileEntity.java:424) ~[?:1.9.5] {re:classloading}     at net.minecraft.world.chunk.Chunk.func_177425_e(Chunk.java:449) ~[?:?] {re:mixin,pl:accesstransformer:B,re:classloading,pl:accesstransformer:B,pl:mixin:APP:forgematica.mixins.json:MixinWorldChunk,pl:mixin:A}     at net.minecraft.world.World.func_175713_t(World.java:662) ~[?:?] {re:mixin,pl:accesstransformer:B,xf:fml:advancedrocketry:coremodmethod,re:classloading,pl:accesstransformer:B,xf:fml:advancedrocketry:coremodmethod,pl:mixin:APP:forgematica.mixins.json:MixinWorld,pl:mixin:APP:kubejs-common.mixins.json:LevelMixin,pl:mixin:APP:flywheel.mixins.json:TileWorldHookMixin,pl:mixin:A}     at fi.dy.masa.litematica.world.ChunkSchematic.func_177436_a(ChunkSchematic.java:96) ~[?:?] {re:classloading}     at fi.dy.masa.litematica.world.WorldSchematic.func_180501_a(WorldSchematic.java:129) ~[?:?] {re:mixin,re:classloading}     at fi.dy.masa.litematica.util.SchematicPlacingUtils.placeBlocksWithinChunk(SchematicPlacingUtils.java:211) ~[?:?] {re:classloading}     at fi.dy.masa.litematica.util.SchematicPlacingUtils.placeToWorldWithinChunk(SchematicPlacingUtils.java:65) ~[?:?] {re:classloading}     at fi.dy.masa.litematica.schematic.placement.SchematicPlacementManager.processQueuedChunks(SchematicPlacementManager.java:152) ~[?:?] {re:classloading,re:mixin}     at fi.dy.masa.litematica.scheduler.ClientTickHandler.onClientTick(ClientTickHandler.java:31) ~[?:?] {re:classloading}     at fi.dy.masa.malilib.event.TickHandler.onClientTick(TickHandler.java:36) ~[?:?] {re:mixin,re:classloading}     at net.minecraft.client.Minecraft.handler$zeo000$onPostKeyboardInput(Minecraft.java:3027) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:forgematica.mixins.json:MixinMinecraftClient,pl:mixin:APP:mafglib.mixins.json:MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A} -- Affected level -- Details:     All players: 1 total; [ClientPlayerEntity['Aleksanderbb'/173, l='ClientLevel', x=-1262.92, y=73.00, z=779.11]]     Chunk stats: Client Chunk Cache: 1225, 841     Level dimension: minecraft:overworld     Level spawn location: World: (-160,85,48), Chunk: (at 0,5,0 in -10,3; contains blocks -160,0,48 to -145,255,63), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)     Level time: 1277670 game time, 1516703 day time     Server brand: forge     Server type: Integrated singleplayer server Stacktrace:     at net.minecraft.client.world.ClientWorld.func_72914_a(ClientWorld.java:447) ~[?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:forgematica.mixins.json:MixinClientWorld,pl:mixin:APP:architectury.mixins.json:MixinClientLevel,pl:mixin:APP:abnormals_core.mixins.json:client.ClientWorldMixin,pl:mixin:APP:endergetic.mixins.json:ClientWorldMixin,pl:mixin:APP:create.mixins.json:BreakProgressMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.func_71396_d(Minecraft.java:2031) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:forgematica.mixins.json:MixinMinecraftClient,pl:mixin:APP:mafglib.mixins.json:MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:628) [?:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:forgematica.mixins.json:MixinMinecraftClient,pl:mixin:APP:mafglib.mixins.json:MixinMinecraftClient,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}     at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.5-36.2.20.jar:36.2] {}     at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$493/904351240.call(Unknown Source) [forge-1.16.5-36.2.20.jar:36.2] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {re:classloading}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {re:classloading} -- System Details -- Details:     Minecraft Version: 1.16.5     Minecraft Version ID: 1.16.5     Operating System: Windows 10 (amd64) version 10.0     Java Version: 1.8.0_51, Oracle Corporation     Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation     Memory: 1118021152 bytes (1066 MB) / 4441767936 bytes (4236 MB) up to 9335996416 bytes (8903 MB)     CPUs: 16     JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx10016m -Xms256m     ModLauncher: 8.0.9+86+master.3cf110c     ModLauncher launch target: fmlclient     ModLauncher naming: srg     ModLauncher services:          /mixin-0.8.4.jar mixin PLUGINSERVICE          /eventbus-4.0.0.jar eventbus PLUGINSERVICE          /forge-1.16.5-36.2.20.jar object_holder_definalize PLUGINSERVICE          /forge-1.16.5-36.2.20.jar runtime_enum_extender PLUGINSERVICE          /accesstransformers-3.0.1.jar accesstransformer PLUGINSERVICE          /forge-1.16.5-36.2.20.jar capability_inject_definalize PLUGINSERVICE          /forge-1.16.5-36.2.20.jar runtimedistcleaner PLUGINSERVICE          /mixin-0.8.4.jar mixin TRANSFORMATIONSERVICE          /forge-1.16.5-36.2.20.jar fml TRANSFORMATIONSERVICE      FML: 36.2     Forge: net.minecraftforge:36.2.20     FML Language Providers:          javafml@36.2         minecraft@1         scorge@3.1.3     Mod List:          enchantedbookredesign-3.3-1.16.4.jar              |Enchanted Book Redesign       |enchantedbookredesign         |3.3-1.16.4          |DONE      |Manifest: NOSIGNATURE         grapplemod-1.16.5-v12.jar                         |Grappling Hook Mod            |grapplemod                    |1.16.5-v12          |DONE      |Manifest: NOSIGNATURE         Architects-Palette-1.16.4-1.1.4.jar               |Architect's Palette           |architects_palette            |1.1.2               |DONE      |Manifest: NOSIGNATURE         connectivity-2.4-1.16.5.jar                       |Connectivity Mod              |connectivity                  |2.4-1.16.5          |DONE      |Manifest: NOSIGNATURE         strawgolem-1.16-1.9.jar                           |Straw Golem                   |strawgolem                    |1.16-1.9            |DONE      |Manifest: NOSIGNATURE         CTM-MC1.16.1-1.1.2.6.jar                          |ConnectedTexturesMod          |ctm                           |MC1.16.1-1.1.2.6    |DONE      |Manifest: NOSIGNATURE         Controlling-7.0.0.28.jar                          |Controlling                   |controlling                   |7.0.0.28            |DONE      |Manifest: NOSIGNATURE         structurescompass-1.16.5-1.2.0.jar                |Structures Compass            |structurescompass             |1.16.5-1.2.0        |DONE      |Manifest: NOSIGNATURE         Placebo-1.16.5-4.6.0.jar                          |Placebo                       |placebo                       |4.6.0               |DONE      |Manifest: NOSIGNATURE         mightyarchitect-mc1.16.3_v0.5.jar                 |The Mighty Architect          |mightyarchitect               |0.5                 |DONE      |Manifest: NOSIGNATURE         Forgematica-0.1.11-mc1.16.5 (1).jar               |Forgematica                   |forgematica                   |0.1.11-mc1.16.5     |DONE      |Manifest: NOSIGNATURE         moreminecarts-1.3.12.jar                          |More Minecarts                |moreminecarts                 |1.3.12              |DONE      |Manifest: NOSIGNATURE         culinaryconstruct-forge-1.16.5-4.0.0.6.jar        |Culinary Construct            |culinaryconstruct             |1.16.5-4.0.0.6      |DONE      |Manifest: NOSIGNATURE         ImprovedBackpacks-1.6.2.0.jar                     |Improved Backpacks            |improvedbackpacks             |1.6.2.0             |DONE      |Manifest: NOSIGNATURE         reliquary-1.16.5-1.3.5.1100.jar                   |Reliquary                     |xreliquary                    |1.16.5-1.3.5.1100   |DONE      |Manifest: NOSIGNATURE         Morpheus-1.16.5-4.2.70.jar                        |Morpheus                      |morpheus                      |4.2.70              |DONE      |Manifest: NOSIGNATURE         worldshape-1.0.jar                                |Worldshape                    |worldshape                    |1.0                 |DONE      |Manifest: NOSIGNATURE         WaterStrainer-1.16.3-10.0.0.jar                   |Water Strainer                |waterstrainer                 |1.16.3-10.0.0       |DONE      |Manifest: NOSIGNATURE         supplementaries-1.16.5-0.17.12b.jar               |Supplementaries               |supplementaries               |0.17.12             |DONE      |Manifest: NOSIGNATURE         cobblegenrandomizer-1.16-5.1.2.jar                |CobbleGenRandomizer           |cobblegenrandomizer           |1.16-5.1.2          |DONE      |Manifest: NOSIGNATURE         Buddycards-1.16.5-2.5.2.jar                       |Buddycards                    |buddycards                    |1.16.5-2.5.2        |DONE      |Manifest: NOSIGNATURE         PathToDirt-1.2.0-mc1.16.x.jar                     |Path To Dirt                  |pathtodirt                    |1.2.0               |DONE      |Manifest: NOSIGNATURE         PrettyPipes-1.9.5.jar                             |Pretty Pipes                  |prettypipes                   |1.9.5               |DONE      |Manifest: NOSIGNATURE         corpse-1.16.5-1.0.6.jar                           |Corpse                        |corpse                        |1.16.5-1.0.6        |DONE      |Manifest: NOSIGNATURE         OreTweaker-1.16.5-2.6.0.jar                       |Ore Tweaker                   |oretweaker                    |2.6.0               |DONE      |Manifest: NOSIGNATURE         FarmersDelight-1.16.5-0.5.3.jar                   |Farmer's Delight              |farmersdelight                |1.16.5-0.5.3        |DONE      |Manifest: NOSIGNATURE         torchmaster-2.3.8.jar                             |Torchmaster                   |torchmaster                   |2.3.8               |DONE      |Manifest: NOSIGNATURE         repurposed_structures_forge-3.4.4+1.16.5.jar      |Repurposed Structures         |repurposed_structures         |3.4.4+1.16.5        |DONE      |Manifest: NOSIGNATURE         crashutilities-3.12.jar                           |Crash Utilities               |crashutilities                |3.12                |DONE      |Manifest: NOSIGNATURE         fastfurnaceminusreplacement-1.1-1.16.3.jar        |Fast Furnace Minus Replacement|fastfurnaceminusreplacement   |1.1-1.16.3          |DONE      |Manifest: NOSIGNATURE         BiomesOPlenty-1.16.5-13.1.0.482-universal.jar     |Biomes O' Plenty              |biomesoplenty                 |1.16.5-13.1.0.482   |DONE      |Manifest: NOSIGNATURE         MaFgLib-0.1.15-mc1.16.5 (1).jar                   |MaFgLib                       |mafglib                       |0.1.15-mc1.16.5     |DONE      |Manifest: NOSIGNATURE         AdvancedRocketry-1.16.5-2.0.0-12-universal.jar    |Advanced Rocketry             |advancedrocketry              |1.16.5-2.0.0-12     |DONE      |Manifest: NOSIGNATURE         extcaves-2.4.jar                                  |Extended Caves                |extcaves                      |2.4                 |DONE      |Manifest: NOSIGNATURE         fairylights-4.0.5-1.16.5.jar                      |Fairy Lights                  |fairylights                   |4.0.5               |DONE      |Manifest: NOSIGNATURE         SpawnerFix-1.16.2-1.0.0.2.jar                     |Spawner Fix                   |sf                            |1.0.0.2             |DONE      |Manifest: NOSIGNATURE         darkerdepths-1.16.5-1.1.4.jar                     |Darker Depths                 |darkerdepths                  |1.1.4               |DONE      |Manifest: NOSIGNATURE         spark-forge.jar                                   |spark                         |spark                         |1.6.0               |DONE      |Manifest: NOSIGNATURE         portality-1.16.5-3.2.5.jar                        |Portality                     |portality                     |3.2.5               |DONE      |Manifest: NOSIGNATURE         curios-forge-1.16.5-4.0.5.3.jar                   |Curios API                    |curios                        |1.16.5-4.0.5.3      |DONE      |Manifest: NOSIGNATURE         Patchouli-1.16.4-53.2.jar                         |Patchouli                     |patchouli                     |1.16.4-53.2         |DONE      |Manifest: NOSIGNATURE         GunpowderLib-1.16.5-1.2.2.jar                     |GunpowderLib                  |gunpowderlib                  |1.16.5-1.2.2        |DONE      |Manifest: 2e:cb:db:61:22:2a:6d:79:f4:22:31:8c:34:9b:cf:9f:91:ea:95:c4:bf:bb:8a:de:6e:10:c3:f0:b1:c6:ae:20         Chunk Pregenerator-V1.16-3.2.0.jar                |Chunk Pregenerator            |chunkpregen                   |V1.16-3.2.0         |DONE      |Manifest: NOSIGNATURE         Desolation 1.1.0-2 1.16.5.jar                     |Desolation (Forge)            |desolation                    |1.1.0-2             |DONE      |Manifest: NOSIGNATURE         constructionwand-1.16.5-2.6.jar                   |Construction Wand             |constructionwand              |1.16.5-2.6          |DONE      |Manifest: NOSIGNATURE         LibVulpes-1.16.5-1.0.2-25-universal.jar           |Lib Vulpes                    |libvulpes                     |1.16.5-1.0.2-25     |DONE      |Manifest: NOSIGNATURE         ChunkNoGoByeBye-1.16.5-1.3.0.jar                  |ChunkNoGoByeBye               |chunknogobyebye               |1.16.5-1.3.0        |DONE      |Manifest: NOSIGNATURE         architectury-1.24.35-forge.jar                    |Architectury                  |architectury                  |1.24.35             |DONE      |Manifest: NOSIGNATURE         MoreObservers-1.4.1-MC1.16-Forge.jar              |More Observers                |moreobservers                 |1.0                 |DONE      |Manifest: NOSIGNATURE         cc-tweaked-1.16.5-1.99.1.jar                      |CC: Tweaked                   |computercraft                 |1.99.1              |DONE      |Manifest: NOSIGNATURE         AI-Improvements-1.16.2-0.3.0.jar                  |AI-Improvements               |aiimprovements                |0.3.0               |DONE      |Manifest: NOSIGNATURE         cloth-config-4.12.41-forge.jar                    |Cloth Config v4 API           |cloth-config                  |4.12.41             |DONE      |Manifest: NOSIGNATURE         BetterBurning-1.16.5-6.0.6.jar                    |BetterBurning                 |betterburning                 |6.0.6               |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         bwncr-1.16.5-3.10.16.jar                          |Bad Wither No Cookie Reloaded |bwncr                         |1.16.5-3.10.16      |DONE      |Manifest: NOSIGNATURE         FastLeafDecay-v25.jar                             |FastLeafDecay                 |fastleafdecay                 |v25                 |DONE      |Manifest: NOSIGNATURE         exoticbirds-1.16.4-1.3.0.jar                      |Exotic Birds                  |exoticbirds                   |1.3.0               |DONE      |Manifest: NOSIGNATURE         CodeChickenLib-1.16.5-4.0.5.438-universal.jar     |CodeChicken Lib               |codechickenlib                |4.0.5.438           |DONE      |Manifest: 31:e6:db:63:47:4a:6e:e0:0a:2c:11:d1:76:db:4e:82:ff:56:2d:29:93:d2:e5:02:bd:d3:bd:9d:27:47:a5:71         CBMultipart-1.16.5-3.0.3.122-universal.jar        |CBMultipart                   |cb_multipart                  |3.0.3.122           |DONE      |Manifest: 31:e6:db:63:47:4a:6e:e0:0a:2c:11:d1:76:db:4e:82:ff:56:2d:29:93:d2:e5:02:bd:d3:bd:9d:27:47:a5:71         ProjectRed-1.16.5-4.11.0-beta-6-core.jar          |ProjectRed Core               |projectred-core               |4.11.0-beta-6       |DONE      |Manifest: NOSIGNATURE         ProjectRed-1.16.5-4.11.0-beta-6-illumination.jar  |ProjectRed Illumination       |projectred-illumination       |4.11.0-beta-6       |DONE      |Manifest: NOSIGNATURE         ProjectRed-1.16.5-4.11.0-beta-6-transmission.jar  |ProjectRed Transmission       |projectred-transmission       |4.11.0-beta-6       |DONE      |Manifest: NOSIGNATURE         ProjectRed-1.16.5-4.11.0-beta-6-integration.jar   |ProjectRed Integration        |projectred-integration        |4.11.0-beta-6       |DONE      |Manifest: NOSIGNATURE         Rubber_Duck-1.16.5-1.2.0.jar                      |Rubber Duck                   |rubber_duck                   |1.2.0               |DONE      |Manifest: NOSIGNATURE         BetterAdvancements-1.16.5-0.1.0.108.jar           |Better Advancements           |betteradvancements            |0.1.0.108           |DONE      |Manifest: NOSIGNATURE         inventorysorter-1.16.1-18.1.0.jar                 |Simple Inventory Sorter       |inventorysorter               |18.1.0              |DONE      |Manifest: NOSIGNATURE         rhino-forge-1605.1.5-build.75.jar                 |Rhino                         |rhino                         |1605.1.5-build.75   |DONE      |Manifest: NOSIGNATURE         ftb-library-forge-1605.3.4-build.90.jar           |FTB Library                   |ftblibrary                    |1605.3.4-build.90   |DONE      |Manifest: NOSIGNATURE         ftb-teams-forge-1605.2.3-build.40.jar             |FTB Teams                     |ftbteams                      |1605.2.3-build.40   |DONE      |Manifest: NOSIGNATURE         Dice-1.16.5-1.2.0.jar                             |Dice                          |dice                          |1.2.0               |DONE      |Manifest: NOSIGNATURE         portable_stonecutter-1.16.5-1.3.5.jar             |Portable Stonecutter          |portable_stonecutter          |1.3.5               |DONE      |Manifest: NOSIGNATURE         jei-1.16.5-7.7.1.137.jar                          |Just Enough Items             |jei                           |7.7.1.137           |DONE      |Manifest: NOSIGNATURE         item-filters-forge-1605.2.5-build.9.jar           |Item Filters                  |itemfilters                   |1605.2.5-build.9    |DONE      |Manifest: NOSIGNATURE         metalbarrels-1.16.2-3.3b.jar                      |Metal Barrels                 |metalbarrels                  |1.16.2-3.3b         |DONE      |Manifest: NOSIGNATURE         abnormals_core-1.16.5-3.3.0.jar                   |Abnormals Core                |abnormals_core                |3.3.0               |DONE      |Manifest: NOSIGNATURE         ponderjs-1.16.5-1.0.3d.jar                        |Ponderjs                      |ponderjs                      |1.16.5-1.0.3d       |DONE      |Manifest: NOSIGNATURE         Clumps-6.0.0.27.jar                               |Clumps                        |clumps                        |6.0.0.27            |DONE      |Manifest: NOSIGNATURE         shutupexperimentalsettings-1.0.3.jar              |Shutup Experimental Settings! |shutupexperimentalsettings    |1.0.3               |DONE      |Manifest: NOSIGNATURE         appliedenergistics2-8.4.4.jar                     |Applied Energistics 2         |appliedenergistics2           |8.4.4               |DONE      |Manifest: 95:58:cc:83:9d:a8:fa:4f:e9:f3:54:90:66:61:c8:ae:9c:08:88:11:52:52:df:2d:28:5f:05:d8:28:57:0f:98         NaturesCompass-1.16.5-1.9.1-forge.jar             |Nature's Compass              |naturescompass                |1.16.5-1.9.1-forge  |DONE      |Manifest: NOSIGNATURE         configured-1.5.1-1.16.5.jar                       |Configured                    |configured                    |1.5.1               |DONE      |Manifest: NOSIGNATURE         decorative_blocks-1.16.4-1.7.2.jar                |Decorative Blocks             |decorative_blocks             |1.7.2               |DONE      |Manifest: NOSIGNATURE         decorative_blocks_abnormals-1.2.jar               |Decorative Blocks Abnormals   |decorative_blocks_abnormals   |1.2                 |DONE      |Manifest: NOSIGNATURE         DungeonCrawl-1.16.5-2.3.2.jar                     |Dungeon Crawl                 |dungeoncrawl                  |2.3.2               |DONE      |Manifest: NOSIGNATURE         catalogue-1.5.0-1.16.5.jar                        |Catalogue                     |catalogue                     |1.5.0               |DONE      |Manifest: NOSIGNATURE         iChunUtil-1.16.5-10.5.0.jar                       |iChunUtil                     |ichunutil                     |10.5.0              |DONE      |Manifest: NOSIGNATURE         randomium-1.16.5-1.7.jar                          |Randomium                     |randomium                     |1.16.5-1.7          |DONE      |Manifest: NOSIGNATURE         EnderStorage-1.16.5-2.8.0.168-universal.jar       |EnderStorage                  |enderstorage                  |2.8.0.168           |DONE      |Manifest: 31:e6:db:63:47:4a:6e:e0:0a:2c:11:d1:76:db:4e:82:ff:56:2d:29:93:d2:e5:02:bd:d3:bd:9d:27:47:a5:71         ftb-chunks-forge-1605.3.2-build.83.jar            |FTB Chunks                    |ftbchunks                     |1605.3.2-build.83   |DONE      |Manifest: NOSIGNATURE         kubejs-forge-1605.3.19-build.229.jar              |KubeJS                        |kubejs                        |1605.3.19-build.229 |DONE      |Manifest: NOSIGNATURE         forge-1.16.5-36.2.20-universal.jar                |Forge                         |forge                         |36.2.20             |DONE      |Manifest: 22:af:21:d8:19:82:7f:93:94:fe:2b:ac:b7:e4:41:57:68:39:87:b1:a7:5c:c6:44:f9:25:74:21:14:f5:0d:90         selene-1.16.5-1.9.0.jar                           |Selene                        |selene                        |1.16.5-1.0          |DONE      |Manifest: NOSIGNATURE         antiqueatlas-6.0.1-forge-mc1.16.5.jar             |Antique Atlas                 |antiqueatlas                  |6.0.1-forge-mc1.16.5|DONE      |Manifest: NOSIGNATURE         CraftingTweaks_1.16.5-12.2.1.jar                  |Crafting Tweaks               |craftingtweaks                |12.2.1              |DONE      |Manifest: NOSIGNATURE         forge-1.16.5-36.2.20-client.jar                   |Minecraft                     |minecraft                     |1.16.5              |DONE      |Manifest: NOSIGNATURE         cavebiomeapi-1.16.5-1.3.7.jar                     |CaveBiomeAPI                  |cavebiomeapi                  |1.3.7               |DONE      |Manifest: NOSIGNATURE         cofh_core-1.16.5-1.4.0.6.jar                      |CoFH Core                     |cofh_core                     |1.4.0.6             |DONE      |Manifest: 75:0b:cc:9b:64:2e:9b:c4:41:d1:95:00:71:ee:87:1a:b3:5e:4b:da:8e:e8:39:00:fd:5d:e5:9c:40:42:33:09         thermal_foundation-1.16.5-1.4.1.7.jar             |Thermal Series                |thermal                       |1.4.1.7             |DONE      |Manifest: 75:0b:cc:9b:64:2e:9b:c4:41:d1:95:00:71:ee:87:1a:b3:5e:4b:da:8e:e8:39:00:fd:5d:e5:9c:40:42:33:09         thermal_innovation-1.16.5-1.4.1.3.jar             |Thermal Innovation            |thermal_innovation            |1.4.1.3             |DONE      |Manifest: 75:0b:cc:9b:64:2e:9b:c4:41:d1:95:00:71:ee:87:1a:b3:5e:4b:da:8e:e8:39:00:fd:5d:e5:9c:40:42:33:09         thermal_expansion-1.16.5-1.4.1.3.jar              |Thermal Expansion             |thermal_expansion             |1.4.1.3             |DONE      |Manifest: 75:0b:cc:9b:64:2e:9b:c4:41:d1:95:00:71:ee:87:1a:b3:5e:4b:da:8e:e8:39:00:fd:5d:e5:9c:40:42:33:09         thermal_locomotion-1.16.5-1.4.1.2.jar             |Thermal Locomotion            |thermal_locomotion            |1.4.1.2             |DONE      |Manifest: 75:0b:cc:9b:64:2e:9b:c4:41:d1:95:00:71:ee:87:1a:b3:5e:4b:da:8e:e8:39:00:fd:5d:e5:9c:40:42:33:09         kubejs-thermal-1605.1.4-build.3.jar               |KubeJS Thermal                |kubejs_thermal                |1605.1.4-build.3    |DONE      |Manifest: NOSIGNATURE         endergetic-1.16.4-3.0.0.jar                       |The Endergetic Expansion      |endergetic                    |3.0.0               |DONE      |Manifest: NOSIGNATURE         TConstruct-1.16.5-3.3.0.308.jar                   |Tinkers' Construct            |tconstruct                    |3.3.0.308           |DONE      |Manifest: NOSIGNATURE         MouseTweaks-2.14-mc1.16.2.jar                     |Mouse Tweaks                  |mousetweaks                   |2.14                |DONE      |Manifest: NOSIGNATURE         titanium-1.16.5-3.2.8.7-22.jar                    |Titanium                      |titanium                      |3.2.8.7             |DONE      |Manifest: NOSIGNATURE         ftb-quests-forge-1605.3.5-build.72.jar            |FTB Quests                    |ftbquests                     |1605.3.5-build.72   |DONE      |Manifest: NOSIGNATURE         Jade-1.16.4-2.8.0.jar                             |Jade                          |jade                          |2.8.0               |DONE      |Manifest: NOSIGNATURE         Exchangers-1.16.5-3.0.2.jar                       |Exchangers                    |exchangers                    |1.16.5-3.0.2        |DONE      |Manifest: 2e:cb:db:61:22:2a:6d:79:f4:22:31:8c:34:9b:cf:9f:91:ea:95:c4:bf:bb:8a:de:6e:10:c3:f0:b1:c6:ae:20         archers_paradox-1.16.5-1.4.0.1.jar                |Archer's Paradox              |archers_paradox               |1.4.0.1             |DONE      |Manifest: 75:0b:cc:9b:64:2e:9b:c4:41:d1:95:00:71:ee:87:1a:b3:5e:4b:da:8e:e8:39:00:fd:5d:e5:9c:40:42:33:09         nolakes-0.1-1.16.4.jar                            |NoLakes!                      |nolakes                       |0.1-1.16.4          |DONE      |Manifest: NOSIGNATURE         paintings-1.16.4-7.0.0.1.jar                      |Paintings ++                  |paintings                     |1.16.4-6.0.1.5      |DONE      |Manifest: NOSIGNATURE         pipez-1.16.5-1.2.13.jar                           |Pipez                         |pipez                         |1.16.5-1.2.13       |DONE      |Manifest: NOSIGNATURE         flywheel-1.16-0.2.5.jar                           |Flywheel                      |flywheel                      |1.16-0.2.5          |DONE      |Manifest: NOSIGNATURE         create-mc1.16.5_v0.3.2g.jar                       |Create                        |create                        |v0.3.2g             |DONE      |Manifest: NOSIGNATURE         Mantle-1.16.5-1.6.147.jar                         |Mantle                        |mantle                        |1.6.147             |DONE      |Manifest: NOSIGNATURE         cookiecore-1.16.5-3.3.0-12106d2.jar               |CookieCore                    |cookiecore                    |3.3.0               |DONE      |Manifest: NOSIGNATURE         magicfeather-1.16.2-3.2.0.jar                     |Magic Feather                 |magicfeather                  |1.16.2-3.2.0        |DONE      |Manifest: NOSIGNATURE         ftb-backups-2.1.2.2.jar                           |FTB Backups                   |ftbbackups                    |2.1.2.2             |DONE      |Manifest: NOSIGNATURE         FastWorkbench-1.16.4-4.5.1.jar                    |FastWorkbench                 |fastbench                     |4.5.1               |DONE      |Manifest: NOSIGNATURE         StorageDrawers-1.16.3-8.3.0.jar                   |Storage Drawers               |storagedrawers                |8.3.0               |DONE      |Manifest: NOSIGNATURE         kubejs-create-1605.1.2-build.7.jar                |KubeJS Create                 |kubejs_create                 |1605.1.2-build.7    |DONE      |Manifest: NOSIGNATURE         ravencoffee-1.16.5-beta_01.jar                    |Raven Coffee Mod              |ravencoffee                   |1.16.3-0.1          |DONE      |Manifest: NOSIGNATURE         appleskin-forge-mc1.16.x-2.2.0.jar                |AppleSkin                     |appleskin                     |mc1.16.4-2.2.0      |DONE      |Manifest: NOSIGNATURE         lootr-1.16.5-0.0.9.30.jar                         |Lootr                         |lootr                         |0.0.9.30            |DONE      |Manifest: NOSIGNATURE         ferritecore-2.1.0-forge.jar                       |Ferrite Core                  |ferritecore                   |2.1.0               |DONE      |Manifest: 41:ce:50:66:d1:a0:05:ce:a1:0e:02:85:9b:46:64:e0:bf:2e:cf:60:30:9a:fe:0c:27:e0:63:66:9a:84:ce:8a         Chisel-MC1.16.5-2.0.1-alpha.4.jar                 |Chisel                        |chisel                        |MC1.16.5-2.0.1-alpha|DONE      |Manifest: NOSIGNATURE         occultism-1.16.5-1.20.1.jar                       |Occultism                     |occultism                     |1.16.5-1.20.1       |DONE      |Manifest: NOSIGNATURE         BackTools-1.16.5-10.1.0.jar                       |Back Tools                    |backtools                     |10.1.0              |DONE      |Manifest: NOSIGNATURE         Aquaculture-1.16.5-2.1.21.jar                     |Aquaculture 2                 |aquaculture                   |1.16.5-2.1.21       |DONE      |Manifest: NOSIGNATURE         orcinusscaves-1.3.jar                             |Orcinus's Cavern              |cavern                        |{1.2.0}             |DONE      |Manifest: NOSIGNATURE         xkdeco_0.2.4.jar                                  |XK's Deco                     |xkdeco                        |0.2.4               |DONE      |Manifest: NOSIGNATURE         CosmeticArmorReworked-1.16.5-v4a.jar              |CosmeticArmorReworked         |cosmeticarmorreworked         |1.16.5-v4a          |DONE      |Manifest: 5e:ed:25:99:e4:44:14:c0:dd:89:c1:a9:4c:10:b5:0d:e4:b1:52:50:45:82:13:d8:d0:32:89:67:56:57:01:53         valhelsia_core-16.0.13a.jar                       |Valhelsia Core                |valhelsia_core                |16.0.13a            |DONE      |Manifest: NOSIGNATURE         forbidden_arcanus-16.2.2.jar                      |Forbidden & Arcanus           |forbidden_arcanus             |16.2.2              |DONE      |Manifest: NOSIGNATURE         SoundFilters-0.14_for_1.16.2.jar                  |Sound Filters                 |soundfilters                  |0.14_for_1.16.2     |DONE      |Manifest: NOSIGNATURE         chiselsandbits-1.0.43.jar                         |Chisels & bits                |chiselsandbits                |1.0.43              |DONE      |Manifest: NOSIGNATURE         OpenLoader-1.16.5-9.0.3.jar                       |OpenLoader                    |openloader                    |9.0.3               |DONE      |Manifest: eb:c4:b1:67:8b:f9:0c:db:dc:4f:01:b1:8e:61:64:39:4c:10:85:0b:a6:c4:c7:48:f0:fa:95:f2:cb:08:3a:e5         drinkbeer-1.16.5-2.3.5.jar                        |Drink Beer                    |drinkbeer                     |2.3.5               |DONE      |Manifest: NOSIGNATURE         DefaultOptions_1.16.5-12.2.1.jar                  |Default Options               |defaultoptions                |12.2.1              |DONE      |Manifest: NOSIGNATURE     Crash Report UUID: bc1ea150-7d52-47a6-ab55-6fad06f44849     Patchouli open book context: n/a     Launched Version: forge-36.2.20     Backend library: LWJGL version 3.2.2 build 10     Backend API: NVIDIA GeForce RTX 3070 Ti/PCIe/SSE2 GL version 4.6.0 NVIDIA 566.36, NVIDIA Corporation     GL Caps: Using framebuffer using OpenGL 3.0     Using VBOs: Yes     Is Modded: Definitely; Client brand changed to 'forge'     Type: Client (map_client.txt)     Graphics mode: fast     Resource Packs: vanilla, mod_resources, openloader/resources/simis_edits     Current Language: English (US)     CPU: 16x AMD Ryzen 7 5800X 8-Core Processor 
    • It i have Create Stuff and Additions, i get an error that Create is at the wrong version (0.5.1j instead of 0.6.3) and if i remove it, i just end up getting an error for 11 different mods that are unable to load properly. What should i do? Without Create Stuff and Additions: https://ibb.co/fz6Mbw8x With Create Stuff and Additions: https://ibb.co/RTkvnCXN  And no, i can't update Create since i have other mods that don't support 0.6.0 yet.
    • I can usually figure out solutions to these, but I'm stumped. New modpack, made today. I have tried removing pehkui, but origins++ needs it, I have also tried removing amendments, supplementaries, and moonlight Attempted removing origins++ and pehkui and the server started, is there any way to add them to the server without crashing?   Crash log https://pastebin.com/xEm9rDLQ   Latest debug log https://pastebin.com/ChCRGegF    
    • Unlock Massive Savings with  Temu Coupon Codes: Save Big with $100 OFF and More!  Temu is a revolutionary online marketplace that offers a huge collection of trending items at unbeatable prices. Whether you're looking for gadgets, home décor, fashion, or beauty products,  Temu has something for everyone. By using the  Temu coupon code $100 OFF → [acu639380] for existing customers, you can unlock incredible discounts, save up to 90%, and even enjoy free shipping to over 67 countries. In this blog, we will explore the latest  Temu coupon code offerings, including $100 off for new and existing users, a special 40% discount on select items, and the incredible  Temu coupon bundle. Read on to discover how you can make the most of these discounts and enjoy amazing deals with  Temu this June! What is  Temu and Why Should You Shop There?  Temu is a one-stop online shopping destination that offers a vast selection of products at prices that are hard to beat. Whether you're purchasing for yourself or looking for gifts,  Temu delivers a wide variety of high-quality products across different categories. From clothing to electronics, home essentials, beauty products, and much more,  Temu has something for everyone. With its fast delivery, free shipping in over 67 countries, and discounts of up to 90% off, it’s no wonder why shoppers worldwide love this platform. Not only does  Temu offer competitive prices, but their frequent promotions and coupon codes make shopping even more affordable. In this blog, we’ll focus on how you can save even more with  Temu coupon codes, including the highly sought-after $100 OFF and 40% OFF codes. The Power of  Temu Coupon Code $100 OFF → [acu639380] for Existing Customers If you're a  Temu existing customer, you can unlock a fantastic $100 OFF by using the code [acu639380]. This coupon code provides a generous discount, allowing you to save big on your next purchase, whether it’s electronics, fashion, or home décor. Here’s why you should take advantage of this offer: Flat $100 off: This code gives you a flat $100 discount on your order. Available for Existing Users: If you've shopped with  Temu before, this coupon code is for you! Unbeatable Deals: Use this coupon in combination with other ongoing sales for even bigger savings. Huge Selection: Apply the code across  Temu’s massive inventory, from tech gadgets to everyday essentials.  Temu Coupon Code $100 OFF → [acu639380] for New Users Are you new to  Temu? You’re in luck!  Temu has a special $100 off coupon code just for you. By using [acu639380], new users can enjoy a $100 discount on their first purchase. This is an excellent way to try out the platform without breaking the bank. Here’s how to make the most of your  Temu coupon code as a new user: $100 Off Your First Order: If you’ve never shopped with  Temu before, the [acu639380] code gets you $100 off your first purchase. Great for First-Time Shoppers: Explore  Temu's range of trending items while saving money right from the start. Free Gifts: As a new user, you June also receive a special gift with your order as part of the ongoing promotions.  Temu Coupon Code 40% Off → [acu639380] for Extra Savings Looking for even more savings? The 40% off coupon is an amazing deal that’s available for a limited time. By using the code [acu639380], you can enjoy an extra 40% off on selected items. Whether you're shopping for electronics, home goods, or fashion, this coupon code allows you to grab even better deals on top of existing discounts. 40% Extra Off: This discount can be applied to select categories and items, giving you incredible savings. Stack with Other Offers: Combine it with other promotions for unbeatable prices. Popular Items: Use the 40% off code to save on some of  Temu’s hottest items of the season.  Temu Coupon Bundle: Unlock Even More Savings When you use the  Temu coupon bundle, you get even more benefits.  Temu offers a $100 coupon bundle, which allows both new and existing users to save even more on a variety of products. Whether you're shopping for yourself or buying gifts for others, this bundle can help you save big. $100 Coupon Bundle: The  Temu coupon bundle lets you apply multiple discounts at once, ensuring maximum savings. Available to All Users: Whether you’re a first-time shopper or a returning customer, the bundle is available for you to enjoy. Stacked Savings: When combined with other codes like the 40% off or the $100 off, you can save up to 90%.  Temu Coupon Code June 2025: New Offers and Promotions If you're shopping in June 2025, you're in for a treat!  Temu is offering a range of new offers and discount codes for the month. Whether you're shopping for electronics, clothing, or home décor, you’ll find discounts that will help you save a ton. Don’t miss out on the  Temu promo code and  Temu discount code that are available only for a limited time this month.  Temu New User Coupon: New users can save up to $100 off their first order with the [acu639380] code.  Temu Existing User Coupon: Existing users can unlock $100 off using the [acu639380] code.  Temu Coupon Code for June 2025: Get discounts on select items with up to 40% off this June.  Temu Coupon Code for Different Countries No matter where you live,  Temu has something special for you! You can use  Temu coupon codes tailored to your country to unlock great savings. Here’s a breakdown of how you can apply the [acu639380] coupon code in different regions:  Temu Coupon Code $100 Off for USA: Use the [acu639380] code in the USA to save $100 off your order.  Temu Coupon Code $100 Off for Canada: Canadians can enjoy $100 off using the [acu639380] code.  Temu Coupon Code $100 Off for UK: British shoppers can save $100 with the [acu639380] code.  Temu Coupon Code $100 Off for Japan: If you’re in Japan, apply the [acu639380] code to get $100 off.  Temu Coupon Code 40% Off for Mexico: Mexican shoppers can get 40% off with the [acu639380] code.  Temu Coupon Code 40% Off for Brazil: Brazil residents can save 40% by using the [acu639380] code. Why Shop with  Temu?  Temu isn’t just about the discounts; it’s about providing you with an exceptional shopping experience. Here’s why you should choose  Temu for your next shopping spree: Huge Selection of Trending Items: From the latest tech gadgets to fashion and home essentials,  Temu offers everything you need at amazing prices. Unbeatable Prices: With  Temu, you can shop for quality items at prices that are hard to match elsewhere. Fast Delivery: Enjoy fast and reliable delivery on all your orders. Free Shipping in Over 67 Countries: No matter where you are,  Temu ensures you get your products without any extra shipping fees. Up to 90% Off: Take advantage of massive discounts on selected products, so you can get more for less. Conclusion: Maximize Your Savings with  Temu Coupon Codes If you're looking for incredible deals, there’s no better time to shop at  Temu. With  Temu coupon code $100 OFF for existing and new users, an extra 40% off, and amazing coupon bundles, there are plenty of ways to save big. Don’t forget to check out the  Temu promo code for June 2025 and other exciting offers throughout the month. By using [acu639380], you can make the most of your shopping experience and enjoy unbeatable prices on all your favorite products. So, what are you waiting for? Start shopping with  Temu today, and enjoy massive savings with the $100 off and 40% off coupon codes. Happy shopping!  Temu Coupon Code Summary:  Temu Coupon Code $100 Off → [acu639380]: Save $100 on your purchase.  Temu Coupon Code $100 Off for New Users → [acu639380]: New users can get $100 off.  Temu Coupon Code $100 Off for Existing Users → [acu639380]: Existing users can save $100.  Temu Coupon Code 40% Off → [acu639380]: Enjoy 40% off select items.  Temu Coupon Bundle: Access a $100 coupon bundle for even more savings.  Temu Promo Code for June 2025: Latest deals for June 2025.  
    • it didnt make any different his game still crashes (https://www.mediafire.com/file/qmuanorha0d87b5/LOGSBURAK.zip/file) the crash log after without shield expansion mod
  • Topics

×
×
  • Create New...

Important Information

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