Posted January 8, 201312 yr I got the dimension working and then the custom biome but when i connect them together i get an error Error Log 2013-01-08 16:05:17 [iNFO] [ForgeModLoader] Forge Mod Loader version 4.6.12.511 for Minecraft 1.4.6 loading 2013-01-08 16:05:26 [iNFO] [sTDOUT] 27 achievements 2013-01-08 16:05:27 [iNFO] [sTDOUT] 210 recipes 2013-01-08 16:05:27 [iNFO] [sTDOUT] Setting user: Player424, - 2013-01-08 16:05:27 [iNFO] [sTDERR] Client asked for parameter: server 2013-01-08 16:05:27 [iNFO] [sTDOUT] LWJGL Version: 2.4.2 2013-01-08 16:05:29 [iNFO] [ForgeModLoader] Attempting early MinecraftForge initialization 2013-01-08 16:05:29 [iNFO] [sTDOUT] MinecraftForge v6.5.0.467 Initialized 2013-01-08 16:05:29 [iNFO] [ForgeModLoader] MinecraftForge v6.5.0.467 Initialized 2013-01-08 16:05:30 [iNFO] [sTDOUT] Replaced 84 ore recipies 2013-01-08 16:05:30 [iNFO] [ForgeModLoader] Completed early MinecraftForge initialization 2013-01-08 16:05:30 [iNFO] [ForgeModLoader] Searching C:\Users\Joe\Desktop\my mods\Youtube\forge\mcp\jars\mods for mods 2013-01-08 16:05:37 [iNFO] [ForgeModLoader] Forge Mod Loader has identified 4 mods to load 2013-01-08 16:05:39 [iNFO] [ForgeModLoader] Configured a dormant chunk cache size of 0 2013-01-08 16:05:41 [iNFO] [ForgeModLoader] Forge Mod Loader has successfully loaded 4 mods 2013-01-08 16:06:18 [iNFO] [sTDOUT] Scanning folders... 2013-01-08 16:06:18 [iNFO] [sTDOUT] Total conversion count is 0 2013-01-08 16:06:20 [iNFO] [ForgeModLoader] Loading dimension 0 (New World) (net.minecraft.server.integrated.IntegratedServer@36d5ee2) 2013-01-08 16:06:20 [iNFO] [sTDOUT] Unable to find spawn biome 2013-01-08 16:06:20 [iNFO] [ForgeModLoader] Loading dimension 2 (New World) (net.minecraft.server.integrated.IntegratedServer@36d5ee2) 2013-01-08 16:06:21 [iNFO] [ForgeModLoader] Loading dimension 1 (New World) (net.minecraft.server.integrated.IntegratedServer@36d5ee2) 2013-01-08 16:06:21 [iNFO] [ForgeModLoader] Loading dimension -1 (New World) (net.minecraft.server.integrated.IntegratedServer@36d5ee2) 2013-01-08 16:08:20 [iNFO] [sTDERR] net.minecraft.util.ReportedException: Exception getting block type in world 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:64) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:108) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:702) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:598) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:123) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:497) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16) 2013-01-08 16:08:20 [iNFO] [sTDERR] Caused by: java.lang.NullPointerException 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.World.getBlockMaterial(World.java:616) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.gen.feature.WorldGenDungeons.generate(WorldGenDungeons.java:33) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.gen.ChunkProviderGenerate.populate(ChunkProviderGenerate.java:571) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.gen.ChunkProviderServer.populate(ChunkProviderServer.java:258) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.chunk.Chunk.populateChunk(Chunk.java:1258) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:153) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.gen.ChunkProviderServer.provideChunk(ChunkProviderServer.java:166) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.World.getChunkFromChunkCoords(World.java:524) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.world.World.getBlockId(World.java:407) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.modbase.NexusTeleporter.placeInExistingPortal(NexusTeleporter.java:109) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.modbase.NexusTeleporter.placeInPortal(NexusTeleporter.java:38) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.management.ServerConfigurationManager.transferEntityToWorld(ServerConfigurationManager.java:494) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.server.management.ServerConfigurationManager.transferPlayerToDimension(ServerConfigurationManager.java:419) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.modbase.BlockNexusPortal.onEntityCollidedWithBlock(BlockNexusPortal.java:253) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.entity.Entity.doBlockCollisions(Entity.java:1008) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.entity.Entity.moveEntity(Entity.java:952) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.network.NetServerHandler.handleFlying(NetServerHandler.java:347) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.network.packet.Packet10Flying.processPacket(Packet10Flying.java:51) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:80) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:136) 2013-01-08 16:08:20 [iNFO] [sTDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:57) 2013-01-08 16:08:20 [iNFO] [sTDERR] ... 6 more 2013-01-08 16:08:24 [iNFO] [ForgeModLoader] Unloading dimension 0 2013-01-08 16:08:24 [iNFO] [ForgeModLoader] Unloading dimension -1 2013-01-08 16:08:24 [iNFO] [ForgeModLoader] Unloading dimension 1 2013-01-08 16:08:24 [iNFO] [ForgeModLoader] Unloading dimension 2 2013-01-08 16:08:35 [iNFO] [sTDOUT] Stopping! 2013-01-08 16:09:29 [iNFO] [sTDERR] Someone is closing me! Teleporter package net.modbase; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.src.*; import net.minecraft.util.Direction; import net.minecraft.util.LongHashMap; import net.minecraft.util.MathHelper; import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.PortalPosition; import net.minecraft.world.Teleporter; import net.minecraft.world.WorldServer; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Random; public class NexusTeleporter extends Teleporter { private final WorldServer field_85192_a; private final Random random; private final LongHashMap field_85191_c = new LongHashMap(); private final List field_85190_d = new ArrayList(); public NexusTeleporter(WorldServer par1WorldServer) { super(par1WorldServer); this.field_85192_a = par1WorldServer; this.random = new Random(par1WorldServer.getSeed()); } @Override public void placeInPortal(Entity par1Entity, double par2, double par4, double par6, float par8) { if (this.field_85192_a.provider.dimensionId != 1) { if (!this.placeInExistingPortal(par1Entity, par2, par4, par6, par8)) { this.func_85188_a(par1Entity); this.placeInExistingPortal(par1Entity, par2, par4, par6, par8); } } else { int var9 = MathHelper.floor_double(par1Entity.posX); int var10 = MathHelper.floor_double(par1Entity.posY) - 1; int var11 = MathHelper.floor_double(par1Entity.posZ); byte var12 = 1; byte var13 = 0; for (int var14 = -2; var14 <= 2; ++var14) { for (int var15 = -2; var15 <= 2; ++var15) { for (int var16 = -1; var16 < 3; ++var16) { int var17 = var9 + var15 * var12 + var14 * var13; int var18 = var10 + var16; int var19 = var11 + var15 * var13 - var14 * var12; boolean var20 = var16 < 0; this.field_85192_a.setBlockWithNotify(var17, var18, var19, var20 ? Block.glowStone.blockID : 0); } } } par1Entity.setLocationAndAngles((double)var9, (double)var10, (double)var11, par1Entity.rotationYaw, 0.0F); par1Entity.motionX = par1Entity.motionY = par1Entity.motionZ = 0.0D; } } @Override public boolean placeInExistingPortal(Entity par1Entity, double par2, double par4, double par6, float par8) { short var9 = 128; double var10 = -1.0D; int var12 = 0; int var13 = 0; int var14 = 0; int var15 = MathHelper.floor_double(par1Entity.posX); int var16 = MathHelper.floor_double(par1Entity.posZ); long var17 = ChunkCoordIntPair.chunkXZ2Int(var15, var16); boolean var19 = true; double var27; int var48; if (this.field_85191_c.containsItem(var17)) { PortalPosition var20 = (PortalPosition)this.field_85191_c.getValueByKey(var17); var10 = 0.0D; var12 = var20.posX; var13 = var20.posY; var14 = var20.posZ; var20.field_85087_d = this.field_85192_a.getTotalWorldTime(); var19 = false; } else { for (var48 = var15 - var9; var48 <= var15 + var9; ++var48) { double var21 = (double)var48 + 0.5D - par1Entity.posX; for (int var23 = var16 - var9; var23 <= var16 + var9; ++var23) { double var24 = (double)var23 + 0.5D - par1Entity.posZ; for (int var26 = this.field_85192_a.getActualHeight() - 1; var26 >= 0; --var26) { if (this.field_85192_a.getBlockId(var48, var26, var23) == ModBase.nexusportal.blockID) { while (this.field_85192_a.getBlockId(var48, var26 - 1, var23) == ModBase.nexusportal.blockID) { --var26; } var27 = (double)var26 + 0.5D - par1Entity.posY; double var29 = var21 * var21 + var27 * var27 + var24 * var24; if (var10 < 0.0D || var29 < var10) { var10 = var29; var12 = var48; var13 = var26; var14 = var23; } } } } } } if (var10 >= 0.0D) { if (var19) { this.field_85191_c.add(var17, new PortalPosition(this, var12, var13, var14, this.field_85192_a.getTotalWorldTime())); this.field_85190_d.add(Long.valueOf(var17)); } double var49 = (double)var12 + 0.5D; double var25 = (double)var13 + 0.5D; var27 = (double)var14 + 0.5D; int var50 = -1; if (this.field_85192_a.getBlockId(var12 - 1, var13, var14) == ModBase.nexusportal.blockID) { var50 = 2; } if (this.field_85192_a.getBlockId(var12 + 1, var13, var14) == ModBase.nexusportal.blockID) { var50 = 0; } if (this.field_85192_a.getBlockId(var12, var13, var14 - 1) == ModBase.nexusportal.blockID) { var50 = 3; } if (this.field_85192_a.getBlockId(var12, var13, var14 + 1) == ModBase.nexusportal.blockID) { var50 = 1; } int var30 = par1Entity.func_82148_at(); if (var50 > -1) { int var31 = Direction.field_71578_g[var50]; int var32 = Direction.offsetX[var50]; int var33 = Direction.offsetZ[var50]; int var34 = Direction.offsetX[var31]; int var35 = Direction.offsetZ[var31]; boolean var36 = !this.field_85192_a.isAirBlock(var12 + var32 + var34, var13, var14 + var33 + var35) || !this.field_85192_a.isAirBlock(var12 + var32 + var34, var13 + 1, var14 + var33 + var35); boolean var37 = !this.field_85192_a.isAirBlock(var12 + var32, var13, var14 + var33) || !this.field_85192_a.isAirBlock(var12 + var32, var13 + 1, var14 + var33); if (var36 && var37) { var50 = Direction.footInvisibleFaceRemap[var50]; var31 = Direction.footInvisibleFaceRemap[var31]; var32 = Direction.offsetX[var50]; var33 = Direction.offsetZ[var50]; var34 = Direction.offsetX[var31]; var35 = Direction.offsetZ[var31]; var48 = var12 - var34; var49 -= (double)var34; int var22 = var14 - var35; var27 -= (double)var35; var36 = !this.field_85192_a.isAirBlock(var48 + var32 + var34, var13, var22 + var33 + var35) || !this.field_85192_a.isAirBlock(var48 + var32 + var34, var13 + 1, var22 + var33 + var35); var37 = !this.field_85192_a.isAirBlock(var48 + var32, var13, var22 + var33) || !this.field_85192_a.isAirBlock(var48 + var32, var13 + 1, var22 + var33); } float var38 = 0.5F; float var39 = 0.5F; if (!var36 && var37) { var38 = 1.0F; } else if (var36 && !var37) { var38 = 0.0F; } else if (var36 && var37) { var39 = 0.0F; } var49 += (double)((float)var34 * var38 + var39 * (float)var32); var27 += (double)((float)var35 * var38 + var39 * (float)var33); float var40 = 0.0F; float var41 = 0.0F; float var42 = 0.0F; float var43 = 0.0F; if (var50 == var30) { var40 = 1.0F; var41 = 1.0F; } else if (var50 == Direction.footInvisibleFaceRemap[var30]) { var40 = -1.0F; var41 = -1.0F; } else if (var50 == Direction.enderEyeMetaToDirection[var30]) { var42 = 1.0F; var43 = -1.0F; } else { var42 = -1.0F; var43 = 1.0F; } double var44 = par1Entity.motionX; double var46 = par1Entity.motionZ; par1Entity.motionX = var44 * (double)var40 + var46 * (double)var43; par1Entity.motionZ = var44 * (double)var42 + var46 * (double)var41; par1Entity.rotationYaw = par8 - (float)(var30 * 90) + (float)(var50 * 90); } else { par1Entity.motionX = par1Entity.motionY = par1Entity.motionZ = 0.0D; } par1Entity.setLocationAndAngles(var49 + 3, var25, var27 + 3, par1Entity.rotationYaw, par1Entity.rotationPitch); return true; } else { return false; } } @Override public boolean func_85188_a(Entity par1Entity) { byte var2 = 16; double var3 = -1.0D; int var5 = MathHelper.floor_double(par1Entity.posX); int var6 = MathHelper.floor_double(par1Entity.posY); int var7 = MathHelper.floor_double(par1Entity.posZ); int var8 = var5; int var9 = var6; int var10 = var7; int var11 = 0; int var12 = this.random.nextInt(4); int var13; double var14; double var17; int var16; int var19; int var21; int var20; int var23; int var22; int var25; int var24; int var27; int var26; double var31; double var32; for (var13 = var5 - var2; var13 <= var5 + var2; ++var13) { var14 = (double)var13 + 0.5D - par1Entity.posX; for (var16 = var7 - var2; var16 <= var7 + var2; ++var16) { var17 = (double)var16 + 0.5D - par1Entity.posZ; label274: for (var19 = this.field_85192_a.getActualHeight() - 1; var19 >= 0; --var19) { if (this.field_85192_a.isAirBlock(var13, var19, var16)) { while (var19 > 0 && this.field_85192_a.isAirBlock(var13, var19 - 1, var16)) { --var19; } for (var20 = var12; var20 < var12 + 4; ++var20) { var21 = var20 % 2; var22 = 1 - var21; if (var20 % 4 >= 2) { var21 = -var21; var22 = -var22; } for (var23 = 0; var23 < 3; ++var23) { for (var24 = 0; var24 < 4; ++var24) { for (var25 = -1; var25 < 4; ++var25) { var26 = var13 + (var24 - 1) * var21 + var23 * var22; var27 = var19 + var25; int var28 = var16 + (var24 - 1) * var22 - var23 * var21; if (var25 < 0 && !this.field_85192_a.getBlockMaterial(var26, var27, var28).isSolid() || var25 >= 0 && !this.field_85192_a.isAirBlock(var26, var27, var28)) { continue label274; } } } } var32 = (double)var19 + 0.5D - par1Entity.posY; var31 = var14 * var14 + var32 * var32 + var17 * var17; if (var3 < 0.0D || var31 < var3) { var3 = var31; var8 = var13; var9 = var19; var10 = var16; var11 = var20 % 4; } } } } } } if (var3 < 0.0D) { for (var13 = var5 - var2; var13 <= var5 + var2; ++var13) { var14 = (double)var13 + 0.5D - par1Entity.posX; for (var16 = var7 - var2; var16 <= var7 + var2; ++var16) { var17 = (double)var16 + 0.5D - par1Entity.posZ; label222: for (var19 = this.field_85192_a.getActualHeight() - 1; var19 >= 0; --var19) { if (this.field_85192_a.isAirBlock(var13, var19, var16)) { while (var19 > 0 && this.field_85192_a.isAirBlock(var13, var19 - 1, var16)) { --var19; } for (var20 = var12; var20 < var12 + 2; ++var20) { var21 = var20 % 2; var22 = 1 - var21; for (var23 = 0; var23 < 4; ++var23) { for (var24 = -1; var24 < 4; ++var24) { var25 = var13 + (var23 - 1) * var21; var26 = var19 + var24; var27 = var16 + (var23 - 1) * var22; if (var24 < 0 && !this.field_85192_a.getBlockMaterial(var25, var26, var27).isSolid() || var24 >= 0 && !this.field_85192_a.isAirBlock(var25, var26, var27)) { continue label222; } } } var32 = (double)var19 + 0.5D - par1Entity.posY; var31 = var14 * var14 + var32 * var32 + var17 * var17; if (var3 < 0.0D || var31 < var3) { var3 = var31; var8 = var13; var9 = var19; var10 = var16; var11 = var20 % 2; } } } } } } } int var29 = var8; int var15 = var9; var16 = var10; int var30 = var11 % 2; int var18 = 1 - var30; if (var11 % 4 >= 2) { var30 = -var30; var18 = -var18; } boolean var33; if (var3 < 0.0D) { if (var9 < 70) { var9 = 70; } if (var9 > this.field_85192_a.getActualHeight() - 10) { var9 = this.field_85192_a.getActualHeight() - 10; } var15 = var9; for (var19 = -1; var19 <= 1; ++var19) { for (var20 = 1; var20 < 3; ++var20) { for (var21 = -1; var21 < 3; ++var21) { var22 = var29 + (var20 - 1) * var30 + var19 * var18; var23 = var15 + var21; var24 = var16 + (var20 - 1) * var18 - var19 * var30; var33 = var21 < 0; this.field_85192_a.setBlockWithNotify(var22, var23, var24, var33 ? Block.glowStone.blockID: 0); } } } } for (var19 = 0; var19 < 4; ++var19) { this.field_85192_a.editingBlocks = true; for (var20 = 0; var20 < 4; ++var20) { for (var21 = -1; var21 < 4; ++var21) { var22 = var29 + (var20 - 1) * var30; var23 = var15 + var21; var24 = var16 + (var20 - 1) * var18; var33 = var20 == 0 || var20 == 3 || var21 == -1 || var21 == 3; this.field_85192_a.setBlockWithNotify(var22, var23, var24, var33 ? Block.glowStone.blockID : ModBase.nexusportal.blockID); } } this.field_85192_a.editingBlocks = false; for (var20 = 0; var20 < 4; ++var20) { for (var21 = -1; var21 < 4; ++var21) { var22 = var29 + (var20 - 1) * var30; var23 = var15 + var21; var24 = var16 + (var20 - 1) * var18; this.field_85192_a.notifyBlocksOfNeighborChange(var22, var23, var24, this.field_85192_a.getBlockId(var22, var23, var24)); } } } return true; } @Override public void func_85189_a(long par1) { if (par1 % 100L == 0L) { Iterator var3 = this.field_85190_d.iterator(); long var4 = par1 - 600L; while (var3.hasNext()) { Long var6 = (Long)var3.next(); PortalPosition var7 = (PortalPosition)this.field_85191_c.getValueByKey(var6.longValue()); if (var7 == null || var7.field_85087_d < var4) { var3.remove(); this.field_85191_c.remove(var6.longValue()); } } } } } Portal Block [package net.modbase; import java.util.Random; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.BlockBreakable; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemMonsterPlacer; import net.minecraft.server.MinecraftServer; import net.minecraft.src.*; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockNexusPortal extends BlockBreakable { public BlockNexusPortal(int par1, int par2) { super(par1, par2, Material.portal, false); this.setTickRandomly(true); } /** * Ticks the block if it's been scheduled */ public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) { super.updateTick(par1World, par2, par3, par4, par5Random); if (par1World.provider.isSurfaceWorld() && par5Random.nextInt(2000) < par1World.difficultySetting) { int var6; for (var6 = par3; !par1World.doesBlockHaveSolidTopSurface(par2, var6, par4) && var6 > 0; --var6) { ; } if (var6 > 0 && !par1World.isBlockNormalCube(par2, var6 + 1, par4)) { ItemMonsterPlacer.spawnCreature(par1World, 57, (double)par2 + 0.5D, (double)var6 + 1.1D, (double)par4 + 0.5D); } } } /** * Returns a bounding box from the pool of bounding boxes (this means this box can change after the pool has been * cleared to be reused) */ public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) { return null; } /** * Updates the blocks bounds based on its current state. Args: world, x, y, z */ public void setBlockBoundsBasedOnState(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) { float var5; float var6; if (par1IBlockAccess.getBlockId(par2 - 1, par3, par4) != this.blockID && par1IBlockAccess.getBlockId(par2 + 1, par3, par4) != this.blockID) { var5 = 0.125F; var6 = 0.5F; this.setBlockBounds(0.5F - var5, 0.0F, 0.5F - var6, 0.5F + var5, 1.0F, 0.5F + var6); } else { var5 = 0.5F; var6 = 0.125F; this.setBlockBounds(0.5F - var5, 0.0F, 0.5F - var6, 0.5F + var5, 1.0F, 0.5F + var6); } } /** * Is this block (a) opaque and (b) a full 1m cube? This determines whether or not to render the shared face of two * adjacent blocks and also whether the player can attach torches, redstone wire, etc to this block. */ public boolean isOpaqueCube() { return false; } /** * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) */ public boolean renderAsNormalBlock() { return false; } /** * Checks to see if this location is valid to create a portal and will return True if it does. Args: world, x, y, z */ public static boolean tryToCreatePortal(World par1World, int par2, int par3, int par4) { byte var5 = 0; byte var6 = 0; if (par1World.getBlockId(par2 - 1, par3, par4) == Block.glowStone.blockID || par1World.getBlockId(par2 + 1, par3, par4) == Block.glowStone.blockID ) { var5 = 1; } if (par1World.getBlockId(par2, par3, par4 - 1) == Block.glowStone.blockID || par1World.getBlockId(par2, par3, par4 + 1) == Block.glowStone.blockID ) { var6 = 1; } if (var5 == var6) { return false; } else { if (par1World.getBlockId(par2 - var5, par3, par4 - var6) == 0) { par2 -= var5; par4 -= var6; } int var7; int var8; for (var7 = -1; var7 <= 2; ++var7) { for (var8 = -1; var8 <= 3; ++var8) { boolean var9 = var7 == -1 || var7 == 2 || var8 == -1 || var8 == 3; if (var7 != -1 && var7 != 2 || var8 != -1 && var8 != 3) { int var10 = par1World.getBlockId(par2 + var5 * var7, par3 + var8, par4 + var6 * var7); if (var9) { if (var10 != Block.glowStone.blockID ) { return false; } } else if (var10 != 0 && var10 != Block.stone.blockID) { return false; } } } } par1World.editingBlocks = true; for (var7 = 0; var7 < 2; ++var7) { for (var8 = 0; var8 < 3; ++var8) { par1World.setBlockWithNotify(par2 + var5 * var7, par3 + var8, par4 + var6 * var7, ModBase.nexusportal.blockID); } } par1World.editingBlocks = false; return true; } } /** * Lets the block know when one of its neighbor changes. Doesn't know which neighbor changed (coordinates passed are * their own) Args: x, y, z, neighbor blockID */ public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5) { byte var6 = 0; byte var7 = 1; if (par1World.getBlockId(par2 - 1, par3, par4) == this.blockID || par1World.getBlockId(par2 + 1, par3, par4) == this.blockID) { var6 = 1; var7 = 0; } int var8; for (var8 = par3; par1World.getBlockId(par2, var8 - 1, par4) == this.blockID; --var8) { ; } if (par1World.getBlockId(par2, var8 - 1, par4) != Block.glowStone.blockID ) { par1World.setBlockWithNotify(par2, par3, par4, 0); } else { int var9; for (var9 = 1; var9 < 4 && par1World.getBlockId(par2, var8 + var9, par4) == this.blockID; ++var9) { ; } if (var9 == 3 && par1World.getBlockId(par2, var8 + var9, par4) == Block.glowStone.blockID ) { boolean var10 = par1World.getBlockId(par2 - 1, par3, par4) == this.blockID || par1World.getBlockId(par2 + 1, par3, par4) == this.blockID; boolean var11 = par1World.getBlockId(par2, par3, par4 - 1) == this.blockID || par1World.getBlockId(par2, par3, par4 + 1) == this.blockID; if (var10 && var11) { par1World.setBlockWithNotify(par2, par3, par4, 0); } else { if ((par1World.getBlockId(par2 + var6, par3, par4 + var7) != Block.glowStone.blockID || par1World.getBlockId(par2 - var6, par3, par4 - var7) != this.blockID) && (par1World.getBlockId(par2 - var6, par3, par4 - var7) != Block.glowStone.blockID || par1World.getBlockId(par2 + var6, par3, par4 + var7) != this.blockID)) { par1World.setBlockWithNotify(par2, par3, par4, 0); } } } else { par1World.setBlockWithNotify(par2, par3, par4, 0); } } } /** * Returns the quantity of items to drop on block destruction. */ public int quantityDropped(Random par1Random) { return 0; } /** * Triggered whenever an entity collides with this block (enters into the block). Args: world, x, y, z, entity */ public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity) { if (entity.ridingEntity == null && entity.riddenByEntity == null && entity instanceof EntityPlayerMP) { if (entity instanceof EntityPlayerMP) { EntityPlayerMP thePlayer = (EntityPlayerMP) entity; if (entity.dimension != 2) { thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, 2 , new NexusTeleporter(thePlayer.mcServer.worldServerForDimension(2))); } else { thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, 0, new NexusTeleporter(thePlayer.mcServer.worldServerForDimension(0))); } } } } @SideOnly(Side.CLIENT) /** * Returns true if the given side of this block type should be rendered, if the adjacent block is at the given * coordinates. Args: blockAccess, x, y, z, side */ public boolean shouldSideBeRendered(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) { if (par1IBlockAccess.getBlockId(par2, par3, par4) == this.blockID) { return false; } else { boolean var6 = par1IBlockAccess.getBlockId(par2 - 1, par3, par4) == this.blockID && par1IBlockAccess.getBlockId(par2 - 2, par3, par4) != this.blockID; boolean var7 = par1IBlockAccess.getBlockId(par2 + 1, par3, par4) == this.blockID && par1IBlockAccess.getBlockId(par2 + 2, par3, par4) != this.blockID; boolean var8 = par1IBlockAccess.getBlockId(par2, par3, par4 - 1) == this.blockID && par1IBlockAccess.getBlockId(par2, par3, par4 - 2) != this.blockID; boolean var9 = par1IBlockAccess.getBlockId(par2, par3, par4 + 1) == this.blockID && par1IBlockAccess.getBlockId(par2, par3, par4 + 2) != this.blockID; boolean var10 = var6 || var7; boolean var11 = var8 || var9; return var10 && par5 == 4 ? true : (var10 && par5 == 5 ? true : (var11 && par5 == 2 ? true : var11 && par5 == 3)); } } @SideOnly(Side.CLIENT) /** * Returns which pass should this block be rendered on. 0 for solids and 1 for alpha */ public int getRenderBlockPass() { return 1; } @SideOnly(Side.CLIENT) /** * A randomly called display update to be able to add particles or other items for display */ public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) { if (par5Random.nextInt(100) == 0) { par1World.playSound((double)par2 + 0.5D, (double)par3 + 0.5D, (double)par4 + 0.5D, "portal.portal", 0.5F, par5Random.nextFloat() * 0.4F + 0.8F, false); } for (int var6 = 0; var6 < 4; ++var6) { double var7 = (double)((float)par2 + par5Random.nextFloat()); double var9 = (double)((float)par3 + par5Random.nextFloat()); double var11 = (double)((float)par4 + par5Random.nextFloat()); double var13 = 0.0D; double var15 = 0.0D; double var17 = 0.0D; int var19 = par5Random.nextInt(2) * 2 - 1; var13 = ((double)par5Random.nextFloat() - 0.5D) * 0.5D; var15 = ((double)par5Random.nextFloat() - 0.5D) * 0.5D; var17 = ((double)par5Random.nextFloat() - 0.5D) * 0.5D; if (par1World.getBlockId(par2 - 1, par3, par4) != this.blockID && par1World.getBlockId(par2 + 1, par3, par4) != this.blockID) { var7 = (double)par2 + 0.5D + 0.25D * (double)var19; var13 = (double)(par5Random.nextFloat() * 2.0F * (float)var19); } else { var11 = (double)par4 + 0.5D + 0.25D * (double)var19; var17 = (double)(par5Random.nextFloat() * 2.0F * (float)var19); } par1World.spawnParticle("portal", var7, var9, var11, var13, var15, var17); } } @SideOnly(Side.CLIENT) /** * only called by clickMiddleMouseButton , and passed to inventory.setCurrentItem (along with isCreative) */ public int idPicked(World par1World, int par2, int par3, int par4) { return 0; } public String getTextureFile() { return ("/mods/SpriteSheet.png"); } }/code] Base Mod [code]package net.modbase; import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.EnumArmorMaterial; import net.minecraft.item.EnumToolMaterial; import net.minecraft.item.Item; import net.minecraft.src.*; import net.minecraft.stats.Achievement; import net.minecraft.stats.AchievementList; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.AchievementPage; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.EnumHelper; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.common.*; import cpw.mods.fml.common.Mod.Init; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.Mod.PostInit; import cpw.mods.fml.common.Mod.PreInit; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkMod.SidedPacketHandler; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.common.SidedProxy; @Mod (modid = "AncientCraftRPG", name = "AncientCraftRPG", version = "0.1.0") @NetworkMod (clientSideRequired = true, serverSideRequired = false) public class ModBase { //Properties @MLProp public static int blocknexussoil = 2500; @MLProp public static int blocknexusdirt = 2501; @MLProp public static int blocknexusstone = 2502; @MLProp public static int blocknexuscobble = 2503; @MLProp public static int blocknexusportal = 2504; @MLProp public static int blockfire = 2505; @MLProp public static int blockfroststone = 2506; @MLProp public static int blockearthstone = 2507; @MLProp public static int blockdrystone = 2508; @MLProp public static int blockinfernostone = 2509; @MLProp public static int blockoceanusstone = 2510; @MLProp public static int itemfireshard = 2511; @MLProp public static int itemfireshardchunk = 2512; @MLProp public static int iteminfernostone = 2513; @MLProp public static int iteminfernostonechunk = 2514; @MLProp public static int itemfrostshard = 2515; @MLProp public static int itemfrostshardchunk = 2516; @MLProp public static int itemfroststone = 2517; @MLProp public static int itemsfroststonechunk = 2518; @MLProp public static int itemearthshard = 2519; @MLProp public static int itemearthshardchunk = 2520; @MLProp public static int itemearthstone = 2521; @MLProp public static int itemearthstonechunk = 2522; @MLProp public static int itemdryshard = 2523; @MLProp public static int itemdryshardchunk = 2524; @MLProp public static int itemdrystone = 2525; @MLProp public static int itemdrystonechunk = 2526; @MLProp public static int itemoceanusshard = 2527; @MLProp public static int itemoceanusshardchunk = 2528; @MLProp public static int itemoceanusstone = 2529; @MLProp public static int itemoceanusstonechunk = 2530; @MLProp public static int itemfrostshardsword = 2531; @MLProp public static int itemfroststonesword = 2532; @MLProp public static int itemfireshardsword = 2533; @MLProp public static int iteminfernostonesword = 2534; @MLProp public static int itemdryshardsword = 2535; @MLProp public static int itemdrystonesword = 2536; @MLProp public static int itemearthshardsword = 2537; @MLProp public static int itemearthstonesword = 2538; @MLProp public static int itemoceanusshardsword = 2539; @MLProp public static int itemoceanusstonesword = 2540; @MLProp public static int itemsacrifice = 2541; @MLProp public static int itemwand1 = 2542; //Enums //weapons public static EnumToolMaterial shardweapons = EnumHelper.addToolMaterial("shard", 0, 1000, 0, 3, 12); public static EnumToolMaterial stoneweapons = EnumHelper.addToolMaterial("stone", 0, 1200, 0, 4, 20); //tools public static EnumToolMaterial shardtools = EnumHelper.addToolMaterial("shard", 2, 1000, 6, 1, 12); public static EnumToolMaterial stonetools = EnumHelper.addToolMaterial("stone", 3, 1200, 6, 1, 20); //armors public static EnumArmorMaterial shardarmor = EnumHelper.addArmorMaterial("shard", 2, new int[]{2, 6, 5 ,2}, 12); public static EnumArmorMaterial stonearmor = EnumHelper.addArmorMaterial("stone", 25, new int[]{3, 7, 6, 2}, 20); //Blocks public static Block nexussoil = new BlockNexusSoil(blocknexussoil).setBlockName("nexussoil"); public static Block nexusdirt = new BlockNexusDirt(blocknexusdirt, 1).setBlockName("nexusdirt"); public static Block nexusstone = new BlockNexusStone(blocknexusstone, 3).setBlockName("nexusstone"); public static Block Fire; public static Block nexuscobble; public static Block nexusportal; public static Block froststoneblock; public static Block earthstoneblock; public static Block drystoneblock; public static Block infernoblock; public static Block oceanusblock; //Items public static Item frostshard; public static Item frostshardchunk; public static Item froststone; public static Item froststonechunk; public static Item earthshard; public static Item earthshardchunk; public static Item earthstone; public static Item earthstonechunk; public static Item dryshard; public static Item dryshardchunk; public static Item dryStone; public static Item drystonechunk; public static Item fireshard; public static Item fireshardchunk; public static Item infernostone; public static Item infernostonechunk; public static Item oceanusshard; public static Item oceanusshardchunk; public static Item oceanusstone; public static Item oceanusstonechunk; public static Item sacrifice; public static Item wand1; //Tools //Armor //Meelee weapons public static Item frostshardsword; public static Item froststonesword; public static Item fireshardsword; public static Item infernostonesword; public static Item dryshardsword; public static Item drystonesword; public static Item earthshardsword; public static Item earthstonesword; public static Item oceanusshardsword; public static Item oceanusstonesword; //Ranged Weapons //Magic weapons //Biomes public static final BiomeGenBase nexusbiome = (new BiomeGenNexus(25)).setColor(2900485); //Creative Tabs public static final CreativeTabs AncientCraftRPGTab = new AncientCraftRpgTab("AncientCraftRPGTab"); //Achievements public static AchievementPage page1 = new AchievementPage("AncientCraftRPG"); @Init public void load(FMLInitializationEvent event) { //Nexus ground GameRegistry.registerBlock(nexussoil); LanguageRegistry.addName(nexussoil, "Nexus Grass"); GameRegistry.registerBlock(nexusdirt); LanguageRegistry.addName(nexusdirt, "Nexus Dirt"); GameRegistry.registerBlock(nexusstone); LanguageRegistry.addName(nexusstone, "Nexus Stone"); nexuscobble = new BlockNexusCobble(blocknexuscobble, 4).setBlockName("nexuscobble"); GameRegistry.registerBlock(nexuscobble); LanguageRegistry.addName(nexuscobble, "Nexus Cobblestone"); //Dimension nexusportal = new BlockNexusPortal(blocknexusportal, 5).setBlockName("nexusportal"); GameRegistry.registerBlock(nexusportal); LanguageRegistry.addName(nexusportal, "Nexus Portal"); Fire = new BlockFire(blockfire, 31).setBlockName("nexusfire"); GameRegistry.registerBlock(Fire); LanguageRegistry.addName(Fire, "Fire"); DimensionManager.registerProviderType(2, NexusWorldProvider.class, false); DimensionManager.registerDimension(2, 2); GameRegistry.registerWorldGenerator(new WorldGenNexus()); //Stones & Shards fireshard = new FireShard(itemfireshard).setItemName("fireshard").setIconIndex(6); LanguageRegistry.addName(fireshard, "Fire Shard"); fireshardchunk = new FireShard(itemfireshardchunk).setItemName("fireshardchunk").setIconIndex(16); LanguageRegistry.addName(fireshardchunk, "Fire Shardchunk"); infernostone = new InfernoStone(iteminfernostone).setItemName("firestone").setIconIndex(7); LanguageRegistry.addName(infernostone, "Inferno Stone"); infernostonechunk = new InfernoStone(iteminfernostonechunk).setItemName("infernostonechunk").setIconIndex(17); LanguageRegistry.addName(infernostonechunk, "Inferno Stonechunk"); dryshard = new DryShard(itemdryshard).setItemName("dryshard").setIconIndex(; LanguageRegistry.addName(dryshard, "Dry Shard"); dryshardchunk = new DryShard(itemdryshardchunk).setItemName("dryshardchunk").setIconIndex(18); LanguageRegistry.addName(dryshardchunk, "Dry Shardchunk"); dryStone = new DryStone(itemdrystone).setItemName("drystone").setIconIndex(9); LanguageRegistry.addName(dryStone, "Dry Stone"); drystonechunk = new DryStone(itemdrystonechunk).setItemName("dryshardchunk").setIconIndex(19); LanguageRegistry.addName(drystonechunk, "Dry Stonechunk"); earthshard = new EarthShard(itemearthshard).setItemName("earthshard").setIconIndex(10); LanguageRegistry.addName(earthshard, "Earth Shard"); earthshardchunk = new EarthShard(itemearthshardchunk).setItemName("earthshardchunk").setIconIndex(20); LanguageRegistry.addName(earthshardchunk, "Earth Shardchunk"); earthstone = new EarthStone(itemearthstone).setItemName("earthstone").setIconIndex(11); LanguageRegistry.addName(earthstone, "Earth Stone"); earthstonechunk = new EarthStone(itemearthstonechunk).setItemName("earthstonechunk").setIconIndex(21); LanguageRegistry.addName(earthstonechunk, "Earth Stonechunk"); frostshard = new FrostShard(itemfrostshard).setItemName("frostshard").setIconIndex(12); LanguageRegistry.addName(frostshard, "Frost Shard"); frostshardchunk = new FrostShard(itemfrostshardchunk).setItemName("frostshardchunk").setIconIndex(22); LanguageRegistry.addName(frostshardchunk, "Frost Shardchunk"); froststone = new FrostStone(itemfroststone).setItemName("froststone").setIconIndex(13); LanguageRegistry.addName(froststone, "Frost Stone"); froststonechunk = new FrostStone(itemsfroststonechunk).setItemName("froststonechunk").setIconIndex(23); LanguageRegistry.addName(froststonechunk, "Frost Stonechunk"); oceanusshard = new OceanusShard(itemoceanusshard).setItemName("oceanusshard").setIconIndex(14); LanguageRegistry.addName(oceanusshard, "Oceanus Shard"); oceanusshardchunk = new OceanusShard(itemoceanusshardchunk).setItemName("oceanusshardchunk").setIconIndex(24); LanguageRegistry.addName(oceanusshardchunk, "Oceanus Shardchunk"); oceanusstone = new OceanusStone(itemoceanusstone).setItemName("oceanusstone").setIconIndex(15); LanguageRegistry.addName(oceanusstone, "OceanusStone"); oceanusstonechunk = new OceanusStone(itemoceanusstonechunk).setItemName("oceanusstonechunk").setIconIndex(25); LanguageRegistry.addName(oceanusstonechunk, "Oceanus Stonechunk"); //Misc Items sacrifice = new Sacrifice(itemsacrifice).setItemName("sacrifice").setIconIndex(36); LanguageRegistry.addName(sacrifice, "Sacrifice"); //Wands wand1 = new Wand1(itemwand1).setItemName("wand1").setIconIndex(37); LanguageRegistry.addName(wand1, "Oceanus Wand"); //Biomes GameRegistry.addBiome(nexusbiome); //Weapons frostshardsword = new FrostShardSword(itemfrostshardsword,shardweapons).setItemName("frostshardsword").setIconIndex(26); LanguageRegistry.addName(frostshardsword, "Frostshardsword"); froststonesword = new FrostStoneSword(itemfroststonesword,stoneweapons).setItemName("froststonesword").setIconIndex(27); LanguageRegistry.addName(froststonesword, "Frost Stone Sword"); earthshardsword = new EarthShardSword(itemearthshardsword,shardweapons).setItemName("earthshardsword").setIconIndex(28); LanguageRegistry.addName(earthshardsword, "Earth Shard Sword"); earthstonesword = new EarthStoneSword(itemearthstonesword,stoneweapons).setItemName("earthstonesword").setIconIndex(29); LanguageRegistry.addName(earthstonesword, "Earth Stone Sword"); dryshardsword = new DryShardSword(itemdryshardsword,shardweapons).setItemName("dryshardsword").setIconIndex(30); LanguageRegistry.addName(dryshardsword, "Dry Shard Sword"); drystonesword = new DryStoneSword(itemdrystonesword,stoneweapons).setItemName("drystonesword").setIconIndex(31); LanguageRegistry.addName(drystonesword, "Dry Stone Sword"); fireshardsword = new FireShardSword(itemfireshardsword,shardweapons).setItemName("fireshardsword").setIconIndex(32); LanguageRegistry.addName(fireshardsword, "Fire Shard Sword"); infernostonesword = new InfernoStoneSword(iteminfernostonesword,stoneweapons).setItemName("firestonesword").setIconIndex(33); LanguageRegistry.addName(infernostonesword, "Inferno Stone Sword"); oceanusshardsword = new OceanusShardSword(itemoceanusshardsword,shardweapons).setItemName("oceanusshardsword").setIconIndex(34); LanguageRegistry.addName(oceanusshardsword, "Oceanus Shard Sword"); oceanusstonesword = new OceanusStoneSword(itemoceanusstonesword,stoneweapons).setItemName("oceanusstonesword").setIconIndex(35); LanguageRegistry.addName(oceanusstonesword, "Oceanus Stone Sword"); //Recipes //Creative Tabs LanguageRegistry.instance().addStringLocalization("itemGroup.AncientCraftRPGTab", "en_US", "AncientCraftRPG"); nexussoil.setCreativeTab(AncientCraftRPGTab); nexusdirt.setCreativeTab(AncientCraftRPGTab); nexusstone.setCreativeTab(AncientCraftRPGTab); nexuscobble.setCreativeTab(AncientCraftRPGTab); fireshard.setCreativeTab(AncientCraftRPGTab); infernostone.setCreativeTab(AncientCraftRPGTab); frostshard.setCreativeTab(AncientCraftRPGTab); froststone.setCreativeTab(AncientCraftRPGTab); dryshard.setCreativeTab(AncientCraftRPGTab); dryStone.setCreativeTab(AncientCraftRPGTab); oceanusshard.setCreativeTab(AncientCraftRPGTab); oceanusstone.setCreativeTab(AncientCraftRPGTab); earthshard.setCreativeTab(AncientCraftRPGTab); earthstone.setCreativeTab(AncientCraftRPGTab); nexusportal.setCreativeTab(AncientCraftRPGTab); fireshardchunk.setCreativeTab(AncientCraftRPGTab); infernostonechunk.setCreativeTab(AncientCraftRPGTab); frostshardchunk.setCreativeTab(AncientCraftRPGTab); froststonechunk.setCreativeTab(AncientCraftRPGTab); dryshardchunk.setCreativeTab(AncientCraftRPGTab); drystonechunk.setCreativeTab(AncientCraftRPGTab); oceanusshardchunk.setCreativeTab(AncientCraftRPGTab); oceanusstonechunk.setCreativeTab(AncientCraftRPGTab); earthshardchunk.setCreativeTab(AncientCraftRPGTab); earthstonechunk.setCreativeTab(AncientCraftRPGTab); fireshardsword.setCreativeTab(AncientCraftRPGTab); infernostonesword.setCreativeTab(AncientCraftRPGTab); frostshardsword.setCreativeTab(AncientCraftRPGTab); froststonesword.setCreativeTab(AncientCraftRPGTab); dryshardsword.setCreativeTab(AncientCraftRPGTab); drystonesword.setCreativeTab(AncientCraftRPGTab); oceanusshardsword.setCreativeTab(AncientCraftRPGTab); oceanusstonesword.setCreativeTab(AncientCraftRPGTab); earthshardsword.setCreativeTab(AncientCraftRPGTab); earthstonesword.setCreativeTab(AncientCraftRPGTab); sacrifice.setCreativeTab(AncientCraftRPGTab); wand1.setCreativeTab(AncientCraftRPGTab); //Achievements AchievementPage.registerAchievementPage(page1); this.addAchievementLocalizations(); } private void addAchievementName(String ach, String name) { LanguageRegistry.instance().addStringLocalization("achievement." + ach, "en_US", name); } private void addAchievementDesc(String ach, String desc) { LanguageRegistry.instance().addStringLocalization("achievement." + ach + ".desc", "en_US", desc); } private void addAchievementLocalizations() { this.addAchievementName("Nexus", "Nexus?!?!"); this.addAchievementDesc("Nexus", "Enter The Nexus"); } public void PreInit(FMLPreInitializationEvent event) { } public void PostInit(FMLPostInitializationEvent event) { } } Creator of Jobo's ModLoader If I helped you could you please click the thank you button and applaud my karma.
January 11, 201312 yr the blocks ids must be lower than 256 (its a chunk bug, which forge semi fixed, like, without forge the chunks can only generate with block ids lower than 127) @OffTopic PLEASE USE spoiler and /spoiler ...
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.