Configuration
Last updated Oct 28, 2026
Configuration
Tour of plugins/SoapsFloor/config.yml essentials. Full dumps: Config Reference.
| File | Guide / defaults |
|---|---|
config.yml |
This page · Default config.yml |
messages.yml |
Default messages.yml |
gui.yml |
GUI Menus · Default gui.yml |
weaknesses.yml |
Weaknesses · Default weaknesses.yml |
rewards.yml |
Rewards · Default rewards.yml |
packs/*.yml |
Room Creation Guide |
Reload YAML with /sf reload. Jar upgrades need a full restart. Reload policy.
General
| Key | Default | Description |
|---|---|---|
gui.enabled |
true |
Master switch for inventory GUIs (all menus; commands/chat still work) |
default-room-settings
Applied to new rooms. Each room can override these in its saved YAML or via the wand Room Settings / Floor Editor.
| Key | Default | Description |
|---|---|---|
max-floors-per-room |
50 |
Floor cap per room |
void-y-level |
-64 |
Y level that fails the run |
direction |
down |
down = drop tower; up = climb + rising flood |
climb-reveal-distance |
8 |
Blocks below next climb segment before it pastes |
climb-overhead-fail-blocks |
2 |
Fail if flood is this many blocks above eye height |
climb-mob-fall-damage |
false |
Climb: floor mobs take fall damage |
climb-after-clear |
ladder |
Clear mode only: stay / ladder / stair-pack. Ladder/Stair: party upstairs → hole closes → mobs spawn |
climb-connector-pack |
"" |
Pack id when climb-after-clear is stair-pack (climb-height = walk floor through next plate) |
climb-retire-lower-floor |
true |
Wipe the cleared floor once the party is upstairs and the hole has closed |
climb-ladder-support |
STONE |
Support block behind temporary ladders (also set in Direction & climb chat) |
enclosure.enabled |
false |
Void shell walls/roof around playable floors |
enclosure.material |
BLACK_CONCRETE |
Shell block type |
enclosure.walls |
true |
Outer walls |
enclosure.roof |
true |
Roof above the tower |
enclosure.padding |
0 |
Extra blocks outside the play area |
starter-to-floor-gap |
5 |
Blocks between starter and floor 1 |
floor-to-floor-gap |
3 |
Blocks between floors |
countdown-seconds |
3 |
Starter countdown and post-clear delay (drop / climb clear-mode) |
countdown-sound |
BLOCK_NOTE_BLOCK_PLING |
Tick sound |
countdown-sound-volume |
1.0 |
Tick volume |
countdown-sound-pitch |
1.0 |
Tick pitch (rises each tick) |
countdown-final-sound |
ENTITY_ENDER_DRAGON_GROWL |
Sound at GO |
countdown-final-volume |
1.0 |
Final sound volume |
countdown-final-pitch |
1.2 |
Final sound pitch |
auto-start-enabled |
true |
Start flow when a player enters starter |
pvp-enabled |
false |
Default for new rooms (toggle per room in Room Settings) |
keep-inventory-on-death |
false |
Keep items on death inside the room (Room Settings) |
keep-experience-on-death |
false |
Keep XP/levels on death inside the room (Room Settings) |
lives |
omit | Optional party lives override (0 = unlimited). Omit to inherit anti-cheese.lives |
waiting-timer-enabled |
true |
Lobby timer before lock |
waiting-timer-seconds |
30 |
Lobby wait time |
ready-check-enabled |
true |
/sf ready: all online fighters ready ends the wait early |
skip-vote-enabled |
true |
/sf skip: majority of online fighters ends the wait early |
spectator-max |
4 |
Lobby spectators via /sf spectate (0 = unlimited) |
min-players |
1 |
Minimum players to lock (0 = disabled) |
max-players |
4 |
Fighter cap (0 = unlimited; spectators use spectator-max) |
allow-join-in-progress |
false |
Join active runs |
join-signs
Clickable signs that join a room. Pattern lines must match (case-insensitive). Use {room} for the room id line.
| Key | Default | Description |
|---|---|---|
enabled |
true |
Master switch for join signs |
lines |
empty / [SF] / {room} / empty |
Match pattern on the sign |
formatted-lines |
styled MiniMessage lines | Applied after a valid sign is created |
Creating a sign requires soapsfloor.admin.sign. Breaking one requires soapsfloor.admin.sign.break.
party-scaling
Locked when the waiting timer ends. Per-room: Room Settings (wand) or party-scaling.enabled on the room YAML (null/omit = inherit).
| Key | Default | Description |
|---|---|---|
enabled |
true |
Global party scaling |
base-players |
1 |
Scaling starts above this count |
lock-at-room-lock |
true |
Snapshot player count at lock |
max-extra-players |
0 |
Cap extras used for scaling (0 = no cap) |
mobs.extra-min-per-player |
0 |
Extra min mobs per extra player |
mobs.extra-max-per-player |
1 |
Extra max mobs per extra player |
mobs.count-multiplier-per-player |
0.15 |
Mob count multiplier |
health.multiplier-per-player |
0.20 |
HP multiplier per extra player |
health.apply-to-vanilla |
true |
Scale vanilla mob HP |
health.apply-to-mythic |
true |
Same HP multiplier on MythicMobs |
health.mythic-level-per-player |
1 |
Mythic level bump per player |
rewards.roll-multiplier-per-player |
0.10 |
Extra reward roll chance |
mob-spawning
| Key | Default | Description |
|---|---|---|
default-min-mobs |
3 |
Default min per floor |
default-max-mobs |
8 |
Default max per floor |
default-mob-type |
vanilla:husk |
vanilla:<type> or mythicmobs:<id> |
default-spread-radius |
3 |
Min blocks between spawns |
spawn-delay-ticks |
0 |
Delay between each mob spawn |
mob-counter-display |
actionbar |
actionbar, chat, or bossbar |
instant-aggro.enabled |
true |
Target nearest fighter on spawn + keep AI aware |
instant-aggro.follow-range |
48 |
Raise follow range if lower (0 = leave alone) |
instant-aggro.apply-to-mythicmobs |
true |
Set false if Mythic handles targeting itself |
block-protection
Built-in so rooms stay intact without WorldGuard. Disable the master switch or individual flags if another protection plugin already covers the area.
| Key | Default | Description |
|---|---|---|
enabled |
true |
Master switch for all room block protection |
prevent-block-break |
true |
Player block breaking |
prevent-block-place |
true |
Player block placing |
prevent-explosions |
true |
TNT / creeper / bed / etc. block damage |
prevent-bucket-use |
true |
Empty / fill buckets |
prevent-fire |
true |
Ignite and burn; snuffs leftover fire on session end |
prevent-mob-grief |
true |
Endermen, ravagers, and other EntityChangeBlock |
prevent-trampling |
true |
Farmland / crop trampling |
prevent-pistons |
true |
Pistons pushing or pulling room blocks |
prevent-dispensers |
true |
Dispense water / lava / flint & steel / TNT into rooms |
prevent-hanging-break |
true |
Item frames, paintings, armor stands |
protect-from-outsiders |
true |
Block edits by players not in that room's session |
protect-inactive-rooms |
false |
Also protect room bounds when no session is running |
Players with soapsfloor.bypass.protection skip protection.
anti-cheese
Admins with soapsfloor.admin skip these rules.
| Key | Default | Description |
|---|---|---|
disable-elytra |
true |
Block elytra flight |
block-ender-pearls |
true |
Block ender pearls |
block-chorus-fruit |
true |
Block chorus fruit teleport |
block-flying |
true |
Block creative flight |
fall-damage-multiplier |
0.0 |
0.0 = none, 1.0 = vanilla |
remove-invisibility-on-join |
true |
Strip invisibility on join |
force-survival |
true |
Force survival; restore gamemode after run |
lives |
3 |
Shared party lives (0 = unlimited; N = spend then spectate). Rooms may override via Room Settings / room YAML lives |
spectator-leash-blocks |
16 |
Spectator roam limit from current floor bounds |
reconnect-grace-seconds |
60 |
Hold a disconnect slot during wait/countdown/run (0 = remove immediately) |
blacklisted-items |
ENDER_EYE |
Materials blocked in sessions |
falling-hazard
Removed from config.yml. Configure per room under falling-hazard in the room YAML or via the wand. See Falling Hazard.
victory
| Key | Default | Description |
|---|---|---|
teleport-to-exit |
true |
Teleport winners to the room exit |
teleport-delay |
3 |
Seconds before teleport |
title-enabled |
true |
Show victory title |
title |
MiniMessage | Title text |
subtitle |
MiniMessage | Subtitle ({time} placeholder) |
title-fade-in |
10 |
Title fade in ticks |
title-stay |
70 |
Title stay ticks |
title-fade-out |
20 |
Title fade out ticks |
sound |
entity.player.levelup |
Victory sound |
sound-volume |
1.0 |
Sound volume |
sound-pitch |
1.0 |
Sound pitch |
victory-particle |
FIREWORK |
Particle effect |
victory-particle-count |
100 |
Particle count |
reward-commands |
list | Console commands on win |
Placeholders: {player}, {players}, {room}, {time}, {kills}, {total_kills}, {floors}.
Prefixes on reward commands: broadcast:<text> (once per clear), message:<text> (per player). & color codes are supported in those prefixes. Per-table append-to-global in rewards.yml can skip globals for that room.
floor-drop
Used when the starter floor is removed at run start and when cleared floors drop mid-run.
| Key | Default | Description |
|---|---|---|
particle-effect |
EXPLOSION |
Drop particle |
particle-count |
50 |
Particle count |
sound-effect |
entity.generic.explode |
Drop sound |
sound-volume |
1.0 |
Volume |
sound-pitch |
0.8 |
Pitch |
editor-mode
| Key | Default | Description |
|---|---|---|
enable-previews |
true |
Ghost block previews |
enable-glow-outline |
true |
Glow on previews |
preview-view-range |
1.0 |
Chunk render distance |
show-particle-borders |
false |
Particle borders |
particle-type |
END_ROD |
Border particle |
particle-interval |
10 |
Border update ticks |
schematic-preview-max-blocks |
5000 |
Max preview blocks |
schematic-preview-blocks-per-tick |
30 |
Preview spawn rate |
schematic-preview-teleport-per-tick |
400 |
Floor ghost move rate on direction/gap change |
schematic-preview-glow |
false |
Glow on schematic preview |
schematic-preview-particles |
true |
Particle box on paste preview |
schematic-preview-skip-decorative |
false |
Hide foliage/carpets in ghosts |
schematic-preview-min-distance |
3 |
Min look distance |
schematic-preview-max-distance |
50 |
Max look distance |
schematic-preview-default-distance |
10 |
Starting look distance |
schematic-preview-update-ticks |
4 |
Follow look interval |
schematic-preview-editor-max-blocks |
5000 |
Cap editor floor ghosts |
schematic-preview-floor-tint |
true |
Per-floor glow tint |
wand-selection.show-particles |
true |
Selection outline |
wand-selection.max-selection-volume |
100000 |
Max selection volume |
wand-selection.max-selection-dimension |
200 |
Max axis length |
restore-location |
true |
Restore position on editor exit |
restore-gamemode |
true |
Restore gamemode on exit |
prevent-block-break |
true |
Block break in editor |
prevent-block-place |
true |
Block place in editor |
show-actionbar-hints |
true |
Editor actionbar hints |
actionbar-interval |
60 |
Hint interval ticks |
schematic-packs
Weighted floor pools under plugins/SoapsFloor/packs/<id>.yml. Assign a pack to a floor slot instead of a single schematic.
| Key | Default | Description |
|---|---|---|
min-entries |
2 |
Minimum schematics required to save a pack |
default-weight |
10 |
Weight applied when adding a schematic without an explicit weight |
Exact width×length must match across pack members; height may differ. Runtime rolls by weight (session-only). See Room Creation Guide.
visualization
| Key | Default | Description |
|---|---|---|
enabled |
true |
Admin markers |
show-bounds |
true |
Floor bounds wireframe |
show-spawns |
true |
Entry and exit markers |
schematic-settings
| Key | Default | Description |
|---|---|---|
floor-removal-inset |
1 |
Blocks kept on floor edge at drop; also keeps mob spawns off walls |
spawn-height-offset |
1.0 |
Blocks above the solid surface under the mob's feet |
debug-mode
Not for production. Toggle with /sf debug, or set in config and /sf reload. Plugin debug logs follow enabled.
| Key | Default | Description |
|---|---|---|
enabled |
false |
Master switch for debug features and debug logging |
instant-start |
true |
Skip countdown when enabled |
instant-floor-drop |
true |
No floor drop delay when enabled |
instant-mob-spawn |
true |
No spawn delay when enabled |
verbose-logging |
false |
Extra console output when enabled |
Defaults: Default config.yml · Hub: Config Reference
Still stuck? Ask about this page