From McJty Modding
Revision as of 06:06, 26 June 2020 by McJty (talk | contribs) (Created page with "==Introduction== In this page we closely follow the YouTube tutorial but give a more textual explanation about everything. All source code for the tutorials can be found here...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


In this page we closely follow the YouTube tutorial but give a more textual explanation about everything. All source code for the tutorials can be found here:

Useful Links

* GitHub:
* Forge:
* Forge Forums:
* Official Forge Documentation:
* Forge Discord:
* McJty Discord:
* Mappings:
* Official Java Documentation:
* Basic Java Tutorial:
* Online Java Course using assignments:

New Tutorial Series

This new series starts where the original tutorial series ends. In this series we start from a much cleaner codebase with fewer bugs and also we start from 1.15. This series also tries to explain a lot more and helps you figure out things on your own. Don't blindly copy/paste code! Always try to understand what you're doing.

Episode 1: Basic Principles, Getting Information, The Basic Mod and Package Structure

In this tutorial the basic principles of modding are explained. You learn how to use the build system. How to update Forge and get the basic mod going.

* build.gradle:
* Main mod file:
* mods.toml:
* Video:

Episode 2: The First Block, Capabilities, Container, Gui

Here the first block is explained. This block has properties for direction and being powered or not. It has an inventory and it can generate power. Capabilities are explained as well as the DeferredRegistry for registering Minecraft things:

* FirstBlock:
* FirstBlockTile:
* FirstBlockContainer:
* FirstBlockScreen:
* Registration:
* Video:

Episode 3: Model for the first block, Data Generation

In this episode we explain how to make the visual model for our first block. We do this using data generation. In addition we also explain how data generation can be used to generate the jsons for recipes and loot tables. Using data generation you can avoid having to write json by hand.

* DataGenerators:
* BlockStates:
* Assets directory:
* Video:

Episode 4: Dynamic Rendering using a Tile Entity Renderer

Here we explain the difference between static rendering (static models) and more dynamic rendering associated with tile entities. The latter you can use for doing animations and similar:

* MagicBlock:
* MagicRenderer:
* Video:

Episode 5: Baked Models and Mimicing Other Blocks

In this episode I show how you can make baked models and use them to mimic other blocks:

* FancyBlock:
* FancyBlockTile:
* FancyBakedModel:
* FancyModelLoader:
* Video:

Original Tutorial Series

This series starts with 1.14 and at some point ports to 1.15. This series works step-by-step and code is written gradually. If you like that style then this may be the best series for you to follow. On the other hand it is outdated in some respects (like it starts with 1.14) and it also contains some bugs that are fixed in later episodes or in the new series. Always reference the latest GitHub for the most up-to-date code

The first 12 episodes were made for 1.14 but are still mostly up-to-date for 1.15. Starting with episode 13 the tutorial is updated to Minecraft 1.15.

Episode 1: Setting up IDEA, Basic mod class and first block

* Video:
* Explanation: Episode 1

Episode 2: Loot tables, recipes, language file and first item

* Video:
* Explanation: Episode 2

Episode 3: Block properties, Tile Entity, Item Handler

* Video:
* Explanation: Episode 3

Episode 4: Our first GUI

* Video:
* Explanation: Episode 4

Episode 5: Better loot table and energy production

* Video:
* Explanation: Episode 5

Episode 6: Some fixes, sending out power, configuration and front face animation

* Video:
* Explanation: Episode 6

Episode 7: Updating to latest forge and data generators

* Video:
* Explanation: Episode 7

Episode 8: Getting started with entities

* Video:
* Explanation: Episode 8

Episode 9: Baked Models and Model Data

* Video:
* Explanation: Episode 9

Episode 10: Commands, Networking and Gui

* Video:
* Explanation: Episode 10

Episode 11: Special Edition, McJty Mods Explained

* Video:
* Explanation: Episode 11

Episode 12: Custom Dimensions

* Video:
* Explanation: Episode 12

Episode 13: Porting to 1.15.1 and cleanup

* Video:
* Explanation: Episode 13

Episode 14: Rendering part 1

* Video:
* Explanation: Episode 14

Episode 15: Rendering part 2 and BlockState data generation

* Video:
* Explanation: Episode 15