Commands

World tools

modules/world.yml

Command Permission
/world [name] chorus.world.go
/time <when> [world|all] chorus.world.time
/weather <clear|rain|storm> [minutes] [world] chorus.world.weather
/locate <name> chorus.world.locate
/spawnmob <mob> [amount] [player] chorus.world.spawnmob
/sweep [what] [radius] chorus.world.sweep
/tree <kind> chorus.world.tree
/spawner <mob> [delay] chorus.world.spawner
/unlimited [list|clear] chorus.world.unlimited

/world#

With no name, lists the worlds with their kind and how many players are in each.

world:
  per-world-permission: false

On, each world also needs chorus.world.go.<name>, lower case — which is how a creative or event world stays shut without a second plugin.

lp group builder permission set chorus.world.go.creative

This plugin does not create or load worlds. It travels between the ones the server already has.

/time#

Accepts day, noon, dusk, night, midnight, dawn or a number of ticks.

It always moves forwards to the next time it will be, so asking for morning in the afternoon does not wind the day back under everything that counts from it.

/time night
/time 6000
/time day all        every world at once

/weather#

/weather clear
/weather storm 30 world_nether

The minutes are how long it lasts.

/locate#

Finds the nearest structure or biome and prints where it is.

/locate <name>                  looks for a structure, then a biome
/locate structure <name>
/locate biome <name>

With no keyword it tries a structure first and falls back to a biome, so /locate village and /locate jungle both work without knowing which is which.

The answer is clickable. The line hovers with the world and the exact coordinates, and clicking it teleports the player there. The click is only attached for somebody holding chorus.staff.tppos, since that is the command behind it; everybody else gets the hover without the click.

It takes over the vanilla /locate. The vanilla one is still reachable as /minecraft:locate, the same as every other name this plugin claims — see Aliases.

world:
  # How far /locate looks, in chunks.
  locate-radius-chunks: 100

  # true looks for structures nobody has been to yet, which is what the vanilla command
  # does and is far more expensive. Biomes are not affected.
  locate-unexplored: false

A structure search is counted in chunks and a biome search in blocks. The setting is converted for the biome one, so both look equally far.

locate-unexplored: true means the server has to generate chunks nobody has visited before it can answer. On a busy server that is the setting to leave alone.

The command ships with a ten second cooldown for that reason. It is a per-command rule like any other, so raise or drop it in modules/world.yml — see Per-command rules.

/spawnmob#

world:
  spawnmob-limit: 20

Puts mobs where you are looking, or where somebody is standing:

/spawnmob cow 5
/spawnmob zombie 1 Notch

On somebody else it needs chorus.world.spawnmob.others.

/sweep#

Clears entities out. The word can be a group or the name of one kind of mob:

/sweep drops 50        loose items within fifty blocks
/sweep monsters        every monster in this world
/sweep zombie 30       just the zombies nearby

The groups:

drops        experience   arrows       boats        minecarts
vehicles     monsters     animals      ambient      tamed
named        villagers    armourstands frames       paintings
mobs         all
Group What it catches
drops Loose items. The one worth running on a timer.
mobs Monsters, animals, ambient and water mobs — but not tamed ones.
all Everything that can be spawned, which is not everything that can be built.

A player is never swept. all leaves out armour stands, paintings, item frames and villagers — the things a server builds rather than spawns. Each of those has to be named before it goes.

tamed and named are the opposite case: they catch what the other groups deliberately skip, for when you actually do want to clear them.

Without a radius it takes the whole world, which is the version that asks to be run twice.

Auto-sweep#

world:
  auto-sweep:
    enabled: false
    minutes: 15
    warn-seconds: 30
    target: drops
    worlds: []

Clears the ground on a timer, with a warning first. The one piece of housekeeping every busy server ends up asking somebody to do by hand.

Key What it does
minutes How often it runs.
warn-seconds How long before it happens everybody is told. 0 clears without warning.
target Any of the groups /sweep accepts. drops is the one worth running on a timer.
worlds Empty for every world, or name the ones to clear.

/tree#

Grows one where you are looking. The kinds come from the server, so a version that adds one offers it.

/spawner#

Changes what the spawner under your cursor makes, and optionally its delay.

/spawner zombie
/spawner blaze 200

/unlimited#

Marks the held block so placing it never uses it up, per material.

/unlimited             toggles the block you are holding
/unlimited list        what is marked
/unlimited clear       forget them all

The list goes when you log out. It is a building tool, not a permission.

Config reference#

enabled: true

world:
  per-world-permission: false
  spawnmob-limit: 20
  locate-radius-chunks: 100
  locate-unexplored: false
  auto-sweep:
    enabled: false
    minutes: 15
    warn-seconds: 30
    target: drops
    worlds: []

commands:
  defaults: ...
  world: ...
  time: ...
  weather: ...
  locate: ...
  spawnmob: ...
  sweep: ...
  tree: ...
  spawner: ...
  unlimited: ...

Permissions#

Permission Effect
chorus.world.go /world
chorus.world.go.<name> Required per world when per-world-permission is on
chorus.world.time /time
chorus.world.weather /weather
chorus.world.locate /locate
chorus.world.spawnmob / .others /spawnmob
chorus.world.sweep /sweep
chorus.world.tree /tree
chorus.world.spawner /spawner
chorus.world.unlimited /unlimited

There are [Time], [Weather] and [Spawnmob] service signs too — see Utility, signs and powertools.

On Folia#

A whole-world /sweep is spread over regions rather than run in one pass: chunk by chunk, each on the thread that owns it, with the totals added up as the answers come back. On an ordinary server that changes nothing; on a busy Folia server it is the difference between a hitch and none. See Folia.

/locate reaches past the region the player is standing in, which Folia is entitled to refuse. When it does, the player gets a plain message saying so rather than a stack trace in the console.