Warp Rules
Minecraft 26.1 and above
Waystones now uses Shogi for configuring warp rules.
The old warpRequirements option has been replaced by a new rules option with a slightly different syntax - see the migration guide below for more information.
Waystones-Specific Conditions and Wrappers
| Function | Description |
|---|---|
source(...) | Evaluates the nested effect or condition against the source waystone. |
target(...) | Evaluates the nested effect or condition against the target waystone. |
name_equals('name') | Checks whether the current effective waystone name exactly matches the given string. |
name_contains('text') | Checks whether the current effective waystone name contains the given text. |
is_dimension('namespace:path') | Checks whether the current effective waystone dimension matches the given dimension. |
involves_dimension('namespace:path') | Checks whether either the source or target side of the warp is in the given dimension. |
is_within_distance(number) | Checks whether the target waystone is within the given straight-line distance. |
is_interdimensional | Checks whether the warp crosses dimensions. |
is_warp_plate | Checks whether the effective waystone is a warp plate. |
is_portstone | Checks whether the warp was initiated from a portstone. |
is_waystone | Checks whether the effective waystone is a regular waystone. |
is_sharestone | Checks whether the effective waystone is any sharestone. |
is_inventory_button | Checks whether the warp was initiated from the inventory button. |
is_scroll | Checks whether the warp item is any scroll. |
is_bound_scroll | Checks whether the warp item is a bound scroll. |
is_return_scroll | Checks whether the warp item is a return scroll. |
is_warp_scroll | Checks whether the warp item is a warp scroll. |
is_warp_stone | Checks whether the warp item is a warp stone. |
is_global | Checks whether the effective waystone is global. |
is_owner | Checks whether the player using the warp owns the effective waystone. |
has_owner | Checks whether the effective waystone has an owner. |
is_with_pets | Checks whether the teleporting entity has pets that would come along. |
is_with_passengers | Checks whether the teleporting entity has passengers. |
is_with_leashed | Checks whether the teleporting entity has leashed mobs. |
Sharestone variants: is_orange_sharestone, is_magenta_sharestone, is_light_blue_sharestone, is_yellow_sharestone, is_lime_sharestone, is_pink_sharestone, is_gray_sharestone, is_light_gray_sharestone, is_cyan_sharestone, is_purple_sharestone, is_blue_sharestone, is_brown_sharestone, is_green_sharestone, is_red_sharestone, is_black_sharestone
Context Variables
| Variable | Description |
|---|---|
$distance | Straight-line distance from the entity to the target waystone. |
$leashed | Number of leashed mobs included in the teleport. |
$pets | Number of pets included in the teleport. |
$passengers | Number of passengers included in the teleport. |
Common Built-In Shogi Effects
Waystones also supports Shogi's built-in effects. The following ones are the most useful for writing warp rules.
| Effect | Description |
|---|---|
if(condition = ..., then = ..., else = ...) | Evaluates the given condition and returns either the then or else value or effect result. |
clamp(value, min, max) | Clamps a numeric value to the specified minimum and maximum. |
clamp_min(value, min) | Enforces a minimum value without changing larger values. |
clamp_max(value, max) | Enforces a maximum value without changing smaller values. |
xp_points_cost(xp) | Charges the specified amount of XP points if the overall rule evaluation succeeds. |
xp_level_cost(level) | Charges the specified amount of XP levels if the overall rule evaluation succeeds. |
item_cost('namespace:path', count) | Requires and consumes the specified item count if the overall rule evaluation succeeds. |
damage_item(amount) | Damages the triggering warp item, such as a warp stone, by the specified amount. |
cooldown_cost('id', 'duration') | Applies a blocking cooldown that can refuse later warps until it expires. |
add_cooldown('id', 'duration') | Applies a non-blocking cooldown marker that later rules can check. |
refuse('message') | Stops the warp and shows the player the specified message. |
dismount() | Forces the teleporting entity to dismount before teleporting. |
Generic Shogi conditions and advanced built-ins are intentionally not duplicated here. For inventory, biome, block, vehicle, cooldown, and other generic checks, refer to the Shogi documentation.
Migration to Shogi
Syntax Changes
Legacy warpRequirements lines use this format:
[conditions] modifier(args)
The new rules option uses Shogi syntax instead:
condition -> effect(...)
condition1 + condition2 -> effect(...)
condition1, condition2 -> effect(...)
!condition -> effect(...)
+means AND.,means OR.!negates a condition.
Legacy bracketed condition lists were AND, not OR.
In other words, [condition1, condition2] modifier() becomes condition1 + condition2 -> effect(...), not condition1, condition2 -> effect(...).
Negated legacy aliases also become explicit negation:
is_not_interdimensional->!is_interdimensionalsource_is_not_waystone->!source(is_waystone())
Source and target conditions move into wrappers:
source_is_*->source(is_*())target_is_*->target(is_*())
Checks that refer to the teleport item or button become direct conditions without source(...):
source_is_warp_stone->is_warp_stonesource_is_inventory_button->is_inventory_buttonsource_is_scroll->is_scroll
String-like values should be quoted:
- messages
- waystone names
- dimensions
- item ids
- cooldown ids
- durations
Durations should use Shogi duration syntax such as '300s'.
Old vs New Defaults
The default 1.21.11 teleports.warpRequirements value is:
[is_not_interdimensional] scaled_add_xp_cost(distance, 0.01)
[is_interdimensional] add_xp_cost(27)
[source_is_warp_plate] multiply_xp_cost(0)
[source_is_warp_stone] add_durability_cost(80)
[target_is_global] multiply_xp_cost(0)
min_xp_cost(0)
max_xp_cost(27)
[source_is_inventory_button] add_cooldown(inventory_button, 300)
The default 26.1 teleports.rules value is:
$xp_points_cost = if(condition = is_interdimensional, then = 27, else = $distance * 0.01)
source(is_warp_plate()), target(is_global()) -> $xp_points_cost = 0
$xp_points_cost = clamp($xp_points_cost, 0, 27)
is_warp_stone -> damage_item(80)
is_inventory_button -> cooldown_cost('inventory_button', '300s')
Old Conditions To New Conditions
| Legacy condition | 26.1 condition |
|---|---|
is_interdimensional | is_interdimensional |
is_not_interdimensional | !is_interdimensional |
source_is_warp_plate | source(is_warp_plate()) |
source_is_waystone | source(is_waystone()) |
source_is_sharestone | source(is_sharestone()) |
source_is_portstone | is_portstone |
source_is_inventory_button | is_inventory_button |
source_is_scroll | is_scroll |
source_is_bound_scroll | is_bound_scroll |
source_is_return_scroll | is_return_scroll |
source_is_warp_scroll | is_warp_scroll |
source_is_warp_stone | is_warp_stone |
target_is_warp_plate | target(is_warp_plate()) |
target_is_waystone | target(is_waystone()) |
target_is_sharestone | target(is_sharestone()) |
target_is_global | target(is_global()) |
source_name_equals(Foo) | source(name_equals('Foo')) |
source_name_contains(Foo) | source(name_contains('Foo')) |
target_name_equals(Foo) | target(name_equals('Foo')) |
target_name_contains(Foo) | target(name_contains('Foo')) |
source_is_dimension(minecraft:the_end) | source(is_dimension('minecraft:the_end')) |
target_is_dimension(minecraft:the_end) | target(is_dimension('minecraft:the_end')) |
involves_dimension(minecraft:the_end) | involves_dimension('minecraft:the_end') |
is_within_distance(100) | is_within_distance(100) |
has_cooldown(inventory_button) | has_cooldown('inventory_button') |
has_cooldown_above(inventory_button, 60) | is_cooldown_above('inventory_button', '60s') |
Any *_not_* or not_* alias | Use ! with the positive 26.1 condition |
Old Modifiers And Effects To New Effects
Direct Mappings
| Legacy modifier | 26.1 equivalent |
|---|---|
refuse(message) | refuse('message') |
dismount() | dismount() |
add_cooldown(id, seconds) | cooldown_cost('id', '<seconds>s') |
add_soft_cooldown(id, seconds) | add_cooldown('id', '<seconds>s') |
XP Point Cost Patterns
| Legacy modifier | 26.1 pattern |
|---|---|
add_xp_cost(n) | $xp_points_cost = $xp_points_cost + n |
multiply_xp_cost(n) | $xp_points_cost = $xp_points_cost * n |
scaled_add_xp_cost(distance, s) | $xp_points_cost = $xp_points_cost + $distance * s |
scaled_multiply_xp_cost(distance, s) or legacy typo variants | $xp_points_cost = $xp_points_cost * $distance * s |
min_xp_cost(n) | $xp_points_cost = clamp_min($xp_points_cost, n) or clamp(...) |
max_xp_cost(n) | $xp_points_cost = clamp_max($xp_points_cost, n) or clamp(...) |
XP Level Cost Patterns
| Legacy modifier | 26.1 pattern |
|---|---|
add_level_cost(n) | $xp_level_cost = $xp_level_cost + n |
multiply_level_cost(n) | $xp_level_cost = $xp_level_cost * n |
scaled_add_level_cost(distance, s) | $xp_level_cost = $xp_level_cost + $distance * s |
scaled_multiply_level_cost(distance, s) | $xp_level_cost = $xp_level_cost * $distance * s |
min_level_cost(n) | $xp_level_cost = clamp_min($xp_level_cost, n) or clamp(...) |
max_level_cost(n) | $xp_level_cost = clamp_max($xp_level_cost, n) or clamp(...) |
Durability Cost Patterns
| Legacy modifier | 26.1 pattern |
|---|---|
add_durability_cost(n) | $damage_item = $damage_item + n |
multiply_durability_cost(n) | $damage_item = $damage_item * n |
scaled_add_durability_cost(distance, s) | $damage_item = $damage_item + $distance * s |
scaled_multiply_durability_cost(distance, s) | $damage_item = $damage_item * $distance * s |
min_durability_cost(n) | $damage_item = clamp_min($damage_item, n) or clamp(...) |
max_durability_cost(n) | $damage_item = clamp_max($damage_item, n) or clamp(...) |
Item Cost Patterns
| Legacy modifier | 26.1 pattern |
|---|---|
add_item_cost(minecraft:diamond, n) | $diamond_cost = $diamond_cost + n then item_cost('minecraft:diamond', $diamond_cost) |
multiply_item_cost(minecraft:diamond, n) | $diamond_cost = $diamond_cost * n then item_cost('minecraft:diamond', $diamond_cost) |
scaled_add_item_cost(distance, minecraft:diamond, s) | $diamond_cost = $diamond_cost + $distance * s then item_cost('minecraft:diamond', $diamond_cost) |
scaled_multiply_item_cost(distance, minecraft:diamond, s) | $diamond_cost = $diamond_cost * $distance * s then item_cost('minecraft:diamond', $diamond_cost) |
min_item_cost(minecraft:diamond, n) | $diamond_cost = clamp_min($diamond_cost, n) then item_cost('minecraft:diamond', $diamond_cost) |
max_item_cost(minecraft:diamond, n) | $diamond_cost = clamp_max($diamond_cost, n) then item_cost('minecraft:diamond', $diamond_cost) |
Cooldown Patterns
| Legacy modifier | 26.1 pattern |
|---|---|
multiply_cooldown(id, n) | $cooldown_duration = $cooldown_duration * n then cooldown_cost('id', $cooldown_duration) |
scaled_add_cooldown(id, distance, s) | $cooldown_duration = $cooldown_duration + $distance * s then cooldown_cost('id', $cooldown_duration) |
scaled_multiply_cooldown(id, distance, s) | $cooldown_duration = $cooldown_duration * $distance * s then cooldown_cost('id', $cooldown_duration) |
min_cooldown(id, n) | $cooldown_duration = clamp_min($cooldown_duration, '<n>s') or clamp(...), then cooldown_cost('id', $cooldown_duration) |
max_cooldown(id, n) | $cooldown_duration = clamp_max($cooldown_duration, '<n>s') or clamp(...), then cooldown_cost('id', $cooldown_duration) |
multiply_soft_cooldown(id, n) | $cooldown_duration = $cooldown_duration * n then add_cooldown('id', $cooldown_duration) |
scaled_add_soft_cooldown(id, distance, s) | $cooldown_duration = $cooldown_duration + $distance * s then add_cooldown('id', $cooldown_duration) |
scaled_multiply_soft_cooldown(id, distance, s) | $cooldown_duration = $cooldown_duration * $distance * s then add_cooldown('id', $cooldown_duration) |
min_soft_cooldown(id, n) | $cooldown_duration = clamp_min($cooldown_duration, '<n>s') or clamp(...), then add_cooldown('id', $cooldown_duration) |
max_soft_cooldown(id, n) | $cooldown_duration = clamp_max($cooldown_duration, '<n>s') or clamp(...), then add_cooldown('id', $cooldown_duration) |
Minecraft ≤ 1.21.11
Warp Requirements are defined in the following format:
[condition1, condition2] modifier()
Example:
[is_not_interdimensional] scaled_add_xp_cost(distance, 0.01)
[is_interdimensional] add_xp_cost(27)
[source_is_warp_plate] multiply_xp_cost(0)
[target_is_global] multiply_xp_cost(0)
min_xp_cost(0)
max_xp_cost(27)
[source_is_inventory_button] add_cooldown(inventory_button, 300)
These definitions are run in-order. Modifiers will only run if all conditions pass.
For example, to disallow interdimensional warps to and from the end, you could use the following requirement:
[is_interdimensional, involves_dimension(minecraft:the_end)] refuse(You cannot warp to or from The End.)
Modifiers
| Modifier | Description | Example |
|---|---|---|
add_level_cost(levels) | Adds the specified amount to the warp level cost | add_level_cost(1) |
multiply_level_cost(levels) | Multiplies the warp level cost by the specified amount | multiply_level_cost(2) |
scaled_add_level_cost(variable, scale) | Adds levels to the cost of the warp in the amount of the specified variable and scale factor | scaled_add_level_cost(distance, 0.01) |
min_level_cost(levels) | Clamps the level cost to the given minimum value. | min_level_cost(1) |
max_level_cost(levels) | Clamps the level cost to the given maximum value. | max_level_cost(3) |
add_xp_cost(levels) | Adds the specified amount to the warp XP cost | add_xp_cost(1) |
multiply_xp_cost(levels) | Multiplies the warp XP cost by the specified amount | multiply_xp_cost(2) |
scaled_add_xp_cost(variable, scale) | Adds XP to the cost of the warp in the amount of the specified variable and scale factor | scaled_add_xp_cost(distance, 0.01) |
min_xp_cost(levels) | Clamps the XP cost to the given minimum value. | min_xp_cost(1) |
max_xp_cost(levels) | Clamps the XP cost to the given maximum value. | max_xp_cost(3) |
add_cooldown(name, seconds) | Adds the specified amount to the warp cooldown | add_cooldown(my_cooldown, 60) |
multiply_cooldown(name, multiplier) | Multiplies the warp cooldown by the specified amount | multiply_cooldown(my_cooldown, 2) |
scaled_add_cooldown(name, variable, scale) | Adds seconds to the cooldown of the warp in the amount of the specified variable and scale factor | scaled_add_cooldown(my_cooldown, distance, 0.01) |
min_cooldown(name, seconds) | Clamps the cooldown to the given minimum value | min_cooldown(my_cooldown, 30) |
max_cooldown(name, seconds) | Clamps the cooldown to the given maximum value | max_cooldown(my_cooldown, 120) |
add_soft_cooldown(name, seconds) | Adds seconds to the cooldown of the warp in the amount of the specified variable and scale factor, without refusing warps | add_soft_cooldown(my_cooldown, 60) |
multiply_soft_cooldown(name, multiplier) | Multiplies the warp cooldown by the specified amount, without refusing warps | multiply_soft_cooldown(my_cooldown, 2) |
scaled_add_soft_cooldown(name, variable, scale) | Adds seconds to the cooldown of the warp in the amount of the specified variable and scale factor, without refusing warps | scaled_add_soft_cooldown(my_cooldown, distance, 0.01) |
min_soft_cooldown(name, seconds) | Clamps the cooldown to the given minimum value, without refusing warps | min_soft_cooldown(my_cooldown, 30) |
max_soft_cooldown(name, seconds) | Clamps the cooldown to the given maximum value, without refusing warps | max_soft_cooldown(my_cooldown, 120) |
add_item_cost(item, count) | Adds the specified amount to the warp item cost | add_item_cost(minecraft:diamond, 1) |
multiply_item_cost(item, multiplier) | Multiplies the warp item cost by the specified amount | multiply_item_cost(minecraft:diamond, 2) |
scaled_add_item_cost(variable, item, scale) | Adds items to the cost of the warp in the amount of the specified variable and scale factor | scaled_add_item_cost(distance, minecraft:diamond, 0.01) |
min_item_cost(item, min) | Clamps the item cost to the given minimum value | min_item_cost(minecraft:diamond, 1) |
max_item_cost(item, max) | Clamps the item cost to the given maximum value | max_item_cost(minecraft:diamond, 3) |
add_durability_cost(amount) | Adds the specified amount to the durability cost for the warp item (e.g. warp stone) | add_durability_cost(1) |
multiply_durability_cost(multiplier) | Multiplies the warp durability cost for the warp item (e.g. warp stone) by the specified amount | multiply_durability_cost(2) |
scaled_add_durability_cost(variable, scale) | Adds durability to the cost of the warp in the amount of the specified variable and scale factor | scaled_add_durability_cost(distance, 0.01) |
min_durability_cost(min) | Clamps the durability cost for the warp item (e.g. warp stone) to the specified minimum value | min_durability_cost(1) |
max_durability_cost(max) | Clamps the durability cost for the warp item (e.g. warp stone) to the specified maximum value | max_durability_cost(3) |
refuse(message) | Refuses the warp with the specified message. Prepend message with $ to use a translation key | refuse(You are not allowed to warp here.) or refuse($your.custom.translation.key) |
dismount() | Dismounts the player from any mounted entity before teleporting | dismount() |
Conditions
| Condition | Description | Example |
|---|---|---|
[is_interdimensional] | Passes if the warp is between two dimensions | [is_interdimensional] |
[is_not_interdimensional] | Passes if the warp is within the same dimension | [is_not_interdimensional] |
[source_is_warp_plate] | Passes if the warp originates from a warp plate | [source_is_warp_plate] |
[source_is_not_warp_plate] | Passes if the warp does not originate from a warp plate | [source_is_not_warp_plate] |
[source_is_waystone] | Passes if the warp originates from a waystone | [source_is_waystone] |
[source_is_not_waystone] | Passes if the warp does not originate from a waystone | [source_is_not_waystone] |
[source_is_portstone] | Passes if the warp originates from a portstone | [source_is_portstone] |
[source_is_not_portstone] | Passes if the warp does not originate from a portstone | [source_is_not_portstone] |
[source_is_sharestone] | Passes if the warp originates from a sharestone | [source_is_sharestone] |
[source_is_not_sharestone] | Passes if the warp does not originate from a sharestone | [source_is_not_sharestone] |
[source_is_orange_sharestone] | Passes if the warp originates from an orange sharestone | [source_is_orange_sharestone] |
[source_is_not_orange_sharestone] | Passes if the warp does not originate from an orange sharestone | [source_is_not_orange_sharestone] |
[source_is_magenta_sharestone] | Passes if the warp originates from a magenta sharestone | [source_is_magenta_sharestone] |
[source_is_not_magenta_sharestone] | Passes if the warp does not originate from a magenta sharestone | [source_is_not_magenta_sharestone] |
[source_is_light_blue_sharestone] | Passes if the warp originates from a light blue sharestone | [source_is_light_blue_sharestone] |
[source_is_not_light_blue_sharestone] | Passes if the warp does not originate from a light blue sharestone | [source_is_not_light_blue_sharestone] |
[source_is_yellow_sharestone] | Passes if the warp originates from a yellow sharestone | [source_is_yellow_sharestone] |
[source_is_not_yellow_sharestone] | Passes if the warp does not originate from a yellow sharestone | [source_is_not_yellow_sharestone] |
[source_is_lime_sharestone] | Passes if the warp originates from a lime sharestone | [source_is_lime_sharestone] |
[source_is_not_lime_sharestone] | Passes if the warp does not originate from a lime sharestone | [source_is_not_lime_sharestone] |
[source_is_pink_sharestone] | Passes if the warp originates from a pink sharestone | [source_is_pink_sharestone] |
[source_is_not_pink_sharestone] | Passes if the warp does not originate from a pink sharestone | [source_is_not_pink_sharestone] |
[source_is_gray_sharestone] | Passes if the warp originates from a gray sharestone | [source_is_gray_sharestone] |
[source_is_not_gray_sharestone] | Passes if the warp does not originate from a gray sharestone | [source_is_not_gray_sharestone] |
[source_is_light_gray_sharestone] | Passes if the warp originates from a light gray sharestone | [source_is_light_gray_sharestone] |
[source_is_not_light_gray_sharestone] | Passes if the warp does not originate from a light gray sharestone | [source_is_not_light_gray_sharestone] |
[source_is_cyan_sharestone] | Passes if the warp originates from a cyan sharestone | [source_is_cyan_sharestone] |
[source_is_not_cyan_sharestone] | Passes if the warp does not originate from a cyan sharestone | [source_is_not_cyan_sharestone] |
[source_is_purple_sharestone] | Passes if the warp originates from a purple sharestone | [source_is_purple_sharestone] |
[source_is_not_purple_sharestone] | Passes if the warp does not originate from a purple sharestone | [source_is_not_purple_sharestone] |
[source_is_blue_sharestone] | Passes if the warp originates from a blue sharestone | [source_is_blue_sharestone] |
[source_is_not_blue_sharestone] | Passes if the warp does not originate from a blue sharestone | [source_is_not_blue_sharestone] |
[source_is_brown_sharestone] | Passes if the warp originates from a brown sharestone | [source_is_brown_sharestone] |
[source_is_not_brown_sharestone] | Passes if the warp does not originate from a brown sharestone | [source_is_not_brown_sharestone] |
[source_is_green_sharestone] | Passes if the warp originates from a green sharestone | [source_is_green_sharestone] |
[source_is_not_green_sharestone] | Passes if the warp does not originate from a green sharestone | [source_is_not_green_sharestone] |
[source_is_red_sharestone] | Passes if the warp originates from a red sharestone | [source_is_red_sharestone] |
[source_is_not_red_sharestone] | Passes if the warp does not originate from a red sharestone | [source_is_not_red_sharestone] |
[source_is_black_sharestone] | Passes if the warp originates from a black sharestone | [source_is_black_sharestone] |
[source_is_not_black_sharestone] | Passes if the warp does not originate from a black sharestone | [source_is_not_black_sharestone] |
[source_is_inventory_button] | Passes if the warp originates from the inventory button | [source_is_inventory_button] |
[source_is_not_inventory_button] | Passes if the warp does not originate from the inventory button | [source_is_not_inventory_button] |
[source_is_warp_stone] | Passes if the warp originates from a warp stone | [source_is_warp_stone] |
[source_is_not_warp_stone] | Passes if the warp does not originate from a warp stone | [source_is_not_warp_stone] |
[source_is_scroll] | Passes if the warp originates from a scroll | [source_is_scroll] |
[source_is_not_scroll] | Passes if the warp does not originate from a scroll | [source_is_not_scroll] |
[source_is_warp_scroll] | Passes if the warp originates from a warp scroll | [source_is_warp_scroll] |
[source_is_not_warp_scroll] | Passes if the warp does not originate from a warp scroll | [source_is_not_warp_scroll] |
[source_is_bound_scroll] | Passes if the warp originates from a bound scroll | [source_is_bound_scroll] |
[source_is_not_bound_scroll] | Passes if the warp does not originate from a bound scroll | [source_is_not_bound_scroll] |
[source_is_return_scroll] | Passes if the warp originates from a return scroll | [source_is_return_scroll] |
[source_is_not_return_scroll] | Passes if the warp does not originate from a return scroll | [source_is_not_return_scroll] |
[source_name_equals] | Passes if the name of the source waystone equals the given parameter | [source_name_equals(Server Spawn)] |
[source_name_contains] | Passes if the name of the source waystone equals the given parameter | [source_name_contains(Home)] |
[target_is_warp_plate] | Passes if the warp destination is a warp plate | [target_is_warp_plate] |
[target_is_not_warp_plate] | Passes if the warp destination is not a warp plate | [target_is_not_warp_plate] |
[target_is_waystone] | Passes if the warp destination is a waystone | [target_is_waystone] |
[target_is_not_waystone] | Passes if the warp destination is not a waystone | [target_is_not_waystone] |
[target_is_sharestone] | Passes if the warp destination is a sharestone | [target_is_sharestone] |
[target_is_not_sharestone] | Passes if the warp destination is not a sharestone | [target_is_not_sharestone] |
[target_is_orange_sharestone] | Passes if the warp originates from an orange sharestone | [target_is_orange_sharestone] |
[target_is_not_orange_sharestone] | Passes if the warp does not originate from an orange sharestone | [target_is_not_orange_sharestone] |
[target_is_magenta_sharestone] | Passes if the warp originates from a magenta sharestone | [target_is_magenta_sharestone] |
[target_is_not_magenta_sharestone] | Passes if the warp does not originate from a magenta sharestone | [target_is_not_magenta_sharestone] |
[target_is_light_blue_sharestone] | Passes if the warp originates from a light blue sharestone | [target_is_light_blue_sharestone] |
[target_is_not_light_blue_sharestone] | Passes if the warp does not originate from a light blue sharestone | [target_is_not_light_blue_sharestone] |
[target_is_yellow_sharestone] | Passes if the warp originates from a yellow sharestone | [target_is_yellow_sharestone] |
[target_is_not_yellow_sharestone] | Passes if the warp does not originate from a yellow sharestone | [target_is_not_yellow_sharestone] |
[target_is_lime_sharestone] | Passes if the warp originates from a lime sharestone | [target_is_lime_sharestone] |
[target_is_not_lime_sharestone] | Passes if the warp does not originate from a lime sharestone | [target_is_not_lime_sharestone] |
[target_is_pink_sharestone] | Passes if the warp originates from a pink sharestone | [target_is_pink_sharestone] |
[target_is_not_pink_sharestone] | Passes if the warp does not originate from a pink sharestone | [target_is_not_pink_sharestone] |
[target_is_gray_sharestone] | Passes if the warp originates from a gray sharestone | [target_is_gray_sharestone] |
[target_is_not_gray_sharestone] | Passes if the warp does not originate from a gray sharestone | [target_is_not_gray_sharestone] |
[target_is_light_gray_sharestone] | Passes if the warp originates from a light gray sharestone | [target_is_light_gray_sharestone] |
[target_is_not_light_gray_sharestone] | Passes if the warp does not originate from a light gray sharestone | [target_is_not_light_gray_sharestone] |
[target_is_cyan_sharestone] | Passes if the warp originates from a cyan sharestone | [target_is_cyan_sharestone] |
[target_is_not_cyan_sharestone] | Passes if the warp does not originate from a cyan sharestone | [target_is_not_cyan_sharestone] |
[target_is_purple_sharestone] | Passes if the warp originates from a purple sharestone | [target_is_purple_sharestone] |
[target_is_not_purple_sharestone] | Passes if the warp does not originate from a purple sharestone | [target_is_not_purple_sharestone] |
[target_is_blue_sharestone] | Passes if the warp originates from a blue sharestone | [target_is_blue_sharestone] |
[target_is_not_blue_sharestone] | Passes if the warp does not originate from a blue sharestone | [target_is_not_blue_sharestone] |
[target_is_brown_sharestone] | Passes if the warp originates from a brown sharestone | [target_is_brown_sharestone] |
[target_is_not_brown_sharestone] | Passes if the warp does not originate from a brown sharestone | [target_is_not_brown_sharestone] |
[target_is_green_sharestone] | Passes if the warp originates from a green sharestone | [target_is_green_sharestone] |
[target_is_not_green_sharestone] | Passes if the warp does not originate from a green sharestone | [target_is_not_green_sharestone] |
[target_is_red_sharestone] | Passes if the warp originates from a red sharestone | [target_is_red_sharestone] |
[target_is_not_red_sharestone] | Passes if the warp does not originate from a red sharestone | [target_is_not_red_sharestone] |
[target_is_black_sharestone] | Passes if the warp originates from a black sharestone | [target_is_black_sharestone] |
[target_is_not_black_sharestone] | Passes if the warp does not originate from a black sharestone | [target_is_not_black_sharestone] |
[target_is_global] | Passes if the warp destination is a global waystone | [target_is_global] |
[target_is_not_global] | Passes if the warp destination is not a global waystone | [target_is_not_global] |
[target_name_equals] | Passes if the name of the source waystone equals the given parameter | [target_name_equals(Server Spawn)] |
[target_name_contains] | Passes if the name of the source waystone equals the given parameter | [target_name_contains(Home)] |
[is_with_passengers] | Passes if the warp is performed with vehicle passengers | [is_with_passengers] |
[is_not_with_passengers] | Passes if the warp is not performed with vehicle passengers | [is_not_with_passengers] |
[is_with_pets] | Passes if the warp is performed with pets | [is_with_pets] |
[is_not_with_pets] | Passes if the warp is not performed with pets | [is_not_with_pets] |
[is_with_leashed] | Passes if the warp is performed with leashed entities | [is_with_leashed] |
[is_not_with_leashed] | Passes if the warp is not performed with leashed entities | [is_not_with_leashed] |
[source_is_dimension(namespace:path)] | Passes if the warp originates from the specified dimension | [source_is_dimension(minecraft:overworld)] |
[source_is_not_dimension(namespace:path)] | Passes if the warp does not originate from the specified dimension | [source_is_not_dimension(minecraft:the_nether)] |
[target_is_dimension(namespace:path)] | Passes if the warp destination is the specified dimension | [target_is_dimension(minecraft:the_end)] |
[target_is_not_dimension(namespace:path)] | Passes if the warp destination is not the specified dimension | [target_is_not_dimension(minecraft:overworld)] |
[involves_dimension(namespace:path)] | Passes if the warp involves the specified dimension | [involves_dimension(minecraft:the_nether)] |
[not_involves_dimension(namespace:path)] | Passes if the warp does not involve the specified dimension | [not_involves_dimension(minecraft:overworld)] |
[is_within_distance(distance)] | Passes if the warp is within the specified distance | [is_within_distance(100)] |
[is_not_within_distance(distance)] | Passes if the warp is not within the specified distance | [is_not_within_distance(100)] |
[has_cooldown(name)] | Passes if the player is on a cooldown | [has_cooldown(inventory_button)] |
[not_has_cooldown(name)] | Passes if the player is not on a cooldown | [not_has_cooldown(inventory_button)] |
[has_cooldown_above(name, seconds)] | Passes if the player is on a cooldown for more than the specified amount of seconds | [has_cooldown_above(inventory_button, 60)] |
[not_has_cooldown_above(name, seconds)] | Passes if the player is not on a cooldown for more than the specified amount of seconds | [not_has_cooldown_above(inventory_button, 60)] |
[is_on_any_vehicle] | Passes if the player is riding any vehicle | [is_on_any_vehicle] |
[is_not_on_any_vehicle] | Passes if the player is not riding any vehicle | [is_not_on_any_vehicle] |
[is_on_vehicle(namespace:path)] | Passes if the player is riding the specified entity type | [is_on_vehicle(minecraft:boat)] |
[is_not_on_vehicle(namespace:path)] | Passes if the player is not riding the specified entity type | [is_not_on_vehicle(minecraft:boat)] |
[has_empty_inventory] | Passes if the player has an empty inventory | [has_empty_inventory] |
[not_has_empty_inventory] | Passes if the player does not have an empty inventory | [not_has_empty_inventory] |
[is_wearing_any_armor] | Passes if the player is wearing any armor | [is_wearing_any_armor] |
[is_not_wearing_any_armor] | Passes if the player is not wearing any armor | [is_not_wearing_any_armor] |
has_item(namespace:path, count) | Passes if the player has the specified item in their inventory | [has_item(minecraft:diamond, 1)] |
not_has_item(namespace:path, count) | Passes if the player does not have the specified item in their inventory | [not_has_item(minecraft:diamond, 1)] |
Variables
| Variable | Description |
|---|---|
| distance | The distance to the warp destination |
| leashed | The amount of leashed entities included in the warp |
| pets | The amount of pets included in the warp |
| passengers | The amount of vehicle passengers included in the warp |
{cooldown} | Remaining seconds of cooldown for this player, where {cooldown} is the name of a cooldown |
Minecraft ≤ 1.20.1
Warp Rules and custom warp requirements did not exist in Minecraft 1.20.1 and below - configuration is limited to controlling xp costs.
Read through the contents of your config/waystones-common.toml file to learn what options are available.