Skip to content

World logic type list

This page is generated from the registry. Do not edit it by hand.

Player’s feet go from outside → inside the trigger zone

FieldKindRequiredDefaultDescription
actorActoryesZones — actors: trigger

Event plugin: core.zone

Inside → outside

FieldKindRequiredDefaultDescription
actorActoryesZones — actors: trigger

Event plugin: core.zone

Every “every” seconds after entering (not at the moment of entry)

FieldKindRequiredDefaultDescription
actorActoryesZones — actors: trigger
everyNumber1Interval (s)

Event plugin: core.zone

Right-click a display·text actor or an interaction component (trigger box) (editor Play: look at it and press F or right-click)

FieldKindRequiredDefaultDescription
actorActoryesActor — actors: display · text · trigger

Event plugin: core.actor

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

FieldKindRequiredDefaultDescription
animAnimClip

Event plugin: core.actor

Every “every” seconds after the scene starts — no triggering player

FieldKindRequiredDefaultDescription
everyNumber10Interval (s)

Event plugin: core.flow

Once when the scene loads (editor: ▶ Play starts)

Event plugin: core.flow

Sent by another rule’s signal action (inherits the sending rule’s player)

FieldKindRequiredDefaultDescription
nameSignalyesSignal name

Event plugin: core.flow

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

FieldKindRequiredDefaultDescription
nameFunctionyesFunction name
paramsTextParameter names — Comma separated (e.g. amount, target) — the values given in the call become local variables {amount}

Event plugin: core.vars

When the player’s body (0.6×1.8) touches the actor box (gap ≤ 0.05) — per player; again after leaving and touching again

FieldKindRequiredDefaultDescription
actorActoryesBox (blocker·trigger·display) — actors: blocker · trigger · display
cooldown_ticksNumber10Cooldown (ticks) — 20 ticks = 1 s. Fires again only after contact ends and it is touched again

Event plugin: np.collision

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.

FieldKindRequiredDefaultDescription
actorActoryesBox (blocker·trigger·display) — actors: blocker · trigger · display
projectileEnumanyProjectile — Options: any · arrow · trident · snowball · egg · fireball · potion

Event plugin: np.collision

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.

FieldKindRequiredDefaultDescription
areaEnumzoneWhere — zone = inside the zone (trigger actor) · blocks = only the picked block cells (set from selection) · anywhere = anywhere (whole world) — Options: zone · blocks · anywhere
actorActoryesZones — actors: trigger — only when area=zone
cellsCellsyesSelected block — Select blocks in the viewport, then “From selection” — only when area=blocks
blockBlockBlock (empty = any) — minecraft:oak_log or #minecraft:logs

Event plugin: np.blocks

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.

FieldKindRequiredDefaultDescription
areaEnumzoneWhere — zone = inside the zone (trigger actor) · blocks = only the picked block cells (set from selection) · anywhere = anywhere (whole world) — Options: zone · blocks · anywhere
actorActoryesZones — actors: trigger — only when area=zone
cellsCellsyesSelected block — Select blocks in the viewport, then “From selection” — only when area=blocks
blockBlockBlock (empty = any) — minecraft:oak_log or #minecraft:logs

Event plugin: np.blocks

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.

FieldKindRequiredDefaultDescription
areaEnumzoneWhere — zone = inside the zone (trigger actor) · blocks = only the picked block cells (set from selection) · anywhere = anywhere (whole world) — Options: zone · blocks · anywhere
actorActoryesZones — actors: trigger — only when area=zone
cellsCellsyesSelected block — Select blocks in the viewport, then “From selection” — only when area=blocks
blockBlockBlock (empty = any) — minecraft:oak_log or #minecraft:logs

Event plugin: np.blocks

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.

FieldKindRequiredDefaultDescription
actorActoryesZones — actors: trigger
edgeEnumrisingWhen — rising = turns on · falling = turns off · both = changes — Options: rising · falling · both

Event plugin: np.blocks

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.

FieldKindRequiredDefaultDescription
actorActorZone (empty = anywhere) — actors: trigger

Event plugin: np.combat

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.

FieldKindRequiredDefaultDescription
actorActorZone (empty = anywhere) — actors: trigger
causeEnumanyCause — Options: any · fall · fire · lava · drown · entity · projectile · void
minNumber0Min damage (HP)

Event plugin: np.combat

Day = 06~18 h

FieldKindRequiredDefaultDescription
valueEnumdayTime of day — Options: day · night

Event plugin: core.world

FieldKindRequiredDefaultDescription
valueEnumclearWeather — Options: clear · rain · thunder

Event plugin: core.world

FieldKindRequiredDefaultDescription
nodeTextyesPermission node

Event plugin: core.world

FieldKindRequiredDefaultDescription
nameFlagyesFlag
valueFlagValuetrueValues — Missing flag = false

Event plugin: core.flow

FieldKindRequiredDefaultDescription
valueNumber0.5Chance (0~1)

Event plugin: core.flow

FieldKindRequiredDefaultDescription
actorActoryesZones — actors: trigger
minNumber1Min
maxNumber-1Max (-1 = unlimited)

Event plugin: core.zone

FieldKindRequiredDefaultDescription
leftTextyes{score}Left — Expression — {variable} · numbers · + - * / %
opEnum==Compare — == != < <= > >= (numbers) · contains · starts_with (text) — Options: == · != · < · <= · > · >= · contains · starts_with
rightText10Right — Expression

Event plugin: core.vars

The triggering player is holding that item (editor Play: the “fake player“‘s hand)

FieldKindRequiredDefaultDescription
itemItemyesItem — minecraft:diamond_sword or #minecraft:swords
handEnummainHand — main = main hand · off = off hand · any = either hand — Options: main · off · any

Event plugin: np.combat

Game mode of the triggering player

FieldKindRequiredDefaultDescription
valueEnumyessurvivalMode — Options: survival · adventure · creative · spectator

Event plugin: np.combat

FieldKindRequiredDefaultDescription
eventSoundEventyesSound events
atActorPosition (actor) — If empty, the triggering player’s position
volumeNumber1Size
pitchNumber1Pitch
audienceEnumplayerTo 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
rNumber16Radius (r) — only when audience=radius

Event plugin: core.world

FieldKindRequiredDefaultDescription
particleParticleyesminecraft:happy_villagerParticle
atActorPosition (actor) — If empty, the triggering player’s position
countNumber10Count

Event plugin: core.world

Console command — runs only if an operator enables it in server settings (off by default). The editor only logs it, without running

FieldKindRequiredDefaultDescription
commandTextyesCommand (without /)

Event plugin: core.world

FieldKindRequiredDefaultDescription
animAnimyesClip
audienceEnumplayerCutscene 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
atActorReference actor — If empty, the triggering player’s position — only when audience=radius
rNumber16Radius (r) — only when audience=radius
waitBoolfalseWait until it ends — When on, the next action runs after the clip ends (one cycle for a looping clip)

Event plugin: core.actor

Stops in place (event keys and the finished signal stop too)

FieldKindRequiredDefaultDescription
animAnimyesClip

Event plugin: core.actor

FieldKindRequiredDefaultDescription
actorActoryesActor — actors: display · text · light · sound

Event plugin: core.actor

FieldKindRequiredDefaultDescription
actorActoryesActor — actors: display · text · light · sound

Event plugin: core.actor

Moves the triggering player to that actor’s position·facing

FieldKindRequiredDefaultDescription
toActoryesDestination (spawn·camera) — actors: spawn · camera

Event plugin: core.actor

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

FieldKindRequiredDefaultDescription
toActoryesRespawn point (spawn) — actors: spawn

Event plugin: core.actor

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)

FieldKindRequiredDefaultDescription
camerasActorListCameras (in order) — List of camera actor ids — if empty, all camera actors in the scene (list order). Ignored if path is set — actors: camera
pathActorPath (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
holdNumber2Hold per point (s) — If empty, server setting cinematic.hold-seconds (default 2)
travelNumber4To next point (s) — If empty, server setting cinematic.travel-seconds (default 4) — smoothstep
audienceEnumplayerTo 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
atActorReference actor — If empty, the triggering player’s position — only when audience=radius
rNumber16Radius (r) — only when audience=radius

Event plugin: core.actor

FieldKindRequiredDefaultDescription
titleTextTitle
subtitleTextSubtitle
audienceEnumplayerTo 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
atActorReference actor — If empty, the triggering player’s position — only when audience=radius
rNumber16Radius (r) — only when audience=radius

Event plugin: core.ui

FieldKindRequiredDefaultDescription
textTextyesText
audienceEnumplayerTo 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
atActorReference actor — If empty, the triggering player’s position — only when audience=radius
rNumber16Radius (r) — only when audience=radius

Event plugin: core.ui

FieldKindRequiredDefaultDescription
textTextyesText
audienceEnumplayerTo 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
atActorReference actor — If empty, the triggering player’s position — only when audience=radius
rNumber16Radius (r) — only when audience=radius

Event plugin: core.ui

FieldKindRequiredDefaultDescription
nameFlagyesFlag
valueFlagValuetrueValues

Event plugin: core.flow

FieldKindRequiredDefaultDescription
nameSignalyesSignal name

Event plugin: core.flow

Delays the next actions by this much

FieldKindRequiredDefaultDescription
secondsNumber1s

Event plugin: core.flow

Fills the trigger zone box with that block (the server remembers the original blocks — restore with restore_blocks)

FieldKindRequiredDefaultDescription
actorActoryesZones — actors: trigger
blockBlockyesminecraft:stoneBlock

Event plugin: core.zone

FieldKindRequiredDefaultDescription
actorActoryesZones — actors: trigger

Event plugin: core.zone

FieldKindRequiredDefaultDescription
nameFlagyesVariables
scopeEnumautoRegion — 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
opEnumsetCalculate — 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
valueText1Values — Expression — {variable} · {player} · numbers · + - * / %

Event plugin: core.vars

Runs the function rule; the next action waits until it ends (waits included)

FieldKindRequiredDefaultDescription
functionFunctionyesFunction
argsTextArguments — name=expression, comma separated (e.g. amount=5, who={player})

Event plugin: core.vars

Blueprint Sequence: several functions one after another

FieldKindRequiredDefaultDescription
functionsFunctionyesFunctions — Comma separated — each starts when the previous one ends (waits included)

Event plugin: core.vars

Compares and calls one function (then the next action)

FieldKindRequiredDefaultDescription
leftTextyes{score}Left — Expression
opEnum>=Compare — Options: == · != · < · <= · > · >= · contains · starts_with
rightText10Right — Expression
thenFunctionIf true — Function to call (empty = nothing)
elseFunctionIf false — Function to call (empty = nothing)

Event plugin: core.vars

Runs the function count times in turn (each after the previous ends)

FieldKindRequiredDefaultDescription
countNumber3Count
functionFunctionyesFunction — Local variable {index} = 0, 1, 2 …

Event plugin: core.vars

Runs the function for each recipient in turn

FieldKindRequiredDefaultDescription
audienceEnumplayerTo 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
atActorReference actor — If empty, the triggering player’s position — only when audience=radius
rNumber16Radius (r) — only when audience=radius
functionFunctionyesFunction — That player becomes the triggering person — {player}

Event plugin: core.vars

Pushes the triggering player away from the reference actor’s center

FieldKindRequiredDefaultDescription
strengthNumber1Strength — Horizontal velocity (blocks/tick — Bukkit velocity). 1 ≈ 2~3 blocks
fromActorReference actor — If empty, center of the trigger actor
upNumber0.4Up — Upward velocity (blocks/tick)
audienceEnumplayerTo 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
atActorReference actor — If empty, the triggering player’s position — only when audience=radius
rNumber16Radius (r) — only when audience=radius

Event plugin: np.collision

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

FieldKindRequiredDefaultDescription
atActorPosition (actor) — That actor’s center block — if empty, pos
posVec3Position (coords) — [x,y,z] — coordinates relative to scene.json (building’s min corner), when at is not set
blockBlockyesminecraft:stoneBlock

Event plugin: np.blocks

Damages the triggering player (creative·spectator take none)

FieldKindRequiredDefaultDescription
amountNumberyes2Damage (HP, 1 heart = 2)
audienceEnumplayerTo 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
atActorReference actor — If empty, the triggering player’s position — only when audience=radius
rNumber16Radius (r) — only when audience=radius

Event plugin: np.combat

FieldKindRequiredDefaultDescription
amountNumber20Heal (HP)
audienceEnumplayerTo 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
atActorReference actor — If empty, the triggering player’s position — only when audience=radius
rNumber16Radius (r) — only when audience=radius

Event plugin: np.combat

FieldKindRequiredDefaultDescription
effectEffectyesminecraft:speedEffect — minecraft:speed · minecraft:jump_boost · minecraft:regeneration …
secondsNumber10s
amplifierNumber0Amplifier (0 = I)
particlesBooltrueShow particles
audienceEnumplayerTo 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
atActorReference actor — If empty, the triggering player’s position — only when audience=radius
rNumber16Radius (r) — only when audience=radius

Event plugin: np.combat

FieldKindRequiredDefaultDescription
itemItemyesItem — minecraft:diamond
countNumber1Count
audienceEnumplayerTo 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
atActorReference actor — If empty, the triggering player’s position — only when audience=radius
rNumber16Radius (r) — only when audience=radius

Event plugin: np.combat

Kills the triggering player

FieldKindRequiredDefaultDescription
audienceEnumplayerTo 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
atActorReference actor — If empty, the triggering player’s position — only when audience=radius
rNumber16Radius (r) — only when audience=radius

Event plugin: np.combat