Skip to content

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>>]>'

Next Steps