Players¶
For: advanced users reading the live body.
Live body reads: state, blocks, slots, titles, movement, and inventory. The one-line forms live in the cheatsheet.
| Tag | Meaning |
|---|---|
<pstate:player,state> |
true/false for SNEAK, SPRINT, GLIDE, SWIM, GROUND, IDLE. |
<plos:player,target,maxdist,maxangle> |
true when the target is in line of sight. |
<pstandingon:player> |
Upper-case block below the feet (AIR over void). |
<pblock:player,type> |
Lower-case block id at under (default), feet, or head. |
<pismoving:player> |
true when the player moved since this modifier last checked. |
<premoveitem:player,item,count> |
Remove count when held (default 1), true/false, all-or-nothing. |
<puuid:player> |
Mojang id as four ints in NBT int-array order. |
<ptitle:player,title,sub,...> |
Center title, empty (optional stay, in, out seconds). |
<pslot:player,slot> |
Get [MATERIAL, qty], null when empty. |
<pslot:player,slot,item> |
Set from [material, qty] or bare material, empty. |
<pstat:player,key> |
One player's stat: nine keys, see Stats. |
<plos:player,target,maxdist,maxangle> reads 3D line of sight:
true when the target's head point sits within maxdist blocks
(default 180), within maxangle degrees of the player's look
direction (default 90, clamped to 0..180), and reachable by an
unblocked block+player ray from the eye. The head point is feet
plus 1.5 blocks (1.35 while sneaking). Checks run cheap-first
(dimension, distance, angle) with the raycast last. Offline,
unknown, or cross-dimension players resolve null silently.
<pstate:player,state> reads the live body: SNEAK, SPRINT,
GLIDE, SWIM, or GROUND (any case), true or false.
IDLE reads true when the player did not move since this
modifier's own last check: the inverted twin of <pismoving>.
Both share and advance one baseline per modifier, so a tick
should read only one of them (a second movement read in the
same tick always sees no movement). Unknown states warn, list
the valid names, and yield null; offline or unknown players
resolve null silently.
<pstandingon:player> reports the upper-case material below the
feet (AIR over the void), silent null when offline.
<pblock:player,type> reports the lower-case block id (dirt,
oak_slab, no namespace) at under (below the feet, air over
the void), feet, or head (the eye block); the type is
optional and defaults to under. Unknown types warn, list the
valid names, and yield null; offline or unknown players
resolve null silently.
<puuid:player> reports the Mojang id as four ints in NBT
int-array order, silent null when offline, so
Owner:[I;<list.join:<puuid:Steve>,",">] renders an NBT owner.
<pstat:player,exp-level> reads the vanilla experience level.
<ptitle:player,title,subtitle,stay,in,out> sends a center-screen
title; the timings are seconds in written order (stay, fade in,
fade out: never Paper order), trailing args may be omitted, and
defaults are stay 2.0, in 0.4, out 0.4. Seconds convert to
ticks through the engine converter (0.05s per tick, minimum one
tick). Title and subtitle parse like message text (MiniMessage
plus legacy codes); blank parts are allowed. Bad timing warns
plus null with nothing sent, as does an offline player; success
returns empty.
<pslot:player,slot> gets [MATERIAL, qty], with null for an
empty slot or an offline player. <pslot:player,slot,newitem>
sets unconditionally and returns empty. Slots name equipment
(mainhand, offhand, helmet, chestplate, leggings,
boots, any case) or address the raw player inventory by index:
0-8 hotbar, 9-35 main storage, 36-39 armor, 40 offhand. A
[material, qty] list sets both, a bare material sets qty 1;
materials match case-blind, qty clamps silently to 1 through the
max stack, and anything invalid (unknown slot or material,
non-integer qty, bad index) warns plus null with no change.
<pismoving:player> reads movement since this modifier's own
last check: the first check seeds the baseline and reads false,
later checks read true when the spot (exact coords or world)
changed. Each modifier keeps its own baseline per player, so two
modifiers polling at different rates never steal each other's
checks; rotation alone never counts, and offline or unknown
players resolve null silently. Baselines clear at match end.
<pstate:player,IDLE> inverts this same baseline (stillness
instead of motion) and advances it too, so one tick reads
either <pismoving> or IDLE, never both.
Evaluate once per poll and reuse the answer through <lf:>:
every evaluation moves the baseline forward:
- '<lf:moved,<pismoving:<p>>>'
- '<if:"<lf:moved> == true","<pf:hold-<id>,0>">'
- '<if:"<lf:moved> == true","exit">'
<premoveitem:player,item,count> removes count of the material
from the player's storage (hotbar plus main inventory, the same
population <phasitem> counts), all-or-nothing: when fewer are
held nothing changes. The count defaults to 1. It yields true
when items left the inventory, false when too few are held, the
player is offline, or the material is unknown; misuse (blank
player or item, a count below 1) warns plus null. Materials
match case-blind with an optional minecraft: prefix: