FalconFalcon
Docs menuWorlds and dimensions

Administration

Worlds and dimensions

Multiple worlds

A world lives in worlds/<name>/, with its LevelDB in db/. The world in level-name is the main one. Names can be up to 64 characters and cannot contain / \ : * ? " < > | or control characters.

All /world forms need the console:

FormEffect
world listLists loaded worlds, then those only on disk
world create <name> [seed]Creates and loads a world. Without a seed, one is chosen at random
world load <name>Loads a world from disk
world unload <name>Unloads a world
world tp <name> [player]Moves a player to a world

To load worlds at startup:

worlds-autoload=creative,minigames

Plugins can do the same with Server::worlds(), Server::loadWorld(name, create, seed) and Server::unloadWorld(name).

Dimensions

Each world has an Overworld, a Nether and an End, each with its own generator: OverworldGenerator, NetherGenerator and TheEndGenerator.

Nether portals and End portals are implemented, including the End obsidian platform and the End podium. PlayerChangeDimensionEvent lets a plugin change or cancel a crossing.

Flat worlds

The generator type comes from the world's level.dat: Generator set to 2 selects FlatWorldGenerator, with FlatWorldLayers for the layers. No server.properties key selects it, so a flat world is one created elsewhere and copied in.

Moving worlds

Worlds use the Bedrock format. Copy a world folder into worlds/ and load it, or copy one out to use it in the game. Old block states are upgraded when read.

Generation accuracy

Falcon.Server/tools/WorldGenParity.cpp compares generated chunks against Bedrock Dedicated Server. Over 32×32 chunks it measures 99.6% block match on a test seed and 98.1% on seed 42. Structures are in progress.

Ticking areas

/tickingarea keeps areas loaded. Chunks are otherwise ticked within tick-distance of a player.