Skip to main content

Advanced Actions

EasyMenu 7 provides powerful flow control actions, including non-blocking delays, coordinate teleports, potion effects, and interactive user prompts.


Delay (type: delay)​

Pauses pipeline execution for a specified duration before proceeding.

EasyMenu delays are managed asynchronously using Folia schedulers and never sleep or block server threads.

actions:
- type: message
message: "&eTeleporting in 3 seconds. Please do not move..."
- type: sound
sound: "BLOCK_NOTE_BLOCK_HAT"
- type: delay
duration: 3s # e.g. 500ms, 3s, 1m
- type: teleport
world: "world"
x: 100.5
y: 64.0
z: -200.5
- type: message
message: "&aTeleported!"

Teleport (type: teleport)​

Teleports the player to a target world and coordinates.

actions:
- type: teleport
world: "world_nether" # World name
x: 0.5 # X coordinate (placeholders supported)
y: 70.0 # Y coordinate
z: 0.5 # Z coordinate
yaw: 90.0 # Horizontal angle (optional)
pitch: 0.0 # Vertical pitch (optional)
reset-velocity: true # Reset momentum/fall velocity (default: true)
no-fall-ticks: 40 # Ticks to keep resetting fall distance after arrival (default: 0 = disabled)
KeyRequiredDescription
world, x, y, zYesOmitting any of them is an error at load time. Placeholders are allowed and expanded at click time.
yaw, pitchNoWhen omitted, the player keeps their current facing.
reset-velocityNo (true)When true, the player's velocity is set to 0 after arrival.
no-fall-ticksNo (0)When greater than 0, fall distance is reset every tick for that many ticks to prevent fall damage. Capped at 1200 (60 seconds).
The safe key currently has no effect

The safe key is parsed, but the teleport handler in EasyMenu 7.0.2 never reads it. Writing safe: true does not search for a safe landing spot; the player is teleported to the exact coordinates. If you need a safe landing, choose safe coordinates yourself.


Potion Effects (type: potion-effect)​

Applies a status effect or buff to the player for a set duration.

actions:
- type: potion-effect
effect: "SPEED" # PotionEffectType enum
duration: 30s # Duration (e.g. 10s, 1m)
amplifier: 1 # Amplifier (0 = Lv1, 1 = Lv2)
ambient: true # Ambient beacon particle style
particles: true # Show particles

In-Action Chat Input (type: input)​

Prompts the player to enter a value in chat before completing the command sequence. The menu closes while EasyMenu waits for the input, and the player can type cancel to abort.

actions:
- type: input
prompt: "&eEnter withdrawal amount (1 to 100,000) in chat:"
input-type: integer # string (default), integer, decimal
min: 1
max: 100000
timeout-seconds: 30 # Timeout in seconds (default: 60)
command: "bank withdraw {player} {input}"
KeyRequiredDescription
promptYesText shown to the player.
input-typeNo (string)One of string, integer, decimal. Anything else (such as text or boolean) is an error.
min / maxNoRange for integer / decimal. min greater than max is an error.
timeout-secondsNo (60)How long to wait for input. 0 or less is an error.
variableNo (input)Variable name that holds the value. With variable: amount, use {amount}.
commandNoCommand run as the player once the value arrives. It must contain {variable-name} ({input} by default), otherwise loading fails with an error.
actionsNoActions run in order once the value arrives. When used together with command, command runs first.
This is separate from the menu-level inputs

The type: input action accepts three types: string, integer and decimal. They differ from the types you declare in a menu's top-level inputs (text, integer, decimal, boolean, option). See Inputs for those.

A warning is logged when an input action has neither command nor actions to run afterwards.

Menu-Level Form Inputs

EasyMenu 7 also features a menu-wide Inputs system that renders as real text boxes and sliders in Native Dialogs!