Conditions Listπ
advancement - Has advancementπ
Context:
Syntax: advancement <name>
Description: Whether the player has the specified advancement.
The only argument is the name of the advancement.
The namespace can be omitted for the minecraft default namespace.
The name must be in the format as configured on your server.
List of all vanilla advancements.
conditions:
killedAllMobs: "advancement adventure/kill_all_mobs"
killedAMob: "advancement minecraft:adventure/kill_a_mob"
and - Conjunctionπ
Context:
Syntax: and <conditions>
Description: The conjunction of the specified conditions.
This means that every condition has to be met in order for conjunction to be true. Used only in complex alternatives, because conditions generally work as conjunction. Instruction string is exactly the same as in alternative.
conditions:
hasArmor: "and has_helmet,has_chestplate,has_leggings,has_boots"
armor - Is wearing armorπ
Context:
Syntax: armor <item>
Description: Whether the player is wearing the specified armor specified in the items section.
conditions:
armorHelmet: "armor helmet_of_concrete"
biome - Is in biomeπ
Context:
Syntax: biome <biome>
Description: Whether the player is in the specified biome.
The only argument is the biome type.
conditions:
inSavannaRock: "biome savanna_rock"
burning - Is burningπ
Context:
Syntax: burning
Description: Whether the player is on fire.
conditions:
isOnFire: "burning"
check - Check conditions inlineπ
Context:
Syntax: check <conditions>
Description: Allows you to specify multiple instructions in one long conjunctive instruction.
Each instruction must be started with ^ character and no other dividers should be used. The condition will be met if all inner conditions are met. It's not the same as and condition, because you can specify an instruction string, not a condition name.
conditions:
fulfillRequirements: "check ^tag beton ^item emerald:5 ^location 100;200;300;survival_nether;5 ^experience 20"
chestitem - Are items in a chestπ
Context:
Syntax: chestitem <location> <items>
Description: Whether the specified items are in the specified chest.
This condition works in the same way as item condition, but it checks the specified chest instead of a player. The first argument is a location of the chest and the second one is the list of items defined in the same way as in item condition. If there is no chest at specified location the condition won't be met.
conditions:
emeraldsInChest: "chestitem 100;200;300;world emerald:5,sword"
conversation - Is conversation startableπ
Context:
Syntax: conversation <conversation>
Description: Whether the conversation has an available starting option.
If no starting option has a condition that returns true then this will return false.
conditions:
isInInnkeeperConv: "conversation innkeeper"
dayofweek - Is day of the weekπ
Context:
Syntax: dayofweek <day>
Description: Whether the current day of the week is the specified one.
You can specify either the english name of the day or the number of the day (1 being monday, 7 sunday,...).
conditions:
isSunday: "dayofweek sunday"
effect - Has potion effectπ
Context:
Syntax: effect <effect>
Description: Whether the player has the specified potion effect.
There is only one argument and it takes values from this page: potion types.
conditions:
hasSpeed: "effect SPEED"
empty - Has empty inventory slotsπ
Context:
Syntax: empty <amount>
Description: Whether the player has at least the specified amount of empty inventory slots.
If you want to check for a specific amount (for example for a full inventory with 0 empty slots) you can append the equal argument.
conditions:
hasFiveEmptySlots: "empty 5"
entities - Are entities in areaπ
Context:
Syntax: entities <entities> <location> <range> [name] [marked]
Description: Whether there are at least the specified amount of specified entities in the specified area.
There are three required arguments - entity type, location and range. Entities are defined as a list separated by commas.
Each entity type (taken from here)
can have an additional amount suffix, for example ZOMBIE:5,SKELETON:2 means 5 or more zombies and 2 or more skeletons.
The location is defined as usual. The number after the location is the range around the location in which will be checked for these entities. You can also specify additional name: argument,
with the name of the required entity. You can use marked: argument to check only for entities marked in spawn action.
conditions:
daemonsSpawned: "entities ZOMBIE:2 100;200;300;world 10 name:Daemon"
eval - Evaluate a conditionπ
Context:
Syntax: eval <expression>
Description: Evaluate the expression and checks the resulting condition.
This condition allows you to resolve an expression containing placeholders, and the result will then be interpreted again as a condition.
conditions:
simpleEval: "eval chestitem -288;64;357;World emerald:5"
complexEval: "eval point ranking 5 %objective.settings.equal%" #(1)!
- This could evaluate to
point ranking 5 equaland will be true if the player has 5 points in the ranking category. But the placeholder could also be empty, and it could be higher or equal to 5. This is not possible in a normal condition.
experience - Has experienceπ
Context:
Syntax: experience <amount>
Description: Whether the player has the specified amount of experience levels.
You can also define decimal numbers, for example experience 1.5 will be met when the player has 1.5 or more experience levels.
If you want to check for an absolute amount of experience points you can convert it to decimal levels.
conditions:
hasLevel30: "experience 30"
hasLevel5dot5: "experience 5.5"
facing - Is facing in a directionπ
Context:
Syntax: facing <direction>
Description: Whether the player is facing the specified direction.
Valid directions are UP, DOWN, NORTH, EAST, WEST and SOUTH. Up and down start at a pitch of 60Β°.
conditions:
lookingEast: "facing EAST"
fly - Is flyingπ
Context:
Syntax: fly
Description: Whether the player is currently flying (Elytra type of flight).
conditions:
isFlying: "fly"
gamemode - Is in gamemodeπ
Context:
Syntax: gamemode <gamemode>
Description: Whether the player is in the specified gamemode.
The first argument is the game mode, i.e. survival, creative, adventure.
conditions:
isInSurvival: "gamemode survival"
globalpoint - Has global pointπ
Context:
Syntax: globalpoint <category> <point>
Description: Whether the specified global point category has the specified amount of points.
conditions:
has100Users: "globalpoint global_knownusers 100"
globaltag - Has global tagπ
Context:
Syntax: globaltag <tag>
Description: Whether the specified global tag is set.
conditions:
areNpcsAggressive: "globaltag global_areNPCsAggressive"
hand - Has item in a handπ
Context:
Syntax: hand <item> [offhand]
Description: Whether the player holds the specified quest item in the hand.
The offhand will be checked instead of the main hand if the offhand keyword is added.
Amount cannot be set here, though it may be checked with the item condition.
conditions:
holdSword: "hand SpecialSword"
holdShieldOffhand: "hand QuestShield offhand"
health - Has healthπ
Context:
Syntax: health <amount>
Description: Whether the player has at least the specified amount health.
The only argument is a number (double). Players can have 0 to 20 health by default (there are some plugins and commands which change the maximum) (0 means dead, don't use that since it will only be met when the player sees the red respawn screen).
conditions:
has5dot6Health: "health 5.6"
height - Is below heightπ
Context:
Syntax: height <amount>
Description: Whether the player is below the specified height.
The required argument is a number or a location (for example 100;200;300;world). In case of location it will take the height from it and use it as regular height.
conditions:
isBelow16: "height 16"
hunger - Has hungerπ
Context:
Syntax: hunger <amount>
Description: Whether the player has at least the specified amount of hunger.
If the hunger level is below 7, the player cannot sprint.
conditions:
has15orMoreHunger: "hunger 15"
inconversation - Is in conversationπ
Context:
Syntax: inconversation [conversation]
Description: Whether the player is currently in the specified conversation.
| Parameter | Syntax | Default Value | Explanation |
|---|---|---|---|
| conversation | conversation:name |
Optional name of the conversation. If specified, it will only check for the conversation with this name. |
conditions:
isInConversation: "inconversation"
talksToInnkeeper: "inconversation conversation:innkeeper"
item - Has itemsπ
Context:
Syntax: item <items>
Description: Whether the player has the specified items in his inventory or backpack.
You specify items in a list separated by commas (without spaces between!). Each item consists of its name and amount, separated by a colon. Amount is optional, so if you specify just item's name the plugin will assume there should be only one item.
conditions:
emeraldsAndGold: "item emerald:5,gold:10"
itemdurability - Has durabilityπ
Context:
Syntax: itemdurability <slot> <amount> [relative]
Description: Whether the player has a certain amount of durability on an item.
The first argument is the slot, the second the amount.
Optional relative argument sets 0 to broken and 1 to the maximum durability the item can have.
This condition returns false when no item is in the given slot or does not have durability, like stone or sticks.
Available slot types: HAND, OFF_HAND, HEAD, CHEST, LEGS, FEET.
conditions:
handOver50: "itemdurability HAND 50"
chestMoreThan50Percent: "itemdurability CHEST 0.5 relative"
journal - Has journal entryπ
Context:
Syntax: journal <entry>
Description: Whether the player has the specified journal entry.
The only argument is name of the entry.
conditions:
journalHasWoodStarted: "journal wood_started"
language - Has language selectedπ
Context:
Syntax: language <languages>
Description: Whether the player has one of the specified languages selected.
conditions:
hasValidLanguage: "language en-US,de-DE,fr-FR"
location - Is at locationπ
Context:
Syntax: location <location> <radius>
Description: Whether the player is at the specified location within the specified radius.
Just two mandatory attributes - location and radius around it.
conditions:
netherEntrance: "location 100;200;300;survival_nether 5"
looking - Is looking at a blockπ
Context:
Syntax: looking [location | type]
Description: Whether the player is looking towards the specified block at the specified location or with the specified material.
You must specify either loc: optional (the location of the block) or type: optional as a block selector.
You can also specify both.
conditions:
targetingStone: "looking loc:12.0;14.0;-15.0;world type:STONE"
moonphase - Is in moonphaseπ
Context:
Syntax: moonphase <moonphase> [world]
Description: Whether the specified moonphase matches the one in the specified world.
| Parameter | Syntax | Default Value | Explanation |
|---|---|---|---|
| MoonPhase | Keyword | A list of moon phases to check for. | |
| world | world:name | player location | The world to check for the moon phase. |
conditions:
fullMoon: "moonphase FULL_MOON"
darkInHub: "moonphase WANING_CRESCENT,NEW_MOON,WAXING_CRESCENT world:hub"
playersFirstJoinMoon: "moonphase %ph.player_first_join_moon%"
npcdistance - Has distance to NPCπ
Context:
Syntax: npcdistance <npc> <distance>
Description: Whether the player is inside the specified radius of the specified NPC.
| Parameter | Syntax | Default Value | Explanation |
|---|---|---|---|
| Npc | Npc | The ID of the Npc | |
| Distance | Number | The maximum distance |
conditions:
canHearBandit: "npcdistance bandit 22"
npclocation - Is NPC at locationπ
Context:
Syntax: npclocation <npc> <location> <distance>
Description: Whether the specified NPC is at the specified location within the specified radius.
| Parameter | Syntax | Default Value | Explanation |
|---|---|---|---|
| Npc | Npc | The ID of the Npc | |
| Location | Location | The location | |
| Distance | Number | The maximum distance |
conditions:
nearTarget: "npclocation merchant 4.0;14.0;-20.0;world 22"
numbercompare - Compare numbersπ
Context:
Syntax: numbercompare <number1> <operation> <number2>
Description: This condition compares two numbers.
The valid operations are: <, <=, =, !=, >=, >.
conditions:
hasMoreThan100Points: "numbercompare %ph.other_plugin:points% >= 100"
objective - Has objectiveπ
Context:
Syntax: objective <objective>
Description: Whether the player has the specified objective.
The only argument is the name of the objective, as defined in the objectives section.
conditions:
hasWoodObjective: "objective wood"
or - Alternativeπ
Context:
Syntax: or <conditions>
Description: The disjunction of the specified conditions.
This means that only one of the conditions has to be met in order for alternative
to be true. You just define one mandatory argument, condition names separated by commas. ! prefix works as always.
conditions:
hasOneRequirement: "or night,rain,!has_armor"
partialdate - Match dateπ
Context:
Syntax: partialdate <pattern>
Description: Whether the current date matches the specified pattern.
You can specify the day of the month, the month or the year it must be that this condition returns true or combine them.
You can also specify multiple days/months/years by just separating them by , or an interval by using -.
If you have trouble understanding how this works have a look at the example.
The example is true between the 1st and the 5th or on the 20th of each month, but only in the year 2017.
conditions:
isEventDate: "partialdate day:1-5,20 year:2017"
party - Check conditions for partyπ
Context:
Syntax: party <radius> <conditions> [location] [every] [any] [count]
Description: Whether the party members fulfill the specified conditions.
This is part of the party system.
This condition takes three optional arguments: every:, any:, count: and location:.
"Every" is a list of conditions that must be met by every player in the party.
Any is a list of conditions that must be met by at least one player in a party (it doesn't have to be the same player,
one can meet first condition, another one can meet the rest, and it will work).
Count is just a number, minimal amount of players in the party.
Location can be used to create a party without the need of a player that is the center of the party.
You don't have to specify all those arguments, you can use only one if you want.
conditions:
partyRequirements: "party 10 has_tag1,!has_tag2 every:some_item any:some_location,some_other_item count:5"
permission - Has permissionπ
Context:
Syntax: permission <permission>
Description: Whether the player has the specified permission.
The instruction string must contain permission node as the required argument.
conditions:
essentialsTpaPermissions: "permission essentials.tpa"
point - Has pointπ
Context:
Syntax: point <category> <amount> [equal]
Description: Whether the player has at least the specified amount of points in the specified category.
There are two required arguments, first is the category (string), second is the amount (integer).
You can also add optional argument equal to accept only players with exactly equal amount of points.
conditions:
has20BetonPoints: "point beton 20"
ride - Is mountedπ
Context:
Syntax: ride <entity>
Description: Whether the player is mounted on the specified entity.
any is also a valid input and matches any entity.
conditions:
horse: "ride horse"
anything: "ride any"
random - Randomπ
Context:
Syntax: random <number>
Description: This condition is met randomly using the specified chance.
There is one argument: two positive numbers like 5-12. They mean something like that: "It will be true 5 times out of 12".
conditions:
twelfthPercent: "random 12-100"
rating - Has armor ratingπ
Context:
Syntax: rating <amount>
Description: Whether the player wears armor which gives at least the specified amount of protection (armor icons).
The first and only argument should be an integer. One armor point is equal to half armor icon in-game (10 means half of the bar filled).
conditions:
armorRating10: "rating 10"
realtime - Is real timeπ
Context:
Syntax: realtime <timespan>
Description: Whether the specified time matches the current real time.
| Parameter | Syntax | Default Value | Explanation |
|---|---|---|---|
| Timespan | startTime-endTime | Two points of time separated by dash in the 24-hour format (0 - 24). The minutes are optional (hh or hh:mm). |
conditions:
allDayReal: "realtime 6-19"
midnightReal: "realtime 23:30-0:30"
knoppersTimeReal: "realtime 9:30-10"
score - Has scoreboard scoreπ
Context:
Syntax: score <score> <amount>
Description: Whether the score in the specified scoreboard objective has at least the specified amount.
| Parameter | Syntax | Default Value | Explanation |
|---|---|---|---|
| scoreboard objective | Objective name | The name of the scoreboard objective | |
| count | Number | The minimum whole number of the objective |
conditions:
hasAtLeastTenKills: "score kills 10"
scoretag - Has scoreboard tagπ
Context:
Syntax: scoretag <tag>
Description: Whether the player has the specified scoreboard tag.
The kind of tags that are used by vanilla Minecraft and not the betonquest tags.
| Parameter | Syntax | Default Value | Explanation |
|---|---|---|---|
| scoreboard tag | Tag name | The name of the scoreboard tag. |
conditions:
hasVanillaTag: "scoretag vanilla_tag"
sneak - Is sneakingπ
Context:
Syntax: sneak
Description: Whether the player is sneaking.
This would probably be useful for creating traps, I'm not sure. There are no arguments for this one.
conditions:
isSneaking: "sneak"
stage - Compare stageπ
Context:
Syntax: stage <objective> <comparator> <stage>
Description: Compare the player's current stage with the specified stage using its index numbers.
For more take a look at the stage objective.
The valid operations are: <, <=, =, !=, >=, >.
| Parameter | Syntax | Default Value | Explanation |
|---|---|---|---|
| stage objective | Objective | The name of the stage objective | |
| comparator | Comparator | The comparator to use for the comparison | |
| stage | Stage | The name of the stage to compare |
conditions:
isDeliverCookies: "stage bakeCookies = deliverCookies"
isDeliverCookiesOrAbove: "stage bakeCookies > cookCookies"
tag - Has tagπ
Context:
Syntax: tag <tag>
Description: Whether the player has the specified tag.
Together with ! negation it is one of the most powerful tools when creating conversations. The instruction string must contain tag name.
conditions:
questCompleted: "tag quest_completed"
testforblock - Matches blockπ
Context:
Syntax: testforblock <location> <selector>
Description: Whether the block at specified location matches the specified material.
First argument is a location, and the second one is a block selector.
conditions:
stoneSet: "testforblock 100;200;300;world STONE"
time - Is timeπ
Context:
Syntax: time <timespan> [world]
Description: Whether the specific time matches the current time in the specified world.
| Parameter | Syntax | Default Value | Explanation |
|---|---|---|---|
| Timespan | startTime-endTime | Two points of time separated by dash in the 24-hour format (0 - 24). The minutes are optional (hh or hh:mm). | |
| world | world:name | player location | The world to check for the time. |
conditions:
allDay: "time 6-19"
midnightInOverworld: "time 23:30-0:30 world:overworld"
knoppersTime: "time 9:30-10"
exactAtTwelveAtPlayersHome: "time 12-12 world:%ph.player_home_world%"
variable - Placeholder matches expressionπ
Context:
Syntax: variable <placeholder> <regex> [forceSync]
Description: Whether the placeholder value matches the specified regular expression
| Parameter | Syntax | Default Value | Explanation |
|---|---|---|---|
| Placeholder | Any placeholder | The placeholder (surrounded by % characters). |
|
| Regex | A regex pattern | The regex that the placeholder value must match. The regex can also be stored in a placeholder. | |
| forceSync | Keyword | False | Forces the placeholder to be resolved on the main thread. This may be required by some third party placeholder. |
conditions:
anyNumber: "variable %objective.var.price% -?\\d+" #(1)!
isPlayer: "variable %ph.parties_members_1% %player%" #(2)!
denizenPlaceholder: "variable %ph.denizen_<server.match_player[SomeName].has_flag[flag_name]>% true forceSync" #(3)!
denizenPlaceholderThis: "variable %ph.denizen_<player.has_flag[flag_name]>% true forceSync" #(4)!
- Returns true if the placeholder
%objective.var.price%contains any number. - Returns true if the
parties_members_1placeholder contains the player's name. - Returns true if the
denizen_<server.match_player[SomeName].has_flag[flag_name]>Denizen placeholder containstrue. This placeholder is resolved on the main thread.The
someNamepart can't be a placeholder! - Works the same as the
denizenPlaceholderwith the only difference it checks for the player the condition is executed with.
weather - Is weatherπ
Context:
Syntax: weather <weather> [world]
Description: Whether the specified weather matches the current weather in the specified world.
There are three possible options: sun, rain and storm. Note that /toggledownfall does not change the weather, it just does what the name suggests: toggles downfall. The rain toggled off will still be considered as rain! Use /weather clear instead.
| Parameter | Syntax | Default Value | Explanation |
|---|---|---|---|
| weather | Keyword | The weather to check for. | |
| world | world:name | player location | The world to check for the weather. |
conditions:
isSunny: "weather sun"
weatherInPlayerWorld: "weather rain world:%ph.player_home_world%"
overworldIsRainy: "weather rain world:overworld"
world - Is in worldπ
Context:
Syntax: world <world>
Description: Whether the player is in the specified world.
The first argument is the name of a world.
conditions:
isInWorld: "world world"