World logic type list
This page is generated from the registry. Do not edit it by hand.
Triggers
Section titled “Triggers”enter — On zone enter
Section titled “enter — On zone enter”Player’s feet go from outside → inside the trigger zone
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | yes | Zones — actors: trigger |
Event plugin: core.zone
leave — On zone leave
Section titled “leave — On zone leave”Inside → outside
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | yes | Zones — actors: trigger |
Event plugin: core.zone
inside — While in zone
Section titled “inside — While in zone”Every “every” seconds after entering (not at the moment of entry)
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | yes | Zones — actors: trigger | |
every | Number | 1 | Interval (s) |
Event plugin: core.zone
interact — Right-click actor
Section titled “interact — Right-click actor”Right-click a display·text actor or an interaction component (trigger box) (editor Play: look at it and press F or right-click)
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | yes | Actor — actors: display · text · trigger |
Event plugin: core.actor
anim_finished — When a sequence ends
Section titled “anim_finished — When a sequence ends”When a clip played with anim_play reaches its end (not when stopped with anim_stop). Leave the clip empty for any clip — inherits the triggering person of the rule that played it
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
anim | Anim | Clip |
Event plugin: core.actor
Flowing
Section titled “Flowing”timer — Timer (global)
Section titled “timer — Timer (global)”Every “every” seconds after the scene starts — no triggering player
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
every | Number | 10 | Interval (s) |
Event plugin: core.flow
start — Scene start
Section titled “start — Scene start”Once when the scene loads (editor: ▶ Play starts)
Event plugin: core.flow
signal — On signal
Section titled “signal — On signal”Sent by another rule’s signal action (inherits the sending rule’s player)
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
name | Signal | yes | Signal name |
Event plugin: core.flow
Variables · functions
Section titled “Variables · functions”function — Function
Section titled “function — Function”Never fires on its own — called by the call · sequence · branch · repeat · for_each_player actions (inherits the caller’s player). If its conditions are false the function is skipped
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
name | Function | yes | Function name | |
params | Text | Parameter names — Comma separated (e.g. amount, target) — the values given in the call become local variables {amount} |
Event plugin: core.vars
Collision
Section titled “Collision”collide — On collide
Section titled “collide — On collide”When the player’s body (0.6×1.8) touches the actor box (gap ≤ 0.05) — per player; again after leaving and touching again
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | yes | Box (blocker·trigger·display) — actors: blocker · trigger · display | |
cooldown_ticks | Number | 10 | Cooldown (ticks) — 20 ticks = 1 s. Fires again only after contact ends and it is touched again |
Event plugin: np.collision
projectile_hit — On projectile hit
Section titled “projectile_hit — On projectile hit”When a projectile shot by a player hits a block·entity inside the actor box (triggering player = shooter). Editor Play: “Fire” button
Does not fire by itself in play preview — use the Fire button.
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | yes | Box (blocker·trigger·display) — actors: blocker · trigger · display | |
projectile | Enum | any | Projectile — Options: any · arrow · trident · snowball · egg · fireball · potion |
Event plugin: np.collision
block_break — On block break
Section titled “block_break — On block break”A player breaks a matching block inside the zone (or on picked blocks · anywhere). Editor play: “Fire” button
Does not fire by itself in play preview — use the Fire button.
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
area | Enum | zone | Where — zone = inside the zone (trigger actor) · blocks = only the picked block cells (set from selection) · anywhere = anywhere (whole world) — Options: zone · blocks · anywhere | |
actor | Actor | yes | Zones — actors: trigger — only when area=zone | |
cells | Cells | yes | Selected block — Select blocks in the viewport, then “From selection” — only when area=blocks | |
block | Block | Block (empty = any) — minecraft:oak_log or #minecraft:logs |
Event plugin: np.blocks
block_place — On block place
Section titled “block_place — On block place”A player places a matching block inside the zone (or on picked blocks · anywhere). Editor play: “Fire” button
Does not fire by itself in play preview — use the Fire button.
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
area | Enum | zone | Where — zone = inside the zone (trigger actor) · blocks = only the picked block cells (set from selection) · anywhere = anywhere (whole world) — Options: zone · blocks · anywhere | |
actor | Actor | yes | Zones — actors: trigger — only when area=zone | |
cells | Cells | yes | Selected block — Select blocks in the viewport, then “From selection” — only when area=blocks | |
block | Block | Block (empty = any) — minecraft:oak_log or #minecraft:logs |
Event plugin: np.blocks
block_interact — On block right-click
Section titled “block_interact — On block right-click”A player right-clicks a matching block inside the zone (or on picked blocks · anywhere) (buttons, levers, chests …). Editor play: “Fire” button
Does not fire by itself in play preview — use the Fire button.
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
area | Enum | zone | Where — zone = inside the zone (trigger actor) · blocks = only the picked block cells (set from selection) · anywhere = anywhere (whole world) — Options: zone · blocks · anywhere | |
actor | Actor | yes | Zones — actors: trigger — only when area=zone | |
cells | Cells | yes | Selected block — Select blocks in the viewport, then “From selection” — only when area=blocks | |
block | Block | Block (empty = any) — minecraft:oak_log or #minecraft:logs |
Event plugin: np.blocks
redstone — Redstone signal
Section titled “redstone — Redstone signal”Redstone power of a block in the zone changes between 0 ↔ above 0 — no triggering player. Editor Play: “Fire” button
Does not fire by itself in play preview — use the Fire button.
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | yes | Zones — actors: trigger | |
edge | Enum | rising | When — rising = turns on · falling = turns off · both = changes — Options: rising · falling · both |
Event plugin: np.blocks
Combat
Section titled “Combat”death — On player death
Section titled “death — On player death”A player dies (inside the zone, if given) — triggering player = the one who died. Editor Play: “Fire” button
Does not fire by itself in play preview — use the Fire button.
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | Zone (empty = anywhere) — actors: trigger |
Event plugin: np.combat
damage — On damage
Section titled “damage — On damage”A player takes at least min damage from that cause (inside the zone, if given). Editor Play: “Fire” button
Does not fire by itself in play preview — use the Fire button.
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | Zone (empty = anywhere) — actors: trigger | ||
cause | Enum | any | Cause — Options: any · fall · fire · lava · drown · entity · projectile · void | |
min | Number | 0 | Min damage (HP) |
Event plugin: np.combat
Conditions
Section titled “Conditions”time — Time of day
Section titled “time — Time of day”Day = 06~18 h
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
value | Enum | day | Time of day — Options: day · night |
Event plugin: core.world
weather — Weather
Section titled “weather — Weather”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
value | Enum | clear | Weather — Options: clear · rain · thunder |
Event plugin: core.world
permission — Permission
Section titled “permission — Permission”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
node | Text | yes | Permission node |
Event plugin: core.world
Flowing
Section titled “Flowing”flag — Flag
Section titled “flag — Flag”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
name | Flag | yes | Flag | |
value | FlagValue | true | Values — Missing flag = false |
Event plugin: core.flow
chance — Chance
Section titled “chance — Chance”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
value | Number | 0.5 | Chance (0~1) |
Event plugin: core.flow
players_inside — Players in zone
Section titled “players_inside — Players in zone”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | yes | Zones — actors: trigger | |
min | Number | 1 | Min | |
max | Number | -1 | Max (-1 = unlimited) |
Event plugin: core.zone
Variables · functions
Section titled “Variables · functions”compare — Compare
Section titled “compare — Compare”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
left | Text | yes | {score} | Left — Expression — {variable} · numbers · + - * / % |
op | Enum | == | Compare — == != < <= > >= (numbers) · contains · starts_with (text) — Options: == · != · < · <= · > · >= · contains · starts_with | |
right | Text | 10 | Right — Expression |
Event plugin: core.vars
Combat
Section titled “Combat”holding — Holding
Section titled “holding — Holding”The triggering player is holding that item (editor Play: the “fake player“‘s hand)
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
item | Item | yes | Item — minecraft:diamond_sword or #minecraft:swords | |
hand | Enum | main | Hand — main = main hand · off = off hand · any = either hand — Options: main · off · any |
Event plugin: np.combat
gamemode — Game mode
Section titled “gamemode — Game mode”Game mode of the triggering player
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
value | Enum | yes | survival | Mode — Options: survival · adventure · creative · spectator |
Event plugin: np.combat
Actions
Section titled “Actions”sound — Sound
Section titled “sound — Sound”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
event | SoundEvent | yes | Sound events | |
at | Actor | Position (actor) — If empty, the triggering player’s position | ||
volume | Number | 1 | Size | |
pitch | Number | 1 | Pitch | |
audience | Enum | player | To whom — player = triggering player · inside = everyone in the zone · world = everyone in the world · radius = within r blocks of at — Options: player · inside · world · radius | |
r | Number | 16 | Radius (r) — only when audience=radius |
Event plugin: core.world
particle — Particle
Section titled “particle — Particle”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
particle | Particle | yes | minecraft:happy_villager | Particle |
at | Actor | Position (actor) — If empty, the triggering player’s position | ||
count | Number | 10 | Count |
Event plugin: core.world
command — Server command
Section titled “command — Server command”Console command — runs only if an operator enables it in server settings (off by default). The editor only logs it, without running
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
command | Text | yes | Command (without /) |
Event plugin: core.world
anim_play — Play animation
Section titled “anim_play — Play animation”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
anim | Anim | yes | Clip | |
audience | Enum | player | Cutscene viewers — Who sees the Sequencer tracks (camera cuts·titles·sounds·fades): player = triggering player (whole world if none) · inside · world · radius. Actor movement is always shown to everyone — Options: player · inside · world · radius | |
at | Actor | Reference actor — If empty, the triggering player’s position — only when audience=radius | ||
r | Number | 16 | Radius (r) — only when audience=radius | |
wait | Bool | false | Wait until it ends — When on, the next action runs after the clip ends (one cycle for a looping clip) |
Event plugin: core.actor
anim_stop — Stop animation
Section titled “anim_stop — Stop animation”Stops in place (event keys and the finished signal stop too)
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
anim | Anim | yes | Clip |
Event plugin: core.actor
actor_show — Show actor
Section titled “actor_show — Show actor”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | yes | Actor — actors: display · text · light · sound |
Event plugin: core.actor
actor_hide — Hide actor
Section titled “actor_hide — Hide actor”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | yes | Actor — actors: display · text · light · sound |
Event plugin: core.actor
teleport — Teleport
Section titled “teleport — Teleport”Moves the triggering player to that actor’s position·facing
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
to | Actor | yes | Destination (spawn·camera) — actors: spawn · camera |
Event plugin: core.actor
checkpoint — Checkpoint
Section titled “checkpoint — Checkpoint”Added in v1: sets the triggering player’s respawn point to that spawn actor’s position·facing (the server remembers it per player). Editor Play only logs it
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
to | Actor | yes | Respawn point (spawn) — actors: spawn |
Event plugin: core.actor
cinematic — Cinematic camera
Section titled “cinematic — Cinematic camera”Briefly puts viewers in spectator mode on the camera, passing through the camera actors (or path) in order — Shift ends it. Editor ▶ Play·Simulate: previews with the viewport camera (returns to the original view when done)
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
cameras | ActorList | Cameras (in order) — List of camera actor ids — if empty, all camera actors in the scene (list order). Ignored if path is set — actors: camera | ||
path | Actor | Path (path) — used instead of cameras if set — Follows the path actor’s points (eye height = props eye_height 1.6, pitch = props pitch 10, faces the direction of travel) — hold 0 — actors: path | ||
hold | Number | 2 | Hold per point (s) — If empty, server setting cinematic.hold-seconds (default 2) | |
travel | Number | 4 | To next point (s) — If empty, server setting cinematic.travel-seconds (default 4) — smoothstep | |
audience | Enum | player | To whom — player = triggering player · inside = everyone in the zone · world = everyone in the world · radius = within r blocks of at — Options: player · inside · world · radius | |
at | Actor | Reference actor — If empty, the triggering player’s position — only when audience=radius | ||
r | Number | 16 | Radius (r) — only when audience=radius |
Event plugin: core.actor
title — Screen title
Section titled “title — Screen title”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
title | Text | Title | ||
subtitle | Text | Subtitle | ||
audience | Enum | player | To whom — player = triggering player · inside = everyone in the zone · world = everyone in the world · radius = within r blocks of at — Options: player · inside · world · radius | |
at | Actor | Reference actor — If empty, the triggering player’s position — only when audience=radius | ||
r | Number | 16 | Radius (r) — only when audience=radius |
Event plugin: core.ui
message — Chat message
Section titled “message — Chat message”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
text | Text | yes | Text | |
audience | Enum | player | To whom — player = triggering player · inside = everyone in the zone · world = everyone in the world · radius = within r blocks of at — Options: player · inside · world · radius | |
at | Actor | Reference actor — If empty, the triggering player’s position — only when audience=radius | ||
r | Number | 16 | Radius (r) — only when audience=radius |
Event plugin: core.ui
actionbar — Action bar text
Section titled “actionbar — Action bar text”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
text | Text | yes | Text | |
audience | Enum | player | To whom — player = triggering player · inside = everyone in the zone · world = everyone in the world · radius = within r blocks of at — Options: player · inside · world · radius | |
at | Actor | Reference actor — If empty, the triggering player’s position — only when audience=radius | ||
r | Number | 16 | Radius (r) — only when audience=radius |
Event plugin: core.ui
Flowing
Section titled “Flowing”set_flag — Set flag
Section titled “set_flag — Set flag”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
name | Flag | yes | Flag | |
value | FlagValue | true | Values |
Event plugin: core.flow
signal — Send signal
Section titled “signal — Send signal”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
name | Signal | yes | Signal name |
Event plugin: core.flow
wait — Wait
Section titled “wait — Wait”Delays the next actions by this much
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
seconds | Number | 1 | s |
Event plugin: core.flow
place_blocks — Fill blocks
Section titled “place_blocks — Fill blocks”Fills the trigger zone box with that block (the server remembers the original blocks — restore with restore_blocks)
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | yes | Zones — actors: trigger | |
block | Block | yes | minecraft:stone | Block |
Event plugin: core.zone
restore_blocks — Restore blocks
Section titled “restore_blocks — Restore blocks”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
actor | Actor | yes | Zones — actors: trigger |
Event plugin: core.zone
Variables · functions
Section titled “Variables · functions”set_var — Set variable
Section titled “set_var — Set variable”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
name | Flag | yes | Variables | |
scope | Enum | auto | Region — auto = as declared (otherwise local if a local of that name exists, else global) · player = per triggering person · local = only inside this run — Options: auto · global · player · local | |
op | Enum | set | Calculate — set = value · add/sub/mul/div/mod/min/max = arithmetic · append = add text · toggle = flip true/false — Options: set · add · sub · mul · div · mod · min · max · append · toggle | |
value | Text | 1 | Values — Expression — {variable} · {player} · numbers · + - * / % |
Event plugin: core.vars
call — Call function
Section titled “call — Call function”Runs the function rule; the next action waits until it ends (waits included)
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
function | Function | yes | Function | |
args | Text | Arguments — name=expression, comma separated (e.g. amount=5, who={player}) |
Event plugin: core.vars
sequence — In order (sequence)
Section titled “sequence — In order (sequence)”Blueprint Sequence: several functions one after another
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
functions | Function | yes | Functions — Comma separated — each starts when the previous one ends (waits included) |
Event plugin: core.vars
branch — Branch (if)
Section titled “branch — Branch (if)”Compares and calls one function (then the next action)
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
left | Text | yes | {score} | Left — Expression |
op | Enum | >= | Compare — Options: == · != · < · <= · > · >= · contains · starts_with | |
right | Text | 10 | Right — Expression | |
then | Function | If true — Function to call (empty = nothing) | ||
else | Function | If false — Function to call (empty = nothing) |
Event plugin: core.vars
repeat — Repeat
Section titled “repeat — Repeat”Runs the function count times in turn (each after the previous ends)
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
count | Number | 3 | Count | |
function | Function | yes | Function — Local variable {index} = 0, 1, 2 … |
Event plugin: core.vars
for_each_player — For each player
Section titled “for_each_player — For each player”Runs the function for each recipient in turn
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
audience | Enum | player | To whom — player = triggering player · inside = everyone in the zone · world = everyone in the world · radius = within r blocks of at — Options: player · inside · world · radius | |
at | Actor | Reference actor — If empty, the triggering player’s position — only when audience=radius | ||
r | Number | 16 | Radius (r) — only when audience=radius | |
function | Function | yes | Function — That player becomes the triggering person — {player} |
Event plugin: core.vars
Collision
Section titled “Collision”knockback — Knockback
Section titled “knockback — Knockback”Pushes the triggering player away from the reference actor’s center
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
strength | Number | 1 | Strength — Horizontal velocity (blocks/tick — Bukkit velocity). 1 ≈ 2~3 blocks | |
from | Actor | Reference actor — If empty, center of the trigger actor | ||
up | Number | 0.4 | Up — Upward velocity (blocks/tick) | |
audience | Enum | player | To whom — player = triggering player · inside = everyone in the zone · world = everyone in the world · radius = within r blocks of at — Options: player · inside · world · radius | |
at | Actor | Reference actor — If empty, the triggering player’s position — only when audience=radius | ||
r | Number | 16 | Radius (r) — only when audience=radius |
Event plugin: np.collision
cancel — Cancel event
Section titled “cancel — Cancel event”Undoes the break·place·right-click·damage·projectile (only when it’s the rule’s first action — before wait). Does nothing otherwise
Event plugin: np.blocks
set_block — Place one block
Section titled “set_block — Place one block”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
at | Actor | Position (actor) — That actor’s center block — if empty, pos | ||
pos | Vec3 | Position (coords) — [x,y,z] — coordinates relative to scene.json (building’s min corner), when at is not set | ||
block | Block | yes | minecraft:stone | Block |
Event plugin: np.blocks
Combat
Section titled “Combat”damage — Deal damage
Section titled “damage — Deal damage”Damages the triggering player (creative·spectator take none)
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
amount | Number | yes | 2 | Damage (HP, 1 heart = 2) |
audience | Enum | player | To whom — player = triggering player · inside = everyone in the zone · world = everyone in the world · radius = within r blocks of at — Options: player · inside · world · radius | |
at | Actor | Reference actor — If empty, the triggering player’s position — only when audience=radius | ||
r | Number | 16 | Radius (r) — only when audience=radius |
Event plugin: np.combat
heal — Heal
Section titled “heal — Heal”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
amount | Number | 20 | Heal (HP) | |
audience | Enum | player | To whom — player = triggering player · inside = everyone in the zone · world = everyone in the world · radius = within r blocks of at — Options: player · inside · world · radius | |
at | Actor | Reference actor — If empty, the triggering player’s position — only when audience=radius | ||
r | Number | 16 | Radius (r) — only when audience=radius |
Event plugin: np.combat
effect — Potion effect
Section titled “effect — Potion effect”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
effect | Effect | yes | minecraft:speed | Effect — minecraft:speed · minecraft:jump_boost · minecraft:regeneration … |
seconds | Number | 10 | s | |
amplifier | Number | 0 | Amplifier (0 = I) | |
particles | Bool | true | Show particles | |
audience | Enum | player | To whom — player = triggering player · inside = everyone in the zone · world = everyone in the world · radius = within r blocks of at — Options: player · inside · world · radius | |
at | Actor | Reference actor — If empty, the triggering player’s position — only when audience=radius | ||
r | Number | 16 | Radius (r) — only when audience=radius |
Event plugin: np.combat
give — Give item
Section titled “give — Give item”| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
item | Item | yes | Item — minecraft:diamond | |
count | Number | 1 | Count | |
audience | Enum | player | To whom — player = triggering player · inside = everyone in the zone · world = everyone in the world · radius = within r blocks of at — Options: player · inside · world · radius | |
at | Actor | Reference actor — If empty, the triggering player’s position — only when audience=radius | ||
r | Number | 16 | Radius (r) — only when audience=radius |
Event plugin: np.combat
kill — Kill
Section titled “kill — Kill”Kills the triggering player
| Field | Kind | Required | Default | Description |
|---|---|---|---|---|
audience | Enum | player | To whom — player = triggering player · inside = everyone in the zone · world = everyone in the world · radius = within r blocks of at — Options: player · inside · world · radius | |
at | Actor | Reference actor — If empty, the triggering player’s position — only when audience=radius | ||
r | Number | 16 | Radius (r) — only when audience=radius |
Event plugin: np.combat