[media][/media]
After making your Mod class, now paste the following code your class:
package SCMowns.Tutorial; //Package directory
/*
* Basic importing
*/
import net.minecraft.block.Block;
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.Item;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.EnumHelper;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
/*
* Basic needed forge stuff
*/
@Mod(modid="TutorialMod",name="Tutorial Mod",version="v1")
@NetworkMod(clientSideRequired=true,serverSideRequired=false)
public class TutorialMod {
/*
* ToolMaterial
*/
//Telling forge that we are creating these
public static Item topaz;
//Declaring Init
@Init
public void load(FMLInitializationEvent event){
// define items/blocks
topaz = new GemItems(2013).setUnlocalizedName("topaz");
//adding names
LanguageRegistry.addName(topaz, "Topaz Gem");
//crafting
}
}
Watch the video tutorial for information about what some lines mean.
Time to make a class for the GemItems. Here's what you add in that class:
package SCMowns.Tutorial;
import net.minecraft.item.Item;
import cpw.mods.fml.relauncher.*;
import net.minecraft.creativetab.CreativeTabs;
public class GemItems extends Item {
public GemItems(int par1) {
super(par1); //Returns super constructor: par1 is ID
setCreativeTab(CreativeTabs.tabMaterials); //Tells the game what creative mode tab it goes in
}
}
alright, after importing everything we need, now lets make the block,
in your public class brackets, make a new public static block.
public static Block BlockName;
now we need to declare what BlockName is,
in your public void load brackets, put there lines of code inside:
BlockName= new NewBlockClass(3608, "BlockName_Whatever").setUnlocalizedName("Texture_For_Block").setHardness(2.0F).setStepSound(Block.soundMetalFootstep).setResistance(10.0F);
GameRegistry.registerBlock(BlockName, "BlockName");
LanguageRegistry.addName(BlockName, "Blood Name");
setHardness = how hard your block will be, to see the list of vanilla blocks, you can check out the Block.java file
setResistance is how much resistence would the block have against impacts.
You can follow the video tutorial for the little things.
Now we need to define our new NewBlockClass.java.
Make a new class, for example: NewBlockClass
Now paste these lines of code inside:
package Your.Package;
import java.util.Random;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.registry.LanguageRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
public class NewBlockClass extends Block {
public BlockName(int par1, String texture) {
super(par1, Material.rock);
setCreativeTab(CreativeTabs.tabBlock); //place in creative tabs
}
//drops when broken with pickaxe
public int idDropped(int par1, Random par2Random, int par3)
{
return MainClass.ITEM.itemID;
}
public int quantityDropped(Random random)
{
return 3;
}
//texure the block (Not sure if it's required)
public String getTextureFile(){
return "/textures/blocks/TEXTURE_NAME.png";
}
}
Video:
[media][/media] Src: Basic Crafting:
In your main class, paste the code in your public void load():
GameRegistry.addRecipe(new ItemStack(topazblock,1), new Object[]{
"TTT","TTT","TTT",'T',topaz,
});
To read this code, we are making a topaz block with 9 topaz. T = 1 topaz, (topazblock,1) = we are crafting a topaz block and only getting one of them.
Here is an example using numbers in the crafting grid. Do you see the "TTT","TTT","TTT"
Not think of this code:
"TTT","TTT","TTT"
as:
"123","456","789"
That is how you can tell the crafting grid in java. (Watch my video for a better explanation.)
Shapeless Crafting:
sharpless crafting is making anything freely in the crafting table, without having any specific order.
(watch the video for a better explanation)
GameRegistry.addShapelessRecipe(new ItemStack(TrioItem,1), new Object[]{
RubyItem, SapphireItem, Item.emerald });
The coding is a lot similar to the Basic Crafting, but worded differently.
To make a Trio Gem, You need a Rubie, Sapphire, and an Emerald. These gems can be placed in the crafting table without any order to make a Trio Gem. ( This mod is Copyrighted. TrioGems Mod.)
Welcome, my username is SCMowns (if you didn't already know) and I'm going to be showing you some very basic steps in order to start modding. My coding series has started on 1.2.5 so you're not to late to join in! and with my simple tutorials you'll be making mods fast and simple! Soon were gonna be going into some Minecraft forge coding and doing some advance tutorials. So how about it! Begin modding!
[media][media][/media[/media]]
You need a software that can allow you to make transparent pictures, like Paint.net Mod_NAME
package net.minecraft.src;
import java.util.Random;
public class mod_NAME extends BaseMod
{
public static final Item NAMEhere = new ItemNAME(2085).setItemName("NAME");
public void load()
{
NAMEhere.iconIndex = ModLoader.addOverride("/gui/items.png" , "/items/pic.png");
ModLoader.addName(NAMEhere, "Ingame -Name");
}
public String getVersion()
{
return "3.14159265";
}
}
To understand this code is quite simple, public class final Item is telling Minecraft that you are making a new item, the (2085) is the Item ID, and the .setItemName("NAME"); is required, but dosn't need a fancy name! in the public void load() section, you will tell modloader where your items is located at, what is needed in order to craft it, and what the name is. My tutorial mentions all this.
ItemNAME:
package net.minecraft.src;
import java.util.Random;
public class ItemNAME extends Item
{
public ItemNAME(int i)
{
super(i);
maxStackSize = 64;
}
public String Version()
{
return "3.14159265";
}
}
Here is another separate class you will need to make. This will define the Item of how much it can stack and to make it an official item registered onto Minecraft
My picture that I used in this tutorial can be downloaded here! (16x16)
3.Making a Sword ( 1.2.5 / 1.3.2 / 1.4.6 )
[media][media][/media[/media]]
public static final Item NAMESword = new ItemSword(3077, EnumToolMaterial.GOLD).setItemName("AnythingHere");
In my tutorial i might have mentioned to edit a BASE class, don't do it! in this code of line you will need to make a new sword and later define it in your public void load. replace NAME with the name of your sword.
paste this in your public void load()
The first line of code is telling modloader to override minecraft item's picture with your new sword sprite. The second line is adding in a name for your sword. In the "NAME Sword" call your sword what ever you like. The tutorial goes over everything.
The picture of the sword that I used can be downloaded here!(16x16)
4. Pickaxe ( Tool set ) ( 1.2.5 / 1.3.2 / 1.4.x )
[media][/media]
In your static section paste this:
public static final Item NAMEPick = new ItemPickaxe(2102, EnumToolMaterial.GOLD).setItemName("Whatever");
replace the NAME with a name of your choice. EnumToolMaterial.GOLD is the tool material, so it's set as gold (defualt). Paste this line of code in your public void load():
NAMEPick.iconIndex = ModLoader.addOverride("/gui/items.png" , "/items/pic.png");
ModLoader.addName(NAMEPick, "NAME Pickaxe");
ModLoader.addRecipe(new ItemStack(NAMEPick, 1), new Object[]
{
"***", " X ", " X ",
'X', Item.stick, '*', Block.dirt
});
The green Pickaxe picture that was used can be downloaded here! (16x16)
5. Axe ( Tool Set ) (1.2.5 / 1.3.2 / 1.4.x )
[media][media][/media[/media]]
In your static section paste this:
public static final Item NAMEAxe = new ItemAxe(2096, EnumToolMaterial.GOLD).setItemName("whatever");
Paste these lines of code in your public void load():
[media][media][/media[/media]]
In your static section paste this:
public static final Item NAMESpade = new ItemSpade(2099, EnumToolMaterial.GOLD).setItemName("Whatever");
Paste these lines of code in your public void load():
NAMESpade.iconIndex = ModLoader.addOverride("/gui/items.png" , "/items/pic.png");
ModLoader.addName(NAMESpade, "NAME Shovel");
ModLoader.addRecipe(new ItemStack(NAMESpade, 1), new Object[]
{
" * ", " X ", " X ",
'X', Item.stick, '*', Block.dirt
});
Watch the video for information of these lines of code!
The green Shovel picture that was used can be downloaded here! (16x16)
8. Ore Generating (1.2.5 / 1.3.2 / 1.4.x )
[media][media][/media[/media]]
pase this line of code in your public static section:
public static final Block NAMEBlock = new BlockNAME(151, 0).setHardness(6F).setResistance(7.0F).setBlockName("whatever");
Create a new class ( for your BlockNAME, and copy nnd paste this code in:
package net.minecraft.src;
import java.util.Random;
public class BlockNAME extends Block
{
protected BlockNAME(int i, int j)
{
super(i, j, Material.iron);
}
public int idDropped(int par1, Random par2Random, int par3)
{
return mod_NAME.ITEM.shiftedIndex;
}
public int quantityDropped(Random random)
{
return 1;
}
public String Version()
{
return "3.14159265";
}
}
follow the video tutorial if you get stuck or confused. Now paste these lines of code in you Public void load():
ModLoader.registerBlock(NAMEBlock);
NAMEBlock.blockIndexInTexture = ModLoader.addOverride("/terrain.png" , "/items/pic.png");
ModLoader.addName(NAMEBlock, "In Game Name Ore");
once you have paste that line of code, be sure to change any (NAME) with your block name, now under your static final section, not your public void load. You paste these lines of code:
public void generateSurface(World world, Random random, int chunkX, int chunkZ)
{
Random randomGenerator = random;
for (int i = 0; i < 10; i++)
{
int randPosX = chunkX + randomGenerator.nextInt(20);
int randPosY = random.nextInt(40);
int randPosZ = chunkZ + randomGenerator.nextInt(20);
(new WorldGenMinable(NAMEBlock.blockID, 4)).generate(world, random, randPosX, randPosY, randPosZ);
}
}
This line of code deals with your actual ore generation in chunks. If you would like to generate more ore everywhere then mess with this line of code: for (int i = 0; i < 10; i++) - Change 10 to 30 and see the difference. If you know Minecraft's XYZ's coordence then you can easly chnage where ore will spawn underground. I cover a lot of lines in my video. So check it out!
The green Ore picture that was used can be downloaded here! (16x16)
9. Armor set (1.2.5 / 1.3.2 / 1.4.x)
[media][media][/media[/media]]
Make a new class, and paste this in your mod_NAMEARMOR:
package net.minecraft.src;
import net.minecraft.client.Minecraft;
public class mod_NAME extends BaseMod
{
public void load()
{
}
public String Version()
{
return "1.4.2";
}
public String getVersion()
{
return "3.14159265";
}
}
This is the Basic Modloader coding format. You will use this like a normal mod_file you have made. In your Static final body paste these lines of code:
public static final Item NAMEBody = (new ItemArmor(2200, EnumArmorMaterial.GOLD ,5,1 ).setItemName("Whatever"));
public static final Item NAMEHelmet = (new ItemArmor(2201,EnumArmorMaterial.GOLD ,5,0 ).setItemName("Whatever"));
public static final Item NAMEPants = (new ItemArmor(2202,EnumArmorMaterial.GOLD ,5,2 ).setItemName("Whatever"));
public static final Item NAMEBoots = (new ItemArmor(2203,EnumArmorMaterial.GOLD, 5, 3 ).setItemName("Whatever"));
We are defining the items that you will use to place on your armor slots. Keep in mind this line of code (5,0) The 5 is the new armor number you have added. Since Minecraft has 4 armor sets you are adding in the 5th set. ( If you add in more armor be sure to increase that number to 6) - Now the 0 is where the item will be placed on the armor slots. 0 = HELMET, 1 = BODY, 2 = PANTS, and 3 = BOOTS.
Now paste these lines of code in your Public void load():
10. Publishing / Converting your mod into a download! (1.2.5 / 1.3.2 / 1.4.x )
[media][media][/media[/media]]
It's very simple. Just follow my tutorial xD
11. Smelting ( 1.2.5 ONLY )
[media][media][/media[/media]] *This video and code only work for Minecraft 1.2.5 MCP coding!* Updated code is located down below!
Paste this line of code in your public void load():
ModLoader.addSmelting(BLOCK.blockID, new ItemStack(ITEM, 1));
[media][media][/media[/media]]
The same Idea as in making a block, but a few changes.
Copy and paste this line of code in your "public static final section"
public static final Block NAMEBlock = new BlockNAME(160, 0).setBlockName("whatever").setHardness(5F).setResistance(6F).setStepSound(Sound);
You will need to follow my video for a great description of this line and the following lines.
Copy and paste these lines in your public void load:
And for your BlockNAME you will need to create a new class to define it, make a new class and paste in this code:
in your BlockNAME:
package net.minecraft.src;
import java.util.Random;
public class BlockNAME extends Block
{
public BlockNAME(int i, int j)
{
super(i, j, Material.wood);
}
public int idDropped(int i, Random random, int j)
{
return mod_NAME.BLOCK.blockID;
}
public int quantityDropped(Random random)
{
return 1;
}}
Download my Block that I used in my tutorial Here!
13. Updating your mod to Minecraft 1.3 ( Old ) ( 1.3 )
[media][media][/media[/media]]
STEPS:
- Download Modloader 1.3
- Download the new MCP V1.7 ( for Minecraft 1.3 )
- Get a fresh Minecraft.jar
- (Optional) Get a Minecraft_Server.jar 1.3
- Copy and paste your "Bin" and "resources" folders in your "jars" folder.(make sure you have modded minecraft.jar with modloader
- Decompile
- Move over Old src to New Src
*How to Move Over*
- Either look for your class files in your old src and move over
- Or, Highlight ALL, *copy* and paste in new src, But DON'T REPLACE
- Recompile
- Look for errors. ( you might get 1 )
- Move over pictures / items to new location.
- Open eclipse, and look for your mod_NAME
- Run Minecraft, and enjoy your mod!
Get the New MCP for Minecraft 1.3 and downloads Here!
14. Updating your mod to 1.3.2, with New coding and Fixes* ( 1.3.2 )
What to do!
- Update your version of MCP to 1.3.2
- Copy your old src (source) to your new moddings folder (you can get mine)
- Copy your pictures as well
- Fix errors. If any (look for red lines)
15. Food ( 1.2.5 / 1.3.2 / 1.4.x )
[media][/media]
Paste this line of code in your public static final section:
public static final Item nameHere = new ItemFood(5000, 6, 1F, true).setItemName("anyNameHere");
It's just like making an Item, but this time you make sure it extends ItemFood.
The 1F means how many 1/2 hunger bar is your food going to fill up, so 2 = 1 bar, 3 = 2 1/2, and so on.
The 6 is how long till you get hungy again, 5 is normal, and 3 is very low where you will starve again! The true statement is if you can feed it to a wolf. true = yes, and false = No.
Now paste this line of code in your public void load():
foodNameHere.iconIndex = ModLoader.addOverride("/gui/items.png", "/items/image.png");
ModLoader.addName(foodNameHere, "My Food");
ModLoader.addRecipe(new ItemStack(Food01, 5), new Object[]
{
"***", "* *", "***",
'*', Item.sugar
});
//IF SMELTING ITEM TO ITEM
ModLoader.addSmelting(yourItem.shiftedIndex, new ItemStack(yourSmeltedItem, 1), 1.0F);
//IF SMELTING BLOCKS TO BLOCKS
ModLoader.addSmelting(yourBlock.blockID, new ItemStack(yourSmeltedBlock, 1), 1.0F);
The 1.0F is how much exp you'll recieve with smelting successfully. The rest is explained in my tutorial.
17. Adding Items / Blocks to your Creative Tab ( 1.3.2 / 1.4.x )
[media][media][/media[/media]]
//For a Item:
YourItem.setTabToDisplayOn(CreativeTabs.tabMaterials);
//For a Block
this.setCreativeTab(CreativeTabs.tabBlock);
If you have a sword, then remove the (CreativeTabs.tabMaterials) and spell in " (CreativeTabs. " if you put that point "." you should have a list of the tabs available, like the Materials Tab, Combat, Misc, Food, Tools, etc.
18. Updating your mod to 1.4.2 ( 1.3.2 / 1.2.5 / 1.4.x )
package net.minecraft.src;
import java.awt.Color;
import java.util.Map;
public class mod_NAME extends BaseMod
{
public String getVersion()
{
return "1.4.2";
}
public void load()
{
ModLoader.registerEntityID(EntityNAME.class, "NAME", 30);//registers the mobs name and id
ModLoader.addSpawn("NAME", 15, -5, 1, EnumCreatureType.monster);//makes the mob spawn in game
ModLoader.addLocalization("entity.NAME.name", "NAME");//adds Mob name on the spawn egg
EntityList.entityEggs.put(Integer.valueOf(30), new EntityEggInfo(30, 894731, (new Color(21, 15, 6)).getRGB()));//creates the spawn egg, and chnages color of egg
}
public void addRenderer(Map var1)
{
var1.put(EntityNAME.class, new RenderLiving(new ModelNAME(),.5f));
}
}
First off make yourself a new class, replace all the NAME with the actualy name that you have chosen. In the public void load() Modloader registers the mob/entity that you are creating. I have left side notes on most of the line of code for you to understand what they mean. EntityNAME:
package net.minecraft.src;
public class EntityNAME extends EntityMob//extend this to make mob hostile
{
public EntityNAME(World par1World)
{
super(par1World);
this.texture = "/mob/NAME.png";//Set Mob texture
this.moveSpeed = 0.4f;//sets how fast this mob moves
isImmuneToFire = false;
//below this is all the ai tasks that specify how the mob will behave mess around with it to see what happens
this.tasks.addTask(0, new EntityAISwimming(this));
this.tasks.addTask(1, new EntityAIAttackOnCollide(this, EntityPlayer.class, this.moveSpeed, false));
this.tasks.addTask(2, new EntityAIMoveTwardsRestriction(this, this.moveSpeed));
this.tasks.addTask(3, new EntityAIWander(this, this.moveSpeed));
this.tasks.addTask(4, new EntityAILookIdle(this));
this.targetTasks.addTask(0, new EntityAIHurtByTarget(this, false));
this.targetTasks.addTask(1, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 25.0F, 0, true));
}
public int func_82193_c(Entity par1Entity) //the amount of damage
{
return 4;
}
protected void fall(float par1) {}
public int getMaxHealth() // Mob health
{
return 10;
}
protected String getLivingSound()
{
return "mob.pig.say";
}
protected String getHurtSound()
{
return "mob.pig.say";
}
protected String getDeathSound()
{
return "mob.pig.death";
}
protected int getDropItemId()
{
return Item.stick.shiftedIndex;
}
protected boolean canDespawn()
{
return true;
}
protected boolean isAIEnabled()//Allow your AI task to work?
{
return true;
}
}
Each line is pretty much self explanatory, watch my video and read the side notes to understand the code.
To turn off the fire aspect, put return false; The 5 is the amount of ticks the fire will remain on the entity. Raise it higher if you wish the mod will remain on fire for a very long time.
24. Fuel for Items / Blocks (1.4.x)
[media] [/media]
public int addFuel(int par1, int par2)
{
if(par1 == ITEM.shiftedIndex)//200 ticks is normal,1600 ticks is coal
{
return 200;
}
if(par1 == BLOCK.blockID)
{
return 200;
}
return 0;
}
Watch the video for some additional information!
25. Achievements (1.4.x)
[media][/media]
These line of codes were used in my video, I have explained what they mean. Paste these lines of code in your "public class" section
public static final Achievement achievementFood = new Achievement(5400, "achievementFood", 10, 9, Item.sugar, null).setSpecial().setIndependent().registerAchievement();
public static final Achievement achievementGem = new Achievement(5401, "achievementGem", 10, 12, Item.bone, achievementFood).registerAchievement();
Paste these lines of code in your "public void load()"
ModLoader.addAchievementDesc(achievementFood, "Yummy!", "Craft a Donut!!");
ModLoader.addAchievementDesc(achievementGem, "Green GEM!", "Pick Up a Green Gem!");
paste these lines of code underneath the public void load, make sure you do notpaste them in public void load():
[media][/media]
Follow the tutorial on making a new WorldGenNether class by copying the src code from WorldGenMinable.
Here is the code that you will place in your mod_mod:
public void generateNether(World var1, Random var2, int var3, int var4)
{
int var5;
int var6;
int var7;
int var8;
int veinsize=8;//Size of the vein
int rarity=12;//the rarity of the ore
for (var5 = 0; var5 < rarity; ++var5)
{
var6 = var3 + var2.nextInt(16);
var7 = var2.nextInt(128);
var8 = var4 + var2.nextInt(16);
new WorldGenNether(Block.dirt.blockID, veinsize).generate(var1, var2, var6, var7, var8);//replace dirt with your custom ore
}
}
I left some side notes, explaining the obvious. But anyways! Hope this helps!
27. Advance Blocks: Gravitational Physics, Light Value, and Unbreakable(1.4.x)
[media][/media]
For the gravitational block you'll need to follow along with my tutorial,
to make your block unbreackable add in this line of code to your "pubic static final"
.setBlockUnbreakable()
Now to make your block have a light value, you'll add this line of code to your "public static final"
.setLightValue(5)
Increase or decrease the number 5 to lower or increase the light radius.
Question directed to the mod maker, but open to the community in general: These tutorials (and some others I've watched) include premade textures or, alternately, guides to setting up a program to allow the watcher to create their own. This is good in that it provides a starting point, but for those like me who eventually want to advance to the point of making mods with items with unique sprite properties and NPCs with unique forms and animations, there doesn't seem to be a lot of information as to where to look if you're interested in learning. Is it possible that you could create a tutorial or two somewhere down the track that includes a basic guide for the creation of each of these? If not, do you know of someone that's released such a tutorial/tutorial set already?
Rollback Post to RevisionRollBack
Mod ideas in my profile info! Send me a message or post in one of the threads if you're interested.
To touch Divinity, one must first be prepared to brave reality.
Excuse me, but with the item crafting in Forge I'm trying to build one item with a modded item. Is there some specific syntax I need with adding these modded files to the crafting code?
With the standard Minecraft items in crafting I know that I would use block.(blockname) or item.(itemname) so how can I implement one of my modded items into it without crashing? Thanks
SCMowns i am just wondering how you can make the mod downloable on the internet like finishing using eclipse so you can install your mod into
normal minecraft instead of just testing it
SCMowns i am just wondering how you can make the mod downloable on the internet like finishing using eclipse so you can install your mod into
normal minecraft instead of just testing it
I will make a video very soon on how to publish your mod!
i followed everything you said but it crashes for some wiered reason...
---- Minecraft Crash Report ----
// There are four lights!
Time: 6/6/13 3:23 PM
Description: Failed to start game
java.lang.ArrayIndexOutOfBoundsException: 5834
at net.minecraft.block.Block.<init>(Block.java:338)
at Asuperfly.dontgointhisfolder.GadiumBlock.<init>(GadiumBlock.java:18)
at Asuperfly.dontgointhisfolder.MoarOresNStuffMod.load(MoarOresNStuffMod.java:50)
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 cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:494)
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 com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:165)
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 com.google.common.eventbus.EventHandler.handleEvent(EventHandler.java:74)
at com.google.common.eventbus.SynchronizedEventHandler.handleEvent(SynchronizedEventHandler.java:45)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:314)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:296)
at com.google.common.eventbus.EventBus.post(EventBus.java:267)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:98)
at cpw.mods.fml.common.Loader.initializeMods(Loader.java:690)
at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:206)
at net.minecraft.client.Minecraft.startGame(Minecraft.java:447)
at net.minecraft.client.MinecraftAppletImpl.startGame(MinecraftAppletImpl.java:44)
at net.minecraft.client.Minecraft.run(Minecraft.java:732)
at java.lang.Thread.run(Unknown Source)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- System Details --
Details:
Minecraft Version: 1.5.2
Operating System: Windows Vista (x86) version 6.0
Java Version: 1.7.0_17, Oracle Corporation
Java VM Version: Java HotSpot™ Client VM (mixed mode), Oracle Corporation
Memory: 922762160 bytes (880 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Suspicious classes: FML and Forge are installed
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v7.51 FML v5.2.2.684 Minecraft Forge 7.8.0.684 4 mods loaded, 4 mods active
mcp{7.44} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized
FML{5.2.2.684} [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized
Forge{7.8.0.684} [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized
MoarOresNStuff{v1} [Moar Ores N Stuff Mod] (bin) Unloaded->Constructed->Pre-initialized->Errored
LWJGL: 2.4.2
OpenGL: GeForce 6150SE/PCI/SSE2/3DNOW! GL version 2.1.1, NVIDIA Corporation
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Texture Pack: Default
Profiler Position: N/A (disabled)
Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
You have made a block or item that cannot go pass # 5834 in minecraft's IDs. Change your ID 5834 to something lower
I made a new ore block, it's working fine, I add the new world gen, no errors, but when i try to create a new world, the game gives me this error but dosnt crash, but just freezes at the "Generating World" screen:
2013-06-09 09:24:30 [SEVERE] [ForgeModLoader] Fatal errors were detected during the transition from SERVER_ABOUT_TO_START to SERVER_STOPPED. Loading cannot continue
2013-06-09 09:24:30 [SEVERE] [ForgeModLoader]
mcp{7.44} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available
FML{5.2.5.686} [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available
Forge{7.8.0.686} [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available
TutorialMod{v1} [Tutorial Mod] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available
2013-06-09 09:24:30 [SEVERE] [ForgeModLoader] The ForgeModLoader state engine has become corrupted. Probably, a state was missed by and invalid modification to a base classForgeModLoader depends on. This is a critical error and not recoverable. Investigate any modifications to base classes outside ofForgeModLoader, especially Optifine, to see if there are fixes available.
2013-06-09 09:24:30 [INFO] [STDERR] Exception in thread "Server thread" java.lang.RuntimeException: The ForgeModLoader state engine is invalid
2013-06-09 09:24:30 [INFO] [STDERR] at cpw.mods.fml.common.LoadController.transition(LoadController.java:134)
2013-06-09 09:24:30 [INFO] [STDERR] at cpw.mods.fml.common.Loader.serverStopped(Loader.java:800)
2013-06-09 09:24:30 [INFO] [STDERR] at cpw.mods.fml.common.FMLCommonHandler.handleServerStopped(FMLCommonHandler.java:468)
2013-06-09 09:24:30 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:531)
2013-06-09 09:24:30 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Thanks for the help! :3
EDIT: Here are also some errors from eclipse:
java.lang.Error: Unresolved compilation problems:
The constructor WorldGenMinable(Block, int) is undefined
Syntax error on token ".3609", delete this token
It says WorldGenMinable in my WorldGen file is undefined, and that the ID 3609 is unnecessary in my new ore block file, but i can go into my flat test world and place down a ore block without a crash, so it's obvious its just the last line of my world gen file causing this crash
EDIT EDIT:
The 3609 syntax error on token is actually coming from the worldgen file too, so its only world gen causing this crash
I'm pretty new to modding, so it's not very likely I know the answer to your problem. However, I did get a similar error while doing basic java tutorials - the class wouldn't register a certain method because it was inside another method. Make sure you haven't accidentally dropped/written the code related to that block inside a set of brackets where it doesn't belong - eclipse doesn't seem to like it.
Rollback Post to RevisionRollBack
Mod ideas in my profile info! Send me a message or post in one of the threads if you're interested.
To touch Divinity, one must first be prepared to brave reality.
I looked on the help forums but could not find an answer. as seen at in , My Eclipse failed to open and a message appeared on my screen:
Failed to load the JNI shared library "C;\Program Files
(x86)\Java\jdk1.7.0_21\bin\...\jre\bin\client\jvm.dll".
does anyone know how to fix this?
please help me.
Ok found the problem a while ago. reinstall eclipse.
For example say i make a Fireproof armor...can it be where when you where the full set, u actually get Fire resistance?
Nice make an episode soon how to make tools and armors and mobs for 1.5
look up a file on eclipse and copy the code like look up ore and find the gen. code
Question directed to the mod maker, but open to the community in general: These tutorials (and some others I've watched) include premade textures or, alternately, guides to setting up a program to allow the watcher to create their own. This is good in that it provides a starting point, but for those like me who eventually want to advance to the point of making mods with items with unique sprite properties and NPCs with unique forms and animations, there doesn't seem to be a lot of information as to where to look if you're interested in learning. Is it possible that you could create a tutorial or two somewhere down the track that includes a basic guide for the creation of each of these? If not, do you know of someone that's released such a tutorial/tutorial set already?
To touch Divinity, one must first be prepared to brave reality.
With the standard Minecraft items in crafting I know that I would use block.(blockname) or item.(itemname) so how can I implement one of my modded items into it without crashing? Thanks
normal minecraft instead of just testing it
Nice! Thanks!
I will make a video very soon on how to publish your mod!
Right now! What do you know xD
You have made a block or item that cannot go pass # 5834 in minecraft's IDs. Change your ID 5834 to something lower
Blocks affected by gravity
Flying Mobs
Ore Generating In The Nether (Because I only saw end ore generations...)
Ore Generation In Another Dimension
New Workbenches (Like the Extended Workbench Mod)
Special Furnace (Like Alloy Furnace...)
Making 3D Items (Using Techne)
Full Set Armor Effects (Ex. Scorpion Armors In Mo' Creatures)
Items that has various effects when held
Redstone Devices
Exploding Blocks (Like TNT)
Items Hanging On Trees (Like Cocoa)
Fertilizers (Like Bone Meal)
Hey SCMownsfrom were youget this code's do you work on them or there is a source to get this ?
I have a small problem with forge,
I made a new ore block, it's working fine, I add the new world gen, no errors, but when i try to create a new world, the game gives me this error but dosnt crash, but just freezes at the "Generating World" screen:
2013-06-09 09:24:30 [SEVERE] [ForgeModLoader] Fatal errors were detected during the transition from SERVER_ABOUT_TO_START to SERVER_STOPPED. Loading cannot continue
2013-06-09 09:24:30 [SEVERE] [ForgeModLoader]
mcp{7.44} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available
FML{5.2.5.686} [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available
Forge{7.8.0.686} [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available
TutorialMod{v1} [Tutorial Mod] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available
2013-06-09 09:24:30 [SEVERE] [ForgeModLoader] The ForgeModLoader state engine has become corrupted. Probably, a state was missed by and invalid modification to a base classForgeModLoader depends on. This is a critical error and not recoverable. Investigate any modifications to base classes outside ofForgeModLoader, especially Optifine, to see if there are fixes available.
2013-06-09 09:24:30 [INFO] [STDERR] Exception in thread "Server thread" java.lang.RuntimeException: The ForgeModLoader state engine is invalid
2013-06-09 09:24:30 [INFO] [STDERR] at cpw.mods.fml.common.LoadController.transition(LoadController.java:134)
2013-06-09 09:24:30 [INFO] [STDERR] at cpw.mods.fml.common.Loader.serverStopped(Loader.java:800)
2013-06-09 09:24:30 [INFO] [STDERR] at cpw.mods.fml.common.FMLCommonHandler.handleServerStopped(FMLCommonHandler.java:468)
2013-06-09 09:24:30 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:531)
2013-06-09 09:24:30 [INFO] [STDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Thanks for the help! :3
EDIT: Here are also some errors from eclipse:
java.lang.Error: Unresolved compilation problems:
The constructor WorldGenMinable(Block, int) is undefined
Syntax error on token ".3609", delete this token
It says WorldGenMinable in my WorldGen file is undefined, and that the ID 3609 is unnecessary in my new ore block file, but i can go into my flat test world and place down a ore block without a crash, so it's obvious its just the last line of my world gen file causing this crash
EDIT EDIT:
The 3609 syntax error on token is actually coming from the worldgen file too, so its only world gen causing this crash
To touch Divinity, one must first be prepared to brave reality.
PS: your awesome!
Bro, use a spoiler.
get an animated Pokemon at http://www.pkparaiso.com/xy/sprites_pokemon.php?cid=2#chunk2
get an animated Pokemon at http://www.pkparaiso.com/xy/sprites_pokemon.php?cid=2#chunk2