Conditions

Last updated Sep 18, 2026

Conditions

Conditions control when a player may use a portal. Multiple conditions on one portal typically must all pass (AND logic). Expression-based rules add OR and NOT support.


Commands

Command Purpose
/st setcondition <portal> <condition> Replace conditions with one weather/item rule
/st addcondition <portal> <condition> Add another weather/item rule
/st removecondition <portal> <condition> Remove one condition
/st removecondition <portal> all Clear all conditions

/st setcondition and /st addcondition accept: day, night, rain, thunder, clear, sun, storm, item.

Other rules (level, sneak, flying, world, biome, gamemode, playtime, advancement, nearby players, and more) are set through /st manage or the GUI.

Permissions:

  • st.command.setcondition
  • st.command.addcondition
  • st.command.removecondition (defined in plugin.yml)

Time and Weather

Condition Description
day Daytime only
night Nighttime only
rain Raining
thunder Thunderstorm
clear Clear weather
sun Via command: adds DAY + CLEAR. Via GUI SUN token: clear weather only
storm Rain and thunder together
/st setcondition arena day
/st addcondition arena thunder

Player State (list tokens)

Stored and checked as uppercase tokens (GUI / manage chat):

Token Description
SNEAK Player must be sneaking
FLYING Player must be flying (creative/spectator fly)
SOLO Only one player online on the server
SUN Clear weather (GUI token)
CLEAR Clear weather only

Level

Stored as LEVEL <n> (minimum XP level).

Set via GUI Add Condition → LEVEL, or /st manage <portal> conditions add-level (chat mode).

Example stored value: LEVEL 30


Environment (list tokens)

Token Stored format How to set
World WORLD:<world_name> GUI or /st manage … add-world
Biome BIOME:<biome_key> GUI or /st manage … add-biome
Gamemode GAMEMODE:<mode> GUI or /st manage … add-gamemode

Nearby players (list tokens)

Token Description
PLAYERS_MIN:<n> At least n other players within 10 blocks
PLAYERS_MAX:<n> At most n other players within 10 blocks

(GUI labels these “MIN_PLAYERS” / “MAX_PLAYERS”; stored as PLAYERS_MIN: / PLAYERS_MAX:.)


Items and Money

Items

/st setcondition treasure item DIAMOND 5
/st addcondition quest item ENDER_PEARL

Checks inventory. Does not consume items (use /st setcost to charge items).

Money (balance check only)

Money balance checks are set through the management UI / GUI (not /st setcondition money). They check Vault balance and do not charge the player. See Economy for /st setcost.


Advancement and Playtime

Token Description
ADVANCEMENT:<key> e.g. ADVANCEMENT:minecraft:story/enter_the_end or ADVANCEMENT:enter_the_end
PLAYTIME:<hours> Minimum playtime in hours (Statistic.PLAY_ONE_MINUTE)

Set both via GUI / manage chat prompts. Example: PLAYTIME:10 requires 10 hours of playtime.


Advanced Conditions (Management UI)

These are available through /st manage (GUI or chat) and stored on the portal:

Category Examples
Health and food Min/max health, min/max hunger
Equipment Armor type, weapon in hand, naked, full armor set
Player state Jumping, on fire, sprinting
Social Min/max nearby players, solo only
Time windows timeRange, dateRange in portal data
Usage limits maxUsesPerDay

Combining Conditions

Stack weather/item rules with addcondition, and other rules via manage/GUI:

/st addcondition boss night
/st addcondition boss item DIAMOND_SWORD 1
# Level 20: GUI Add Condition → LEVEL, or /st manage boss → Conditions

All listed conditions must pass.


Expression Conditions (1.0.1+)

Portals can use a condition expression for nested logic:

(player_level>=10 AND has_permission:st.portal.use.vip) OR is_admin

Supported tokens include:

  • is_admin
  • has_permission:<node>
  • player_level>=<number> and player_level><number>
  • online_players>=<number>
  • server_tps>=<number>
  • Condition tokens such as DAY, NIGHT, RAIN, MONEY <amount>

Expressions are evaluated together with standard portal conditions.


RTP portals

RTP teleports run the full ConditionChecker pipeline (same as standard portals), including list tokens and portal field conditions.


Management Interface

/st manage <portal>

Open Conditions in the GUI (when gui.enabled is true) or follow the chat category buttons when GUI is disabled.

Type cancel in chat to abort any prompted input.

Deleting a condition (GUI or manage confirm) removes it by list index, so duplicate entries are removed safely.


Next Steps