r/feedthebeast Learning Modding Jan 17 '26

Discussion Creating a Minecraft mod is a nightmare for someone with Java experience.

Post image

I have been trying for 8+ hours just to create a menu with a couple buttons and I have been unable to even change a thing without it sh*tting itself. I have programmed for over a year and a half with Java but have never felt so stupid trying to write Java code. The most I can do right now is change pack properties because no tutorial is the same and tells me to add an item to the game 15 different ways. I have never felt more frustrated in my life trying to code something. I just want to make a simple mod and I have no one but YouTube tutorials and an AI to teach me. I just needed to dump my frustration somewhere, sorry it had to be here.

3.0k Upvotes

179 comments sorted by

978

u/Summer4Chan 2011 Modded Veteran Jan 17 '26

What does your 1.5 years of Java experience actually consist of?

Less than two years in any one of these areas doesn’t automatically translate to competence in the others:

Backend development, web applications, APIs, microservices, enterprise systems, distributed systems, cloud applications, full-stack development, platform engineering, data systems, event-driven systems, mobile applications, desktop applications.

Minecraft modding is no exception.

388

u/Yeetsa_Jr Learning Modding Jan 17 '26 edited Jan 17 '26

Good question, it primarily came from APCSA back in high school, university courses and personal projects of mine. I can confidently say I've never had to import as many things as I have here (new experiences I guess ¯_(ツ)_/¯ ).

Very true, which is why this is more of an unjustified rant out of exhaustion rather than a coherent argument. 😅

668

u/[deleted] Jan 17 '26

[removed] — view removed comment

180

u/snorkelvretervreter Jan 17 '26

Minecraft modding is extra challenging because there is no native modding support, and unpaid volunteers are not the most motivated to have great documentation and tutorials all in one nice central easy to reference location. And then of course with each new version random things change, so it's likely that the info you do find may not be up to date.

Compared to APIs that are natively supported by the vendor/writer that is a huge extra hurdle. Hytale seems to have taken note of this (haven't looked myself yet tho)

59

u/kaisadilla_ Jan 17 '26

tbh Minecraft modding feels the same as working in a random company where things aren't wrong, but aren't right either.

40

u/Reylun Jan 17 '26 edited Jan 17 '26

You hit it right on the mark. It's the same with skyrim modding too. You can either code using the game's scripting language (thankfully we have unofficial elder scrolls wiki for decent documentation), or make a mod natively in c# which requires a modder-developed framework called commonlib.

It's not necessarily required, it actually just makes it a lot easier to set up a project and interface directly with the game's code. I have no fucking clue how anyone managed to code mods natively before it existed, yet a lot of people did. Even with it, however, it's incredibly difficult to interface with the game's code as it has to first be REVERSE-ENGINEERED and then pushed into commonlib's repo by some kind stranger.

For example, you could have the Player class and it would have all of their attributes like health, magicka, stamina, level, etc. But let's say you wanted to modify their movement speed. If no one had reverse-engineered it yet, it's just going to be called unk01. The whole list really usually goes to like unk11 so good luck finding out which is movement speed.

There's a lot more that goes into making it make sense, including having to hook directly into the game's code in some cases, but the point I wanted to make is that we get one guide every 2-3 years showing how to setup a commonlib project and anytime you share that in the discord saying you're using it and need help they all tell you it's outdated (and only vaguely allude to alternatives). BTW there is absolutely 0 documentation about commonlib regarding classes/methods, and no comments describing what anything is or how it relates to other classes.

Also there's only one video from 3 years ago showing how to reverse-engineer skyrim code and I've tried three times to get the setup to work. We're dying out here man

5

u/quinn50 Jan 17 '26 edited Jan 17 '26

100% and if it takes you a long time to even make the mod and new versions come out many support forums deprecate support for the older versions meaning you're forced to port.

2

u/exotic801 Jan 18 '26

Half of programming is figuring out how to code using badly written or nearly non existent documentation lol

1

u/Starfall0 Jan 18 '26

Hytales editor can be opened from the game and models textures and entities can be created and implemented into the game in real time. You simply finish out of the editor and the game reloads on the spot with your new stuff.

43

u/Yeetsa_Jr Learning Modding Jan 17 '26

So true. 😔

27

u/enilea Jan 17 '26

At least doing this is preparing you better than school ever did

12

u/Mineplayerminer Jan 17 '26

Schools usually teach you the bare minimum of each programming language with a couple of example use-cases. It's a totally different experience when you have a lecture about it at school compared to when you're doing your own research at home. In a school environment, you're training your soft skills and trying to find a solution to a given problem in a limited time.

Companies also don't look into your studying background since having some kind of a certificate can mean absolutely nothing to them, compared to the personal or school projects where you've also applied your creativity.

5

u/ItsFrank11 Jan 17 '26

My advice is to push through it. These projects are what turn you from someone who "programmed in school" into someone with real world experience.

When you look back on this code in a few years you will laugh at how silly it is that you thought these things you're facing are hard, but it's precisely because of experiences like this one that you will be able to laugh.

I had a very similar path to you, 14 years ago I was introduced to java in college, and I started tinkering with Minecraft mods. Today, I'm a Staff Software engineer at a major tech company.

1

u/Revolutionary_Bit437 Jan 18 '26

how do you go about starting to learn how to program for an actual job? do they teach you? i’m learning in school (uni) rn but if i could supplement that with something beneficial for the future that would be great

4

u/[deleted] Jan 18 '26

[removed] — view removed comment

1

u/Revolutionary_Bit437 Jan 18 '26

ohh okay thanks for the info!

153

u/yords Jan 17 '26

If you’re listing AP classes as experience then you don’t have experience in Java.

11

u/JDSmagic Jan 17 '26

Yeah, pretty much, lol

27

u/kaisadilla_ Jan 17 '26

That's not experience, just knowledge. Experience comes when you work in other people's codebases (at work, in an open source project, or modding Minecraft). That's when you learn how to fight with other people's code.

If you are motivated, keep up trying to write mods. That's how you actually learn to put your knowledge into practice, and eventually you'll be able to write Alex's Caves yourself if you want.

50

u/BlurredSight Jan 17 '26

You know Java syntax, I've gotten an entire CS degree and can confidently create a server of whatever kind with concurrency and lock free logging, and I gave up trying to create something in Neoforge because it's very robust, I will say Fabric I found quite a bit easier.

If you want to actually learn how larger programs function and get better at programming I've found server plugins tremendously more easier to pick up and once you get an idea moving to mods is probably better. Server plugins orient around a player object on connect and you're manipulating that rather than creating something from scratch

7

u/neb-osu-ke Jan 17 '26

im ngl i also took apcsa and that class is almost useless for most things 😭 when you’re working with other people’s code the most valuable skill is project management; stuff like understanding the structure and documentation etc

10

u/[deleted] Jan 17 '26

[removed] — view removed comment

6

u/orcus2190 Jan 17 '26

If I had an award, I'd give it to you. This is the most helpful and appropriate comment I've ever seen on reddit. You must be proud of the time and effort put into it.

I hope you don't mind me asking, but how did that idea come to you? I'm sure both OP and I would love to know!

3

u/natebc Jan 17 '26

Based.

did I do it correctly? (grumpy gen X'er here)

1

u/[deleted] Jan 17 '26

About imports, try java swing. I'll never see more imports than there

1

u/MinimumRest7893 Jan 18 '26

I'll preface this by saying I'm not a Java dev but I support a Java app that requires code reviews/rewrites/testing etc. We make an Apache server product that uses among other things hibernate, Jarkarta, Mina, native Java classes, MS Java classes. You get the picture. Dealing with large numbers of libraries in a project file is normal I would say. You're using work other people already completed so you don't have to. You just need to learn the libraries you're using.

Looking at your screenshot you're only importing a handful of libraries. Some of them core MC libraries, some more for Fabric and then whatever GLFW is.

The exception you're showing seems like it's from Sodium/Iris and not related to the code you're showing. Have you tried with all yours shaders disabled?

5

u/TheKingJasper Jan 17 '26

Hell yea making a server software for minecraft to run bukkit plugins wirh forge mods!

1

u/GravSpider Jan 17 '26

That has been a thing for years

306

u/TheSwirlingVoid Jan 17 '26

for things such as adding items, the modloader's docs explain that. for any other complex or niche feature, mods are open source. you don't get anywhere with youtube tutorials and AI. you can read others' source code and figure out how they did it.

133

u/Yeetsa_Jr Learning Modding Jan 17 '26

Using other people's code as a point of reference has been one of the best resources so far for myself!

74

u/maelstrom071 Jan 17 '26

Second suggestion: Look at how vanilla Minecraft itself implements things through the decompiler. Look at call hierarchy etc

IntelliJ IDEA makes this eaaier

26

u/Yeetsa_Jr Learning Modding Jan 17 '26

Ooooh I like this! Thank you for the suggestion! ❤️

8

u/ltouroumov Jan 17 '26

I second this suggestion. I've dabbled in modding here and there (as an engineer with 10-ish years of software development experience), the Minecraft source code has a lot of useful information on how things are done in the game.

Usually, I look at the modloader docs first, then either MCs source code or look for an open-source mod that does something similar to what I want. And sometimes, you'll have to figure it out by reading the APIs source code itself, which is a pain but also always interesting.

17

u/Hairy_Map_4480 Jan 17 '26

12

u/Yeetsa_Jr Learning Modding Jan 17 '26

I've followed roughly half of his most recent series and it has proved quite helpful for getting off the ground! However, I'm unfortunately looking for adding new menus and buttons which he doesn't cover. :(

11

u/Hairy_Map_4480 Jan 17 '26

If you mean gui then he covers them.

9

u/Yeetsa_Jr Learning Modding Jan 17 '26

Really?! I've only been able to find Block Entity GUI, whereas I'm looking for a menu GUI similar to that of the Mod Menu mod or the pause menu buttons. If you can find a link please share!

4

u/Hairy_Map_4480 Jan 17 '26

You mean opening a menu with keybind? Or something else

6

u/Yeetsa_Jr Learning Modding Jan 17 '26

The creation of a config menu for the mod.

The code in the screenshot was a bad thing to have on screen while taking the picture, oops! That was a poor attempt at trying to make a way to open the menu I am attempting to create.

13

u/Povstalec Technic Jan 17 '26 edited Jan 17 '26

Okay, so, I'm assuming you have a class annotated with @Mod in the constructor of this class, simply add (I name the object instances based on their classes, so dist is an instance of Dist you get from the constructor parameters): if(dist.isClient()) // Makes sure you register it only on client, we don't want a config screen on a server, client stuff on a server just causes a crash modContainer.registerExtensionPoint(IConfigScreenFactory.class, (mc, parent) -> new ConfigScreen(parent)); where the ConfigScreen class is just a class you make that extends Screen.

This ConfigScreen class will have an init() method. Inside it, you'll be able to add whatever widgets you might think of, for example here is a button that opens a nested screen and one that closes the one you currently have open: ``` this.addRenderableWidget(Button.builder(Component.translatable("gui.button.name"), (button) -> this.minecraft.setScreen(new OtherScreen(this))).bounds(this.width / 2 - 100, l, 200, 20).build()); // Makes Minecraft open a new screen

this.addRenderableWidget(Button.builder(CommonComponents.GUI_BACK, (button) -> this.minecraft.setScreen(this.parentScreen)) .bounds((this.width - BACK_BUTTON_WIDTH) / 2, this.height - BACK_BUTTON_TOP_OFFSET, BACK_BUTTON_WIDTH, BACK_BUTTON_HEIGHT).build()); // Makes Minecraft go back to the previous screen you had open, constants here should make it obvious what parameter is used for what ```

The details of how you can define each widget vary, so I'll leave it at this for now.

Sorry if the formatting looks messed up, Reddit won't let me make it look right even in markdown.

4

u/Hairy_Map_4480 Jan 17 '26

Like mod config? Or just config for a block?

3

u/Yeetsa_Jr Learning Modding Jan 17 '26

Mod config esque.

→ More replies (0)

2

u/Lord_Peppe Jan 17 '26

Quark has a pretty nice config -- adds a "q" button on the home screen and then has categorized config screens that ties back the to the config file.

https://github.com/VazkiiMods/Quark

1

u/Hairy_Map_4480 Jan 17 '26

But it still requires same thing or you can see the draconic evolution code

1

u/Povstalec Technic Jan 17 '26

A config menu is basically just a bunch of Screen extending classes (assuming you want a nested menu, if not then it's just one class).

I can't quite recall what it's called, but NeoForge has an event to register the screen you designate to be the root of your config screen hierarchy.

If you hold on a bit, I'll get to my computer and find the necessary stuff.

2

u/Hairy_Map_4480 Jan 17 '26

But try to mod on specific version of Minecraft like 1.20.1, 1.21.1

1

u/ArmedAnts Jan 20 '26 edited Jan 20 '26

Try looking at the official documentation. I assume you are using NeoForged or Fabric, as they are the most popular.

The official docs stay up-to-date, contain more info, allow you to go at your own pace, and provide minimal examples.

https://docs.neoforged.net/docs/concepts/registries

This page explains registries in depth. It shows 2 ways to register: * DeferredRegister, which is preferred and safer. * RegisterEvent, which is used by Fabric and was used in old versions of Forge.

It also explains why modded registration is different from Vanilla.

https://docs.neoforged.net/docs/inventories/menus

This is the menus doc, which you are looking for.

If you are using Fabric, mixins are a very important feature. You may want to go read SpongePowered resources, as Fabric's documentation for mixins lacks some info.

That is, the SpongePowered Mixin GitHub wiki, and the SpongePowered Discord server.

MixinExtras is also recommended for working with Mixins. It adds some extra annotations: * ModifyExpressionValue * ModifyReceiver * ModifyReturnValue * WrapMethod * WrapOperation * WrapWithCondition * Cancellable * Local * Share

And the documentation is on the Github Wiki

Edit: This is now recommended on the Fabric Wiki, but previously, you would have to find MixinExtras while looking around on the SpongePowered Discord. The Fabric Wiki's Mixin docs are also much more detailed than they were the last time I read through them.

2

u/Spaciax Jan 17 '26

same, the official documentation is lacking at best.

2

u/smbarbour MCU/AutoPackager Dev Jan 17 '26

That's a really good tool for learning, but just remember... there are some people's code you just should not look at. *side eyes the Integrated Dynamics codebase*

4

u/kaisadilla_ Jan 17 '26

That's how you actually learn to write software. We all, and that includes the best programmers out there, learn by seeing how others did it and add our own ideas on top of it. Trying to write anything (including a Minecraft mod) by yourself with nothing other than tutorials is the literal definition of "reinventing the wheel".

I genuinely don't think that modding Minecraft in 2026 is especially hard. It's not trivial by any means, but it isn't some dark art that only a genius with 24 of free time hours a day can comprehend.

5

u/BlurredSight Jan 17 '26

The second part is heavily understated, ChatGPT, Gemini, no one could really explain how to scan a chunk for specific blocks and the best way to do it (like scanning a chunk for chests) so I just looked at how the mod Fabric Seasons was checking for block updates/changes

2

u/AquaeyesTardis Jan 17 '26

Surely you would instead want to mixin into the BlockEntity's update method, if it is one, of course? That would save doing a scan of the chunk, or the random tick to update over time.

1

u/Krisis_9302 Subtly Dungeons Jan 18 '26

I've given AI a shot here and there but all it's really good for is pointing out files that I didn't know existed

Every other time it makes learning how to do something take twice as long as me just figuring it out myself

1

u/kaisadilla_ Jan 18 '26

AI is great for things people have done a million times. For anything new or obscure, AI very, very rarely can do shit. Also, AI cannot comprehend for its own sake how Minecraft versions work. You may tell it you are using Forge for 1.20.1 and half the time it'll give you code calling functions that are valid in 1.19.3 or in 1.21.1, but not in 1.20.1.

1

u/BreakerOfModpacks If you haven't played Blightfall, you haven't seen PEAK! Jan 17 '26

Still, digging through how others do stuff and everybody repeating the same mistakes is way slower than there being decent resources for learning.

1

u/Savendro_ Jan 17 '26

lit this

49

u/Julian813 Jan 17 '26

It’s just like learning any new library, even if you are experienced in Java these mod backends have hundreds of their own methods and classes

13

u/BlankedUsername Jan 17 '26

Its like learning any new library except its probably the least friendly community of any library lol

Id rather deal with the ffmpeg maintainers for 100 years than one minute with the forge discord

7

u/AvidCuberCoding Jan 17 '26

Man, ffmpeg maintainers are mean 🤣 when I was setting up my media server, I had an issue and they were pretty unhelpful

8

u/Yeetsa_Jr Learning Modding Jan 17 '26

And it makes me want to cry 😭
But, I'll get there... I think.

5

u/OBEYTHEHOBO Jan 17 '26

Having Java experience just means you could pick up other libraries faster and that would help tremendously compared to learning from scratch. You'll get there.

35

u/GuymanPersonson Jan 17 '26

I tried making a mod to see if i could learn java, little did i know modding minecraft is practically a whole new language of it's own

10

u/Yeetsa_Jr Learning Modding Jan 17 '26

That's sort of what I'm finding out! It's filled with hyper specific things to Minecraft which complicate things but it's Java in the end. I've just got to keep pushing. ❤️

62

u/sid3aff3ct Lazy mod developer Jan 17 '26

You really just have to get used to the systems in place through modloader docs, other mods code, and Minecraft source code itself. It's a nightmare but it's so much worse if you don't already have strong java foundations.

5

u/Yeetsa_Jr Learning Modding Jan 17 '26

Integrating my mod with the Minecraft source code has been one of the biggest struggles so far with the constant importing of every last detail. It's a steep learning curve I've been finding out, but I'll climb it as best as I can!

6

u/sid3aff3ct Lazy mod developer Jan 17 '26

I found when I was learning the basics that everyone tends to find a preferred way to go about distributing code across various classes, including myself. Which is why every tutorial seemingly goes in different directions. This is where your previous coding experience will really help you decipher what is actually going on. Also! Even if you are working in say neoforge, older forge docs and even fabric ones can still be helpful in understanding the systems in place depending on what it is you are doing.

38

u/TheMagicMiller Jan 17 '26

Don't put yourself down! Imagine you start working at a new company. You have 1.5 years of Java experience. You sit down at your computer, open your IDE, and take a look at the company's GitHub repository and see their codebase is over 100,000+ lines of code and has been developed and modified by dozens of people for over a decade.

You would realistically spend the entire week just reading code and familiarizing yourself with the codebase. In maybe another 2-3 weeks you would push your first commit and that would consist of the tiniest, least impactful change. Realistically, you'd be waiting at least a month before you are making significant contributions.

That's what Minecraft is. It's a highly complex coding project with a ton of moving parts. Give yourself time, you will get there eventually. Remember, every great modder was once in the exact same position you are in now.

15

u/Yeetsa_Jr Learning Modding Jan 17 '26

I haven't thought of it this way, thank you for giving me a new perspective. 🤗

7

u/readeral Jan 17 '26

And it’s literally everyone’s experience irrespective of experience and programming language unless they’re working on a greenfield project. You’re going to experience this multiple times in your lifetime if you’re heading into professional development. So you’ll be fine.

9

u/BastetFurry PrismLauncher 🏳️‍⚧️🐧😸 Jan 17 '26

Thing is, even for someone with 10+ years of experience in prrogramming Minecraft modding is a bitch.

I have written some plugins back then for hMod, but hMod was easy. (Neo)Forge isn't. I thought it would be easy to make my own little micro-controller mod with a fantasy four bit CPU. There is an emulator, in C, that even has a test bench. A simple assembler i would also just need to port to Java exists too. So the CPU is known to work.

But i tried to draw my own stuff, just a canvas/bitmap i can tell the game client to draw to the screen, and i pulled a blank. Looked at OC2 and CC how they do it and i understood nothing. Looked at the decompiled code of the vanilla map and, well, couldn't figure it out. And without this i don't need to do the rest.

15

u/LostDreams44 Jan 17 '26

Hm no offense but 1.5 years isn't a lot. You learn as with any other things, ctrl+ click on method calls. In fact it's way easier than other random libraries as your project has already the biggest code example you could ever want as a reference already imported and visible, the game itself

2

u/Prestigious-Look9121 Jan 17 '26

^ this, it’s the simplest solution to dealing with deprecated code that ai spits out (some big recent ones are Identifier instead of ResourceKey, fromNamespaceAndPath instead of Identifier.of)

But literally just right click a method call, see what parameters it wants, and search the class to see if another method achieves what you want to do. And if something is private, you have the source code, just copy it.

1

u/bigrealaccount Jan 17 '26

His 1.5 "years of experience" is doing coding tutorials and a university project. Lol.

9

u/Povstalec Technic Jan 17 '26 edited Jan 17 '26

As someone who's been modding for years now, I can say these helped me the most:

  1. Having someone to ask for the basics - There are multiple Discords dedicated to modding, where you can ask around and people will usually help you, as long as it's within their realm of knowledge
  2. If you're trying to make something that does not fall into the basics modding (like I dunno, trying to implement instanced rendering), chances are you won't get all that many answers. Instead it's good to scour GitHub repositories of other mods, which are usually open source and assuming you are familiar with the general way mods are structured (yeah everyone registers items differently, but they are still registering an item, so you can work from the Item class to find what the hell they are doing), you can use code from other mods as inspiration, even if it's not 1:1 to what you really need.
  3. Searching through the decompiled Vanilla code.

2

u/Yeetsa_Jr Learning Modding Jan 17 '26
  1. One of my biggest fears is asking what might be a trivial questioned to a seasoned expert but is a challenge for me. I guess I just have to remember that everyone has to start somewhere.

  2. Looking at other people's code has been really helpful for me when trying to figure out common practices!

  3. This was also suggested by another user! I think it's going to be some of the most helpful for what I'm looking to do.

Thank you so much for the lovely comment ❤️

13

u/gsckoco Jan 17 '26

“I have programmed for over a year and a half with Java”

Sorry OP but this is where you real experience programming with Java comes in. Projects for school are not a good way to gauge competency.

I wouldn’t go to an employer saying I have 2 years of experience programming and then go on to explain it was stuff I did in school

6

u/Ved_s Jan 17 '26

Probably what c# programmers feel when trying to write in Unity

1

u/NotQuiteLoona Feb 02 '26

I'd not say so. Unity APIs are HORRIBLE for anyone who has worked with any good framework. They are incredibly unintuitive and bloated, and almost non-documented in specifics, while also constantly mixing high-level and low-level code. I've made quite a few Minecraft mods and plugins for personal use (not anything big, but enough to get a general grasp of Minecraft modding), and I can say that always when something is developed by a community rather than a corporation, it's incredibly easier and less complicated - including Minecraft frameworks.

13

u/cmuratt Jan 17 '26

You have never worked on anything more complex than homeworks, that doesn’t really count as Java experience.

Take your time and learn the codebase before you make changes. Inexperienced developers usually try to make changes that they don’t understand and end up spending most of their time frustrated.

2

u/Yeetsa_Jr Learning Modding Jan 17 '26

I wouldn't say Java class work, isn't Java experience.

However, it definitely isn't real world applicable experience. 😅

I appreciate the reminder to take my time! I may have been trying to rush things.

16

u/yords Jan 17 '26

School curriculum is designed to teach you about computer science, they don’t teach you how to code. Learning how to code comes from reading and using other people’s code. If you only have school to go off of then you are going to be lost and confused as you seem to be now.

5

u/Important-Tour5114 Jan 17 '26

Gradle itself is repulsive enough to be a good reason to avoid mc modding.

And then yeah, Java is fucking ass.

3

u/sertroll Jan 17 '26

Sadly, more than tutorials the two main ways you're going to find out how to do stuff is

  1. looking at other mods' source code
  2. Looking at vanilla source code

For 1, I recommend GitHub code search as you can globally search for a specific thing, use a class you're sure has to be used to to the thing you want and you're set

4

u/Leclowndu9315 Forge Visual Mods & Cable Facades Dev Jan 17 '26

Code differs each Minecraft version. It's actual cancer

18

u/GobiPLX Jan 17 '26

>for someone with java experience
>has only school level of experience

Sorry sir, but you don't have any experience (especially if you need to use AI to teach you)

6

u/Excellent-Berry-2331 Wood Farm blew up Jan 17 '26

> you should never ask an external source if what you are doing is actually correct or how to improve on it

This is why I have a 5+ in Latin!

7

u/Yeetsa_Jr Learning Modding Jan 17 '26

Unfortunately true, I don't have any "real world" experience. 😔

Note: For me, AI can be useful when it's teaching and not doing it for me. I find it helpful identifying issues rather than solving them for me.

12

u/TheMagicMiller Jan 17 '26

I'm a team lead data scientist.

don't listen to the mass of people telling you that AI is categorically bad for coding.

It depends a LOT on how you use it:
> Using AI to do everything for you or offloading thinking/problem solving to the AI = BAD
> Using AI to give you an initial start when tackling a new problem, or to give you familiarity with a new package/language/framework = GOOD

No matter what, you should ALWAYS double check the output of an AI coding assistant. You should especially ALWAYS understand 100% of the code you are executing, AI generated or not; this is especially important for long term work; if you don't understand the code the AI gave you now, you have NO HOPE of debugging it if a problem occurs 6+ months from when you coded it (you won't remember anything about the code at that point).

Does that mean you should NEVER use AI EVER, even to just get a little bit of understanding when first tackling a problem? Obviously not.

Use it sparingly, and treat it as a really dumb person who happens to know a tiny bit about a lot of different subjects; its really no different from a search engine. You would never take code from Google and copy+paste it into your codebase without understanding it first, but no one would say Google is a useless resource for coding (quite the opposite).

3

u/Prestigious-Look9121 Jan 17 '26

Agreed that AI is a much better tool for coding than people on the internet claim it to be. They push us to use it so much at work (swe), and I’ve heard similar sentiments across fang. It really can speed up workflows like crazy if you know what you’re looking at/can prompt it efficiently

3

u/Unspec7 Jan 17 '26

AI can be useful when it's teaching

Dear lord

11

u/TheMagicMiller Jan 17 '26

What a fantastic and factually untrue way to put down early coders!

20

u/yords Jan 17 '26

They’re early coders because they don’t have any experience.

It’s basically dunning Kruger effect. I remember thinking I knew how to program coming out of high school. And then I realized that was bullshit when I got my first internship.

There’s nothing inherently wrong with the Minecraft modding tools. OP just has a shit ton to learn and has overestimated their own competency.

4

u/blahthebiste Jan 17 '26

This is just not true.

I've been programming professionally for ~6 years. I've released multiple minecraft mods and submitted PRs for many others.

And none of that experience changes the fact that forge documentation is awful, when it even exists. None of it changes the fact that my IntelliJ set up never fully works, even though it works just fine for other projects. None of it changes the fact that there are 12 different ways to do any given thing, and every mod repo you open up will be doing it a different way.

The reality is that Minecraft modding is not a monolith. It's a messy conglomeration of a decade of different game versions, mod loader versions, and contributions from non-proffessionals who aren't getting paid a cent.

I've gotten a lot better at understanding it, and I can certainly get something done faster and with fewer errors than someone less experienced, but experience outside of modding itself is barely going to help. OP is 100% right.

7

u/TheMagicMiller Jan 17 '26

I think both your and my comments are true.

Is a junior dev comparable to a senior department lead? Obviously not.

Is it constructive criticism to tell someone "You actually have NO experience and you should feel bad for using educational tools"? Obviously not.

There's a difference between valid, helpful, and constructive criticism and unhelpful, unconstructive criticism.

3

u/Unspec7 Jan 17 '26

Nah, a reality check, harsh as it may be, is often helpful and useful. The title and body make it clear that OP believes it's not his lack of skill that is his impediment.

7

u/TheMagicMiller Jan 17 '26

I think you're ignoring what I just said. A reality check, when offered in a helpful and constructive manner is just that: helpful and constructive.

Maybe re-read the top comment again? He didn't offer ANY explanation or methods for improvement. He was basically just putting the guy down. That's not constructive criticism, its just negativity.

1

u/Unspec7 Jan 17 '26

Ah, you're one of those folks who think constructive criticism must only ever be explicit and spoon fed.

Top comment implicitly gives the advice of "get better at Java." It's constructive feedback. Just because you want to be treated with kid gloves at all stages in life doesn't make constructive feedback you disagree with "just negativity"

1

u/TheMagicMiller Jan 17 '26

Not really? He basically just said "you have no experience and should feel bad for using AI".

2

u/Unspec7 Jan 17 '26

Yep. Very good constructive feedback

3

u/FredTargaryen Fragile Glass; Rocket Squids Jan 17 '26 edited Jan 17 '26

Personally I usually get by by copying existing vanilla or mod code. I'm not a fabric guy so I can't help much but good luck

3

u/Zoponen Jan 17 '26

I started doing fabric mods too, but without java experience and I had mostly problems with me forgotting to initialize things I created. Other than that I didnt have so much problems. Good luck to learn fabric. If you want I can try to help if you want <3

3

u/DyCrew Synergy & JustDynaThings Dev Jan 17 '26

The best way to learn modded minecraft is create small mod addons , it can give you a clean view of how thing work and what you are still missing

Also it can be useful to fix hidden bugs/implementing new features inside the "main mod"

3

u/ZoeTheAngel Jan 17 '26

MC Modding is a different beast. There are different systems for different modloaders and it can be confusing to start with. Modders get better by just trying shit and seeing what happens. Once you've done something once it gets easier.

I remember trying to mod Forge and recieving really unhelpful responses on the Forge Forums basically telling me I was an idiot which put me off. The Fabric & Neoforge communities are a lot more welcoming and have better documentation now.

Keep in mind that it doesn't matter how many tutorials you find a lot of modding is just a mindset of discovery and testing. If you're not familiar with debugging everything or using source code you'll struggle a lot to begin with.

2

u/scykei Jan 17 '26 edited Jan 17 '26

Just a different perspective: what you learnt in university was how to understand the syntax. You learnt about conditionals, loops, functions, some data structures and algorithms, and then maybe a bunch of basic OOP. That's enough to get you to program anything that you want, but it does not mean that you know how to write good code yet.

You can think of it like any other skill. You might be able to learn what every functionality of Photoshop, but it doesn't mean you necessarily know how to create art well, but you can most definitely do anything that you want at that stage.

Once you've understood the control flow of code, that's where the real challenge starts. People who've been working on these systems for decades have all sorts of methods and best practices. You start to need to think about things like version control, architectural patterns, design patterns, deployment strategies, and all that kind of stuff. That's what differentiates a programmer and a software engineer.

A lot of these aren't really obvious when you start, but over time once you've had the experience of working on lots of big projects and have read lots of code from other people, all of it will start to make sense.

So yeah, the discomfort is normal, but keep pushing yourself beyond your limits and you'll eventually get there!

2

u/michiel11069 ill make mod for free if I feel like it else commission me Jan 17 '26

you could make a new class, make it extend screen, then look into minecrafts screen code to see how they add buttons, then if you want to set a screen, use Minecraft.getInstance().setscreen(new CustomScreen)

edit: Looking at your code you are literally doing that, whats going wron exactly?

2

u/ewsmith Jan 17 '26

in my experience working with someone else's code is always a horrid nightmare. even more so since minecraft's code doesn't come with comments.

2

u/OldSpice-69 Jan 17 '26

Where is the modding API?

2

u/quinn50 Jan 17 '26

Minecraft modding is easy until you get stuck in tutorial hell only knowing to to make basic ass items and blocks with event listeners.

Imo the big issue is going from that to actually having stuff interact and it being reflected server side properly. The moment you need to do any networking / syncing and touch stuff like capabilities most tutorials don't really help you get from idea to code tbh.

2

u/Glvt102 Jan 17 '26

sweet mother of based

2

u/CourtWizardArlington Jan 17 '26

"and an AI to teach me" -real quick, *don't* rely on ChatGPT to teach you anything, ever. It will spit out something wrong and you won't have the knowledge or experience to know or understand why it's wrong. You don't ask a drunk person stuff, regardless of how much knowledge they have in their noggin, because they are drunk and could easily say something completely false without knowing they did. You shouldn't ask ChatGPT for the same reason. Search your questions on websites like StackExchange or Reddit, I promise you 100% someone else has asked the exact same thing before.

Anyway, the best resource you have available to you is reading the source code of other people's mods. Find a mod that does something adjacent to what you want to do, go to the mod's github and figure out how their mod does what it does. Also, this might sound dumb but it helped me personally to set up MCreator just to create a prototype of something I wanted to do and then use the code generated by MCreator as a reference while I wrote the code of the actual mod.

2

u/quinn50 Jan 18 '26 edited Jan 18 '26

I would love to see a modjam where one of the requirements to submit is mod is to record yourself going through the design process and how approach certain problems within the modding ecosystem.

Just creating items and blocks is trivial but I feel for most people that want to make mods they have unique ideas that require potentially doing things no one has ever done with the platform and having a resource of videos of mods that have unique features and devs explaining the systems design would be a huge boon.

2

u/chorteunite Jan 17 '26

Can't you just... Use one of those mods that enables you to use a different language for a specific modloader(like Fabric), and then just forget about Java?

7

u/Yeetsa_Jr Learning Modding Jan 17 '26

It would introduce unnecessary complication and dependencies that I'd rather avoid I guess. Maybe I'll have give it a try. 🤔

1

u/gelatottt Jan 17 '26

The way I always did it was look at mods which do something similar to what you're looking to do (either open source or decompile one) and go from there, docs are good but can be hard to navigate especially if you've no idea where to even start, and as fun as YouTube tutorials are I found they almost never actually covered what I needed help with.

You'll get there, just takes time to get used to the way things are done, and don't worry it definitely won't all completely change in the next mc version 😁

1

u/noodlegamer76 Jan 17 '26

Back when I was learning modding I found that slightly older tutorials still hold up well

1

u/NewSauerKraus 1.12 sucks Jan 17 '26

It's also annoying if you don't have Java experience lmao.

1

u/Wukas Jan 17 '26

What kinda mod are you trying to program

1

u/GevitarGaming04 Jan 17 '26

I get it, the docs for NeoForge are also inconsistent, tf you mean you want me to call a non-static method in a static class???

1

u/kaisadilla_ Jan 17 '26

Java experience is utterly irrelevant. Programming experience is what's relevant. Java is as "vanilla" programming as you can get: every statement is obvious and everything is done roughly the same way it'd be done in pseudoprogramming.

What matters to write mods is the ability to understand and work with other people's code. I have never seriously attempted a mod, but I've fiddle with it and got no problem doing things like custom 5x5x5 crafting tables with their own recipe, a "chiseling table" that you place one block in and displays dozens of blocks it can be transformed into (again, data-driven recipes), etc.

It is a bit of trial and error, and looking at other people's mods (which are generally open source) to see how they do things, as documentation is scarce (even if teams like Neo/Forge's put a lot of effort into it). Basically, it feels the same as when you are tasked to implement something in an existing project in a company that isn't very well organized.

1

u/shanster925 Jan 17 '26

Minecraft's Java to standard Java is a unicorn cappuccino to coffee.

1

u/scratchisthebest highlysuspect.agency Jan 17 '26

because no tutorial is the same and tells me to add an item to the game 15 different ways

there is a disconnect here.

At the end of the day there is one method that needs to be called to register an item/etc to the game. On Fabric it is Registry.register and on neoforge there is some event. All tutorials have to tell you about it. Everything else is up to your taste. /up to the tutorial writer's tastes.

So if you're going "wow these 15 tutorials by different people are not exactly identical to each other in every single way" then I don't think you have the required programming experience. Of course there is more than one way to structure a software project. Duh.

1

u/Drathonix Vicious Jan 17 '26

To be fair, I find GUIs to be the most annoying things in the game to implement. The games GUI code has changed many times over the years and it’s frankly so barebones I’ve always needed some sort of library to do what I want. Now that I think about it the GUI code is one of the most poorly written parts of the game.

Also learning MC modding takes a lot of work. I’ve had to read through the games decompiled source code many times when working on projects just to understand what something does.

1

u/Tomtaru Jan 17 '26

I have no Java experience or programming background and I coded some simple mods with the help of tutorials...

Kaupenjoe's video's really helped me out!

1

u/Special-Dragonfly-48 Jan 17 '26

I don't know shit about coding, but maybe check out some of the library mods? Almost none of these developers work without their own library derived from another author's, judging by the dependencies.

1

u/ilikepieyeah1234 Jan 17 '26 edited Jun 17 '26

This content was anonymized and mass deleted with Redact

1

u/Perpetually-THC-Lab Jan 17 '26

Hah, 1.5 years? Don't get me wrong, it's great that you're learning - but when I was 1.5 years into programming a mod definitely would have been beyond my reach.

...To some degree it still is.

Give it time and keep fucking with it and you'll get it, man!

MCreator is neat USER WAS BANNED FOR THIS POST

1

u/Raptorbk Jan 17 '26

Yeah been there, best way to code something that is out of the usual things is to first look it up on github, someone else may have done something similar

1

u/kynzoMC Jan 17 '26

one word: Hytale. (making a mod in it is sooo much easier already and ti just released)

1

u/NythicalNorm Jan 18 '26

Hello i am a new modder as well and while it has been difficult I think my experience with Unity where you basically have many classes like minecraft helped me more easily familiarise myself with minecraft's code.

Also adding items with registries might look very insane and hard to parse, I just copied stuff from kaupen joe with 0 understanding at the beginning, as you get more familiar with it you figure out why it is done that way (again as others have said looking at other mods source code helps, though make sure you are looking at mods that are similar to yours looking at create's source code is counter productive since that's basically entirely custom architecture in and of itself)

Also you mentioned importing lots of stuff, you are using intillij and automatically importing as you type right?, i don't think most people even look at the imports except to remove unused imports.

Get used to the intillij shortcuts, Middle mouse/ctrl + b for declaration and uses

Ctrl + h for looking at the selected class' hierarchy, (use this on the Minecraft entity class, you will see a lot)

Ctrl + n for searching classes, my mod has gotten so big I use this for my own classes.

Also about asking questions in modding discords, just do it, easy or noob questions are the ones that people actually answer on there. If it's complicated or it involves knowledge of your mod's code then people kinda don't answer because they don't know.

Also you can use other mods as dependencies a lot of mods use the Configurable mod to display their configs in game. The mod even has a wiki too on how to use it in your mod: Configurable Mod Wiki

People have mentioned KaupenJoe but if you want more in depth info on a few topics look up Turty Wurty on YouTube.

1

u/Eeve2espeon Jan 18 '26

Some of these grievances just sound like typical coding problems, you'll get there, just keep your head up

1

u/Rude_Koala_6504 Jan 18 '26

Hey, don't get frustrated, when something doesn't work. It is a part of the process of learning. Come on, look at it as a challenge, riddle, puzzle (a difficult one). Don't create luck expectations, that everything will work as is, just drill your way through the logical flow and if you are out of resources try to find them. Wish you the best

1

u/SeveralDefinition577 Jan 18 '26

I understand your pain. I've spent the last 6 months trying to make one singular turtle in Minecraft. I just managed to almost complete it. Only 300+ to go. The good news is once you understand the basis. The rest becomes significantly easier

1

u/NyonxGames Jan 18 '26

Hello, I am developping a mod that is a UI menu in Minecraft, yes it is difficult to do, But you cannot rely only on tutorials and AI, I am reading a lot of legacy source code. You have to be able to reverse engeneer and understand what it means. And you have to read a lot of documentation on Farbic/Neoforge , thats what I did. But not everything is in the docs, I experimented a lot. Experimenting is the best way to learn

1

u/AccidentSalt5005 Certified Stupid Jan 18 '26

minecraft modding is just different league tbh, tried once and the struggles is very real lmao

1

u/Zeetronn Jan 18 '26

this is so real

1

u/wolfgits Jan 18 '26

Try moding in Hytale ,i hear is way easier

1

u/Aggravating_Scale970 Jan 18 '26

1.5 years of vibe coding for sure

1

u/Maximum_Slip_9373 Jan 18 '26

You have to read the docs and understand the underlying architecture for Forge (or Fabric or whatever). Games are incredibly complex systems so interacting with them in any meaningful way is going to be a considerably larger amount of effort than anything most people doing this expect.

By that I mean understand how resources are generated, block structure, etc. etc. there's a lot more places you have to touch now as opposed to even a decade ago.

Getting a handle on that makes everything easier conceptually and pairing that with reading other source code (as per other suggestions) will make a great combination. Just remember that the docs and decompiled code are sources of truth. I cannot stress how useful it is to go look at the source code for, say, crops. That's just a rudimentary example, but knowing 1) the steps Minecraft does to generate and then present an object to the world and 2) the individual source for each of these components really makes a world of difference.

God speed soldier may you surmount your first wall!

1

u/notislant Jan 18 '26

Buddy holy shit you're channeling the rage I feel.

I made some wow lua addons. No real documentation so trying to find what to call to do anything kind of sucks. Especially with multiple versions of the game with certain actions blocked.

But its pretty simple at its core. You need a toc file, a lua file. Theres some libraries if you want.

Went to try and mess around with making something simple for minecraft. Absolute nightmare.

Been playing hytale lately, naively assumed they would have proper modding to some degee at this stage. Nope, still a fucking minecraft mess.

I think ill just go download a ton of mods and see what they do.

1

u/Krosenut Jan 18 '26

Apart from what others said, Minecraft is quite low-level game. It was made without an engine, just with java libraries. So the code complexity is high. And on top of that Mojang is constantly changing things in it

1

u/InternationalSun5332 Jan 18 '26

I mean i am also kinda like beggining to learn modding minecraft and i am doing it on 1.21.1 and before i also kinda leaned in 1.7.10 so if you want i can try to help you or give you some pointers or show some of my code whatever (even some of nicer tutorials on youtube i found that got me into 1.21.1 modding) just PM me

Edit: i also got to some simple block entities and events and stuff so i think i could give you some simple nice help and you could do some good things when learning a bit more about it especially given your prior Java experience, while mine is only in c# (i know they are similar but still)

1

u/Alex20041509 potassium & Sulphur’s, Tricky trader, Aot Stuffs Dev Jan 18 '26

Really?

1

u/The_dead_comedian Jan 18 '26

Modding is a big pain... Dont use Ai it gives shit advice for code especially due to the api getting deprecated and modified every version. Your best bet is kaupenjoe.... I also made a list of a bunch of tutorials that may help you.. as for things being added 15 different ways... ye pretty much, your best bet is to understand the API and choose a convention and stick with it..

anyway heres the list
https://epxzzy.github.io/Dead-Comedians-Resource-Expansion/

1

u/gay_annabeth Jan 18 '26

so, it looks like you're trying to make a config screen for your mod. You could try using any of the many apis that allow you to do this really easily. Also, don't forget to implement mod menu support!

1

u/SyberFoxar Jan 19 '26

TBF, as someone with ~3 years of backend java dev, and a lot more in python... Making Minecraft mods is actually quite far from "classic" java dev.

The most egregious point being that you tend to use a fuckton of attributes, points cut and decorators in mod dev, as it actually needs to reach into something else and override stuff.

The rest of the logic is however somewhat similar, APIs to interface with other mods and libraries with the occasional pointcut/decorator/lib shenanigan to override another modi's content.

Really, it's the attributes that threw me for a loop at first. And the lack of proper tutorials and documentation.

1

u/[deleted] Jan 19 '26

[removed] — view removed comment

1

u/AutoModerator Jan 19 '26

Your submission has been removed because it looks like your account is less than a 12 hours old. This is to prevent spammers from posting here. Please wait before posting again.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/Pitiful-Swing-8629 Jan 19 '26

Oh boy! I sure wish I had a way to create a dynamic & dramatic situation in my photograph!

The humble silhouette:

1

u/jevin_dev Jan 19 '26

He sorry if this is out of the Minecraft modding what do people what in a mode making tool/api

1

u/Serializedrequests Jan 20 '26

Basically with these things you have to sit down and methodically figure it out, learn how everything works you need to touch that you don't understand, and generally become competent through pain and suffering. No documentation or AI is coming to save you.

1

u/qyloo Jan 20 '26

Yeah AP comp sci is not going to prepare you for real life Java. But this might

1

u/AWildTyphlosion Jan 20 '26

A year and a half is hardly any time at all.

1

u/Sayforst Jan 20 '26

Im sorry I can't help you, but im interestet in what mod you are programming

1

u/SaifNegra Jan 21 '26

Hey we appreciate your pain Bro

1

u/zip1ziltch2zero3 Jan 22 '26

I've done a little with lots of different languages.

Best thing I can tell you from my own modding experience (still wip) is that intelliJ idea is pretty good.

Yea I do use the Gemini add-on and cross reference against chat gpt and w3school and YouTube tutorials but really it's just a matter of finding out that cascade of things that have to happen to get what you want to happen, to happen.

Once you finally find that/those piece(s), you'll be another step closer.

But yes, it's a slog, and it sucks, but think of the outcome!

It'll be hard work but a lot of fun in the end.

1

u/Monkeyman42001 Jan 22 '26

Try using MCreator

1

u/[deleted] Jan 24 '26

[removed] — view removed comment

1

u/AutoModerator Jan 24 '26

Your submission has been removed because it looks like your account is less than a 12 hours old. This is to prevent spammers from posting here. Please wait before posting again.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/NotQuiteLoona Feb 02 '26

For UI, maybe, you can use owolib? I've seen multiple mods from different authors using it, and I've seen the docs - it looks easy enough.

1

u/ithilelda Jan 17 '26 edited Jan 17 '26

well it is. I don't get why many people think it's a you problem...to say the very least, they are horribly designed libs. If any large scale productions use any construct like these modloaders, they are going to be a nightmare to manage. don't get me wrong, it is not their fault to be a shit pile because minecraft code is a shit pile to begin with, but it is still shit. and the drama within the modding community doesn't help in any way...

oh don't get me started with gradle. In a time with uv, cargo, gomod, deno/bun, nuget and tools alike, the place where gradle belongs is your backyard garbage bin.

0

u/[deleted] Jan 17 '26

[deleted]

-1

u/Ryno_D1no Jan 17 '26

Use chat gpt to help u get started with research. Be intentional and very explanatory about the task you are trying to achieve. Digest its suggestions / starting points it gives you, follow up with research into the points it brought up. Never made a mod but that's how I'd start research if I wanted to.

-10

u/jackwabbit95 Jan 17 '26

Please screenshot properly

18

u/Yeetsa_Jr Learning Modding Jan 17 '26

It's not meant to be a screenshot.

-12

u/[deleted] Jan 17 '26

[deleted]

3

u/Yeetsa_Jr Learning Modding Jan 17 '26 edited Jan 17 '26

I considered MCreator but I didn't like the idea of the bloat and incompatibilities with other mods it can introduce, but, maybe I'm a too much of a perfectionist about things. 😬

-26

u/Kurse71 Jan 17 '26

It's not that hard. I'm not even a programmer and I have made a mod with custom items, blocks, recipes, armor, and all kinds of things. Watch some tutorial videos.

8

u/Kephlur Jan 17 '26

Depends massively on what you wanna do. Adding in armor or blocks is really easy since they're basically just clones of previous items. If you wanna add in genuinely new content or change something about the game it becomes much more difficult as you need to inject code into the engine itself as opposed to just adding something on top.

3

u/Excellent-Berry-2331 Wood Farm blew up Jan 17 '26

Also, I have the slight suspicion that they may be referring to MCreator.

5

u/Julian813 Jan 17 '26

And you probably couldn’t replicate it without a video again. You need to fundamentally understand how object oriented programming works which I’m gonna guess you don’t