Conditions
Conditions can be added to triggers, meaning the trigger won't work until the condition has been met. This includes players or mobs being nearby, a specific number of players being in the dungeon... it even support Mythic conditions!
Conditions are also used by the Conditional Function, which checks its own list of conditions and then runs its THEN functions if they pass, or its ELSE functions if they don't.
How Conditions Are Checked
-
All of a trigger's conditions must pass
Conditions are ANDed together, and the first one that fails stops the check. There is no OR mode, so use the invert toggle when you need a NOT. -
Every condition can be inverted
Applies to all conditions. The Toggle Condition Requirement button (the redstone torch on every condition's hotbar) flips that condition's result, so "must be met" becomes "must NOT be met". -
Conditions are checked after the trigger's delay
They are not checked at the moment the trigger fires. -
Some triggers wait for their conditions
On the Redstone Receiver, Signal Receiver, Leave Dungeon Listener, Player Death Counter and Mob Death Counter triggers, with Allow Retrigger off, a failed check is retried once per second until it passes. Every other trigger checks once and gives up. The Signal Receiver exposes this as its own Wait For Conditions toggle. -
The Player Detector checks its conditions per player
Its scan runs twice a second, and only players who pass the conditions count towards its Minimum Players, so a player-scoped condition there acts as a filter on who gets detected. The conditions are then checked once more when the trigger actually fires. -
Nothing is checked while building
Triggers don't fire in edit mode, so their conditions are never evaluated there. -
A trigger can hold at most 54 conditions
The Add Condition button stops there.
Unconfigured Conditions
A few conditions have an option with no sensible default, such as the status text on Dungeon Status. Until that option is filled in, the condition is skipped instead of failed, so a half-finished condition can't silently block its trigger forever. (Inversion is not applied to a skipped condition either.) The first time it's checked in a dungeon run, a warning like this is logged, and then it stays quiet:
[MythicDungeons] Misconfigured 'Status' condition: no status is set, so it will be ignored
[MythicDungeons] -- Dungeon: MyDungeon | Trigger: Right-Click | At: 100, 64, -32
The conditions that can end up in that state are Dungeon Status, Dungeon Difficulty, Variable Comparison, Player Variable Comparison and Placeholder Check. Every other condition is always considered configured.
Conditions List
| Icon | Name | Description | Requires |
|---|---|---|---|
![]() |
Players Within | Checks that at least (or exactly) a number of players are inside a cube centred on the function. Spectators are never counted. | |
![]() |
Mobs Within | Checks that at least (or exactly) a number of a particular mob are inside a cube centred on the function. Accepts a vanilla entity type, or a Mythic Mob's internal name when Mythic Mobs is installed. | |
![]() |
Player Count | Checks the number of players in the dungeon, either how many are in it now or how many it started with. | |
![]() |
Mythic Condition | Checks a configured condition from Mythic Mobs. By default it's evaluated against the player who triggered, and it can be switched to evaluate at the function's location instead. | Mythic Mobs |
![]() |
Dungeon Status | Checks if the dungeons status is set to a specific text value. | |
![]() |
Trigger Chance | Makes it so this trigger has a random chance of succeeding whenever it's triggered. | |
![]() |
Time Elapsed | Checks if at least a specific amount of seconds have passed in the dungeon. Invert it for "less than". | |
![]() |
Dungeon Difficulty | Checks if the dungeon is set to a specific difficulty level. | |
![]() |
Variable Comparison | Compares two values with support for variables. Variables are set using the Dungeon Variable function, and are formatted like so: [my_variable_here] |
|
| Player Variable Comparison | The same, but it reads variables belonging to the triggering player, which are set using the Player Variable function. | ||
| Placeholder Check | Compares two values with support for PlaceholderAPI placeholders as well as dungeon variables. Can require every player in the dungeon to match. | PlaceholderAPI |
Condition Options
The options below are the buttons on each condition's hotbar, along with the value they start out with. Every condition also has the Toggle Condition Requirement button described above.
Players Within
-
Distance
Half the width of the cube searched around the function. Default3.0. -
Minimum Players Required / Players Required
How many players have to be found. Default1. -
Required Players Exact
When on, the count has to match exactly instead of being a minimum. The button above renames itself to match. Default off.
The search area is a cube, not a sphere, so a distance of 5 searches 5 blocks out along each axis. Players who aren't part of the dungeon still count if they're standing in the area, which matters in one world dungeons. Spectating players never count.
Mobs Within
-
Set Mob Type
A vanilla entity type (case-insensitive, for examplezombie), or a Mythic Mob's internal name (case-sensitive). Defaultzombie. -
Distance
Half the width of the cube searched around the function. Default3.0. -
Minimum Mobs Required / Mobs Required
How many mobs have to be found. Default1. -
Required Mobs Exact
When on, the count has to match exactly instead of being a minimum. Default off.
If the name matches no vanilla entity type and Mythic Mobs isn't installed, the condition quietly falls back to searching for zombies. If Mythic Mobs is installed and the name matches neither a vanilla type nor a known Mythic Mob, the condition simply never passes. Mythic Mob names have to be typed with the same capitalisation as in your mob file.
Player Count
-
Minimum Players Required / Players Required
The number of players to compare against. Default1. -
Required Players Exact
When on, the count has to match exactly instead of being a minimum. Default off. -
Based On Starting Players
When on, the comparison uses how many players were in the dungeon when it started rather than how many are in it right now. Default off.
Mythic Condition
-
Mythic Condition Data
The Mythic condition line, for exampledistance{d=<5}. Defaultexample{value=1}. -
Condition Targets Player
When on, the condition is evaluated against the player who triggered, as both caster and target. When off, or when the trigger fired without a player, an invisible marker armour stand is spawned at the function's location for one tick and the condition is evaluated against that location instead. Default on.
The line is handed to Mythic Mobs untouched, so Mythic's own trailing action words work: distance{d=<5} false inverts the result inside Mythic, separately from the invert toggle. Conditions that need an entity target won't behave sensibly in location mode, and vice versa. Support is limited, see Element Support.
Dungeon Status
- Set Status
The status text the dungeon has to be set to. Case-sensitive, and there is no default, so an unset status means the condition is skipped.
The status is set by the Dungeon Status function. Until something sets it the dungeon has no status at all, and this condition can never match.
Trigger Chance
- Set Chance
The probability of the trigger succeeding, from0.0(never) to1.0(always). Default1.0, which always passes.
The value you type isn't clamped. Anything at or above 1.0 always passes, and anything at or below 0.0 never does.
Time Elapsed
- Maximum Time / Minimum Time
A number of seconds. Default0.
Not inverted, the condition passes once the dungeon has been running for at least that many seconds. Inverted, it passes while the dungeon has been running for less than that many seconds. The timer only starts when the dungeon starts.
Note that the button's label is currently reversed: it reads "Maximum Time" while the condition behaves as a minimum, and "Minimum Time" once inverted. The chat prompt ("AT LEAST" / "LESS THAN") tells you the real behaviour.
Dungeon Difficulty
- Set Difficulty
The difficulty level name. Case-sensitive, and it has to match the key you used underDifficulty.Levelsin the dungeon's config. UseDEFAULTto match a dungeon running with no difficulty selected. There is no default, so an unset difficulty means the condition is skipped.
Unrelated to Minecraft's /difficulty command.
Variable Comparison, Player Variable Comparison and Placeholder Check
-
Set Comparison
An expression such as[kills] >= 5. There is no default, so an unset comparison means the condition is skipped. -
Check All Players (Placeholder Check only)
When on, every player in the dungeon has to satisfy the comparison. When off, only the triggering player is checked. Default off.
The supported operators are =, ==, >, >=, < and <=.
=and==compare numerically when both sides are numbers, and fall back to an exact text match otherwise.>,>=,<and<=are numeric only, and fail when either side isn't a number.- A variable that was never set reads as
0, so[kills] >= 1is simply false before the first kill. - A comparison with no operator in it never passes, and logs
Variable comparison '<your text>' has no operator (=, <, >, <=, >=) and will never pass!once.
Variable Comparison reads dungeon variables, which are set with the Dungeon Variable function. Player Variable Comparison reads only the triggering player's variables, which are set with the Player Variable function; it can't pass on a trigger that fires without a player, and warns the first time that happens. Placeholder Check substitutes dungeon variables first and then runs PlaceholderAPI on both sides, so one expression can mix the two, as in %some_placeholder% >= [price].
Conditions in functions.yml
Conditions are saved as a list on the trigger that owns them. The keys are the internal names of the options, and every condition carries inverted:
conditions:
- ==: net.playavalon.mythicdungeons.dungeons.conditions.ConditionMobWithin
entityName: DungeonEnd
mobsExact: false
count: 1
radius: 5.0
inverted: false








