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:
- Waiting timer starts (
waiting-timer-seconds, default 30). - More players can join until the room locks or max players is reached.
- If
min-playersis above the current count, the timer holds. - 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:
- Starter countdown in the lobby before floor 1
- 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:
- Mobs spawn at configured locations.
- Mob counter shows on actionbar, chat, or bossbar.
- When all mobs die, a clear message plays.
- After the room/floor
countdown-secondsdelay, the current floor schematic is removed. - 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.
- 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-mythicis true) - Reward tables get fractional extra rolls (weakness ×
rewards.roll-multiplier-per-player) - Optional
max-extra-playerscaps 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:
- Victory title, sound, and particles play.
- Stats are saved (time, kills, floors).
victory.reward-commandsrun from console (message:/broadcast:prefixes; placeholders include{players},{total_kills}).- Room reward table rolls if assigned via
/sf setreward(guaranteedentries, weighted picks, optionalunique-rolls; weakness × party use fractional extras). - After
teleport-delay, players teleport to the room exit (ifvictory.teleport-to-exitis enabled).
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 statsopens personal stats GUI- Main hub → Leaderboards shows per-room best time and kills
Leaderboard cache refreshes every 60 seconds and invalidates on game completion.