Teleport and Fill¶
Quick Start: Spice it up with twists.
Teleport players and fill cuboids across dimensions. The one-line forms live in the cheatsheet.
Teleport¶
| Tag | Meaning |
|---|---|
<pteleport:player,loc> |
Teleport one online player, empty. |
<rteleport:role,loc> |
Teleport every member of a role (ALL covers both), empty. |
<gteleport:loc> |
Teleport every hunter and speedrunner, empty. |
Locations are [x, y, z, world] or [x, y, z, world, pitch, yaw], pitch before yaw; the world is mandatory.
<pteleport:Alex,[100,64,-30,world]> teleports one online player,
<rteleport:hunter,[100,64,-30,world]> teleports every member of the
named role (ALL covers hunters and speedrunners), and
<gteleport:[100,64,-30,world]> teleports every hunter and
speedrunner in the match. All three leave nothing behind. The
location is [x, y, z, world] or
[x, y, z, world, pitch, yaw], pitch before yaw, the same shape
<plocation> prints, so its output feeds straight back in for an
exact teleport (position and view both copy). The
world is mandatory: a raw name, or nether and end for those
dimensions. Behind <pghost.enter> and the <display.*> tags the
end alias resolves match-scoped: the executing match's End-cell
world wins when the match has one, else the first End world, so
pooled cells round-trip. Everywhere else the bare aliases read the
first world of that environment. Pitch and yaw come as a pair
or not at all; without them each player keeps their current view.
Offline players, unknown
worlds, and malformed locations warn and move nothing. Spectators
never move on <gteleport> (their holds and watch spawns stay
intact); name them with <pteleport> when that is really wanted.
Fill¶
| Tag | Meaning |
|---|---|
<fill:world,pos1,pos2,material,mode> |
Fill a cuboid, empty (set, or replace_non_block with WorldEdit). |
<fill:world,pos1,pos2,material,mode,hollow> |
Fill the cuboid shell only, leaving the interior untouched. |
<replace:world,pos1,pos2,source,target> |
Replace source with target in a cuboid, empty. |
<fill:world,[0,60,0],[2,62,2],lava,set> fills one cuboid in
the named world and leaves nothing behind. The world is a raw name
or the nether and end aliases, the same refs <pworld> prints,
so <fill:<pworld:<p>>,...> fills where the player stands.
Corners are [x, y, z] lists of whole numbers in any order; the
material takes any Material name (lava, minecraft:lava,
LAVA); the mode is set or replace_non_block, case-blind.
set fills every block in the cuboid, while replace_non_block
only touches blocks that are not full cubes, so dirt and ores
survive a lava floor but doors, slabs, stairs, water, and air do
not. The masked mode needs WorldEdit or FastAsyncWorldEdit:
without either, the tag warns once per modifier and fills with
set instead, since per-block masking outside those plugins
would be too laggy. If the installed build lacks the mask class
(some FAWE builds), the tag warns once per modifier and runs a
native unmasked set through the same API instead. An optional sixth
hollow fills the shell only (floor, roof, and four walls), which
builds a cage in one fill instead of a cuboid plus an air carve-out;
it composes with both modes, so a masked hollow cage leaves terrain
and the interior alone. <replace> has no hollow form: its source
mask already scopes edits to one material, which covers the thaw
pattern (packed_ice to air) by construction.
When a WorldEdit-compatible plugin is installed it serves cuboids up to 500000 blocks through the API with no permissions or selections needed; larger cuboids shrink evenly, centered, down to the 32768 direct-fill limit and run through an in-house block loop instead. Without one every fill takes the direct path with the same shrink. The active path logs once per match. Unknown materials, out-of-world coords, unloaded corners, and malformed args all warn and fill nothing. Unknown worlds warn naming the ref. The tag carries its own world, so it works in any list, console included.
<replace:world,[0,60,0],[2,62,2],air,water> swaps one material
for another across a cuboid and leaves nothing behind. It takes
the same world and corner shapes as <fill>, plus a source and
a target Material name. Unlike the masked fill mode, the source
match runs natively on both paths: WorldEdit masks on the source
block through the API, and the direct loop compares block types,
so a build without the mask class falls back to the direct loop
instead of an unmasked set. Caps, shrinking, path logging, and
warnings mirror <fill> (500000 through WorldEdit, 32768
direct, once per match).
Drops¶
| Tag | Meaning |
|---|---|
<dropitem:location,item,cooldown> |
Spawn an item drop, empty on success and null on failure. |
<dropitem:[100,64,-30,world,0,0],[diamond, 3],2> spawns three
diamonds that become pickuppable after 2 seconds. Success yields
empty; failure yields null (skipped with a diagnostic). The
location is a located 6-element point [x, y, z, world, pitch,
yaw], the same shape <plocation> prints, so its output feeds
straight back in; pitch and yaw are ignored. The payload is one
[material, qty] pair or a nested list of pairs, one drop per
pair; unknown materials warn and skip, and a payload with zero
valid pairs spawns nothing but still succeeds. The cooldown is
seconds before pickup, default 0.5; negative or non-numeric
values warn and spawn nothing. Mid-air drops fall like any drop.
Unknown worlds and unloaded chunks warn and spawn nothing: drops
never force a chunk load. The tag carries its own world, so it
works in any list, console included.
Summon¶
| Tag | Meaning |
|---|---|
<summon:loc,mob,data?> |
Spawn a mob with JMH summon data, empty on success and null on failure. |
<summon:~ ~1 ~,<random-mob>> spawns a random mob one block above
each player-list executor. The loc is a located 6-element point
(the <plocation> shape; pitch and yaw are ignored), a 3-element
triple, or bare x y z with spaces or commas. Tildes offset the
executor (~ ~1 ~), and carets offset the executor view (^ ^5 ^
is five up): relative coords need a player-list executor, while
bare absolute coords in console lists land in the main world.
Unknown worlds and unloaded chunks warn and spawn nothing.
The mob is a raw type (creeper, minecraft:zombie) with an
optional appended JMH summon data group, e.g.
<summon:0 100 0,creeper[[name, Powerful Creeper],[glow, false]]>.
Unknown mob types warn and spawn nothing. The optional data is a
native NBT blob without braces (Glowing:1b), applied through
one quiet vanilla summon; like native item data it is
version-coupled, and an imbalanced blob warns and falls back to a
plain spawn. Blob summons in custom dimensions warn and spawn
nothing (vanilla execute in only names vanilla dimensions),
so those need a raw summon command instead.
| Key | Value |
|---|---|
name |
Display name, or [name, visible]; the plate shows by default. |
glow |
true or false: glowing outline. |
persistence |
true or false: kept mobs never despawn from distance. |
pos |
[x, y, z] absolute teleport after the spawn. |
motion |
[x, y, z] velocity vector. |
rotation |
[yaw, pitch] view rotation. |
owner |
Tamer name for tameable mobs, shooter for projectiles, source for primed TNT; shooter names resolve by exact online name, a <puuid> four-int list, or a plain UUID string. |
explosion_power |
Blast size for TNT, fireballs, wither skulls, and creepers; passes through to Paper unclamped. |
tnt_fuse |
Fuse ticks for primed TNT and creepers (the only entities with a Paper fuse API). |
potion paid |
[id, amplifier, seconds, icon?], or a list; splash and lingering potions only. |
tag |
JMH tag scalar like the item tag key, normalized the same way (lowercase, odd runs to _). |
Keys match case-blind, duplicates keep the last with a warning,
and malformed values warn and skip. JMH summon data applies
through the entity API after the spawn, so it wins over blob
pairs that say the same thing; avoid duplicating keys across
both. Potion doses land as custom effects on the thrown brew
(amplifiers are 0-based, like the item potion key); anything
that is not a splash or lingering potion warns and skips.
The tag lands twice: as a JMH persistent marker under
the shared item-tag prefix, and as a vanilla scoreboard tag, so
raw command lines can target the summon later
(execute as @e[tag=boss_one] run ...).
Place¶
| Tag | Meaning |
|---|---|
<place:loc,target> |
Set one block, one structure, or one schematic, empty on success and null on failure. |
<place:loc,schematic:<id>> paid |
Paste a WorldEdit schematic from mods/schems/, empty on success and null on failure. |
<setblock:loc,material> |
Set one block at an absolute list loc, empty on success and null on failure. |
<getblock:loc> |
The UPPER-CASE block material at an absolute list loc, or AIR. |
<issolid:material> |
true when the named material collides, false otherwise. |
<place:~ ~-1 ~,stone> floors the executor feet; structure
targets carry the prefix (<place:0 64 0,structure:village_plains>).
Structure ids resolve as worldgen structures first, placed
through vanilla /place structure, then as structure
templates; ids from a newer game version than the server stay
unknown. The loc shares the summon grammar: located points,
triples, or bare x y z coords with tilde and caret offsets.
Relative coords need a player-list executor; bare absolute
coords in console lists land in the main world. Unknown
worlds, unloaded chunks, unknown blocks, and unknown
structures warn and place nothing: placements never force a
chunk load, so prefer them over one-block fills and raw
setblock lines.
Schematic targets (<place:0 64 0,schematic:hut>) paste a
WorldEdit .schem file at the floored point, with the file's
saved origin landing on the target block and air overwriting
like any other block. Drop .schem files (for example from a
WorldEdit schematics folder) anywhere under mods/schems/;
the id is the filename without extension, ids hold no spaces,
and subfolders count. Pasting needs WorldEdit or
FastAsyncWorldEdit on the server. A missing id, a missing
WorldEdit, and a failed paste all warn and resolve null, so
guard with <if> and fall back like any other place failure.
Admins are responsible for the schematics they import: pastes
run with full world access, so only import files from sources
you trust.
<setblock:[0, 64, 0, world],stone> is the executor-free form:
the loc is a strict [x, y, z, world] or 6-element list (event
centers feed it directly), the material any Material name,
fractional coords floor to the block. It shares the place sink,
so warnings and refusals match <place> exactly, and it works
in any list, console included.
<getblock:[0, 64, 0, world]> reads instead of writing: the
UPPER-CASE material (STONE), or AIR above and below the
world. Unknown worlds and unloaded chunks read null silently,
so per-interval polling stays quiet; malformed locs warn plus
null. Reads never force a chunk load.
<issolid:stone> tests instead of reading: true when the
named material is a collidable block, false when it is known
but does not collide (<issolid:water> and <issolid:torch>
are false; <issolid:flower_pot> is true). Names are
case-blind with one optional minecraft: prefix and spaces
read as underscores, so <issolid:minecraft:STONE> works.
Blank input and unknown materials warn plus null, so fix the
spelling instead of comparing against it. The ocean-floor
pattern pairs it with the block below the feet:
<issolid:<pstandingon:<p>>> reads false while the swimmer
is still over water.
Clock¶
| Tag | Meaning |
|---|---|
<gamerule:name,value> |
Set one gamerule on every world, empty on success and null on failure. |
<rule:name,value> |
Alias of <gamerule>. |
<timeset:value> |
Set the clock on every world, empty on success and null on failure. |
<timeadd:value> |
Add to the clock on every world, empty on success and null on failure. |
<timeget> |
Main world clock in ticks. |
<weatherset:mode> |
Set the weather on every world, empty on success and null on failure. |
<weatherget> |
Main world weather: CLEAR, RAIN, or THUNDER. |
<gamerule:doDaylightCycle,false> freezes daylight on every
world; <rule> is the short alias. Time values are ticks or
day (1000), noon (6000), night (13000), midnight (18000):
<timeset:midnight> jumps the clock, <timeadd:-500> rewinds it
(negative adds wrap below zero), and <timeget> reads the main
world clock where <gstat:daytime> used to fit. Clockless worlds
(the Nether and the End) skip silently. <weatherset:rain> storms
every world (clear calms, thunder adds lightning, any case
works), and <weatherget> reads the main world back.
Gamerules, clocks, and weather are server-global: with parallel matches
running, the mutating heads skip silently rather than disturb a
match that did not ask. Raw time set and time add lines skip
the same way, as do gamerule lines when an operator removes
gamerule from the command blacklist (time itself stays
allowed; the tags are the supported path). The tags refuse the
engine-managed rules (locatorBar, doInsomnia,
doPatrolSpawning, doTraderSpawning,
spectatorsGenerateChunks, doImmediateRespawn) plus
keepInventory and showDeathMessages, each with a warning;
unknown rules and mistyped values warn and refuse too.
Biome¶
| Tag | Meaning |
|---|---|
<random-biome:world?> paid |
A random generating biome key in lowercase. |
<random-biome> draws any generating biome (the_void filtered
out). With a world arg it samples loaded chunks around that
world's spawn instead, so the answer fits the world; an unknown
world or an empty sample warns and falls back to any biome.
Displays¶
| Tag | Meaning |
|---|---|
<display.item:id,loc,item> paid |
Show an item display, empty. |
<display.block:id,loc,block> paid |
Show a block display, empty. |
<display.head:id,loc,texture?> paid |
Show a head display, empty (blank picks a random solid). |
<display.cancel:id> paid |
Drop a display, empty. |
<display.teleport:id,loc> paid |
Move a display, empty. |
<display.item:mark,[0, 64, 0, world],[diamond, 1]> shows one
diamond at that spot under the id mark, and
<display.block:mark,[0, 64, 0, world],stone> shows a stone block
the same way. <display.head:mark,[0, 64, 0, world],red> shows a
head: a blank texture picks one of the 16 internal solid colors at
random, a palette name matches case-blind (black, BLACK, and
BlAcK all work), and anything else runs raw as a skin texture with
no validation (a wrong texture is on the author). Every display is
fixed-billboard with a short interpolation, unsaved, and scoped to
its match: <display.teleport:mark,[0, 70, 0, world]> moves it
(angles apply when the loc carries them, otherwise the view keeps),
<display.cancel:mark> drops it, respawning an id warns and
replaces, and match end clears every display silently.
- '<display.head:mark,[<px:<p>>,<py:<p>>,<pz:<p>>,<pworld:<p>>],red>'
- '<display.teleport:mark,[<px:<p>>,100,<pz:<p>>,<pworld:<p>>]>'