ConquestWorldEdit
Building a server this size means moving millions of blocks. FastAsyncWorldEdit targets Paper, so I took a community Fabric fork and rebuilt the parts that touch the world.
1.1 million blocks per second
- Role
- Port and maintenance
- Status
- Private
- Built with
-
- Java
- Fabric
- FAWE
- Gradle
What I changed
- Chunk reads and section building run on FAWE's worker threads. Every change to the world is committed on the server thread, one chunk at a time.
- Lighting is batched through the vanilla light engine, and block states map to compact tables with their light, POI and block-entity data precomputed.
- Undo and rollback restore blocks exactly, including leaves, which stay persistent when placed by an edit.
Results
- Around 1.1 million blocks per second while server ticks stay under 30 ms.
- A test mod boots a real dedicated server and runs 31 end-to-end checks, then shuts down. All of them pass.
- goBrush, VoxelSniper and goPaint are ported on top of it, each with its own test harness.
Worth knowing
FAWE's thread pools weren't daemon threads, so on Fabric the JVM never exited after /stop. One flag, a lot of confused restarts.