Gameplay Guide

Last updated Sep 18, 2026

Gameplay Guide

How a dungeon run flows from join to victory.

Session flow

Join room → Lobby unlocks (optional) → Waiting timer → Room locks → Weakness vote → Countdown → Floor 1 → Clear mobs → Floor drops → ... → Victory

Joining

Method Command / action
Direct join /sf join <room_id>
Quick join /sf quickjoin (GUI Quick Join uses the same path; queues if all rooms are full)
List rooms /sf list (click a line to join)
Join sign Place a sign matching join-signs in config.yml, then right-click
GUI /sf menu → Room Browser or Quick Join
Leave /sf leave — teleports to the wand exit point; also leaves the quick-join queue
Host start /sf start (when auto-start is off)

On join, players teleport to the entry point (or starter center if unset). Gamemode may switch to survival if anti-cheese.force-survival is true.

Quick join queue

When every room is full or locked, /sf quickjoin places you in a FIFO queue (quick-join in config.yml). Waiting lobbies are filled first, then empty rooms. Use /sf leave to exit the queue.

Lobby unlocks

If the room has locked floors, the host can buy them in the lobby before the run. See Locked Floors. Unbought locked floors are skipped.

Waiting lobby

When auto-start-enabled is true and a player is first to join:

  1. Waiting timer starts (waiting-timer-seconds, default 30).
  2. More players can join until the room locks or max players is reached.
  3. If min-players is above the current count, the timer holds.
  4. When the timer ends, the room locks. Party scaling snapshots player count.

Messages show player count and time remaining.

Weakness vote

If weaknesses.yml has enabled: true, players vote before the countdown. See Weaknesses and Rewards.

Players click chat options or run /sf vote <number>.

Countdown

Default 3 seconds (default-room-settings.countdown-seconds). The same value is used for:

  1. Starter countdown in the lobby before floor 1
  2. Post-clear delay before a cleared floor drops

Per-floor overrides live in Floor Editor → Countdown (inherit room default, or set a custom value). Room Settings (nether star) edits the room default. Debug instant-start can skip the starter countdown.

At GO, the starter floor is removed (same floor-drop particles/sound as mid-run drops) and floor 1 schematic is pasted. Players drop to the first challenge floor.

Floor loop

For each floor:

  1. Mobs spawn at configured locations.
  2. Mob counter shows on actionbar, chat, or bossbar.
  3. When all mobs die, a clear message plays.
  4. After the room/floor countdown-seconds delay, the current floor schematic is removed.
  5. Next floor pastes below. Falling hazard pauses during the drop, then resumes at the same world height if enabled. If it is far above the new floor, it speeds up to catch up, then returns to normal near that floor.
  6. Repeat until all floors are cleared.

Party scaling

With more players:

  • More mobs spawn (mobs.* keys)
  • Mobs gain extra health (vanilla and Mythic when health.apply-to-mythic is true)
  • Reward tables get fractional extra rolls (weakness × rewards.roll-multiplier-per-player)
  • Optional max-extra-players caps how many extras count for scaling (0 = no cap)

Scaling locks when the waiting timer ends. Disable globally in config.yml, or per room via Room Settings (nether star: Inherit / On / Off) or room YAML party-scaling.enabled.

Death and failure

Event Result
Fall below void-y-level Run failed, removed from session
Death with death-behavior: kick Removed from dungeon
Death with death-behavior: spectate Spectator mode
Death with death-behavior: respawn Stay in session; respawn on current floor (brief invulnerability)

Hazard instant kill uses the same death-behavior. See Falling Hazard.

Per-room Keep inventory / Keep experience toggles in Room Settings control what is kept on death inside that dungeon.

Victory

When the last floor is cleared:

  1. Victory title, sound, and particles play.
  2. Stats are saved (time, kills, floors).
  3. victory.reward-commands run from console (message: / broadcast: prefixes; placeholders include {players}, {total_kills}).
  4. Room reward table rolls if assigned via /sf setreward (guaranteed entries, weighted picks, optional unique-rolls; weakness × party use fractional extras).
  5. After teleport-delay, players teleport to the room exit (if victory.teleport-to-exit is enabled).

See Weaknesses and Rewards.

Difficulty labels

Shown in room list and welcome message:

Floors Label
1-3 Easy
4-7 Medium
8-12 Hard
13-20 Extreme
21+ Nightmare

Join in progress

allow-join-in-progress: false by default (set in Room Settings or room YAML). When true, late joiners teleport to the current floor center.

Anti-cheese

Inside sessions (admins exempt):

  • No elytra, pearls, chorus fruit, or flight
  • Blacklisted items cannot be used
  • Block break/place blocked (unless soapsfloor.bypass.protection)
  • PvP off unless enabled on the room (Room Settings / room YAML pvp-enabled)

Stats and leaderboards

  • /sf stats opens personal stats GUI
  • Main hub → Leaderboards shows per-room best time and kills

Leaderboard cache refreshes every 60 seconds and invalidates on game completion.