What is this?
Not much. This is a test I use to experiment with the latest version of Neoforge. Made in the perspective of the mod Modern Industrialization moving from Fabric to Neoforge.
For the time being it will be just a collection of mods that work on the latest Neoforge version. The previous version on 1.20.4 was stalled in April due to a non deterministic recipe loading bug no one cared to fix and, because not deterministic, impossible to troubleshoot through some stupid binary search... Now I restart on 1.21 and see if it goes any better.
Since I enjoy maintaining my own version locally and update mods as they come out, I thought I could share it. Make of it whatever you feel like.
Everything will be in a constant flux, with mods being added or disappearing, depending on how things evolve. I do try to keep the useless bloat out.
The modpack currently loads automatically Terralith and Nullscape (dev discord saying Incendium will take at least another month). Overworld worldgen unites Terralith with Biomes O' Plenty, through Terrablender. It won't be flawless but should be fine. I still have no sane way of loading datapacks to mess with some internal things, since open-loader hasn't yet updated to 1.21.
Already in: Modern Industrialization - Mekanism - AE2 - Xycraft - Pipez
(beware the inclusion of Tough as Nails & Serene Seasons, or remember to delete the mods from the folder in case you prefer not having them...)
There are no quests, no edited recipes, no progression, for obvious reasons: the mods providing supports for these features are not yet available.
I've split this away from my Gregorian Nightmares project to avoid adding to download counts and keep it cleaner. If and when I'll be able to port recipes as well, Gregorian Anagogy will merge back into the main project.
CurseForge Reward Program is disabled, same as my main project. You can use this any way you want, free to modify, redistribute, whatever. As long it doesn't come back to me negatively.
Let's get POLITICAL, shall we? (written at the time of 1.20.4 coming out, still roughly valid)
Well, not really, you all know there was a recent split between Forge and Neoforge. While the real reasons are of a "personal" nature, they translate directly to be instead rather technical and practical. This year, through the next months, there will be a push from major devs to move back, once again, to a single mod loader. Some well known and important mods like AE2, KubeJS, and Modern Industrialization to a lesser extent, will drop Fabric and support Neoforge only. There are rumors saying that eventually someone will backport them to other loaders, but I don't see this option becoming reliable and long term.
All this happens within a rather gloomy context because the whole modded Minecraft space is seeing a slow but constant decline in the last couple of years. Most people think it's just normal, Minecraft always had its ebbs and flows. But while the community loves to breed angst and splinter further in smaller and smaller tribes hating on each other, I think in the overall context it can only be a good thing to at least try and gather around a common space like a single mod loader. There's a moment where the priority is to create safe spaces, but it's not a strategy that can be repeated forever (the "Tom Bombadil dilemma").
Quite surprisingly, this decline hit Fabric harder than Forge. Usually it's Fabric to version-chase and immediately drop support for previous versions. Forge had its own long-term support in 1.18, but the community happily ignored it and, for the first time, moved all together on 1.20.1, where you can now see a surge of activity rather than a decline. For the first time Forge was faster to embrace a new version and set a playable ecosystem. And for the first time again, Fabric lost its performance primacy, due to the blessed, dutiful work of Embeddedt, who not only made a good port of Sodium for Forge, caring about compatibility, but also kept support active across as many versions as possible, and so erasing the major fault with Sodium with its "fire and forget" releases where bugfix and improvements could only be found on the most recent version no one actually played (with exceptions, see below). Fabric not only couldn't move further than Forge this time, but also lost all its advantages and major pieces along the way. Many mods were not updated, and some major mods are currently broken or incompatible, like the whole situation around Sodium and Create. No one could expect everything to crumble all at once, so quickly. But in a certain way it will help the transition being more widely adopted.
KubeJS that we need in modpacks, at the very least, to structure recipes and progression, is dropping Fabric and going Neoforge only. Current target is 1.20.5. We don't know when, this part depends on Mojang. But nonetheless it is very likely that the Forge Happy Garden won't abandon what they have in 1.20.1, until 1.21 materializes. If 1.21 comes around roughly at the same time of 1.20 last year, then add a few months from there before all the big mods start moving for real. Putting all this together seems to indicate that that NeoForge/1.21 will become a viable thing only starting from September, onward. It's still a while before then.
Obviously this is not the death of Fabric. There's still that giant group of vanilla players who just need a lean loader and a few performance mods to have their fun.
The move toward a single modloader could be successful or fail spectacularly, we just don't know at this point. But the objective is worthwhile: uniting Fabric performance with the wide support and features set of Forge, with all major mods in the same space.
This is my page, everything you read here is my own opinion... But also not. This is a summary of everything I read every night & day across a large number of discords and comments between devs. I have no preferences and what I say simply follows motivations that make sense. I didn't make choices, I only related on what I observed. But it's just my limited perspective. I don't hold all the pieces to this puzzle. While what I say seems logical and necessary, following from the premises I've described, yet there may always be some blind spot that sends things spinning in a different direction.
And so we take the ride and go around, again.
“You know what it felt like?” Marnak slipped off his cap, scrubbed vigorously at his scalp with the nails of a half-clenched fist. “You remember those round-and-round-about machines the Kiriath put into the tea gardens at Ynval? The ones with the wooden horses?”
“Yeah. Been on them a couple of times.”
“Yeah, well, you know what it’s like when the ride’s finished, then. Everything comes to a halt, you’re sitting there, getting used to the whole world not spinning around you, and you’ve got a whole new set of people, mostly kids, all swarming to get on. You don’t know whether you want to give up your seat or not, and then it suddenly hits you.” He slipped his cap back on again, shot Egar a sidelong glance. “You realize you don’t want to go around again. In fact, you’re not even fucking sure anymore whether you really enjoyed it the first time around.”
Richard Morgan - The Steel Remains
The Bleeding Edge - Java 21 (updated on March 27 2024)
While Java 22 is out and working well in my Gregorian Nightmares main modpack on 1.19/Fabric, it seems currently incompatible with Neoforge. Java 21, as detailed here, still works normally.
Up to this point I was using "enterprise" editions from the Oracle distribution but due to their more delayed releases I'm currently using the regular versions. The new Java version supports ZGC natively, and that's what I'm going to use.
Official Oracle Java 21 is out, this is a direct link for Windows (notice that this link gets updated every few months, latest is 21.0.2+13, released January 15, 2024): https://download.oracle.com/graalvm/21/latest/graalvm-jdk-21_windows-x64_bin.zip
Other versions here (make sure it's "GraalVM for JDK 21"): https://www.oracle.com/java/technologies/downloads/#graalvmjava21
Development ongoing releases are instead here: https://github.com/graalvm/graalvm-ce-dev-builds/releases
Older versions from Oracle: https://www.oracle.com/downloads/graalvm-downloads.html
Using these specific flags to enable ZGC:
-XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:+ZGenerational -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+UseStringDeduplication -XX:-OmitStackTraceInFastThrow -XX:+OptimizeStringConcat -Xlog:gc+init
Set both min and max memory to 8192 MiB.
When updating the Java version in a launcher like Prism remember to also enable the option "skip Java compatibility checks." Otherwise you'll be limited to Java 17 and it will refuse to launch.