Issue exporting Arnis map — chunks missing on server
Hello,
Briefly: I generated a map in Arnis — locally, after flying it the .mca (region) files appear and everything looks correct, but when I copy the world folder to a remote server (Paper/Spigot + Multiverse) the world is empty: only areas that were rendered locally show up, the rest is not generated and there are no corresponding .mca files on the server.
Could you please confirm whether Arnis has an option to export a fully pre-generated world or a CLI/headless mode to generate all chunks before export; whether Arnis stores chunks in a separate cache/format that needs to be exported differently; and whether there are any known compatibility issues with Paper/Spigot + Multiverse? Thank you,
Hi there, thanks for the report! I think this could be due to some differences in how Arnis manually creates the region files. The vanilla Minecraft client is capable of detecting and fixing those little anomalies, while e.g. some minimap mods or, I assume, also Paper / Spigot can't deal with those little differences and just generate the normal terrain instead. We intend to fix all those errors to ensure maximum compatibility. You might be successful with compiling the main branch by yourself since it has some fixes which aren't included in a release yet.
Could you check if you can find any errors in the server logs? This would help us to fix the problem. Thanks a lot! :)
I also have found this issue. I am also using Paper and Multiverse. I was able to get the world to load on the server if I ran "Optimize World" in the client before copying the world over to the server. I still have issues with unrendered areas, which I could fix by flying along those areas in the client and reuploading the mca file for the area. I did enter the world on the client before uploading it, so I am wondering if these areas were chunks along the edge of where I was exploring. Dynmap is the only thing that has given an error. While rendering the map, it would throw an arithmetic error (divide by 0), presumably when rendering a chunk that was not previously loaded.
[15:10:16 WARN]: java.lang.ArithmeticException: / by zero
[15:10:16 WARN]: at Dynmap-3.7-beta-10-spigot.jar//org.dynmap.common.chunk.GenericMapChunkCache.parseChunkFromNBT(GenericMapChunkCache.java:1290)
[15:10:16 WARN]: at java.base/java.util.Optional.map(Optional.java:260)
[15:10:16 WARN]: at Dynmap-3.7-beta-10-spigot.jar//org.dynmap.bukkit.helper.v121_6.MapChunkCache121_6.lambda$loadChunkAsync$2(MapChunkCache121_6.java:66)
[15:10:16 WARN]: at Dynmap-3.7-beta-10-spigot.jar//org.dynmap.common.chunk.GenericMapChunkCache.lambda$readChunksAsync$5(GenericMapChunkCache.java:1004)
[15:10:16 WARN]: at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
[15:10:16 WARN]: at Dynmap-3.7-beta-10-spigot.jar//org.dynmap.common.chunk.GenericMapChunkCache.readChunksAsync(GenericMapChunkCache.java:1002)
[15:10:16 WARN]: at Dynmap-3.7-beta-10-spigot.jar//org.dynmap.common.chunk.GenericMapChunkCache.loadChunksAsync(GenericMapChunkCache.java:864)
[15:10:16 WARN]: at Dynmap-3.7-beta-10-spigot.jar//org.dynmap.bukkit.DynmapPlugin$BukkitServer.createMapChunkCache(DynmapPlugin.java:574)
[15:10:16 WARN]: at Dynmap-3.7-beta-10-spigot.jar//org.dynmap.MapManager$FullWorldRenderState.processTile(MapManager.java:769)
[15:10:16 WARN]: at Dynmap-3.7-beta-10-spigot.jar//org.dynmap.MapManager$FullWorldRenderState.run(MapManager.java:728)
[15:10:16 WARN]: at Dynmap-3.7-beta-10-spigot.jar//org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$1.run(MapManager.java:234)
[15:10:16 WARN]: at Dynmap-3.7-beta-10-spigot.jar//org.dynmap.MapManager$DynmapScheduledThreadPoolExecutor$2.run(MapManager.java:252)
[15:10:16 WARN]: at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
[15:10:16 WARN]: at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
[15:10:16 WARN]: at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
[15:10:16 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[15:10:16 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[15:10:16 WARN]: at java.base/java.lang.Thread.run(Thread.java:1583)
Here's a quick link to that first line. It looks something to do with Blockstates.data being set but empty. This could be a completely different issue since the world loads better after optimization. I can move this part of my comment to new issue if you want.
I will try out the master branch as you suggested.
I tried the master branch and did not get a different result.
- Built a release version so I could use the GUI
- Selected a portion of Titusville, FL
- Uploaded directly to the server and imported into multiverse (did not open in client or optimize)
- Ran a dynmap full render and it was able to render blocks that I had not visited on the server.
- I compared the mca files using NBT Explorer before and after loading the world on the server and there was a major difference in structure, as shown below.
The old section data is what I expect for the first file and chunk. The section data after the server loads it is 100% air, so it seems that Paper is just ignoring the sections from Arnis.
Hi!
I wanted to check if the issue with exporting the map in Arnis has been resolved, where some chunks are not generating on the server? If you generate a large map with dimensions of 20,000 by 20,000 blocks, it takes around 5 days for it to fully load locally. Is there any way to solve this using third-party tools or software?
I’d appreciate any advice or updates on this issue!
Thanks!
Hi there, sorry for the late response. This issue is quite complex, however you could try running —forceupgrade on the PaperMC server? Also, you might want to try it with the new release that will come within the next few days.
Tested and it did not work still.
- Created map on Windows with the latest version of Arnis. Did not open in client.
- Created fresh folder for server - no plugins to rule those out.
- Copied map over and ensured the name was the same in server.properties
- Started server with
java -Xmx4G -Xms4G -jar paper-1.21.10-117.jar --forceUpgrade - Once the upgrade was done, I logged in and the generated area is still empty
I did look at the spigot/paper code a while back and I didn't see anything concerning maps, so I am unsure what would be causing an issue.