-
Notifications
You must be signed in to change notification settings - Fork 0
Nodes
sandwich edited this page Mar 21, 2026
·
2 revisions
This document lists every built-in node, what it does, and its ports.
- Execution wires: Control flow between event, logic, and action nodes.
- Data wires: Pass values between data/event/logic/action ports.
- Events: Red
- Logic: Purple
- Actions: Blue
- Data: Green
- Type:
event.plugin_enable - Purpose: Runs once during plugin startup.
- Outputs:
-
Then(Execution)
-
- Type:
event.plugin_disable - Purpose: Runs once during plugin shutdown.
- Outputs:
-
Then(Execution)
-
- Type:
event.player_join - Purpose: Triggered when a player joins.
- Outputs:
-
Then(Execution) -
Player(Data: Player)
-
- Type:
event.player_leave - Purpose: Triggered when a player leaves.
- Outputs:
-
Then(Execution) -
Player(Data: Player)
-
- Type:
event.player_break_block - Purpose: Triggered when a player breaks a block.
- Outputs:
-
Then(Execution) -
Player(Data: Player) -
Location(Data: Location)
-
- Type:
event.player_place_block - Purpose: Triggered when a player places a block.
- Outputs:
-
Then(Execution) -
Player(Data: Player) -
Location(Data: Location)
-
- Type:
event.player_chat - Purpose: Triggered when a player sends chat.
- Outputs:
-
Then(Execution) -
Player(Data: Player) -
Message(Data: Text)
-
- Type:
event.player_move - Purpose: Triggered when a player moves.
- Outputs:
-
Then(Execution) -
Player(Data: Player) -
From(Data: Location) -
To(Data: Location)
-
- Type:
event.player_death - Purpose: Triggered when a player dies.
- Outputs:
-
Then(Execution) -
Player(Data: Player) -
Killer(Data: Player)
-
- Type:
event.player_damage - Purpose: Triggered when a player takes damage.
- Outputs:
-
Then(Execution) -
Player(Data: Player) -
Damage(Data: Number)
-
- Type:
event.player_interact - Purpose: Triggered when a player interacts.
- Outputs:
-
Then(Execution) -
Player(Data: Player) -
Location(Data: Location) -
Item(Data: ItemStack)
-
- Type:
event.player_drop_item - Purpose: Triggered when a player drops an item.
- Outputs:
-
Then(Execution) -
Player(Data: Player) -
Item(Data: ItemStack)
-
- Type:
event.player_pickup_item - Purpose: Triggered when a player picks up an item.
- Outputs:
-
Then(Execution) -
Player(Data: Player) -
Item(Data: ItemStack)
-
- Type:
event.entity_death - Purpose: Triggered when an entity dies.
- Outputs:
-
Then(Execution) -
Entity(Data: Entity) -
Killer(Data: Player)
-
- Type:
event.block_explode - Purpose: Triggered when a block explodes.
- Outputs:
-
Then(Execution) -
Location(Data: Location)
-
- Type:
event.redstone_change - Purpose: Triggered when redstone power changes.
- Outputs:
-
Then(Execution) -
Location(Data: Location) -
Power(Data: Number)
-
- Type:
event.command_run - Purpose: Triggered when a player runs a command.
- Outputs:
-
Then(Execution) -
Player(Data: Player) -
Command(Data: Text) -
Arguments(Data: Text)
-
- Type:
event.server_tick - Purpose: Runs repeatedly every tick.
- Outputs:
-
Then(Execution)
-
- Type:
logic.if_condition - Purpose: Branches flow based on a boolean.
- Inputs:
-
In(Execution) -
Condition(Data: Boolean)
-
- Outputs:
-
True(Execution) -
False(Execution)
-
- Type:
logic.compare_values - Purpose: Compares two values and returns boolean.
- Editable fields:
-
Operator(==,!=,>,>=,<,<=)
-
- Inputs:
-
A(Data: Any) -
B(Data: Any)
-
- Outputs:
-
Equal(Data: Boolean)
-
- Type:
logic.boolean_and - Purpose: Boolean conjunction.
- Inputs:
-
A(Data: Boolean) -
B(Data: Boolean)
-
- Outputs:
-
Result(Data: Boolean)
-
- Type:
logic.boolean_or - Purpose: Boolean disjunction.
- Inputs:
-
A(Data: Boolean) -
B(Data: Boolean)
-
- Outputs:
-
Result(Data: Boolean)
-
- Type:
logic.boolean_not - Purpose: Boolean negation.
- Inputs:
-
Value(Data: Boolean)
-
- Outputs:
-
Result(Data: Boolean)
-
- Type:
logic.delay_timer - Purpose: Delays execution flow by ticks.
- Editable fields:
-
Ticks(default:20)
-
- Inputs:
-
In(Execution) -
Ticks(Data: Number)
-
- Outputs:
-
Then(Execution)
-
- Type:
logic.random_chance - Purpose: Returns a random boolean chance.
- Editable fields:
-
Chance(default:0.5, clamped to 0..1)
-
- Inputs:
-
Chance(Data: Number)
-
- Outputs:
-
Success(Data: Boolean)
-
- Type:
logic.loop - Purpose: Runs execution multiple times.
- Inputs:
-
In(Execution) -
Count(Data: Number)
-
- Outputs:
-
Loop(Execution) -
Done(Execution)
-
- Type:
logic.foreach_player - Purpose: Iterates through all online players.
- Inputs:
-
In(Execution)
-
- Outputs:
-
Loop(Execution) -
Player(Data: Player) -
Done(Execution)
-
- Type:
logic.while - Purpose: Repeats execution while a condition is true.
- Inputs:
-
In(Execution) -
Condition(Data: Boolean)
-
- Outputs:
-
Loop(Execution) -
Done(Execution)
-
- Type:
logic.random_number - Purpose: Generates a random number between Min and Max.
- Inputs:
-
Min(Data: Number) -
Max(Data: Number)
-
- Outputs:
-
Value(Data: Number)
-
- Type:
logic.math - Purpose: Performs a math operation on two numbers.
- Editable fields:
-
Operator(+,-,*,/,%)
-
- Inputs:
-
A(Data: Number) -
B(Data: Number)
-
- Outputs:
-
Result(Data: Number)
-
- Type:
logic.text_join - Purpose: Combines multiple text values into one string.
- Inputs:
-
A(Data: Text) -
B(Data: Text)
-
- Outputs:
-
Text(Data: Text)
-
- Type:
logic.number_to_text - Purpose: Converts a number value into text.
- Inputs:
-
Number(Data: Number)
-
- Outputs:
-
Text(Data: Text)
-
- Type:
action.send_message - Purpose: Sends a chat message to a player.
- Editable fields:
-
Default Text(used when Text input is not wired)
-
- Inputs:
-
In(Execution) -
Player(Data: Player) -
Text(Data: Text)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.spawn_entity - Purpose: Spawns an entity at a location.
- Editable fields:
-
Entity(default:ZOMBIE, used when input not wired)
-
- Inputs:
-
In(Execution) -
Location(Data: Location) -
Entity Type(Data: Text)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.give_item - Purpose: Gives an item to a player.
- Editable fields:
-
Default Material(used when Item input is not wired) -
Default Amount(used when Item input is not wired)
-
- Inputs:
-
In(Execution) -
Player(Data: Player) -
Item(Data: ItemStack)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.teleport_player - Purpose: Teleports player to location.
- Inputs:
-
In(Execution) -
Player(Data: Player) -
Location(Data: Location)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.play_sound - Purpose: Plays a Bukkit sound for a player.
- Editable fields:
-
Sound(default:ENTITY_EXPERIENCE_ORB_PICKUP, used when input not wired)
-
- Inputs:
-
In(Execution) -
Player(Data: Player) -
Sound(Data: Text)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.run_command - Purpose: Runs a console command.
- Editable fields:
-
Command(default command if input is not wired)
-
- Inputs:
-
In(Execution) -
Command(Data: Text)
-
- Outputs:
-
Then(Execution)
-
- Type:
data.player - Purpose: Exposes player context from event-based flows.
- Outputs:
-
Player(Data: Player)
-
- Type:
data.location - Purpose: Provides a configured world location.
- Editable fields:
-
World(default:world) -
X(default:0) -
Y(default:64) -
Z(default:0)
-
- Outputs:
-
Location(Data: Location)
-
- Type:
data.itemstack - Purpose: Provides a configured item stack.
- Editable fields:
-
Material(default:DIAMOND) -
Amount(default:1)
-
- Outputs:
-
Item(Data: ItemStack)
-
- Type:
data.number - Purpose: Provides a numeric value.
- Editable fields:
-
Number(default:1)
-
- Outputs:
-
Value(Data: Number)
-
- Type:
data.text - Purpose: Provides a text string.
- Editable fields:
Text
- Outputs:
-
Text(Data: Text)
-
- If a node input is not wired, most nodes use their editable default field.
- Compare operator defaults to
==if invalid. - Numeric fields fallback safely if invalid input is entered.
- Material, sound, and entity names should use Bukkit enum names.
- Type:
event.player_shoot_bow - Purpose: Triggered when a player shoots a bow.
- Outputs:
-
Then(Execution) -
Player(Data: Player)
-
- Type:
event.player_eat - Purpose: Triggered when a player eats food.
- Outputs:
-
Then(Execution) -
Player(Data: Player)
-
- Type:
event.player_toggle_sneak - Purpose: Triggered when sneaking is toggled.
- Outputs:
-
Then(Execution) -
Player(Data: Player) -
Sneaking(Data: Boolean)
-
- Type:
event.player_toggle_sprint - Purpose: Triggered when sprinting is toggled.
- Outputs:
-
Then(Execution) -
Player(Data: Player) -
Sprinting(Data: Boolean)
-
- Type:
event.weather_change - Purpose: Triggered when weather state changes.
- Outputs:
-
Then(Execution) -
IsStorm(Data: Boolean)
-
- Type:
event.time_change - Purpose: Triggered when world time changes.
- Outputs:
-
Then(Execution) -
Time(Data: Number)
-
- Type:
logic.set_variable - Purpose: Stores a global variable value.
- Inputs:
-
In(Execution) -
Name(Data: Text) -
Value(Data: Any)
-
- Outputs:
-
Then(Execution)
-
- Type:
logic.get_variable - Purpose: Retrieves a global variable value.
- Inputs:
-
Name(Data: Text)
-
- Outputs:
-
Value(Data: Any)
-
- Type:
logic.set_player_variable - Purpose: Stores a variable scoped to one player.
- Inputs:
-
In(Execution) -
Player(Data: Player) -
Name(Data: Text) -
Value(Data: Any)
-
- Outputs:
-
Then(Execution)
-
- Type:
logic.get_player_variable - Purpose: Retrieves a player-scoped variable.
- Inputs:
-
Player(Data: Player) -
Name(Data: Text)
-
- Outputs:
-
Value(Data: Any)
-
- Type:
logic.get_distance - Purpose: Calculates distance between two locations.
- Inputs:
-
Location A(Data: Location) -
Location B(Data: Location)
-
- Outputs:
-
Distance(Data: Number)
-
- Type:
logic.player_has_item - Purpose: Checks whether a player has an item.
- Inputs:
-
Player(Data: Player) -
Item(Data: ItemStack)
-
- Outputs:
-
Has(Data: Boolean)
-
- Type:
logic.break - Purpose: Loop control marker for break-style flow.
- Inputs:
-
In(Execution)
-
- Outputs:
-
Then(Execution)
-
- Type:
logic.continue - Purpose: Loop control marker for continue-style flow.
- Inputs:
-
In(Execution)
-
- Outputs:
-
Then(Execution)
-
- Type:
logic.cooldown - Purpose: Returns whether cooldown key is ready.
- Inputs:
-
Key(Data: Text) -
Time(Data: Number)
-
- Outputs:
-
Ready(Data: Boolean)
-
- Type:
logic.color_text - Purpose: Applies formatting/color codes to text.
- Inputs:
-
Text(Data: Text)
-
- Outputs:
-
Text(Data: Text)
-
- Type:
logic.is_sneaking - Purpose: Checks if player is sneaking.
- Inputs:
-
Player(Data: Player)
-
- Outputs:
-
Result(Data: Boolean)
-
- Type:
logic.is_sprinting - Purpose: Checks if player is sprinting.
- Inputs:
-
Player(Data: Player)
-
- Outputs:
-
Result(Data: Boolean)
-
- Type:
logic.is_on_ground - Purpose: Checks if player is on the ground.
- Inputs:
-
Player(Data: Player)
-
- Outputs:
-
Result(Data: Boolean)
-
- Type:
logic.is_in_water - Purpose: Checks if player is in water.
- Inputs:
-
Player(Data: Player)
-
- Outputs:
-
Result(Data: Boolean)
-
- Type:
logic.random_player - Purpose: Picks a random online player.
- Outputs:
-
Player(Data: Player)
-
- Type:
action.set_player_health - Purpose: Sets a player's health.
- Inputs:
-
In(Execution) -
Player(Data: Player) -
Health(Data: Number)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.set_player_hunger - Purpose: Sets a player's hunger level.
- Inputs:
-
In(Execution) -
Player(Data: Player) -
Hunger(Data: Number)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.set_block - Purpose: Sets a block at a location.
- Inputs:
-
In(Execution) -
Location(Data: Location) -
Material(Data: Text)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.break_block - Purpose: Breaks a block at a location.
- Inputs:
-
In(Execution) -
Location(Data: Location)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.remove_item - Purpose: Removes an item from player inventory.
- Inputs:
-
In(Execution) -
Player(Data: Player) -
Item(Data: ItemStack)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.clear_inventory - Purpose: Clears player inventory.
- Inputs:
-
In(Execution) -
Player(Data: Player)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.damage_player - Purpose: Damages a player.
- Inputs:
-
In(Execution) -
Player(Data: Player) -
Amount(Data: Number)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.heal_player - Purpose: Heals a player.
- Inputs:
-
In(Execution) -
Player(Data: Player) -
Amount(Data: Number)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.send_title - Purpose: Sends title and subtitle to player.
- Inputs:
-
In(Execution) -
Player(Data: Player) -
Title(Data: Text) -
Subtitle(Data: Text)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.send_actionbar - Purpose: Sends action bar text to player.
- Inputs:
-
In(Execution) -
Player(Data: Player) -
Text(Data: Text)
-
- Outputs:
-
Then(Execution)
-
- Type:
action.set_item_name - Purpose: Changes item display name.
- Inputs:
-
Item(Data: ItemStack) -
Name(Data: Text)
-
- Outputs:
-
Item(Data: ItemStack)
-
- Type:
action.set_item_lore - Purpose: Changes item lore text.
- Inputs:
-
Item(Data: ItemStack) -
Lore(Data: Text)
-
- Outputs:
-
Item(Data: ItemStack)
-
- Type:
action.enchant_item - Purpose: Adds enchantment to item.
- Inputs:
-
Item(Data: ItemStack) -
Enchantment(Data: Text) -
Level(Data: Number)
-
- Outputs:
-
Item(Data: ItemStack)
-
- Type:
data.get_player_health - Purpose: Reads current player health.
- Inputs:
-
Player(Data: Player)
-
- Outputs:
-
Health(Data: Number)
-
- Type:
data.get_player_hunger - Purpose: Reads current player hunger.
- Inputs:
-
Player(Data: Player)
-
- Outputs:
-
Hunger(Data: Number)
-
- Type:
data.get_player_location - Purpose: Reads player's current location.
- Inputs:
-
Player(Data: Player)
-
- Outputs:
-
Location(Data: Location)
-
- Type:
data.get_block_type - Purpose: Reads block material at location.
- Inputs:
-
Location(Data: Location)
-
- Outputs:
-
Material(Data: Text)
-