tag:blogger.com,1999:blog-88712852059298156842024-03-29T01:14:16.796-07:00Jabelar's Minecraft Forge Modding TutorialsUnknownnoreply@blogger.comBlogger1125tag:blogger.com,1999:blog-8871285205929815684.post-6893654122830995242014-06-01T10:30:00.003-07:002018-10-14T10:46:23.916-07:00Welcome<div style="margin: 0.75em 0px; padding: 0px; position: relative;">
I'm a long-time <i>Minecraft </i>modder, and as I learned I collected notes for myself in order to capture my best practices and I have this blog to share these notes with all of you.<br />
<br />
<h3>
Modding Is Legal, Even Encouraged By <i>Mojang</i></h3>
<br />
Just in case you're in doubt, <a href="https://account.mojang.com/documents/minecraft_eula"><i>Mojang</i>'s End User License Agreement ("EULA")</a> specifically says that modding is okay so long as it doesn't include redistributing their software and isn't intended for griefing or hacking: "<i>Basically, mods (or plugins, or tools) are cool (you can distribute those), hacked versions of the Game client or server are not (you can't distribute those).</i>"<br />
<br />
<h3>
Learn <i>Java</i>!</h3>
<br />
I feel silly having to say it, but <span style="background-color: yellow;">please learn the basics of <i>Java</i> before trying to mod</span>. <i>Java</i> isn't that hard to learn, especially if you know other languages.<br />
<br />
Personally I suggest learning programming from books rather than online because people tend to skip around with online learning while a book usually keeps you to a proper progression. However many programming books are daunting and boring, so I suggest the book <i><a href="https://www.amazon.com/Java-easy-steps-Covers/dp/1840786213/ref=sr_1_1?ie=UTF8&qid=1476863723&sr=8-1&keywords=java+in+easy+steps">Java in Easy Steps</a></i> -- it covers all the basics in a very slim, easy to read format.<br />
<br />
After learning the basics, I recommend <a href="http://tutorials.jenkov.com/">tutorials.jenkov.com</a> as the best online reference for <i>Java</i>.<br />
<br />
<h3>
Contributing To <i>Forge</i></h3>
<br />
<i>Forge </i>is maintained by a community of volunteers. Once you have become a proficient modder and assuming you are strong at <i>Java </i>you should consider helping contribute code to improve <i>Forge</i>. See instructions:<br />
<ul>
<li><a href="https://github.com/MinecraftForge/MinecraftForge/wiki/If-you-want-to-contribute-to-Forge">How To Contribute To Forge Development</a>.</li>
<li><a href="https://mcforge.readthedocs.io/en/latest/forgedev/">Read The Docs: Contributing To Forge</a></li>
</ul>
<br />
<h3>
Updating Between Versions Of <i>Minecraft </i>/ <i>Forge</i></h3>
<div>
<i><br /></i></div>
<div>
I have a <a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-updating-your-mod.html">collection of tips and tools to help you updating your mods</a> between recent versions.<br />
<br /></div>
<ol>
</ol>
<h3>
Other Good Tutorial Sites</h3>
<br />
There are lots of other good tutorials out there. I recommend also checking out tutorials by:<br />
<ul>
<li><a href="https://wiki.mcjty.eu/modding/index.php?title=Main_Page"><i>McJty</i></a></li>
<li><a href="https://www.suppergerrie2.com/category/forge-tutorial/"><i>SupperGerrie2</i></a></li>
<li><a href="https://emxtutorials.wordpress.com/"><i>EMX</i></a></li>
<li><i><a href="https://tutorials.darkhax.net/pages/tutorials/">Dark</a></i></li>
<li><i><a href="http://greyminecraftcoder.blogspot.com/p/list-of-topics.html">TheGreyGhost</a></i></li>
<li><i><a href="https://github.com/coolAlias/Forge_Tutorials">CoolAlias</a></i></li>
<li><a href="http://www.minecraftforum.net/forums/mapping-and-modding/mapping-and-modding-tutorials/2282788-1-7-1-8-thexfactor117s-forge-modding-tutorials-22"><i>TheXFactor117</i></a></li>
</ul>
<br />
<h3>
Tips And Tutorials</h3>
<br />
Here are some collections of useful tips on a variety of modding subjects. I'll be adding more as I think of them. I also have many more in-depth tutorials on many topics (check the Pages pull-down in menu above).<br />
<ul>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-java-tips.html">Java Tips: Learning Java, Reflection, etc.</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/quick-tips-eclipse.html">Setting Up Java, Eclipse, git and SourceTree</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-preventing-hacking.html">Strategy To Prevent Hacking And Cheating With Your Mods</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-coding-style.html">Coding Style Recommendations For Modding</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-17217x-quick-tips-for.html">FML / Mod Loading / Annotations / mcmod.info</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-modding-using-proxy.html">Using A Proxy</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-singletons-instances.html">Singletons, Instances And Literals</a> (When To Use <span style="font-family: "courier new" , "courier" , monospace;">==,</span> <span style="font-family: "courier new" , "courier" , monospace;">instanceof</span>, and <span style="font-family: "courier new" , "courier" , monospace;">equals()</span>)</li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-172-know-when-to-copy.html">Deciding When To Extend And When To Copy Vanilla Classes</a></li>
<li>Registries:</li>
<ul>
<li><a href="http://mcforge.readthedocs.io/en/latest/concepts/registries/">Official Forge documentation on registries</a></li>
<li>Check out <a href="https://github.com/Draco18s/ReasonableRealism/blob/1.12.1/src/main/java/com/draco18s/hardlib/EasyRegistry.java"><i>Draco18s</i>' universal registration helper class example</a></li>
<li><a href="http://cazzar.net/tutorials/fml/objectholder-a-simple-run-through/"><i>Cayde Dixon</i>'s <span style="font-family: "courier new" , "courier" , monospace;">@ObjectHolder</span> tutorial</a></li>
</ul>
<li>Entities and Player Entities:</li>
<ul>
<li><a href="http://jabelarminecraft.blogspot.com/p/creating-custom-entities.html">Comprehensive Tutorial on Making Custom Entities</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-172-finding-block.html">Other Modding Tips for Entities and Players</a>.</li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-modding-villagers.html">Villagers and Trading</a></li>
</ul>
<li>Blocks:</li>
<ul>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-18-block-modding.html">Blocks 1.9+ (The IBlockState Appoach)</a> </li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-172-modding-quick-tips.html">Other Quick Tips For Blocks</a></li>
<li>Specific Tutorials</li>
<ul>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-blocks-with-guis.html">Blocks With GUIs (Such As Custom Furnace)</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-custom-log-wood-block.html">Custom Orientable Block (Logs)</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-custom-leaves.html">Custom Block With Random Tick (Leaves)</a></li>
<li>Custom Plantable Blocks: <a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-custom-tree-with.html">Custom Sapling</a>, <a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-172-creating-custom.html">Custom Crops</a></li>
<li><a href="http://minecraftforgetuts.weebly.com/connected-block-textures.html">Block That Connects To Neighbors</a></li>
</ul>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft.html">Custom Power Distribution Systems</a></li>
</ul>
<li>Items, Armor and Weapons:</li>
<ul>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-1721710-tips-on-modding.html">General Tips For Items</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-tips-on-modding-armor.html">General Tips For Armor</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-tips-on-modding-weapons.html">General Tips For Weapons</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-making-hand-held.html">Item That Emits Light (Lantern, Flashlight)</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-extending-reach-of.html">Extended Reach Weapons</a></li>
</ul>
<li>Tools:</li>
<ul>
<li><a href="http://greyminecraftcoder.blogspot.ch/2015/01/mining-blocks-with-tools.html">Mining Blocks With Tools (<i>TheGreyGhost</i>)</a></li>
</ul>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-fluids_18.html">Fluids, Tanks and Buckets</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-ore-dictionary.html">Recipes</a> and <a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-ore-dictionary_29.html">the Ore Dictionary</a></li>
<li>Loot tables: </li>
<ul>
<li><a href="http://minecraftforgetuts.weebly.com/dungeon-loot.html">Modifying Dungeon Loot Using </a><span style="font-family: "courier new" , "courier" , monospace;"><a href="http://minecraftforgetuts.weebly.com/dungeon-loot.html">LootTableLoadEvent</a> </span></li>
<li><a href="http://minecraftforgetuts.weebly.com/dungeon-loot.html"><span style="font-family: inherit;">Modifying Mob Loot Using </span><span style="font-family: "courier new" , "courier" , monospace;">LootTableLoadEvent</span></a></li>
<li>see <a href="https://github.com/Draco18s/ReasonableRealism/blob/1.12.1/src/main/java/com/draco18s/hardlib/util/LootUtils.java"><i>Draco18s</i>' loot utilities code</a>.</li>
</ul>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-1721710.html">TileEntities</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge.html">Packets, Networking, and the DataManager/DataWatcher</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-172-event-handling.html">Event Handling</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-17x.html">Capabilities (1.9+) </a> and <a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-iextendedentityproper.html">Extended Entity Properties (up to 1.8)</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-172-quick-tips-gl11-and.html">Visuals: Models, Animation, Rendering, Tesselator, Camera, View, and GL11</a>:</li>
<ul>
<li>Official documentation for <a href="https://mcforge.readthedocs.io/en/latest/models/advanced/introduction/">Advanced Models</a></li>
</ul>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-1721710-modding-tips_22.html">World, Game</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-localization.html">Localization (.lang files)</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding_6.html">Enchantments</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-1721710-gui-and-input.html">GUI / Keybinding / Mouse / Input</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-advancements.html">Advancements (1.12+)</a> and <a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-creating-custom.html">Achievements (up to 1.11)</a></li>
<li>Configurations:</li>
<ul>
<li><a href="http://www.minecraftforge.net/wiki/How_to_make_an_advanced_configuration_file">Advanced Configuration Files</a> (minecraftforge.net tutorial)</li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-configuration-guis.html">Configuration GUI</a></li>
</ul>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-creative-tabs.html">Creative Tabs</a></li>
<li>World Generation: Dimensions and Biomes:</li>
<ul>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-1721710-biome-quick-tips.html">General Tips</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-custom-dimension.html">Custom dimension full tutorial</a> </li>
<li>Structures and <a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-custom-villages.html">Villages</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-custom-tree-with.html">Custom tree generation (with custom log, leaves and sapling)</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-custom-flowers.html">Custom flower generation</a></li>
</ul>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-sky-and-weather.html">Sky and Weather</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-1721710-modding-tips_9.html">Files and ResourceLocations</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-1721710-modding-tips.html">Particles</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-1721710-modding-tips_86.html">Sounds</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-forge-1721710-modding-tips_29.html">Server Commands</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-text-formatting.html">Text Formatting And Custom Fonts</a></li>
<li>Working With Other Mods:</li>
<ul>
<li><a href="http://minecraftforgetuts.weebly.com/inter-mod-communication.html"><i>Forge </i>Inter-Mod Communications (IMC)</a></li>
<li><a href="http://jabelarminecraft.blogspot.com/p/minecraft-modding-system-for-optional.html">Managing optional dependencies</a></li>
<li>General tips for compatibility</li>
<li>Creating an API</li>
<li>Using an API</li>
</ul>
</ul>
If you find any errors or things requiring clarification, please add a post or send me a note. I really want these tutorials to be a trust-worthy resource. Thanks!</div>
Unknownnoreply@blogger.com60