Minecraft: Java Edition has been obfuscated since its release. This obfuscation meant that people couldn’t see our source code. Instead, everything was scrambled – and those who wanted to mod Java Edition had to try and piece together what every class and function in the code did.
Modding is at the heart of Java Edition – and obfuscation makes modding harder. We’re excited about this change to remove obfuscation, as it should make it quicker and easier for modders to create and improve mods. Now you won’t have to untangle tricky code or deal with unclear names. What’s more, de-bugging will become more straightforward, and crash logs will actually be readable!
surprisingly fantastic and consumer friendly move from mojang, good on them



Welcome to the largest gaming community on Lemmy! Discussion for all kinds of games. Video games, tabletop games, card games etc.
Video games, tabletop, or otherwise. Posts not related to games will be deleted.
This community is focused on games, of all kinds. Any news item or discussion should be related to gaming in some way.
No bigotry, hardline stance. Try not to get too heated when entering into a discussion or debate.
We are here to talk and discuss about one of our passions, not fight or be exposed to hate. Posts or responses that are hateful will be deleted to keep the atmosphere good. If repeatedly violated, not only will the comment be deleted but a ban will be handed out as well. We judge each case individually.
Try to keep it to 10% self-promotion / 90% other stuff in your post history.
This is to prevent people from posting for the sole purpose of promoting their own website or social media account.
This community is mostly for discussion and news. Remember to search for the thing you’re submitting before posting to see if it’s already been posted.
We want to keep the quality of posts high. Therefore, memes, funny videos, low-effort posts and reposts are not allowed. We prohibit giveaways because we cannot be sure that the person holding the giveaway will actually do what they promise.
Make sure to mark your stuff or it may be removed.
No one wants to be spoiled. Therefore, always mark spoilers. Similarly mark NSFW, in case anyone is browsing in a public space or at work.
Don’t share it here, there are other places to find it. Discussion of piracy is fine.
We don’t want us moderators or the admins of lemmy.world to get in trouble for linking to piracy. Therefore, any link to piracy will be removed. Discussion of it is of course allowed.
PM a mod to add your own
Video games
Generic
Help and suggestions
Not only do I think this will generate a fair number of CVE’s, I think there will be a lot of optimization of the code going on.
Look at what happened with OpenOffice a few years back – the Oracle buyout of Sun Microsystems forced the forking of OpenOffice to LibreOffice – during which the new Dev team took the time cleanup and refactor the code. This resulted in a suite that was about 10 percent smaller, and removed a bunch of redundant things (like multiple copies of icons).
I bet we see something similar with Minecraft – even if it can’t be an “authorized” version.
This doesn’t really change too much for the modding scene, it just allows the deobfuscation step to be skipped when setting up a dev environment. Mojang has already been providing official deobfuscation mappings for years, and before that we had community-made ones which were already pretty great.
There are already plenty of mods which drastically overhaul how major parts of the game work to get better performance, and there are some projects like Gregtech: New Horizons and CleanroomMC which have pretty much completely torn apart and rebuilt the game on older versions from before official deobfuscation mappings were even available.
Right, but this means these efforts can be undertaken on the current release, and done without having to work around Mohjang’s obfuscation.
Removing this kind of barrier is a major change. Less time will be spent on trying to understand code that has been obscured from view. It will be easier to ensure “correctness” in code that is optimizing the server (ie, that new code will not break internal dependencies). It will be easier to ensure compatibility between the official release and community based extensions.
I understand that the modding community has been able to do a lot up to this point…(I play on an optimized modpack). But, I’m betting this will actually produce a larger jump in terms of the efficiency of all codebases - including Mohjangs. Just the reports that document issues (not CVE level issues) for Mohjang will lead to them improving the base code.
My point is that literally nobody has been looking at obfuscated code for at least 5 years by now. All the toolchains automatically handle de- and reobfuscation transparently to the point that nobody has to think about it anymore unless maybe you are one of the like 3 people who is actually maintaining the classloading stage of a modloader, or if you are manually writing a bytecode transformer (which almost nobody has needed to do for years either, ever since tools like Mixin entered the scene).
For 99.9% of the modding community, and this includes most optimization mods, the only thing that is going to change is everyone deletes a line or two from their
build.gradleand continues about their day.As far as reporting things to Mojang: again, nothing changes here either, everyone who has ever set up a mod dev environment already has a copy of the deobfuscated source code on their computer, which is the only thing they are looking at when inspecting the minecraft source code or making changes to it. There have been reports on the issue tracker with actual suggested code changes basically since the issue tracker became a thing.
Okay - I am a bit of a dreamer, but I hope that Mojang dropping the obfuscation side of things is a sign that they are interested in working more closely with the community.
Of course, if I were to put on my pessimistic hat, I might think this is a move for Mojang to distance themselves from the Java edition as it’s likely that Microsoft thinks from a business perspective focusing on Bedrock is a better deal.
It has. There have been major rewrites of parts of the codebase, like Sodium, Cubic Chunk, server frameworks, just to start.
Major performance issues, and associated code fixes, have been repeatedly reported to Mojang’s tracker.
The issue is that any major modification is inherently incompatible with other major modifications, hence most persist for one version (or a few) before the devs burns out maintaining it. There are two solutions to this:
Get Mojang to pull in large optimizations. Thus far, they have been uninterested in this (though some controversy over Optifine may have left a bad taste).
Pull the changes into a modding framework. Understandably, Fabric/Forge aren’t willing to pull in a huge overhaul they’d have to maintain. Mojang may have similar feelings.
Some modifications (like Sodium) minimize vanilla changes to prioritize compatibility, and are popular to the extent that some other mods implement workarounds for them specifically. But this is rare, and it’s still problematic.
I remember that. I think the issue there was it mostly handled badly… It seemed like Mojang was trying to go behind the communities back (which I thought sounded a lot like the way Microsoft does things…so I blamed them instead of Mojang). IMO - if this is an era of more open-collaboration it may be possible for Mojang to benefit from working with the community. (There is an excellent example of this in the way AMD has worked with the Open Source community…)
I can see that too… That’s why I am thinking that it might be possible for there to be a more collaborative effort… Like a repository set up where community devs can submit PR’s for changes, and Mojang can either approve or deny them. If that started working well, I could see a situation where there are specifically Mojang employed community devs, the role of working on changes that will help both the main Minecraft tree and the modding community.
(Okay, I am probably more optimistic than I should be – after all Microsoft is in the mix here…)
Yeah, that sounds dreamy. It could certainly work.
And yeah, the problem is not just Microsoft but Mojang. Mojang is an extremely conservative/careful dev, even before they got bought by MS. It’s why the game hasn’t enshittified too bad, but also why development seems to move so slow for arguably the biggest game on Earth.
Collaborating via a repo like that would be… a lot.
Again, it’d be awesome and I think it would work, but it would be a massive step even if Microsoft wasn’t in the picture.
Yeah, Mojang’s conservative development style is arguably the reason for Minecraft’s success, while also being a source of frustration and friction for the community, IMO.
MS is another story altogether, though. While Mojang is a very thoughtful company, MS is driven by profit. I’m honestly surprised there aren’t more collisions between the two cultures.
They started providing deobfuscation maps 6 years ago
TIL
They should officially support the mod loaders at this point
Playing minecraft without mods as an adult is like eating a plain potato, or like going to a party without inebriating substances.
Not… Really? I mean I get it if you like mods, i do too, but Minecraft offers so much out of the box that I find it extreme to claim that…
Sodium, Let Me Despawn (prevents servers from going under 20TPS), No Chat Reports, and other QOL no content mods are essential for even running a server with vanilla clients tbh
Server hosting and using mods to improve performance/server moderation tools is a bit different than playing with mods.
Fair, although stock Minecraft without QOL is rough around the edges (especially if we’re talking performance or accessibility)
Even client mods are almost a must for things like saturation monitoring or ease of navigation
Yeah dude I totally agree! Mods are great in their own right, but there’s something to be said for the insane variety of gameplay you can get outta the base game!
Once Create Mod came out, vanilla was dead to me
I’d say its more like going to a fancy ice cream shop with amazing ice cream and ordering vanilla (hehe see what I did there?) or a fancy pizza place known for their amazing topping combinations and just getting a slice of cheese pizza. Its perfectly fine and probably better than some other places you’ve had vanilla ice cream or cheese pizza, but holy crap are you missing out!
Finally we can view Mojang’s shitty server multi-threading implementation in all its glory.
spoiler
Oh I see it’s that time of the year where Mojang gives the community a bone after stomping on them the rest of the year.
Anyways as someone who has worked on Java projects extensively since 2020, very little will actually change from this. The main problem of Mojang’s asinine version numbering will continue to be a problem for any modding, server, building and resource pack projects past 1.19.
They do what now?
Previously, they had the versioning system 1.MAJOR.MINOR, where Major referred to a feature update, and minor referred to bug fixes or other non-breaking technical changes
The first instance where they broke this was 1.16.2 by adding the Piglin Brute, but this was so minor that hardly anyone really cared, and hey, free feature with a minor update!
Well, now they have update “drops” where the minor version means either what it used to, or it’s also a feature update, just not as big as a full update.
From the wiki:
That’s close to how the numbering system works! It’s MAJOR.MINOR.PATCH, Mojang just doesn’t use the major part at all.
Also I completely forgot the piglin brute existed! Also netherite templates got added it the 1.16 patch versions too if I am remembering right.
the problem is that the way version numbers are handled now, it’s more like 1.MAJOR.MINOR, with no real definition of what counts as a “minor” update, so it’s hard to tell which versions are compatible. i feel like this problem would mostly go away if they either added another number to the version to signify patches, or actually used semver properly (they could mix these approaches to do something similar to java, so the next version would be 22.0.0)
i feel like this whole version debacle is only gonna get worse because microsoft is planning to move to a “content drop” model, with smaller more frequent updates, which means even more pressure on the “patch” version. so unless their update model or versioning systen changes, we’ll probably be playing 1.21.37 in a couple of years, and good luck figuring out which of those versions are actually compatible
It’s kind of like Java itself, Sun dropped the leading 1 after 1.4, following it up with Java 5.
Mojang started adding in substantive resource pack changes in the patches for 1.19. Which made it more annoying for resource pack artists to support the update their since it required 2 separate versions of a pack to be made and maintained just to make sure it works properly. Let alone the annoyance of having to constantly deal with people complaining about it not working when it is an issue Mojang made.
There is also Mojang’s censorship of their community that began in the 1.19 patch versions which allowed Mojang to just ban anyone for saying something they didn’t like. Servers largely just disable it since it’s a headache to deal with and it doesn’t benefit them at all, only Mojang.
Then in 1.20 and 1.21 Mojang began adding content in the patches so it makes it a nightmare to support the patch versions since they now function differently than they used to. Which only makes it harder for servers to update and makes the experience of joining servers more frustrating. So plenty of servers on those updates just blacklist certain versions just to make sure things are able to function.
Oh and at some point Mojang added censorship to player skins. And it can be triggered by just mass reporting any individual skin for any reason.
Basically Mojang made a fuck ton of problems where none needed to be or used to be.
Also I just want to add this, but I was sounding the alarm on the patch version problem back in the 1.19 days. The community at the entire either ignored me or called me crazy for pointing out how it was problematic. Now the community is growing more and more annoyed and I’m just sitting over here saying I told you so.
I’ve mostly stopped playing the game because of Mojang’s constant shitty choices and because of the community refusing to call Mojang out on their bullshit.
The no chat reports mod and having community hosted servers that don’t really need to give a damn about what Mojang thinks (I’ll convert my server to support cracked accounts if I have to) kind of pulls the heavy lifting to allowing players to keep playing without having to give a shit about overall moderation by the company.
The no chat reports mod is great but it still is an uphill battle to get players to install it. We also need to focus on putting on Mojang to remove the problematic system in the first place so the experience is better for everyone including Bedrock players.
Installing the mod (or plugin) server-side strips all player chat messages of the information that makes them reportable, so no requirement is needed for the client (Although recommended for complete protection and for usage on non-compatible servers)
I am aware, all the servers I work on have it installed.
Fuckin right?
ALSO can Mojang get my goshfuckin ALPHA account back that Microsoft deleted because I wasn’t paying attention to their bullshit during COVID and now it’s gone forever even if I make a Microsoft account which I will never do and now I have to pay money to Microsoft (which I will also never do and have never done)?
I’m pretty sure it was promised to me that I’d have Minecraft access forever because I bought an alpha account, but I guess now I have to give point to a horrible soulless corp to buy it again.
Go join mc: consequences edition https://discord.gg/mojanglawsuit (Website link in case you don’t wanna use discord: https://lawsuit.gg/)
Would the people developing mod loaders need to completely rewrite their source code to fit this new deobfuscated minecraft?
from what I understand mod loaders will need to remove the part where they deobfuscate code then translate mods. this update will break modloaders for a while but in the end it should simplify the process and make modding easier.
Well… my producer and I will certainly be playing versions before 1.22 then…
Is that going to kill the need for the various modloaders?
As I understand it no, the modloaders will still handle things like file management and conflicts and load orders and etc. Individual mods could implement solutions for that, but it makes more sense to centralize that effort around the modloaders.
What this will do is make it much less tedious to develop the mods in the first place.
(I may be wrong and the role of modloaders may have changed in the six years since I was last active in the modding scene without my knowing it)
Modloaders also mainly exist due to the onerous terms of any mojang/minecraft API for java edition that would exist - Forge/Fabric/etc… are designed to rip open the game and then stitch it back together with the desired goodies. Anything official would probably still have strings that would bind the modders, so modders won’t embrace the system wholeheartedly (similar to how datapacks can’t replace mods).
I look forward to several critical CVE being discovered like log4j
That would be good though. Better the communities finds them and they can be patched than when only some black hats know them.
Wasn’t log4j originally found by 2b2t players, then used maliciously and reported later on, then going onto get fixed by every major server framework like bukkit, paper, fabric, and more?
Nah, it was found sometime before november 24 2021, publicly disclosed in december 9 2021, and only used by 2b2t players on december 10 2021.
Unironically, me too. They’re there now, waiting to be discovered. We can find them now on our terms or be surprised by them later.
This paired with the bedrock gdk release and changes to the file path so that we don’t need to use iobit unlocker to mod rtx files is some hella good vibes
Can’t say I saw that coming, particularly after Microsoft bought them. Nice to have a surprise be pleasant once in a while.
The most profitable decision for MS is to leave the golden goose alone.
I think they might be anticipating LLMs possibly being able to do a decent job at deobfuscation in the near future. This is an opportunity for Mojang to earn friend points. They might as well take credit for something that is going to happen anyway.
So, what’s the catch? Surely Microsoft and Mojang didn’t just suddenly become good?
Havent they been making changes to help mod/datapack development for a while?
Modding is such a big part of the game, helping it would get more people playing the game
They made “datapack” which is a way of playing with mods without having to use third-party mod loaders like Forge and Fabric but (don’t quote me on this as I’m not a mod developer) it’s not as powerful compare to the mod loaders.
Yup. Mods can change basically EVERYTHING, compared to datapacks being able to change only what mojang wants.
Not sure if it’s just what they want, it’s mostly that Minecraft’s spaghetti code had a lot of things hardcoded. Lately they’ve been changing a lot of things to be data-driven, and able to be changed by datapacks
I wonder how good AI is at deobfuscating code. It seems like the kind of thing it might be good at.
With how bad it is at writing it, I’m guessing similarly bad. It’ll do something, but odds are it introduces a ton of errors that you then have to track down. That’s the best case. Worst case, it just creates something totally different that looks similar to the input but doesn’t do the same thing.
The monkeypaw says they will stop updates for the java edition or release a new version that doesn’t work on the java edition.
They probably see how many sales are generated from the free work done by modders though. If someone wants to come along and do for free the thing you might have to actually pay designers, developers, artists and all the support staff for and they still need to pay you to play it, you’d be foolish not to encourage the exploitation of free labor.
I was thinking the same thing. If the de-obfuscation tools are already out there, it might cost them more money to keep that layer. Their developers also have to use it to read the crash logs and the like from the sounds of it. Less layers = less maintenance = less cost. More mods = keeps the game relevant.
Young generations and mobile players are on bedrock
Everyone else plays Java where you can easily self-host a server
Call me ignorant, if this happened and it brought a new golden era of modding (1.7.10 style) where everyone’s playing the same version I’d be maybe the happiest player ever.
Modders backporting content is nothing new, hell, they even brought the mobs that didn’t make the cut from those stupid mob votes to life.
Let modding become the new updates, fuck it. At this point they’d likely be better realised than Microsoft’s efforts.
Y’all can try and pull it from my cold, dead hands.
I should boot up the ol modpack and see what it do—oh, right, it crashes 🥹
Or a Bethesda style creation club is coming.
They already do that for bedrock.
Complete with microtransactions and a horrible lack of customizability! Seriously I just wanted to play some Minecraft in RTX but you literally can’t use the nVidia RTX stuff outside of the demo maps, otherwise you have to purchase a different texture pack with real money. And basically everything in the Bedrock Marketplace costs real money, and very little is free.
Meanwhile Java edition doesn’t have any paid content in part because the original Minecraft license specified anyone was free to make mods and custom content but were explicitly restricted from charging money for it
If that happens, the modding scene would boom incredibly
And you’d have some smart nerds who take it upon them to keep updating the game much better than Mojang ever could.
It would become open source almost
Luanti eating on their turf.
Whats that?
It’s the platform that used to be MineTest, apparently
Lol no
I doubt microsoft even knows what luanti is
It’s a 20 year old game going into abandonware mode. This is the nicest way for them to do that.
Its 16, not 20, the earliest version “Cave Game Tech Test” was in May 2009.
They’re still actively pushing updates, a really big one is scheduled for the holiday season. Additional biomes and mini-bosses were added last year with structures hinting at development plans for a 4th dimension. The lighting engine is being actively redone.
Minecraft is absolutely not gearing down into abandonware mode.
And they finally added copper items 😂
I would advance: trying to keep the brand alive against the hidden giant of Roblox.
I said basically the same thing and got downvoted for it.
Hopefully the catch is nothing, but you can never be too sure.
I guess it just doesn’t make sense to obfuscate it when mods in general runs the Minecraft community in turn making more profit to Mojang/Microsoft. My other suspicion is potential competition. There is this game called Vintage Story which kinda directly competes with Minecraft seems gaining ground and was built to be moddable from the start.
Exactly. Community bindings do exist and are used over the official bindings already, and I think the source code obfuscation is just an annoyance by now.
I’m not super familiar with Java, but does this mean Java edition is basically source available, or is it still compiled Java bytecode but with proper variable names?
The latter
You can use tools like FernFlower to help turn that bytecode into actual Java.
Indeed - most Java IDEs have FernFlower built in, so it’s dead easy.
Decompiled Java is surprisingly close to the original, especially compared to eg. decompiled C++; good luck with that. You get all the class, function and variable names back on the original line numbers.
What you do not get back is any comments. So you can see what and how, but not why. Admittedly, most comments are kind of useless and do not explain ‘why’ very well, but for weird-but-critical code they can be essential.
Be nice if Minecraft was released on Steam so Linux users didn’t have to emulate an Android device just to play it.
TIL Java works for Linux, as others mentioned I was mainly describing Bedrock as friends/family have already transitioned over to it.
I play the Java edition on Debian with mods from modrinth and don’t require emulation etc.
Are you talking about the Bedrock edition or something? Because there are plenty of Java edition launchers available that even perform better than the Windows version
MultiMC in the house!
The MultiMC dev came out as a raging anti LGBT, right? That’s why it was forked into Prism (hence the name “Prism”)
Man… there’s been a lot of drama in the MC modding scene.
EDIT:
As pointed out, this is wrong. MultiMC was involved in a separate controversy over distribution, and PolyMC had a dev kick most of the main ones out of the repo, and bigotry was involved in the later.
You’re thinking of PolyMC, where one of the devs went on a powertrip and kicked all other devs out. The devs of that then went to make Prism. PolyMC splitting off from MultiMC was a whole other mess.
That’s it, sorry.
Damn… I’m apparently way OOTL. All I knew was that Notch is a shitheel
I think prism launcher is better these days (it’s a fork of multimc but with more stuff)
I’ll give it a look thnx
pretty sure it lets you import all your multimc instances so it’s a pretty easy transfer
Not emulation but It technically run in a virtual machine on all platforms that run MC java
Genuinely curious; why play Bedrock instead of Java Edition when Bedrock is so much trouble on linux? RTX?
EDIT: In hindsight, if this is to play with friends/family stuck on Bedrock, that makes perfect sense. Translation layers might not be as good as I thought.
Users/friends locked onto a platform that doesn’t support Java edition because of Microsoft, notably Mobile phones and game consoles.
Whenever you hear about someone asking about running bedrock, it’s to play with the unlucky saps who have that edition as their only option. Other than that, always play Java.
I thought it was compatible with a translation layer?
…I suppose that’s a big technical hurdle.
I get that. It’s like saying “just install Linux to run this,” but weird thing is OP already runs Linux and understands Android emulation, so I’m assuming their technical proficiency is enough to install a JE mod. Or maybe the mod isn’t as functional as I assume.
It is “compatible” using geyser as a bridge yes, but it causes a lot of headaches for the Java server owner to the benefit of the Bedrock player. Like duping being possible through manipulation of the client on a mobile phone.
Also that is dedicated server only, not P2P or realm compatible, and must be performed by the owner.
Thanks for the info.
But I meant the other way around, eg a Java client connecting to the bedrock ecosystem. Is there no way to do that?
AFAIK no, there have been attempts but in general Bedrock servers are more “tightly integrated” (plain english - restricted from modding and doing things the “unofficial way” compared to stock Mojang binaries) compared to Java servers, which have basically free range to change what they wish.
you can play java on mobile, but the controls do suck there for mobile even with mods that overhaul the controls to improve it
While the marketplace on Bedrock is filled with garbage, it’s does also have some genuinely fun and interesting content that’s not really replicated on Java in my experience.
I’ll call cap for $500, Alex.
All of Java’s modding and mapping history? I think you might be referring to the Bugrock Bootlegs (there are plenty of those lol).
there’s some incredible mods and maps for Java but there’s also a lot of fun content on the marketplace. The Sonic, and Ben 10 DLCs comes to mind, there isn’t anything like that on Java. It’s a difference of someyhing like Minecolonies, a detailed automation mechanic integrated into the survival game vs something like Simburbia, 1:1 recreation of SimCity that exists entirely separate from the survival game. They offer very different kinds of content.
I don’t need advertisement-crossover content in my block game, thanks.
Also Minecolonies has been a Java edition mod long before it became a Bugrock Bootleg, also there is a literal dedicated program to convert actual sim city 2000 saves into Minecraft worlds in Java Edition.
Also, the quantity of Java modding theft is enough for me to say that if the platform was torched overnight, it would be a net benefit for the entire community, no question.
Minecolonies is not the same as Simburbia, they are different kinds of experiences. And the conversion of Simcity saves is not the same as having a functional SimCity clone in Minecraft. And I am not saying everything on Bedrock is good, or that Java is bad, they’re just different. You might not like the crossover DLC, but they’re fun content you don’t really have on Java. You don’t have to go and play Bedrock if you don’t want to, I am just giving a reason why someone might want to.
I like to think that Luanti caused this.