Jump to content

[1.7.10] Rendering .obj models as Blocks


Recommended Posts

In this tutorial I will show you how to use a Wavepoint .obj model for a block. It isn't too hard, but there can be some problems (from experience ;)).

 

Step 1: Creating the Model

 

First you will need to have a working .obj model. If you don't, open up Blender to get started. If you do, skip to the next step.

 

When you open up Blender, it will look like this:

width=800 height=524zbe22mT.png?1 [/img]

 

If you don't want the cube in your model, mouse over it and X on your keyboard. Then click the delete button.

 

You can now mess around with the model. To add shapes, click the create tab on the left sidebar. There should be a list of shapes.

 

After you're done and happy with it, click save as to save a .blend file. This is so you can open the model and make changes.

h6Nd1PQ.png

 

Then export it as a .obj file.

qb94hFC.png

 

And you're done! You may now move on to the next step.

 

Step 2: Placing the Files

Now, open up your IDE. I highly recommend using IntelliJ IDEA. In your resource folder, create a directory (or in eclipse, a package) and call it "assets.<your modid>.models". Then paste your .obj file in there. You can take this time to make a texture if you wish. Please note that it doesn't have to be a certain size. Put the texture in the same directory. You will learn what this directory does in a moment. You may now move on to the next step.

 

Step 3: Coding the Block

Create a new class where you normally place your Block code. Make the class extend BlockContainer. Copy this code into it and change the [Your Block] to you block's name.

public class [Your Block] extends BlockContainer{

    public [Your Block](Material material) {
        super(material);

        this.setBlockName("[Your Block]");
    }

    @Override
    public boolean renderAsNormalBlock(){
        return false;
    }

    @Override
    public int getRenderType(){
        return -1;
    }

    @Override
    public boolean isOpaqueCube(){
        return false;
    }

    @Override
    public TileEntity createNewTileEntity(World world, int par2) {
        return new TileEntity[Your Block]();
    }
}

 

You will have an error on return new TileEntity[Your Block](); but this is a class we will create later. You may now move on to the next step.

 

Step 3: The TileEntity (Optional)

If you want rotation or scale of the model to be TileEntity specific (per tile entity) you will need to put some code into a tile entity. If not, just create a blank class for it and move on to the next step.

 

If you don't want rotation/scale:

public class TileEntity[Your Block] extends TileEntity {

}

 

If you do want these it will go something like this:

public class TileEntity[Your Block] extends TileEntity {
     /* Rotation */
     public float rotation = 0;
    /* Scale */
    public float scale = 0;

    @Override
    public void updateEntity(){
        /* Increments 0.5  This can be changed */
        if (worldObj.isRemote) rotation += 0.5;
        /* Whatever you want your scale to be */
       if (worldObj.isRemote) scale = 0.5;
    }
}

 

Now that that is done you can move on to the renderer.

 

Step 4: The Renderer

The renderer is a class that extends TileEntitySpecialRenderer that renders your tile entity. Without it, your block will be just the black wire frame thingy (I don't know what to call it). To get started, create a class and call it something like "RenderTileEntity[Your Block] and make it extend TileEntitySpecialRenderer as mentioned above. At the moment, it should look like this:

public class RenderTileEntity[Your Block] extends TileEntitySpecialRenderer {

}

 

Put the following fields in this class:

ResourceLocation texture;
ResourceLocation objModelLocation;
IModelCustom model;

 

Instantiate them in a constructor like this:

public RenderTileEntity[Your Block](){
        texture = new ResourceLocation(YourMod.MODID, "models/[Your Block]Texture.png");
        objModelLocation = new ResourceLocation(YourMod.MODID, "models/[Your Block]Model.obj");
        model = AdvancedModelLoader.loadModel(objModelLocation);
}

 

Now we will begin to code the method that contains most of the rendering code. I will break it down for you, so it's easier to understand.

 

The method we'll be using is renderTilEntityAt. This method's parameters are as follows:

TileEntity - the tile entity being rendered

double - the X position of the title entity being rendered

double - the Y position of the title entity being rendered

double - the Z position of the title entity being rendered

float - the time since the last tick

 

These parameters are provided for ease of use.

 

To get started with this method, override it after your constructor like this:

@Override
    public void renderTileEntityAt(TileEntity te, double posX, double posY, double posZ, float timeSinceLastTick) {

}

 

Now add the code TileEntity[Your Block] te2 = (TileEntity[Your Block]) te; to the method. It should now look like this:

@Override
    public void renderTileEntityAt(TileEntity te, double posX, double posY, double posZ, float timeSinceLastTick) {
TileEntity[Your Block] te2 = (TileEntity[Your Block]) te;
}

 

Now if you wanted it to rotate, add a rotation field, like this:

@Override
    public void renderTileEntityAt(TileEntity te, double posX, double posY, double posZ, float timeSinceLastTick) {
TileEntity[Your Block] te2 = (TileEntity[Your Block]) te;
float rotation = te2.rotation + (timeSinceLastTick / 2F);
}

 

If you wanted scale, add a scale field:

@Override
    public void renderTileEntityAt(TileEntity te, double posX, double posY, double posZ, float timeSinceLastTick) {
TileEntity[Your Block] te2 = (TileEntity[Your Block]) te;
float rotation = te2.rotation + (timeSinceLastTick / 2F);
float scale = te2.scale;
}

 

Now for the actual rendering code. For this we will use LWJGL's GL11 to change the location, scale, rotation and other things about the model. I can't tell you exactly how to do this because it's up to you. I can however give you an example from my own mod.

bindTexture(texture);

GL11.glPushMatrix();
GL11.glTranslated(posX + 0.5, posY + 0.5, posZ + 0.5);
GL11.glScalef(scale, scale, scale);
GL11.glPushMatrix();
GL11.glRotatef(rotation, 0F, 1F, 0.5F);
model.renderAll();
GL11.glPopMatrix();
GL11.glPopMatrix();

 

Let's break this down.

 

First of all, bindTexture. Pretty straight forward, it binds the texture. This must be put before the rendering code or it will cause A LOT of problems. GL11.glPushMatrix, if you have experience with this kind of stuff, you will know that this tells GL11 to start doing something, whereas GL11.glPopMatrix tells it to stop. You must have two pairs of these for some reason or it will not work (thanks Draco8s for telling me this). glTranslated, glScaleF, and glRotateF are pretty straight forward, the guideline I have is that you put the scaling after the translating (thanks Ernio for telling me this). model.renderAll(); renders all parts of the model.

 

Step 5: Wrapping up

Now we have to add a little bit of registering code to wrap it up. In your ClientProxy where you register your renderers, place the following code:

GameRegistry.registerTileEntity(TileEntity[Your Block].class, "tile[Your Block]");
        ClientRegistry.bindTileEntitySpecialRenderer(TileEntity[Your Block].class, new RenderTileEntity[Your Block]());

 

I'll say this again, replace "[Your Block]" in all the code above with your block's name.

If you have any suggestions for this tutorial, or if I have something wrong, tell me in a reply.

  • Thanks 1
Link to comment
Share on other sites

  • 1 month later...

this is the crash report

 

---- Minecraft Crash Report ----

// I blame Dinnerbone.

 

Time: 6/4/15 3:50 PM

Description: Rendering Block Entity

 

net.minecraftforge.client.model.ModelFormatException: IO Exception reading model format

at net.minecraftforge.client.model.obj.WavefrontObject.<init>(WavefrontObject.java:60)

at net.minecraftforge.client.model.obj.ObjModelLoader.loadInstance(ObjModelLoader.java:27)

at net.minecraftforge.client.model.AdvancedModelLoader.loadModel(AdvancedModelLoader.java:65)

at com.bigboom.ModelsRenderer.RenderAltter.renderTileEntityAt(RenderAltter.java:37)

at net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.renderTileEntityAt(TileEntityRendererDispatcher.java:141)

at net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.renderTileEntity(TileEntityRendererDispatcher.java:126)

at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:539)

at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1300)

at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1087)

at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1056)

at net.minecraft.client.Minecraft.run(Minecraft.java:951)

at net.minecraft.client.main.Main.main(Main.java:164)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)

at GradleStart.main(Unknown Source)

Caused by: java.io.FileNotFoundException: snm:models/ballmodel.obj

at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65)

at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67)

at net.minecraftforge.client.model.obj.WavefrontObject.<init>(WavefrontObject.java:55)

... 19 more

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- Head --

Stacktrace:

at net.minecraftforge.client.model.obj.WavefrontObject.<init>(WavefrontObject.java:60)

at net.minecraftforge.client.model.obj.ObjModelLoader.loadInstance(ObjModelLoader.java:27)

at net.minecraftforge.client.model.AdvancedModelLoader.loadModel(AdvancedModelLoader.java:65)

at com.bigboom.ModelsRenderer.RenderAltter.renderTileEntityAt(RenderAltter.java:37)

 

-- Block Entity Details --

Details:

Name: tileentityaltter // com.bigboom.main_tw.TileEntityAltter

Block type: ID #178 (tile.altterBlock // com.bigboom.main_tw.altterBlock)

Block data value: 0 / 0x0 / 0b0000

Block location: World: (717,56,-701), Chunk: (at 13,3,3 in 44,-44; contains blocks 704,0,-704 to 719,255,-689), Region: (1,-2; contains chunks 32,-64 to 63,-33, blocks 512,0,-1024 to 1023,255,-513)

Actual block type: ID #178 (tile.altterBlock // com.bigboom.main_tw.altterBlock)

Actual block data value: 0 / 0x0 / 0b0000

Stacktrace:

at net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.renderTileEntityAt(TileEntityRendererDispatcher.java:141)

at net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.renderTileEntity(TileEntityRendererDispatcher.java:126)

at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:539)

at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1300)

 

-- Affected level --

Details:

Level name: MpServer

All players: 1 total; [EntityClientPlayerMP['Player64'/10, l='MpServer', x=716.85, y=57.62, z=-697.39]]

Chunk stats: MultiplayerChunkCache: 289, 289

Level seed: 0

Level generator: ID 01 - flat, ver 0. Features enabled: false

Level generator options:

Level spawn location: World: (750,72,-698), Chunk: (at 14,4,6 in 46,-44; contains blocks 736,0,-704 to 751,255,-689), Region: (1,-2; contains chunks 32,-64 to 63,-33, blocks 512,0,-1024 to 1023,255,-513)

Level time: 618448 game time, 16950 day time

Level dimension: 0

Level storage version: 0x00000 - Unknown?

Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)

Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false

Forced entities: 8 total; [EntityItem['item.item.spellpaper_shand'/0, l='MpServer', x=669.56, y=56.13, z=-710.59], EntityItem['item.tile.sandStone.default'/1, l='MpServer', x=737.84, y=56.13, z=-690.78], EntityItem['item.tile.sandStone.default'/2, l='MpServer', x=738.88, y=55.13, z=-691.19], EntityItem['item.tile.sandStone.default'/3, l='MpServer', x=740.31, y=55.13, z=-691.88], EntityItem['item.tile.sandStone.default'/4, l='MpServer', x=742.88, y=55.13, z=-691.88], EntityItem['item.tile.sandStone.default'/5, l='MpServer', x=744.13, y=55.13, z=-691.25], EntityItem['item.tile.sandStone.default'/6, l='MpServer', x=737.97, y=56.13, z=-694.47], EntityClientPlayerMP['Player64'/10, l='MpServer', x=716.85, y=57.62, z=-697.39]]

Retry entities: 0 total; []

Server brand: fml,forge

Server type: Integrated singleplayer server

Stacktrace:

at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:415)

at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2555)

at net.minecraft.client.Minecraft.run(Minecraft.java:973)

at net.minecraft.client.main.Main.main(Main.java:164)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)

at GradleStart.main(Unknown Source)

 

-- System Details --

Details:

Minecraft Version: 1.7.10

Operating System: Windows 8 (amd64) version 6.2

Java Version: 1.7.0_45, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 792600064 bytes (755 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)

JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M

AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0

FML: MCP v9.05 FML v7.10.85.1230 Minecraft Forge 10.13.2.1230 4 mods loaded, 4 mods active

mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

FML{7.10.85.1230} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.2.1230.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

Forge{10.13.2.1230} [Minecraft Forge] (forgeSrc-1.7.10-10.13.2.1230.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

snm{1.0} [super N] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

Launched Version: 1.7.10

LWJGL: 2.9.1

OpenGL: Intel® HD Graphics 4000 GL version 4.0.0 - Build 9.17.10.2867, Intel

GL Caps: Using GL 1.3 multitexturing.

Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.

Anisotropic filtering is supported and maximum anisotropy is 16.

Shaders are available because OpenGL 2.1 is supported.

 

Is Modded: Definitely; Client brand changed to 'fml,forge'

Type: Client (map_client.txt)

Resource Packs: []

Current Language: English (US)

Profiler Position: N/A (disabled)

Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used

Anisotropic Filtering: Off (1)

Link to comment
Share on other sites

Caused by: java.io.FileNotFoundException: snm:models/ballmodel.obj

Looking helps ;)

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

Look in assets.<modid>.models, is there a .obj file in there? If not, put one in there. Problem solved. If there is, I don't know.

 

Although, blender does seem to export a .mtl file as well as a .obj file. I'm still trying to work out what that does.

Link to comment
Share on other sites

  • 10 months later...
  • 3 weeks later...

In 1.8+, OBJ models are rendered through the baked model system (like JSON models) rather than a

TESR

. Forge has a test mod demonstrating how to do this here (assets here).

  • Like 1

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

  • 1 year later...

I cant Get it to work I don't know why but its at my tile-entity registry

here is my crash report

 

---- Minecraft Crash Report ----
// Oops.

Time: 3/3/18 6:29 PM
Description: Initializing game

java.lang.NullPointerException: Initializing game
    at _Xandon_.alienmod.alienmod.init(alienmod.java:144)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737)
    at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)
    at net.minecraft.client.Minecraft.run(Minecraft.java:942)
    at net.minecraft.client.main.Main.main(Main.java:164)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    at GradleStart.main(Unknown Source)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Stacktrace:
    at _Xandon_.alienmod.alienmod.init(alienmod.java:144)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
    at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
    at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    at com.google.common.eventbus.EventBus.post(EventBus.java:275)
    at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
    at cpw.mods.fml.common.Loader.initializeMods(Loader.java:737)
    at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:311)
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:597)

-- Initialization --
Details:
Stacktrace:
    at net.minecraft.client.Minecraft.run(Minecraft.java:942)
    at net.minecraft.client.main.Main.main(Main.java:164)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    at GradleStart.main(Unknown Source)

-- System Details --
Details:
    Minecraft Version: 1.7.10
    Operating System: Windows 10 (amd64) version 10.0
    Java Version: 1.8.0_161, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 666910392 bytes (636 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
    JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1614 4 mods loaded, 4 mods active
    States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    UCHI    mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
    UCHI    FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar)
    UCHI    Forge{10.13.4.1614} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar)
    UCHE    am{1.7.0} [_Xandon_'s Alien Mod] (bin)
    GL info: ' Vendor: 'Intel' Version: '4.3.0 - Build 10.18.15.4248' Renderer: 'Intel(R) HD Graphics 4600'
    Launched Version: 1.7.10
    LWJGL: 2.9.1
    OpenGL: Intel(R) HD Graphics 4600 GL version 4.3.0 - Build 10.18.15.4248, Intel
    GL Caps: Using GL 1.3 multitexturing.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Anisotropic filtering is supported and maximum anisotropy is 16.
Shaders are available because OpenGL 2.1 is supported.

    Is Modded: Definitely; Client brand changed to 'fml,forge'
    Type: Client (map_client.txt)
    Resource Packs: []
    Current Language: English (US)
    Profiler Position: N/A (disabled)
    Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    Anisotropic Filtering: Off (1)

 

and heres the problematic code: GameRegistry.registerTileEntity(TileEntityblockFutureStorage.class, blockFutureStorage.getLocalizedName());
            ClientRegistry.bindTileEntitySpecialRenderer(TileEntityblockFutureStorage.class, new RenderTileEntityblockFutureStorage());

Edited by _Xandon_
left info out
Link to comment
Share on other sites

_Xandon_

Edited by Cadiboo
couldn't quote

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

13 minutes ago, _Xandon_ said:

I cant Get it to work I don't know why but its at my tile-entity registry

here is my crash report

1.7.10 is no longer supported on this forum.

Please start a new topic in future, rather that replying to old topics.
I can see parts of your crash report showing that you might not be using 1.7.10.

If your trying to make your mod in a current version of minecraft start a new topic with your issue

Also, please put your code into a spoiler for easier reading 

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

  • Guest locked this topic
Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • DAFTAR SLOT GACOR DISINI DAFTAR SLOT GACOR DISINI DAFTAR SLOT GACOR DISINI Main slot online menggunakan cheat slot hacker di game slot pragmatic play olympus x500 dijamin akan mendapatkan keuntungan besar sehingga pada saat bermain slot online yang anda inginkan akan mendapatkan kemenangan jackpot maxwin besar. TAG :  Cheat Slot Cheat Slot Cheat Slot Cheat Slot Cheat Slot Cheat Slot Cheat Slot Cheat Slot Cheat Slot
    • Im trying to create a modpack for me and my friends using forge. I never liked forge so i used fabric at first. But there were some mods I really wanted from forge, so i tried to switch to that. I added the mods (yes the mod versions that are forge supported and version supported) into the mod folder. I kept getting crashes. I then removed the mods one by one till there was nothing left. I tried it one last time and crash again. So I tried to download actual forge and not the forge on OverWolf. I installed it without mods and it still crashed. Deleted and reinstalled Java 17 and nothing. I think this is the link for the crash report https://pastebin.com/hQUhArhN  
    • SLOT GOPAY ⇒ SITUS SLOT GOPAY LINK SLOT GOPAY RESMI HARI INI GAMPANG MENANG 2024   👉𝐋𝐈𝐍𝐊 𝐋𝐎𝐆𝐈𝐍 : 𝐊𝐋𝐈𝐊 𝐃𝐈𝐒𝐈𝐍𝐈 ⚡ 𝟖𝟔𝟖 𝐆𝐑𝐔𝐎𝐏 🔱 👉𝐋𝐈𝐍𝐊 𝐋𝐎𝐆𝐈𝐍 : 𝐊𝐋𝐈𝐊 𝐃𝐈𝐒𝐈𝐍𝐈 ⚡ 𝟖𝟔𝟖 𝐆𝐑𝐔𝐎𝐏 🔱 👉𝐋𝐈𝐍𝐊 𝐋𝐎𝐆𝐈𝐍 : 𝐊𝐋𝐈𝐊 𝐃𝐈𝐒𝐈𝐍𝐈 ⚡ 𝟖𝟔𝟖 𝐆𝐑𝐔𝐎𝐏 🔱         slot gopayadalah situs slot deposit gopay yang telah rekomendasikan di indonesia, berjuta permainan yang di sediakan bola2289 hari ini dengan deposit slot gopay 5k tanpa potongan dan gampang menang di tahun 2024
    • ▁ ▂ ▄ ▅ ▆ ▇ █ 𝐋𝐈𝐍𝐊 𝐃𝐀𝐅𝐓𝐀𝐑 █ ▇ ▆ ▅ ▄ ▂ ▁    👉𝐋𝐈𝐍𝐊 𝐋𝐎𝐆𝐈𝐍 : 𝐊𝐋𝐈𝐊 𝐃𝐈𝐒𝐈𝐍𝐈 ⚡𝟖𝟔𝟖 𝐆𝐑𝐔𝐎𝐏 🔱    👉𝐋𝐈𝐍𝐊 𝐋𝐎𝐆𝐈𝐍 : 𝐊𝐋𝐈𝐊 𝐃𝐈𝐒𝐈𝐍𝐈 ⚡𝟖𝟔𝟖 𝐆𝐑𝐔𝐎𝐏 🔱    👉𝐋𝐈𝐍𝐊 𝐋𝐎𝐆𝐈𝐍 : 𝐊𝐋𝐈𝐊 𝐃𝐈𝐒𝐈𝐍𝐈 ⚡𝟖𝟔𝟖 𝐆𝐑𝐔𝐎𝐏 🔱    👉𝐋𝐈𝐍𝐊 𝐋𝐎𝐆𝐈𝐍 : 𝐊𝐋𝐈𝐊 𝐃𝐈𝐒𝐈𝐍𝐈 ⚡𝟖𝟔𝟖 𝐆𝐑𝐔𝐎𝐏 🔱     Bocoran Pola Slot Pragmatic dan Trik Slot Gacor pertama yang bisa kamu kerjakan untuk memenangkan permainan slot pragmatic play ini yaitu dengan manfaatkan pengaturan spin. Spin slot gacor sendiri terdiri seperti Spin Manual, Spin Cepat dan Turbo spin ini kelak bisa membantu kamu agar memenangkan maxwin dalam sekejap. Karena setiap permainan slot online pragmatic play tentunya punya pengaturan turbo spin dan spin cepat. Umumnya kamu bisa memperoleh permainan slot gacor pragmatic play yang berbentuk tombol dengan tulisan “Turbo Spin” dan “Spin Cepat”. Kalaulah kamu ingin menjadi juara di gates of olympus, bermainlah dengan Bocoran Pola Slot Gacor karena itu perlu untuk kamu mengatur turbo spin dan spin pesatnya ini untuk kamu gunakan dalam mempercepat permainan judi slot online itu. Informasi Bocoran Pola dan Trik Slot Gacor Paling dipercaya Bisa Maxwin Pola slot gacor hari ini yang pertama kamu direferensikan buat menggunakan turbo spin, karena itu berbeda dengan taktik untuk mencetak kemenangan judi online slot pragmatic dengan lakukan betting. Betting ini yakni panggilan dari taruhan dalam permainan slot online, karena itu kalaulah kamu mau bermain, karena itu betting lebih bernilai untuk kamu kenali dan kerjakan dengan baik dengan pola slot hari ini. Dalam kerjakan pola dan Trik pola slot olympus, beberapa pemain memang tidak ada keterpaksaan untuk tetapkan nominal sampai kamu bisa bebas saat lakukan betting dengan nominal yang rendah atau tinggi. Dengan trik slot olympus maxwin ini kamu dapat segera mempermainkan gamenya karena itu kamu bisa buat merasakan langsung bagaimana triknya memainkan permainan pragmatic play ini. Pola gacor olympus terbaru, pola gacor olympus bet 200, pola maxwin olympus, trik pola slot olympus, pola gacor olympus malam ini, pola gacor olympus hari ini modal receh, pola gacor olympus siang hari ini, rumus permainan slot pragmatic, kode slot pragmatic, rahasia pola slot, pola slot gacor, pola slot pragmatic hari ini, jam hoki main slot pragmatic. Bocoran Pola Slot Gacor Gates Of Olympus dan Trik agar bisa memenangkan slot gacor pragmatic play ini adalah dengan cara pakai semua chip yang ada. Dalam permainan pragmatic play kamu bisa melakukan taruhan pakai chip, tidak hanya pakai bet saja. Dan rerata chip ini bisa kamu dapatkan dari beberapa permainan judi pragmatic berwujud kepingan kecil di mana kamu bisa dapatkan beberapa bentuk kepingan. Kamu juga bebas buat manfaatkan semua chip yang kamu punya dalam permainan itu atau hanya menggunakan beberapa chip saja sesuai kemauan kamu. Tetapi kalaulah kamu ingin menjadi juara permainannya, sehingga kamu disarankan buat pakai semua chip. Karena oleh menggunakan semua chip dalam permainan, karena itu kamu segera dapat mendapat bonus dalam jumlah yang besar. Tersebut beberapa Pola dan Trik menang permainan slot gacor pragmatic play. Strategi pas terakhir yaitu dengan pakai saldo akun sebanyak-banyaknya. Dengan manfaatkan saldo permainan sebanyaknya, karenanya kecil kemungkinan kamu akan mengulang permainan. Oleh karena itu langkah ini bisa demikian efektif untuk kamu gunakan waktu mempermainkan permainan judi online slot gacor pragmatic play. Langkah Pilih Bocoran Pola dan Trik Slot Gacor Paling dipercaya Gampang Maxwin Ada beragam Bocoran Pola dan Trik Slot Gacor agar bisa menang yang lumayan gampang memberi hasil atau keuntungan maxwin yang besar buat anda. Pertama kali Trik ini dapat kita aplikasikan dan mempelajari ke semua website judi slot online. Apa Trik gampang meraih kemenangan di games slot pragmatic play online? Berikut opsinya : Permainkan Games Slot 3 Gulungan Pola slot gacor pragmatic harus bettor pahami jika tipe permainan yang mempunyai 3 gulungan lebih gampang untuk dimenangi. Permainan slot 3 gulungan pragmatic di atas kertas bisa dimenangi secara benar-benar gampang. Bahkan juga betaruh pemula juga dapat melakukan dengan trik slot olympus maxwin x500. Trik pola slot olympus ke dua paling mudah untuk meraih kemenangan di judi slot pragmatic play online ialah mendapati permainan yang gampang lebih dulu. Permainan yang gampang tentu saja semakin lebih cepat dalam memberi kemenangan. Karena itu, pilih permainan yang cepat dan mudah untuk ditaklukkan dengan pola slot gacor malam ini gates of olympus. Pakai bocoran slot gacor pragmatic hari ini, untuk menang secara mudah, sebaiknya memutar spin lebih dulu. Kita sebagai bettors kerap memperoleh kesadaran dan memahami pola slot pragmatic. Jadi ketika menggunakan pola slot olympus ini dapat dijadikan modal khusus permainan. Tentukan Games yang Gampang Dahulu Trik Pola Gacor Olympus Menang Besar di Permainan Judi Slot, selainnya menang gampang, ada pula langkah meraih kemenangan dengan nominal besar. Beberapa trik ini bisa dipakai untuk capai keuntungan yang optimal. Berikut penuturannya. Putar Sekitar Kemungkinan Untuk menang besar gunakan pola slot olympus x500, jumlah perputaran atau bermain mesin slot pragmatic akan punya pengaruh besar. Yakinkan perputaran yang kita kerjakan banyak. Minimal kerjakan spin sampai 20 kali supaya kesempatan kemenangannya besar dengan trik beli spin olympus dari kami. Tentukan Jekpot Besar bila ingin menang besar dalam slot bermain pragmatic? Mencari saja tipe permainan yang mempunyai jekpot besar. Jekpot besar penting dalam penyeleksian permainan. Dengan jekpot yang besar karena itu keuntungan yang didapatkan besar mudah-mudahan pola slot gacor hari ini olympus membawa anda menang banyak. Trik Pola Gacor Olympus Hari Ini Tidak boleh Stop Sampai Anda Memperoleh Jekpot Khusus. Ini langkah baik untuk menang super besar. Kita harus terus memutar atau mainkan mesin judi slot online di pragmatic online sampai jekpot sukses didapat dan tidak ada uang yang di sia-siakan ketika mengikuti pola slot olympus dari kami. Tersebut langkah bermain situs slot online pragmatic play supaya menang besar dan gampang yang dapat kita coba. Beberapa cara itu bisa dibuktikan efisien jika dipakai . Maka, kita tak perlu sangsi atau cemas dengan beberapa cara itu. Karena, semua langkah di atas sudah tentu baik dan tepat untuk menang. Untuk Pola Slot Gacor Online Sah Menang Berturut-turut Jam gacor slot pragmatic ini hari telah, bocoran slot gacor ini hari terhitung telah, saat ini waktunya admin Slot Gacor memberikan tambahan teknik slot gacor atau pola slot gacor terbaik supaya meraih kemenangan berturut-turut setiap kali bermain. Dengan kombinasi sepenuhnya akan memudahkan anda sanggup maxwin di dalam beberapa saat saja. Lantas bagaimana pola strategi yang hendak diberi? Ingin pahami ya? Ingin tahu pasti bosku? Langsung info pola slot gacor pragmatic slot admin Slot Gacor yaitu : Pola Slot Gacor Olympus Spin Auto 50x ( 0.20) Spin Auto 20x ( 0.40) Spin Spasi 20x ( 0.40) Contreng Ganda Chance Buy freespin ( 0.20 - 0.80) Pola Slot Gacor Slot Bonanza Spin Auto 40x Quick Spin ( 0.20) Spin Auto 20x Turbo Spin ( 0.40) Spin Spasi 15x ( 0.40) Contreng Ganda Chance Buy freespin ( 0.20 - 0.80) Pola Slot Gacor Starlight Princess Spin Auto 80x Quick Spin ( 0.20) Spin Auto 40x Turbo Spin ( 0.40) Contreng Ganda Chance Buy freespin ( 0.20 - 0.80) Pola Slot Gacor Wild West Gold Spin Auto 100x Quick Spin ( 0.20) Spin Auto 80x Turbo Spin ( 0.40) Spin Auto 50x ( 0.80) Spin Spasi 25x ( 1.00) Keuntungan Daftar Di Situs Bocoran Pola Trik Slot Gacor Maxwin Dengan bermain Slot Online di website Pola Slot Gacor ini hari 2023 yang adalah website judi Slot Gacor ini hari di indonesia yang terbaik hingga kepuasan memainkan permainan slot online ini hari tentu tercipta terlebih bila anda gabung bersama sama yang menjadi satu diantara agen slot online gacor ini hari paling dipercaya tahun 2023. Kenyataannya anda tentu untung dan di mana tentu bersama dengan bermacam- jenis service yang ada. Untuk anggota slot online ini hari, kalian tentu mendapatkan semua perjudian online ini hari dari kami adalah 9Gaming, bersama dengan performa yang baru dan terdapat feature menarik, dan bonus jekpot slot online ini hari Benar-benar Besar. Dengan bermacam- jenis Keuntungan lainnya dari situs Slot Online Benar-benar Baru dan Paling dipercaya, adalah: Proses daftar yang terlalu Gampang dilaksanakan. Withdraw dan Deposit instant dan simpel. Bisa usaha demonstrasi akun slot pragmatic khususnya dulu. Bayar setiap kemenangan pemain. Siapkan website judi slot promosi ini hari 2023. Ada banyak sekali bonus dan promo yang dapat anda punyai saat tergabung dengan web judi slot online gampang menang, antara lainnya seperti: Bonus New Member 100 Slot Game. Bonus Cashback. Bonus Komisi Tiap-Tiap hari slot online. Bonus Judi Bola/ Sportbook Cashback. Bonus Komisi setiap hari Live Kasino. Bonus Komisi Judi tembak ikan online. Bonus Komisi Judi Togel Online. Bonus Turn Over. Promosi Slot Deposit DANA dan Pulsa Tanpa Potongan.
    • BANDAR4D : SITUS SLOT ONLINE TERGOKIL HARI INI GAMPANG MENANG BANJIR SCATTER HITAM 2024   👉𝐋𝐈𝐍𝐊 : 𝐊𝐋𝐈𝐊 𝐃𝐈𝐒𝐈𝐍𝐈 ⚡ 𝟖𝟔𝟖 𝐆𝐑𝐔𝐎𝐏 🔱 👉𝐋𝐈𝐍𝐊 : 𝐊𝐋𝐈𝐊 𝐃𝐈𝐒𝐈𝐍𝐈 ⚡ 𝟖𝟔𝟖 𝐆𝐑𝐔𝐎𝐏 🔱 👉𝐋𝐈𝐍𝐊 : 𝐊𝐋𝐈𝐊 𝐃𝐈𝐒𝐈𝐍𝐈 ⚡ 𝟖𝟔𝟖 𝐆𝐑𝐔𝐎𝐏 🔱       Selamat bergabung di SLOT GACOR HARI INI merupakan daftar situs judi SLOT GACOR HARI INI dan SLOT GACOR HARI INI terpercaya di Indonesia. Pada saat ini di era teknologi yang semakin berkembang maju saat ini, banyak orang berlomba-lomba untuk membuat sebuah arena taruhan layaknya game judi slot online deposit pulsa atau dengan menggunakan uang asli. Judi SLOT GACOR HARI INI saat ini sedang mencapai puncak tertinggi dimana banyak orang-orang ingin bermain dengan meraih keuntungan yang berlipat. Alasan orang bermain judi dikarenakan pandemi yang membuat masyarakat kesulitan untuk mendapatkan uang lebih atau tambahan untuk mencukupi kebutuhan hidupnya.
  • Topics

×
×
  • Create New...

Important Information

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