DUXPLIMA Documentation

Worlds

Create, import, load and delete worlds, tune their rules, and gate them behind a permission or a fee.

/worlds is a full multi-world manager: create a world, import one that is already on disk, load and unload it, tune its properties and gamerules, set its spawn, and move players into it, without editing bukkit.yml or restarting. The bare command opens the world list, and picking a world opens its editor.

Module worlds · enabled by default · modules/worlds/config.conf

Commands

CommandWhat it doesPermission
/worldsManage worlds: create, import, load, unload, unregister, delete, list, info, spawn, tp, gui, pregen, backup, backups, restore, restoreconfirm.uxmessentials.world.use

Permissions

NodeDefaultGrants
uxmessentials.module.worldsopHot-reload / inspect the worlds module (world creation, properties and access).
uxmessentials.world.<world>opEnter one world that is configured as restricted.
uxmessentials.world.access.bypassopEnter a restricted world without holding that world's own entry node.
uxmessentials.world.backupop/world backup <name>: snapshot a world's folder.
uxmessentials.world.createop/world create <name>: generate and register a new world.
uxmessentials.world.deleteop/world delete <name>: unregister a world and delete its folder from disk.
uxmessentials.world.gamemode.bypassopKeep your own game mode in a world that forces one on entry.
uxmessentials.world.gameruleop/world gamerule <name> <rule> <value>: change one gamerule on a world.
uxmessentials.world.guiop/world: open the world management GUI.
uxmessentials.world.importop/world import <folder>: adopt an existing world folder into the registry.
uxmessentials.world.infoop/world info <name>: read one world's generator, properties, gamerules and spawn.
uxmessentials.world.listop/world list: list every registered world with its load state and player count.
uxmessentials.world.loadop/world load <name>: load a registered world that is currently unloaded.
uxmessentials.world.pregenop/world pregen <name> <radius>: pre-generate a world's chunks in the background.
uxmessentials.world.restoreop/world restore <name> <backup>: restore a world from one of its snapshots.
uxmessentials.world.setop/world set <name> <property> <value>: change a world property such as difficulty or PvP.
uxmessentials.world.setspawnop/world setspawn [name]: set a world's spawn point to where you are standing.
uxmessentials.world.spawneveryone/worlds spawn to teleport to a world's spawn (subject to per-world access rules).
uxmessentials.world.tpop/world tp <name>: teleport yourself to a world's spawn.
uxmessentials.world.tp.othersop/world tp <name> <player>: teleport somebody else to a world's spawn.
uxmessentials.world.unloadop/world unload <name>: unload a loaded world, moving anybody inside to spawn.
uxmessentials.world.unregisterop/world unregister <name>: drop a world from the registry, leaving its folder on disk.
uxmessentials.world.voidrescue.exemptoffKeep falling in a world that catches players out of the void.

Settings

KeyDefaultWhat it does
auto-adopt-loadedtrueOn enable, take every already-loaded server world (the vanilla world/world_nether/world_the_end) under management so it appears in /worlds list and is fully manageable.
auto-load-registeredtrueOn enable, load every registered world flagged auto_load that is not yet loaded.
protect-default-worldtrueRefuse to unload or delete the server's primary world.
delete-confirm-timeout"30s"How long a staged /worlds delete confirmation stays valid before it must be re-requested.
defaults.environment"NORMAL"Defaults applied to a newly created world when the operator omits the option.
defaults.world-type"NORMAL"Defaults applied to a newly created world when the operator omits the option.
defaults.generate-structurestrueDefaults applied to a newly created world when the operator omits the option.
settings.defaults.pvptrueDefault per-world settings.
settings.defaults.difficulty"NORMAL"Default per-world settings.
settings.defaults.force-gamemode"NONE"Default per-world settings.
settings.defaults.spawn-animalstrueDefault per-world settings.
settings.defaults.spawn-monsterstrueDefault per-world settings.
generators.void.biome"plains"
generators.flat.biome"plains"Built-in generators.
generators.flat.layers["minecraft:bedrock 1", "minecraft:dirt 3", "minecraft:grass_block 1"]Bottom -> top, each "<blockId> <height>". Default = Classic Flat (bedrock, 3x dirt, grass).
access.redirect-on-restricted-jointrueWorld access control.
pregen.max-radius200World pre-generation.
pregen.max-concurrent-chunks10World pre-generation.
pregen.tick-period-ticks1World pre-generation.
backup.directory"backups/worlds"World backups.
backup.retention-count10World backups.
auto-unload.enabledfalseIdle world auto-unload (opt-in).
auto-unload.idle-minutes30Idle world auto-unload (opt-in).
auto-unload.sweep-interval-seconds60Idle world auto-unload (opt-in).
auto-unload.excluded-worlds[]Idle world auto-unload (opt-in).

Placeholders

PlaceholderRenders
%uxmessentials_worlds_default%The name of the default world.
%uxmessentials_worlds_default_players%How many players are in the default world.
%uxmessentials_worlds_loaded_count%How many worlds are loaded right now.
%uxmessentials_worlds_managed_count%How many worlds the plugin's registry holds.

Notes

  • /worlds manages, /world reports. The plural command is this module; the singular one is a player-state info command that names the world you are standing in.

  • import registers a folder in place, regenerating nothing, which is how a downloaded map or a world from another plugin joins the roster. /uxmess import multiverse does the whole Multiverse-Core registry at once.

  • Two generators ship beyond the vanilla types: void for an empty world and flat for a superflat one.

  • The default world can use them too. /world create is the usual way in, but the world the server starts with is made before any command can run, so it is configured in bukkit.yml instead:

    worlds:
      world:
        generator: uxmEssentials:void
    

    This works from 0.8.3 on. Earlier versions logged Plugin 'uxmEssentials' is not enabled yet (is it load:STARTUP?) and generated normal terrain, because the server builds the default world before the plugin had enabled. If the worlds module is off, or the id after the colon is not void or flat, the world still generates as normal terrain and the reason is now written to the log.

    One consequence is worth planning for: a world pointed at our generator falls back to whatever server.properties describes if the plugin ever fails to enable. Keep level-type and the rest of that file set to something you would accept seeing, because that is the world your players land in on a bad boot.

  • Access is not automatic. The access block gates a world behind a permission and can charge an entry fee through the economy, which is how a paid event map or a premium world is built with no extra plugin.

  • A world can catch players who fall out of it. Set void-rescue on a world and anybody who drops into the void there is moved instead of dying. The value is an ordered list of steps separated by ;, and the first one that resolves wins:

    StepSends the player to
    spawnthe spawn /spawn would use for that world
    warp:<name>a server warp
    at:<world>,<x>,<y>,<z>exact coordinates, optionally ,<yaw>,<pitch>
    /worlds set lobby void-rescue spawn
    /worlds set event void-rescue warp:arena;spawn
    /worlds set parkour void-rescue at:parkour,0.5,80,0.5,180,0
    

    By default the catch happens when the void starts hurting the player. Set void-rescue-y as well to catch them earlier, at a height of your choosing (/worlds set lobby void-rescue-y -10), so they never see the bottom of the fall. Clear either setting by passing an empty value. Spectators are never moved, nor is anybody holding uxmessentials.world.voidrescue.exempt. If the destination is itself in the void the rescue would loop, so after three rescues in ten seconds the player is left to fall and a warning is written to the console.

  • Portals wire worlds together so players walk between them instead of typing a command; a portal honours the same access gate and fee. It also honours the server's own policy: with allow-nether or allow-end off in server.properties, that portal is refused before any configured link is looked at.

  • Deleting and restoring are two-step. Both ask for a confirm command, so a live world cannot be lost to a mistyped name. Snapshots land in backup.directory and are pruned to backup.retention-count.

  • Pre-generation is paced, not blocking. pregen <name> <radius> walks the world outward under max-concurrent-chunks and tick-period-ticks, and pregen cancel stops it.

  • Auto-unload is off by default. Switched on, a world with no players is unloaded after idle-minutes, skipping anything in excluded-worlds.

Related: Teleport, Regions, Menus