This guide currently only covers per-world configuration in
about general configuration will be added in the future. In the meantime, please refer to the
information in the 1.19 announcement forum post.
Per World Configuration
One of the most powerful yet least understood features of the Paper configuration is setting
configuration options per world. While you can not override every config option per world,
everything stored within
paper-world-defaults.yml can be.
Paper sets no per-world overrides out of the box, storing all default values in
config/paper-world-defaults.yml. Everything in this file can be overridden per world but isn't by
default. Changing something in
paper-world-defaults.yml will change the value for all worlds where
you have not manually overridden it.
Per World Values
To set a value for a specific world, edit
paper-world.yml within the world folder. For example, if
you wanted to disable
spawn.keep-spawn-loaded for a world named
resource, you would edit
paper-world.yml within the
resource folder like so:
_version is set in
paper-world.yml configuration files by default. In order to
override the default for an option, you must manually add it by copying from
All configuration not explicitly defined for a world is inherited from
This means that there is no need to repeat yourself between the
paper-world-defaults.yml and each
paper-world.yml. You do not need to and should not copy the entire
paper-world-default.yml file into each
paper-world.yml file you want to modify. Only copy the
exact value you want to change.
For a more complex real-world example: setting both different
in two worlds.
This example demonstrates the concept of inheritance. For each world, this is the effective configuration which will be applied:
world_the_end/paper-world.yml was never modified. Because of this, it inherits all the
configuration options from
only disabled in
resource_world/paper-world.yml because in
keep-spawn-loaded is set to