I'm making a tutorial thread to help others who are new to minecraft modding. Hopefully you already know how to setup mcp. - If you have tutorials you would like others to know, please tell me so I can add it to the list and so you can add it to the forum topic.
Key
red = not finished
yellow = no help for the tutorial
blue = finished w/help
Easy
Block(ModLoader)
Items(ModLoader)
Food(ModLoader)
Tools(ModLoader, with pre-made blocks/items)
Armor(ModLoader, with pre-made blocks/items)
Generation(ModLoader)
Medium
Blocks(ModLoader, advanced)
Items(ModLoader, advanced)
Tools(ModLoader, w/ new blocks/items and material)
Armor(ModLoader, w/ new blocks/items and material)
Npc(ModLoader, human w/actions)
Biome(Non-ModLoader)
Hard
Npc(ModLoader, custom w/actions)
Furnace(ModLoader, multiple out-put)
Tree(ModLoader)
Extra Learning/How to
Learning EnumToolMaterial
How to fix Modloader error
Thank you list
XDarkboy - For helping everyone while I was gone
XDarkboy - Thank you for the banner
<--- First Banner
<--- Second Banner <--- Third Banner and It's clickable
package net.minecraft.src;
import java.util.Random;
public class BlockNamehere extends Block
{
public BlockNamehere(int i, int j)
{
super(i, j, Material.grass);
}
public int idDropped(int i, Random random)
{
return mod_Namehere.Namehere.blockID;
}
public int quantityDropped(Random random)
{
return 1;
}
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
mod_Namehere.java
package net.minecraft.src;
public class mod_Namehere extends BaseMod
{
public static Block Namehere;
public String Version()
{
return "1.0.0 - Frogbite99 Tutorials";
}
public mod_Namehere()
{
ModLoader.RegisterBlock(Namehere);
Namehere.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/Blocks/Namehere.png");
ModLoader.AddName(Namehere, "Namehere");
ModLoader.AddRecipe(new ItemStack(Namehere, 1), new Object[] {"###", "###", "###", Character.valueOf('#'), Item.seeds});
}
static
{
new BlockNamehere(210, 0).setHardness(1.0F).setResistance(1.0F).setLightValue(1.0F).setBlockName("1");
}
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
Help
Change everything with Namehere
setHardness(1.0F) || How long it takes to break the block
setResistance(1.0F) || How it effects towards explosives
setLightValue(1.0F) || How much the block lights up
setBlockName("1") || Put whatever you want here ("")
(210, 0) || The ID
("/terrain.png", "/Blocks/Namehere.png"); || This goes in the C:\mcp44\eclipse\Client\bin
Items + ModLoader
ItemNamehere.java
package net.minecraft.src;
public class ItemNamehere extends Item
{
public ItemNamehere (int i)
{
super(i);
maxStackSize = 64;
}
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
mod_Namehere
package net.minecraft.src;
public class mod_Namehere extends BaseMod
{
public static Item Namehere;
public String Version()
{
return "1.0.0 - Frogbite99 Tutorials";
}
public mod_Namehere()
{
Namehere.iconIndex = ModLoader.addOverride("/gui/items.png", "/Items/Namehere.png");
ModLoader.AddName(Namehere, "Namehere");
ModLoader.AddRecipe(new ItemStack(Namehere, 1), new Object[] {"###", "###", "###", Character.valueOf('#'), Item.seeds});
}
static
{
new Item(1000).setItemName("1");
}
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
Help
Change everything with Namehere
("/gui/items.png", "/Items/Namehere.png") || This goes in the C:\mcp44\eclipse\Client\bin
(1000) || The ID
Food + ModLoader
mod_Namehere.java
package net.minecraft.src;
public class mod_Namehere extends BaseMod
{
public static Item Namehere;
public String Version()
{
return "1.0.0 - Frogbite99 Tutorials";
}
public mod_Namehere()
{
Namehere.iconIndex = ModLoader.addOverride("/gui/items.png", "/Items/Namehere.png");
ModLoader.AddName(Namehere, "Namehere");
}
static
{
new ItemFood(1000, 10, true).setItemName("1");
}
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
Help
Change everything with Namehere
("/gui/items.png", "/Items/Namehere.png") || This goes in the C:\mcp44\eclipse\Client\bin
(1000, 10, true) || ID, How much it heals(10 = 5), true/false
Armor + ModLoader
mod_Namehere.java
package net.minecraft.src;
import net.minecraft.client.Minecraft;
public class mod_Namehere extends BaseMod
{
public mod_Namehere()
{
NamehereHelmet.iconIndex = ModLoader.addOverride("/gui/items.png", "/Armor/Nameherehelmet.png");
NamehereBody.iconIndex = ModLoader.addOverride("/gui/items.png", "/Armor/Nameherebody.png");
NamehereLegs.iconIndex = ModLoader.addOverride("/gui/items.png", "/Armor/Nameherelegs.png");
NamehereBoots.iconIndex = ModLoader.addOverride("/gui/items.png", "/Armor/Namehereboots.png");
ModLoader.AddName(NamehereHelmet, "Namehere Helmet");
ModLoader.AddName(NamehereBody, "Namehere Chestplate");
ModLoader.AddName(NamehereLegs, "Namehere Leggings");
ModLoader.AddName(NamehereBoots, "Namehere Boots");
ModLoader.AddRecipe(new ItemStack(NamehereHelmet, 1), new Object[] {"sss", "s s", " ", Character.valueOf('s'), Item.seeds});
ModLoader.AddRecipe(new ItemStack(NamehereBody, 1), new Object[] {"s s", "sss", "sss", Character.valueOf('s'), Item.seeds});
ModLoader.AddRecipe(new ItemStack(NamehereLegs, 1), new Object[] {"sss", "s s", "s s", Character.valueOf('s'), Item.seeds});
ModLoader.AddRecipe(new ItemStack(NamehereBoots, 1), new Object[] {" ", "s s", "s s", Character.valueOf('s'), Item.seeds});
}
static
{
new ItemArmor(1000, 3, ModLoader.AddArmor("NamehereArmor"), 0).setItemName("1");
new ItemArmor(1001, 3, ModLoader.AddArmor("NamehereArmor"), 1).setItemName("2");
new ItemArmor(1002, 3, ModLoader.AddArmor("NamehereArmor"), 2).setItemName("3");
new ItemArmor(1003, 3, ModLoader.AddArmor("NamehereArmor"), 3).setItemName("4");
}
public String Version()
{
return "1.0.0 - Frogbite99 Tutorials";
}
public static Item NamehereHelmet;
public static Item NamehereBody;
public static Item NamehereLegs;
public static Item NamehereBoots;
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
Help
Change everything with Namehere
("/gui/items.png", "/Armor/Nameherehelmet.png") || This goes in the C:\mcp44\eclipse\Client\bin
(1000, 3, || ID, 3 = diamond material
1 = wood || 2 = stone || 3 = diamond || 4 = gold
Tools + ModLoader
mod_Namehere.java
package net.minecraft.src;
import net.minecraft.client.Minecraft;
public class mod_Namehere extends BaseMod
{
public mod_Namehere()
{
NameherePickaxe.iconIndex = ModLoader.addOverride("/gui/items.png", "/Tools/Nameherepick.png");
NamehereShovel.iconIndex = ModLoader.addOverride("/gui/items.png", "/Tools/Nameherespade.png");
NamehereAxe.iconIndex = ModLoader.addOverride("/gui/items.png", "/Tools/Namehereaxe.png");
NamehereHoe.iconIndex = ModLoader.addOverride("/gui/items.png", "/Tools/Nameherehoe.png");
NamehereSword.iconIndex = ModLoader.addOverride("/gui/items.png", "/Tools/Nameheresword.png");
ModLoader.AddName(NameherePickaxe, "Namehere Pickaxe");
ModLoader.AddName(NamehereShovel, "Namehere Shovel");
ModLoader.AddName(NamehereAxe, "Namehere Axe");
ModLoader.AddName(NamehereHoe, "Namehere Hoe");
ModLoader.AddName(NamehereSword, "Namehere Sword");
ModLoader.AddRecipe(new ItemStack(NameherePickaxe, 1), new Object[] {"sss", " | ", " | ", Character.valueOf('s'), Item.seeds, Character.valueOf('|'), Item.stick});
ModLoader.AddRecipe(new ItemStack(NamehereShovel, 1), new Object[] {" s ", " | ", " | ", Character.valueOf('s'), Item.seeds, Character.valueOf('|'), Item.stick});
ModLoader.AddRecipe(new ItemStack(NamehereAxe, 1), new Object[] {"ss ", "s| ", " | ", Character.valueOf('s'), Item.seeds, Character.valueOf('|'), Item.stick});
ModLoader.AddRecipe(new ItemStack(NamehereHoe, 1), new Object[] {"ss ", " | ", " | ", Character.valueOf('s'), Item.seeds, Character.valueOf('|'), Item.stick});
ModLoader.AddRecipe(new ItemStack(NamehereSword, 1), new Object[] {" s ", " s ", " | ", Character.valueOf('s'), Item.seeds, Character.valueOf('|'), Item.stick});
}
static
{
new ItemPickaxe(1000, EnumToolMaterial.EMERALD).setItemName("1");
new ItemSpade(1001, EnumToolMaterial.EMERALD).setItemName("2");
new ItemAxe(1002, EnumToolMaterial.EMERALD).setItemName("3");
new ItemHoe(1003, EnumToolMaterial.EMERALD).setItemName("4");
new ItemSword(1004, EnumToolMaterial.EMERALD).setItemName("5");
}
public String Version()
{
return "1.0.0 - Frogbite99 Tutorials";
}
public static Item NameherePickaxe;
public static Item NamehereShovel;
public static Item NamehereAxe;
public static Item NamehereHoe;
public static Item NamehereSword;
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
Help
Change everything with Namehere
("/gui/items.png", "/Armor/Nameherehelmet.png") || This goes in the C:\mcp44\eclipse\Client\bin
Generating Ores + ModLoader
public void GenerateSurface(World world, Random rand, int chunkX, int chunkZ)
{
for(int i = 0; i < Rarity; i++)
{
int randPosX = chunkX + rand.nextInt(16);
int randPosY = rand.nextInt(Height);
int randPosZ = chunkZ + rand.nextInt(16);
(new WorldGenMinable(mod_Namehere.Namehere.blockID, Vein Size)).generate(world, rand, randPosX, randPosY, randPosZ);
}
}
Help
Rarity= How rare the ore is
Height = Height above bedrock
Vein Size = How many it generates together
Put this outside of all ModLoader coding/variables
public BlockNamehere(int i, int j)
{
super(i, j, Material.sponge);
slipperiness = 0.5F;
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
Bouncy Block
public void onEntityWalking(World world, int x, int y, int z, Entity entity)
{
entity.motionY += 0.5;
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
Lightning Block
public boolean blockActivated(World world, int i, int j, int k, EntityPlayer entityplayer)
{
world.entityJoinedWorld(new EntityLightningBolt(world, i, j, k));
return true;
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
Help
Add this to the BlockNamehere.java (or whatever you called your .class)
Block Bounds
public boolean isOpaqueCube()
{
return false;
}
public BlockNamehere(int i, int j)
{
super(i, j);
setBlockBounds(0.10F, 0.10F, 0.10F, 0.35F, 0.35F, 0.35F);
}
Help
Soon still learning this...
Make sure the first 3 are the same and the last 3 are the same
Glass Block
add this -----> java.util.Random;
public BlockNamehere(int g, int h, Material material, boolean flag)
{
super(g, h, material, flag);
}
public int quantityDropped(Random random)
{
return 0 + 1 - 1; <---should be 0
}
public int getRenderBlockPass()
{
return 0;
}
Help
There is no help really just copy and paste or write it.(I suggest writing it makes you learn more) But if help is needed please comment or pm me
Block facing You when placedDown
public void onBlockAdded(World world, int i, int j, int k)
{
super.onBlockAdded(world, i, j, k);
setDefaultDirection(world, i, j, k);
}
private void setDefaultDirection(World world, int i, int j, int k)
{
if(world.multiplayerWorld)
{
return;
}
int l = world.getBlockId(i, j, k - 1);
int i1 = world.getBlockId(i, j, k + 1);
int j1 = world.getBlockId(i - 1, j, k);
int k1 = world.getBlockId(i + 1, j, k);
byte byte0 = 3;
if(Block.opaqueCubeLookup[l] && !Block.opaqueCubeLookup[i1])
{
byte0 = 3;
}
if(Block.opaqueCubeLookup[i1] && !Block.opaqueCubeLookup[l])
{
byte0 = 2;
}
if(Block.opaqueCubeLookup[j1] && !Block.opaqueCubeLookup[k1])
{
byte0 = 5;
}
if(Block.opaqueCubeLookup[k1] && !Block.opaqueCubeLookup[j1])
{
byte0 = 4;
}
world.setBlockMetadataWithNotify(i, j, k, byte0);
}
Help
I am just learning this, so this code may not work. Please be patient
Block Render Types
public boolean isOpaqueCube()
{
return false;
}
public boolean renderAsNormalBlock()
{
return false;
}
public int getRenderType()
{
return 1;
}
Help
Keep everything the same
public int getRenderType(){ return 1; } - Change the number "1" To anything and test it out you might get crashes cause some numbers do not work. I do know 10 is stairs
Items + Advanced + ModLoader
Spawning mob
public boolean onItemUse(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l)
{
if(!world.multiplayerWorld)
{
entityplayer.addChatMessage("Giant Zombie Spawned!");
EntityLiving entityliving = (EntityLiving)EntityList.createEntityInWorld("GrassMonster", entityplayer.worldObj);
entityliving.setLocationAndAngles(i, j + 1, k, 0F, 0F);
entityplayer.worldObj.entityJoinedWorld(entityliving);
itemstack.damageItem(1, entityplayer);
entityplayer.swingItem();
}
return true;
}
public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer)
{
itemstack.damageItem(1, entityplayer);
if(itemstack.getItemDamage() >= itemstack.getMaxDamage())
{
return itemstack;
}
return itemstack;
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
Help
("Zombie", entityplayer.worldObj); || "Zombie" Change to any entity in minecraft
entityplayer.addChatMessage("Zombie Spawned!"); || "Zombie Spawned!" put what you want
Spawn Block
public boolean onItemUse(ItemStack itemstack, EntityPlayer entityplayer, World world, int i, int j, int k, int l)
{
if(l == 0)
{
j--;
}
if(l == 1)
{
j++;
}
if(l == 2)
{
k--;
}
if(l == 3)
{
k++;
}
if(l == 4)
{
i--;
}
if(l == 5)
{
i++;
}
if(!entityplayer.func_35190_e(i, j, k))
{
return false;
}
int i1 = world.getBlockId(i, j, k);
if(i1 == 0)
{
world.setBlockWithNotify(i, j, k, Block.dirt.blockID);
}
itemstack.damageItem(1, entityplayer);
return true;
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
Help
world.setBlockWithNotify(i, j, k, Block.dirt.blockID); || change to any block you want
Flame Sword
public boolean hitEntity(ItemStack itemstack, EntityLiving entityliving, EntityLiving entityliving1)
{
entityliving.fire=300;
return false;
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
Help
Add this to the ItemNamehere.java (or whatever you called your .class)
Npc + Human + Modloader
mod_Namehere.java
package net.minecraft.src;
import java.lang.reflect.Method;
import java.util.Map;
public class mod_Namehere extends BaseMod
{
public mod_Namehere()
{
ModLoader.RegisterEntityID(EntityNamehere.class, "Namehere", ModLoader.getUniqueEntityId());
ModLoader.AddSpawn(EntityNamehere.class, 2, 4, 8, EnumCreatureType.creature);
}
public void AddRenderer(Map map)
{
map.put(EntityNamehere.class, new RenderBiped(new ModelBiped(), 0.5F));
}
public String Version()
{
return "1.0.0 - Frogbite99 Tutorials";
}
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
EntityNamehere.java
package net.minecraft.src;
public class EntityNamehere extends EntityCreature
{
public EntityNamehere(World world)
{
super(world);
texture = "/mob/Namehere.png";
moveSpeed = 0.5F;
isImmuneToFire = false;
health = 10;
}
protected int getDropItemId()
{
return Item.appleRed.shiftedIndex;
}
public boolean canBreatheUnderwater()
{
return false;
}
protected boolean canDespawn()
{
return false;
}
public ItemStack getHeldItem()
{
return defaultHeldItem;
}
private static final ItemStack defaultHeldItem;
static
{
defaultHeldItem = new ItemStack(Item.swordStone, 1);
}
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
Help
2, 4, 8 || 2 = the amount being spawned, 4 = minimum spawned per-chunk, 8 = maximum spawned per-chunk
EnumCreatureType.creature || Choose from creature, monster, waterCreature
extends EntityCreature || Choose from Entity(Creature, Mob, WaterMob)
defaultHeldItem = new ItemStack(Item.swordStone, 1); || What it holds
Item.appleRed.shiftedIndex; || The drop item
health = 10; || Do not go over 1000(Minecraft crashes when you kill the mob)
health = 10; || If you want to go over 1000, do this "health *= 100;"
Tools + New Materials/EnumMaterials + Generation + ModLoader
mod_Namehere.java
package net.minecraft.src;
import net.minecraft.client.Minecraft;
import java.util.Random;
import java.util.*;
public class mod_Namehere extends BaseMod
{
public void GenerateSurface(World world, Random rand, int chunkX, int chunkZ)
{
for(int i = 0; i < 5; i++)
{
int randPosX = chunkX + rand.nextInt(16);
int randPosY = rand.nextInt(25);
int randPosZ = chunkZ + rand.nextInt(16);
(new WorldGenMinable(mod_Namehere.NamehereOre.blockID, 5)).generate(world, rand, randPosX, randPosY, randPosZ);
}
}
public mod_Namehere()
{
NameherePickaxe.iconIndex = ModLoader.addOverride("/gui/items.png", "/Tools/nameherePick.png");
NamehereShovel.iconIndex = ModLoader.addOverride("/gui/items.png", "/Tools/namehereShovel.png");
NamehereAxe.iconIndex = ModLoader.addOverride("/gui/items.png", "/Tools/namehereAxe.png");
NamehereHoe.iconIndex = ModLoader.addOverride("/gui/items.png", "/Tools/namehereHoe.png");
NamehereSword.iconIndex = ModLoader.addOverride("/gui/items.png", "/Tools/namehereSword.png");
NamehereGem.iconIndex = ModLoader.addOverride("/gui/items.png", "/Tools/NamehereGem.png");
ModLoader.AddName(NameherePickaxe, "Namehere Pickaxe");
ModLoader.AddName(NamehereShovel, "Namehere Shovel");
ModLoader.AddName(NamehereAxe, "Namehere Axe");
ModLoader.AddName(NamehereHoe, "Namehere Hoe");
ModLoader.AddName(NamehereSword, "Namehere Sword");
ModLoader.AddName(NamehereGem, "Namehere Gem");
ModLoader.AddRecipe(new ItemStack(NameherePickaxe, 1), new Object[] {"sss", " | ", " | ", Character.valueOf('s'), NamehereGem, Character.valueOf('|'), Item.stick});
ModLoader.AddRecipe(new ItemStack(NamehereShovel, 1), new Object[] {" s ", " | ", " | ", Character.valueOf('s'), NamehereGem, Character.valueOf('|'), Item.stick});
ModLoader.AddRecipe(new ItemStack(NamehereAxe, 1), new Object[] {"ss ", "s| ", " | ", Character.valueOf('s'), NamehereGem, Character.valueOf('|'), Item.stick});
ModLoader.AddRecipe(new ItemStack(NamehereHoe, 1), new Object[] {"ss ", " | ", " | ", Character.valueOf('s'), NamehereGem, Character.valueOf('|'), Item.stick});
ModLoader.AddRecipe(new ItemStack(NamehereSword, 1), new Object[] {" s ", " s ", " | ", Character.valueOf('s'), NamehereGem, Character.valueOf('|'), Item.stick});
}
public String Version()
{
return "1.0.0 - Frogbite99 Tutorials";
}
public static Item NameherePickaxe = new ItemPickaxe(1000, EnumToolMaterial.EMERALD).setItemName("NameherePickaxe");
public static Item NamehereShovel = new ItemSpade(1001, EnumToolMaterial.EMERALD).setItemName("NamehereShovel");
public static Item NamehereAxe = new ItemAxe(1002, EnumToolMaterial.EMERALD).setItemName("NamehereAxe");
public static Item NamehereHoe = new ItemHoe(1003, EnumToolMaterial.EMERALD).setItemName("NamehereHoe");
public static Item NamehereSword = new ItemSword(1004, EnumToolMaterial.EMERALD).setItemName("NamehereSword");
public static Item NamehereGem = new ItemNamehereGem(1004).setItemName("NamehereGem");
public static Block NamehereOre = new BlockNamehereOre(1005, 0).setHardness(0.7F).setResistance(5F).setBlockName("NamehereOre");
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
BlockNamehere.java
package net.minecraft.src;
import java.util.Random;
public class BlockNamehereOre extends Block
{
public BlockNamehereOre(int i, int j)
{
super(i, j, Material.grass);
}
public int idDropped(int i, Random random)
{
return mod_Namehere.NamehereOre.blockID;
}
public int quantityDropped(Random random)
{
return 1;
}
}
ItemNamehere.java
package net.minecraft.src;
public class ItemNamehereGem extends Item
{
public ItemNamehereGem (int i)
{
super(i);
maxStackSize = 16;
}
}
//Frogbite99 Tutorials
//Please like the topic if you learned something
(4th)2.0F, = Efficiency on Material(Mining/Dinging Stength)
(5th)0 = Damage vs Entity(Attack Strength)
(6th)15 = Enchantability(I still have to learn this)
=== How to fix ===
Modloader Error
static
{
}
public String getVersion() {
// TODO Auto-generated method stub
return null;
}
public void load() {
// TODO Auto-generated method stub
}
HELP
Really no help is needed just add that to the bottom of the code.
Item Texture Fix
package net.minecraft.src;
import org.lwjgl.opengl.GL11;
public class ItemNamehere extends Item
{
public final int field_40734_a;
public final int field_40733_b;
public int iconIndex;
public int tileSize;
public int tileImage;
public int fixItemImagePlacement;
public ItemNamehere(int i, int j)
{
super(i);
maxStackSize = 64;
field_40734_a = i;
field_40733_b = j;
iconIndex = i;
tileSize = 1;
tileImage = 0;
fixItemImagePlacement = 0;
}
public int fixItemIndexTexturePlacement()
{
return 256 * 256;
}
public float fixItemIndexTextureField()
{
return 256 * 256;
}
public boolean fixItemIndexTextureGrid()
{
return true;
}
public boolean fixItemImagePlacement()
{
if(iconIndex == 2)
{
return false;
}else
return true;
}
public void fixImagePlacement(RenderEngine renderengine)
{
if(tileImage == 1)
{
GL11.glBindTexture(3553, renderengine.getTexture("/gui/items.png"));
}
}
}
HELP
Do not use this, unless you have gotten Modloader grid/placement errors
Before this is even ready, I want to say thank you. I CANNOT find a good, or even any 1.7.3 modding tutorial at all. I'm definitely taking a look at this tomorrow morning.
I'm making a tutorial thread to help others who are new to minecraft modding. Hopefully you already know how to setup mcp. - If you have tutorials you would like others to know, please tell me so I can add it to the list and so you can add it to the forum topic.
I have re-done Mobs ++, Click here
Key
red = not finished
yellow = no help for the tutorial
blue = finished w/help
Easy
Block(ModLoader)
Items(ModLoader)
Food(ModLoader)
Tools(ModLoader, with pre-made blocks/items)
Armor(ModLoader, with pre-made blocks/items)
Generation(ModLoader)
Medium
Blocks(ModLoader, advanced)
Items(ModLoader, advanced)
Tools(ModLoader, w/ new blocks/items and material)
Armor(ModLoader, w/ new blocks/items and material)
Npc(ModLoader, human w/actions)
Biome(Non-ModLoader)
Hard
Npc(ModLoader, custom w/actions)
Furnace(ModLoader, multiple out-put)
Tree(ModLoader)
Extra Learning/How to
Learning EnumToolMaterial
How to fix Modloader error
Thank you list
XDarkboy - For helping everyone while I was gone
XDarkboy - Thank you for the banner
<--- First Banner
<--- Second Banner
<--- Third Banner and It's clickable
Block + ModLoader
BlockNamehere.java
mod_Namehere.java
Help
Items + ModLoader
ItemNamehere.java
mod_Namehere
Help
Food + ModLoader
mod_Namehere.java
Help
Armor + ModLoader
mod_Namehere.java
Help
Tools + ModLoader
mod_Namehere.java
Help
Generating Ores + ModLoader
Help
Blocks + Advanced + ModLoader
Speed Block
Bouncy Block
Lightning Block
Help
Block Bounds
Help
Glass Block
Help
Block facing You when placedDown
Help
Block Render Types
Help
Items + Advanced + ModLoader
Spawning mob
Help
Spawn Block
Help
world.setBlockWithNotify(i, j, k, Block.dirt.blockID); || change to any block you want
Flame Sword
Help
Npc + Human + Modloader
mod_Namehere.java
EntityNamehere.java
Help
Tools + New Materials/EnumMaterials + Generation + ModLoader
mod_Namehere.java
BlockNamehere.java
ItemNamehere.java
EnumToolMaterial.java
EnumToolMaterial
HELP
Modloader Error
HELP
Item Texture Fix
HELP
Bumping?
Give a man a fish, and he'll be fed for a day.
http://www.minecraftforum.net/topic/473884-modloader-strengths-tutorialshelp-1911/
Sorry not to be rude, but it isn't. I can see why you think that though?
also sorry for not adding lot to the help section in a hurry I will add to it later
Okay :smile.gif:
Check out my Minecraft Modding Tutorials!