All Activity
Past hour
-
_LugerT_ joined the community
Today
-
Forge 1.20.1 World Generation Architecture Review — Dynamic Rising Sea Level System
Forge 1.20.1 World Generation Architecture Review — Dynamic Rising Sea Level SystemHello. I am developing a Forge 1.20.1 mod called World FloodEnd. The core mechanic of the mod is a gradually rising global ocean level. Every 5 in-game days the global water level increases by 1 block. Example: Day 0: Sea level Y=63 Day 5: Sea level Y=64 Day 10: Sea level Y=65 ... The main challenge is performance. I do not want to use the common approach: Increase water level | v Scan the entire world | v Place millions of water blocks because this will eventually destroy TPS on large worlds. The goal is to make the rising ocean behave like a world generation parameter, not like a giant block update operation. Intended architectureThe world should have a global value: FloodLevel = current ocean height This value is stored by the mod and increases every 5 Minecraft days. The system is divided into three cases: FloodWorldData | | Current FloodLevel | ┌────────────────┼────────────────┐ | | | v v v New unexplored Loaded chunks Unloaded chunks chunks around players stored on disk World generation FloodManager No processing uses current handles gradual while inactive FloodLevel flooding 1. New unexplored chunksWhen a player travels into unexplored territory, the chunk should already generate with the current ocean level. Example: Day 100 FloodLevel = Y=100 Player travels far away New chunks should generate already matching Y=100 The goal is: Chunk generation | v Current FloodLevel applied | v Chunk appears already flooded Not: Generate chunk | v Place thousands of water blocks afterwards because that causes huge performance spikes. Currently I am investigating the world generation stage. I created a Mixin into: NoiseBasedChunkGenerator.fillFromNoise() Example: @Inject(method = "fillFromNoise", at = @At("HEAD")) private void worldFloodEnd$fillFromNoise( Executor executor, Blender blender, RandomState randomState, StructureManager structureManager, ChunkAccess chunk, CallbackInfoReturnable<CompletableFuture<ChunkAccess>> cir ) { int waterLevel = FloodWorldData.getWaterLevel(); WorldFloodEnd.LOGGER.info( "[WorldFloodEnd] New chunk {} {} | Water Level {}", chunk.getPos().x, chunk.getPos().z, waterLevel ); } However, this is currently only for testing. The idea is not to manually place water inside this method. The intended solution is to make the generator itself use the current FloodLevel. Possible approaches I am considering: dynamically replacing NoiseGeneratorSettings.seaLevel; overriding ChunkGenerator#getSeaLevel() through Mixin; another Forge-supported world generation hook. 2. Already generated and currently loaded chunksThese chunks are handled differently. A separate FloodManager should only work with chunks that are currently loaded around players. Example: Player base area loaded | v FloodManager gradually updates these chunks | v Water level increases smoothly The FloodManager should: process only active chunks; use a limited queue; avoid large TPS spikes; never scan the whole world. The goal is that the player sees the ocean slowly advancing, while the server remains stable. 3. Previously generated but unloaded chunksThis is an important part. I do not want unloaded chunks to be constantly processed. Example: Day 100 FloodLevel = Y=100 Chunk was generated years ago Player leaves Chunk unloads ↓ No background flooding process Later: Player returns ↓ Chunk loads again ↓ Chunk should know the current FloodLevel ↓ It updates to the correct state The world should not require a full scan after every ocean level increase. Desired final behaviorThe complete system should work like this: Every 5 days: FloodLevel +1 | | New chunks: generated with new water height Loaded chunks: FloodManager gradually updates them Unloaded chunks: wait until loaded again, then synchronize Questions for experienced Forge developersI would appreciate feedback on the architecture before continuing development. Is using dynamic NoiseGeneratorSettings.seaLevel the correct approach for making new chunks generate with a higher ocean level? Is NoiseBasedChunkGenerator.fillFromNoise() a good place to hook into, or is there a better generation stage? Would overriding ChunkGenerator#getSeaLevel() with Mixin be safe, or could it create compatibility issues with other world generation mods? What is the recommended Forge approach for unloaded chunks: storing a FloodLevel value in chunk NBT? using capabilities? another chunk lifecycle event? Could this approach interfere with: structures; villages; custom terrain generators; biome generation mods; aquifers? Is the architecture: Generation modification for new chunks + FloodManager for active chunks + state synchronization for unloaded chunks a reasonable way to implement a dynamic rising ocean without destroying server performance? Environment: Minecraft Forge 1.20.1 Java 17 I am not asking for a complete implementation. I mainly want an architecture review from people familiar with Minecraft world generation and Forge internals. Thank you.
-
Malfe23 joined the community
-
God_of_Arise joined the community
Yesterday
-
New Forum Design/Update: Issues and Suggestions
I've tried it, it lost like 75% of the posts.
-
Rianbowpix2 joined the community
Last week
-
cassocool joined the community
-
Carterburritos joined the community
-
nsjessi joined the community
-
When i try to start minecraft forge 1.20.1 an error appears
If you have afterburner, rivatuner or similar programs, just close it. Close also the Minecraft launcher, start the minecraft launcher again and start the game. It worked for me. I hope it's helps
-
ycarriickp joined the community
-
zandey joined the community
-
Minecraft: Hunger Games w/Cad! Game 234 - THE BLUFF!
The 234th episode of Hunger Games on the road to 1000 episodes! Lets see if we can hit that goal! https://www.youtube.com/watch?v=4tQIgj8pBmM
-
Trying to make FTB skies II: Aero work on a server
the server works fine but two dependancies are required, modopedia and guideme. When added individually it works fine and just says that the other is needed by x mod. But when both are added it fails and doesnt make a crash report. i can add any additional details 1.21.1 neoforge appears to be a mixin issue?
-
Best Minecraft hosts in 2026 (from someone who's been running servers since 2012)
Half the "my server is lagging" posts here would be solved in five minutes with a profile. Install spark. Then: /spark tps — MSPT is the number that matters, not TPS. Budget is 50ms a tick. Sitting at 60+ means everyone can feel it. /spark profiler start, let it run while it's bad, /spark profiler stop. You get a link. /spark heapsummary — tells you if it's actually a memory problem or not. Nine times out of ten it's not RAM. It's a few thousand loose items from a broken sorting system, or one guy's Create contraption, or view-distance sitting at 16 because nobody changed it. Drop that to 10 first, it's free. Over-allocating is a real thing too. Give a 10 GB pack 24 GB and the GC just has more to walk through when it finally fires. Longer freezes instead of small hiccups, which feels worse. Rough numbers I actually use: light plugins 3-4 GB, mid-size pack 6-8, ATM10 tier 10-12 and 16 if you can. Java 21, G1GC, Aikar's flags as a starting point. Also worth profiling while things are fine so you've got something to compare against later. Nobody does this including me until it's too late. What's the dumbest thing that turned out to be eating your tick? Mine was a Create contraption running against a wall doing nothing for six weeks.
-
How to change a players selected hotbar slot
is this possible with commands?
- Friend times out when connecting to LAN world
- Friend times out when connecting to LAN world
- Friend times out when connecting to LAN world
- Friend times out when connecting to LAN world
- Game crashed after trying to load world
- Friend times out when connecting to LAN world
-
TileEntity started following Mods stopped showing up and Friend times out when connecting to LAN world
- Need help please! Modded world crashing when i interact with inventory
-
[HELP] Probably a really common error java.lang.IllegalArgumentException:Cannot set property PropertyEnum{name=variant
Helpful. What mods did you remove?
-
Friend times out when connecting to LAN world
Forge Minecraft 1.20.1 PrismLauncher Hello, I added a few new mods (More Axolotl Variants, MAV API, AllTheTrims, Cushion Backport, Macaw's Paintings and Ferdinands Flowers) to my instance, and updated the mods on my friend's machine too. Before this update, my friend would sometimes take too long to connect and then disconnect, only for it to work fine the second or third time he tried. Now when joining he times out every single time (with just the message 'Disconnected.) I tried allowing "-Dfml.readTimeout=600" on both machines in the Java arguments and made sure Minecraft wasn't blocked by the firewall, but I'm still running into the same issue. Is there a way to keep my friend from timing out? I believe this is happening because the world has gotten too large for his machine to handle. My Prism log: https://mclo.gs/hMpOJAf His Prism log: https://mclo.gs/7fjYqMQ
Earlier
-
Mods stopped showing up
Forge requires Forge mods to work, NeoForge is not the same
- Need help with crashing modded minecraft server (Please)
-
Mods stopped showing up
Even though I changed nothing the mods no longer show up on the list and oddly enough out of all the mods (fantasyfurniture-21.11.1 missing_blocks-2.0.0-neoforge-1.21.8 OptiFine_1.21.11_HD_U_J9 refurbished_furniture-neoforge-1.21.11-1.0.23 supplementaries-neoforge-1.21.1-3.8.2 worldedit-mod-7.4.2) only optifine works despite not even being on the mods list, im using forge-1.21.11-61.1.0 (not app)
- Game crashed after trying to load world
- Game crashed after trying to load world
- Game crashed after trying to load world
- Game crashed after trying to load world
-
Game crashed after trying to load world
okey so i update the mods of the modpack you send me and first launch didn't work bcs it needed the higher version of neoforge so i update it and game launched but world didn't load up and crash for a create with not updated modpack it will needed to update some mods to make it work even i install the mod automatically didn't work
- Game crashed after trying to load world