Veltrix v0.2.4 — Release Notes
Release Date: March 21, 2026
Overview
v0.2.4 is a node expansion release, adding 35 new nodes across all four categories: Events, Logic, Actions, and Data. These nodes significantly extend what plugins can do without writing code, covering player state, world interaction, item manipulation, variables, and flow control utilities.
New Event Nodes
Player Shoot Bow (event.player_shoot_bow)
Triggered when a player fires an arrow from a bow.
- Outputs:
Then,Player
Player Eat (event.player_eat)
Triggered when a player consumes food.
- Outputs:
Then,Player
Player Toggle Sneak (event.player_toggle_sneak)
Triggered when a player starts or stops sneaking.
- Outputs:
Then,Player,Sneaking(Boolean)
Player Toggle Sprint (event.player_toggle_sprint)
Triggered when a player starts or stops sprinting.
- Outputs:
Then,Player,Sprinting(Boolean)
Weather Change (event.weather_change)
Triggered when the world weather changes.
- Outputs:
Then,IsStorm(Boolean)
Time Change (event.time_change)
Triggered when the world time changes.
- Outputs:
Then,Time(Number)
New Logic Nodes
Set Variable (logic.set_variable)
Stores a value in a named global variable. Global variables persist across all players for the lifetime of the plugin instance.
- Inputs:
In,Name(Text),Value(Any) - Outputs:
Then
Get Variable (logic.get_variable)
Reads a named global variable value.
- Inputs:
Name(Text) - Outputs:
Value(Any)
Set Player Variable (logic.set_player_variable)
Stores a value in a named variable scoped to a specific player. Useful for per-player counters, states, and flags.
- Inputs:
In,Player,Name(Text),Value(Any) - Outputs:
Then
Get Player Variable (logic.get_player_variable)
Reads a player-scoped variable by name.
- Inputs:
Player,Name(Text) - Outputs:
Value(Any)
Get Distance (logic.get_distance)
Calculates the 3D distance between two locations.
- Inputs:
Location A,Location B - Outputs:
Distance(Number)
Has Item (logic.player_has_item)
Checks whether a player currently has a specific item in their inventory.
- Inputs:
Player,Item(ItemStack) - Outputs:
Has(Boolean)
Break Loop (logic.break)
Loop control node — signals the current loop to exit immediately.
- Inputs:
In - Outputs:
Then
Continue Loop (logic.continue)
Loop control node — signals the current loop to skip to the next iteration.
- Inputs:
In - Outputs:
Then
Cooldown Check (logic.cooldown)
Returns whether a named cooldown key is ready. Useful for rate-limiting actions per player or globally.
- Inputs:
Key(Text),Time(Number, seconds) - Outputs:
Ready(Boolean)
Color Text (logic.color_text)
Applies Minecraft color and formatting codes (&a, &l, etc.) to a text string.
- Inputs:
Text - Outputs:
Text
Is Sneaking (logic.is_sneaking)
Checks if a player is currently sneaking.
- Inputs:
Player - Outputs:
Result(Boolean)
Is Sprinting (logic.is_sprinting)
Checks if a player is currently sprinting.
- Inputs:
Player - Outputs:
Result(Boolean)
Is On Ground (logic.is_on_ground)
Checks if a player is standing on a solid block.
- Inputs:
Player - Outputs:
Result(Boolean)
Is In Water (logic.is_in_water)
Checks if a player is currently submerged in water.
- Inputs:
Player - Outputs:
Result(Boolean)
Random Player (logic.random_player)
Picks a random online player from the server.
- Outputs:
Player
New Action Nodes
Set Player Health (action.set_player_health)
Sets a player's health to an exact value (0–20 for vanilla hearts).
- Inputs:
In,Player,Health(Number) - Outputs:
Then
Set Player Hunger (action.set_player_hunger)
Sets a player's food level (0–20).
- Inputs:
In,Player,Hunger(Number) - Outputs:
Then
Set Block (action.set_block)
Replaces a block at a world location with the specified material.
- Inputs:
In,Location,Material(Text) - Outputs:
Then
Break Block (action.break_block)
Removes a block at a location, dropping no items.
- Inputs:
In,Location - Outputs:
Then
Remove Item (action.remove_item)
Removes an item (by type and amount) from a player's inventory.
- Inputs:
In,Player,Item(ItemStack) - Outputs:
Then
Clear Inventory (action.clear_inventory)
Removes all items from a player's inventory.
- Inputs:
In,Player - Outputs:
Then
Damage Player (action.damage_player)
Deals damage to a player by the given amount.
- Inputs:
In,Player,Amount(Number) - Outputs:
Then
Heal Player (action.heal_player)
Restores a player's health by the given amount.
- Inputs:
In,Player,Amount(Number) - Outputs:
Then
Send Title (action.send_title)
Sends a title and subtitle text overlay to a player's screen.
- Inputs:
In,Player,Title(Text),Subtitle(Text) - Outputs:
Then
Send Action Bar (action.send_actionbar)
Sends text to the player's action bar (above the hotbar).
- Inputs:
In,Player,Text(Text) - Outputs:
Then
Set Item Name (action.set_item_name)
Changes the display name of an item stack. Returns the modified item.
- Inputs:
Item(ItemStack),Name(Text) - Outputs:
Item(ItemStack)
Set Item Lore (action.set_item_lore)
Sets the lore (description) text on an item stack. Returns the modified item.
- Inputs:
Item(ItemStack),Lore(Text) - Outputs:
Item(ItemStack)
Enchant Item (action.enchant_item)
Adds an enchantment to an item at a specified level. Returns the modified item.
- Inputs:
Item(ItemStack),Enchantment(Text),Level(Number) - Outputs:
Item(ItemStack)
New Data Nodes
Get Player Health (data.get_player_health)
Reads a player's current health value.
- Inputs:
Player - Outputs:
Health(Number)
Get Player Hunger (data.get_player_hunger)
Reads a player's current food level.
- Inputs:
Player - Outputs:
Hunger(Number)
Get Player Location (data.get_player_location)
Reads a player's current world position.
- Inputs:
Player - Outputs:
Location
Get Block Type (data.get_block_type)
Reads the material type of a block at a given location.
- Inputs:
Location - Outputs:
Material(Text)
Usage Notes
- Variable nodes (
set_variable,get_variable,set_player_variable,get_player_variable) store values at runtime only — they do not persist between server restarts. - Player variable names are case-sensitive strings. Use consistent naming across
SetandGetnodes in the same graph. - Item modification nodes (
set_item_name,set_item_lore,enchant_item) return a newItemStackoutput — wire their outputItemport into aGive Itemnode to deliver the result to a player. - Enchantment names use Bukkit enum names (e.g.
DAMAGE_ALL,PROTECTION_ENVIRONMENTAL,ARROW_DAMAGE). color_texttranslates&color codes to the Minecraft§format (e.g.&aHello→ green "Hello").cooldownis keyed by a text string — use unique keys per cooldown (e.g."kit_starter","pvp_damage").
Node Count
| Category | Previous | Added | Total |
|---|---|---|---|
| Events | 16 | 6 | 22 |
| Logic | 13 | 15 | 28 |
| Actions | 6 | 13 | 19 |
| Data | 5 | 4 | 9 |
| Total | 40 | 38 | 78 |