Introduction
Boxed gives each player the same play area and they start within a tiny 2x2 box world border. By completing Advancements they can expand the box.
Compatibility
- Minecraft 1.20.4
- Paper for best performance
- BentoBox 2.0.0
- MyWorlds but not MultiVerse
Warning!!
Boxed requires a lot of RAM and can take up to 10 minutes to boot up for the first time as it pre-generates the worlds. After the initial start, it will start up much quicker. With 12GB of RAM running on a fast ARM-based system, it takes ~ 8 minutes for the first boot. After that first time, it should start up fairly quickly like normal.
If you do not have enough RAM then weird things will happen to you server including strange errors about chunks and things like that. To dedicate enough RAM to your JVM, use the correct flags during startup. Here is my start.sh for running on Paper:
#!/bin/sh
java -Xms12G -Xmx12G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar nogui
In addition to Boxed, be sure to use InvSwitcher and Border otherwise the game will be a bit odd!
Boxed Worlds
Boxed makes two sets of seed worlds and one set of game worlds:
- A base world that contains the geography, caves, water, etc.
- A seed world that applies the custom biomes (from the biomes.yml) file to the base world
Please do not delete these worlds, otherwise boot up will take a long time again. This second world is what is used to create the game world where players play. The area around 0,0 of the seed world is what is copied, and every player has the same area to play in.
Boxed currently supports the overworld and the nether, but not the End.
New Island/Area
Once a new area is made for a player, Boxed will then start to place down vanilla structures, like villages, shipwrecks, pillager outposts, etc. These are placed after the player arrives in their box over a span of time to avoid lagging the server. The templates to set can be found in the structures.yml file. The x and z coordinates are relative to the starting point of the player and the y coordinate is absolute. Admins can edit this file, or use the admin boxadmin place command to place additional vanilla structures/templates. If you do, then the file will be automatically updated so that the next player to make an island will have that structure. If you accidentally place something in the wrong spot, you can either delete the line in the structures.yml file or edit to coordinates manually. In the future, there may be an undo option.
The boxed place command is very similar to the /place command except that it registers the placement and uses it for new players.
Unfortunately, there are some structures that cannot be placed: fortresses, underwater monuments are two of them. I think this is because they use legacy code to place them rather than the more recent templates system. It is possible that a fortress may spontaneously generate in either the seed world or the player's world, but right now, it's not possible to explicitly place one (yet).
Installing
- Install BentoBox
- Place Boxed into your Addons folder
- Add Border and InvSwitcher as well
- Start the server
- Wait for about 8 to 10 minutes for it to pre-generate the worlds! Yes, it will take a while.
- Log in and type /box to start
- Have fun!