Hi! This is my documented journey to create a Minecraft Forge mod. It's been a while since I created one, and I want to see if I still remember how things work.
In addition, I'd like to try to do this using VSCode, instead of the usual IDEs recommended for this. Let's see how it goes!
First, let's download Forge. The files can be found at http://files.minecraftforge.net/, and I think I want the MDK, but let's see if the docs tell us.
Yep, the MDK. Ok, downloading the MDK for 1.12.2 - 14.23.5.2836...
Oh, before we get too far along, I'm planning to track my progress with git commits and this readme. That way, if things get broken or strange, I can use git to backup, and you and I get a nice history we can look back on.
Ok, the MDK is downloaded, let's unzip it.
The docs say to only copy build.gradle
, gradlew.bat
, gradlew
, and the gradle
directory. I'll leave out gradlew.bat
since I'm developing on Linux.
The next step is to run gradlew setupDecompWorkspace
. Since this is Linux, the correct command is ./gradlew setupDecompWorkspace
, since the working directory isn't in the path.
Ok, it looks like I don't have the java compiler (or JDK) installed on this computer. Your instructions to get a JDK installed for likely differ, so I'll leave this part out. DuckDuckGo is your friend.
OpenJDK 8 installed and ./gradlew setupDecompWorkspace
is successful.
The two commands we want for testing are:
./gradlew runClient
./gradlew runServer
Before we do that, we need a mod. Forge comes with a sample mod, but the instructions don't tell us to copy that. Let's do that though, so we have a starting place, and we can test this setup works
Copied the src
directory from our unzipped MDK directory.
[19:59:27] [Client thread/INFO] [examplemod]: DIRT BLOCK >> minecraft:dirt
Great, it works! At this time, before we commit we probably want to create a `.gitignore and add a couple of things to it.
Before I get too far into modding, I want to know that we can build our mod correctly as well. I'm going to to use MultiMC because it works all 3 major operating systems and makes creating Minecraft instances with the exact versions and mods you want so easy.
Here goes ./gradlew build
[20:08:03] [Client thread/INFO] [examplemod]: DIRT BLOCK >> minecraft:dirt
Perfect! At this point, let's calls this version 0.1.0
This post was created as part of the README for my Panda's mod, but given my habit of not completing things I thought I'd share this part here in case it helped others. Thoughts and feedback welcome.
Top comments (10)
Mumbling mumbling no screenshot of the result.
Fair complaint. It does exactly nothing yet, what would you like a screen shot of? 😊
I would like to see a screen shot of nothing, then!!! /sarcasm
Your wish is my command! github.com/drazisil/pandas/blob/ma...
dev.to/drazisil/making-a-panda-pol...
that is what I'm talking about! :3
I am pleased :D
I really forgot why I comment on this post like this. I am so sorry.
Found this while going on a similar adventure. Since I'm developing mods for my Ubuntu server but on my Windows desktop, I found the "dev container" feature of VS Code to be invaluable:
code.visualstudio.com/docs/devcont...
Oh, and the following was a great help/template/reference too (though I went OpenJDK instead):
gist.github.com/noinarisak/859831b...
Thanks for the article, I've been using vscode for all my java stuff since eclipse feels a bit overkill/slow in the some cases.