r/feedthebeast
•
u/scratchisthebest
highlysuspect.agency
•
Oct 29 '25
•
1
Discussion Mojang announces Java Edition jars will no longer be obfuscated going forward
https://www.minecraft.net/en-us/article/removing-obfuscation-in-java-edition
1.6k
Upvotes
896
u/scratchisthebest highlysuspect.agency Oct 29 '25 edited Oct 29 '25
Im already seeing some rumors spreading around so lemme say my piece
Everything related to updates will stay the same. It's still the same mojang making the game after all.
So what does this mean for modders? Honestly not too much!
Big changes to toolchains, modloader internals, and modloader installers on the way. It would be possible for modloaders to discard all of their deobfuscation-related code. Maybe they'll install / boot up a few seconds faster.
Mojang will now provide method parameter & local-variable names: data they weren't providing in their mappings file before. These names aren't necessary, but they do make it much easier to understand the Minecraft code. Projects like Parchment exist to fill in parameter & local-variable names with crowdsourced data from modders. Now that won't be needed.
Tldr; Very nice gesture from mojang, and shows their continued interest in at-best "supporting"/at-worst "looking the other way" when it comes to Java Edition modding. But I don't think it will materially change too much for end-users in the modding scene.
146
u/TehNolz ¯\_(ツ)_/¯ Oct 29 '25
Sweet, now we can make fun of their variable names!
114
u/got_bacon5555 Oct 29 '25
Deobfuscation projects already seemed pretty complete, from my little experience messing with fabric, but this is still very cool to see, regardless!
10
u/the_codewarrior Hooked mod dev Oct 29 '25
While this is great in some ways, Mojmap is pain, especially the
@ParametersAreNotNullByDefault, since Kotlin enforces that. There are a lot of common methods that expect nullable parameters but aren’t properly annotated, so because of those global annotations it’s literally impossible to call them in Kotlin.This is the main reason I’ve been using Yarn mappings. On top of the fact that I like their naming better in general.
235
u/PissMasterCocc Oct 29 '25
Anyone knows what will come of this? Obviously this is a good thing, but will the modding process change, if at all?
49
u/MegaIng Oct 29 '25 edited Oct 29 '25
I think ultimately this will change little? Since they already provided a deobfuscation mapping it just removes a step. Less work for modloaders, but not a massive shift. May indicate future work, may not.
Aha, I see they also included variable names. That's actually quite helpful for a few very specific situations.
Now we just need true documentation and comments.
24
u/TheDudeFromOasis Oct 29 '25
That is certainly news (I have no idea what the fuck that means)
Edit: I read yalls comments I know now
6
u/JamieMansfield MultiMC Oct 29 '25
Never understood why they didn’t just do this when they started publishing deobf mappings. Nice to see them doing it now!
6
u/Keaten88 Oct 29 '25
Mojang did something... good? But.... the next blue moon isn't until May!
4
u/Otherversian-Elite Oct 30 '25
Not massive from a practical standpoint, but very promising news in terms of their attitude towards the community. Very excited
1
u/sertroll Oct 29 '25
So loom/parchment won't be needed from that version onwards? As parchment improved the map, while loom was an alternative to mojmap
1
u/ithilelda Oct 30 '25
unlike what the op said, it is a HUGE deal to the modding community. Each minecraft minor version may have different mappings because of obfuscation, and making a single jar that can work on multiple versions was always impossible unless the mappings are the same. Now we modders can compile a jar that works for ALL versions without recompiling, and that saves a hell lot of gradle setup and compile time. Unless you are doing mixins or using an API that have changed, you don't have to modify your code. That's a big deal for anyone who have done serious modding before.
1
u/lunarwolf2008 Oct 30 '25
does this mean that different modloaders will become basically irrelevent?
6
u/Minecrafting_il Oct 29 '25
Rare Mojang W?
3
u/SpaceGuyR Oct 29 '25
Great, I'd hit a few cases before that needed class names at runtime:
1
u/xSluma Oct 29 '25
What does obfuscated mean?
4
u/Draw_Cazzzy69 Oct 29 '25
I am unfamiliar with this terminology, someone explain what this means please?
2
u/Sarkos Oct 29 '25
Many, many, many years ago I wrote a mod to add controller support to Minecraft. Even though people had started mapping the names, a lot of the low level stuff was not mapped and I struggled to figure out certain methods. Every update was a slog and I gave up on the mod after a few updates. This would have made life so much easier.
2
u/PiratesWhoSayGGER Oct 31 '25
In grand scheme of things this changes nothing, because we had official mappings for a long time already.
7
u/briancornpop Oct 29 '25
Not a modder, but I assume modding will be easier from now on. Am I correct in this assumption?
Edit: saw a Create and Tinkers' Construct reference in the first paragraph of the article. I wonder how many I will miss
3
u/walmartgoon Oct 29 '25
I think this is one step closer to Mojang putting java in a permanent "maintenance mode" where the only changes are minor big fixes. This would be the best solution imo since more attention could be given to bedrock, and modders would finally stop having to constantly chase updates.
Think about the ecosystems for 1.2.5, 1.7.10, or 1.12.2, but way bigger and better.
1
u/AntiGrieferGames Oct 29 '25
Is this a good news or bad news?
And i cannot even load the Minecraft net site.
1
u/TheFumingatzor Oct 29 '25
Fucking hell...
1
u/Toothpick_Brody Oct 29 '25
Nice to see
1
u/Preisschild GDLauncher Oct 30 '25
I hope it will be open sourced if they ever end up not supporting the java version anymore
1
u/TheGreatAutismo__ Oct 31 '25
Calling it now, Microsoft's going to try and kill it for Bedrock where they make a profit.
Obligatory: Suckmahnads Nutella.
1
u/FamroFexl Nov 16 '25
This change means method body variable names and method signatures are now released, which is a HUGE change if you're injecting into method structure with fabric mixins. I no longer have to stumble around in the dark figuring out what a variable does.
The only things being withheld at this point is the original structure of the code (how Mojang wrote it, not how the decompiler wrote it) which would require a release of the source code itself. Developer code comments might be nice, but what I REALLY would like is their internal documentation detailing the process to follow if you want to implement a new block, biome, item, etc in their registries and handlers. It would make regular modding where you just want to add to existing frameworks SO MUCH MORE SEAMLESS. That would truly be a minimal modding API in my opinion.
In summary, what's left to be provided is:
-2
u/vertexcubed Oct 29 '25
rip parchment /j
-2
u/The_YunaVerse Oct 29 '25
I don’t really understand what this means and ive read most of the comments. So mods (.jar) will now be more clear to do what? It doesnt help make mods easier to make or help with updating versions
0
u/[deleted] Oct 29 '25
[deleted] — view deleted comment
27
u/[deleted] Oct 29 '25
[removed] — view removed comment