GUI Menus

Last updated Sep 18, 2026

GUI Menus

Inventory menus are controlled by gui.enabled in config.yml and layout in gui.yml.

When GUIs are disabled, use /sf help and subcommands instead.

Global GUI settings

Master kill switch: config.ymlgui.enabled.

From gui.yml settings (cosmetics / sounds only):

Key Default Description
filler-material GRAY_STAINED_GLASS_PANE Empty slot filler
filler-name " " Filler display name
open-sound BLOCK_CHEST_OPEN Sound on open
open-sound-volume 0.7 Open volume
open-sound-pitch 1.2 Open pitch
click-sound UI_BUTTON_CLICK Click sound (NONE to disable)
click-sound-volume 0.5 Click volume
click-sound-pitch 1.0 Click pitch

size is row count (3 to 6), not total slots.

Menu Rows Slots
Main Hub 5 45
Player Stats 5 45
Player Settings 5 45
Admin Control 5 45
Room Browser 5 45
Leaderboard Rooms 5 45
Leaderboard View 5 45
Schematic Browser 5 45

Main Hub (/sf menu)

5 rows, black fill (same pattern as the wand editor). Footer: Leave @39, Close @41.

Row Items
1 Leaderboards, Your Stats, Commands
2 Quick Join, Room Browser, Session Status
3 Admin Control (soapsfloor.admin.gui), Settings (soapsfloor.player.settings)
4 Leave Session, Close

Child hub menus (Admin, Stats, Settings, browsers, leaderboards) use the same 5-row fill and Back @39 / Close @41. Decorative panes never share slots with clickable items.

Slot item Action Permission
Leaderboards Open leaderboard room list None
Your Stats Open player stats None
Commands Run help None
Quick Join /sf quickjoin — join an open room, or queue if all are full None
Room Browser Open room browser None
Session Status Display only None
Admin Control Open admin panel soapsfloor.admin.gui
Settings Open settings soapsfloor.player.settings
Leave Session Leave current run (teleport to room exit) None
Close Close menu None

Admin Control

Reload, Debug, Room Browser on the content row. Back returns to the hub. Close closes the menu.

Room Browser

Paginated list of rooms. Click a room to join.

Placeholders on room items: {room_id}, {floors}, {players}, {max_players}, {status}, {best_time}.

Player Stats (/sf stats)

Shows {total_kills}, {games_completed}, {best_time_current_room}, {best_time_overall}, {best_room_name}, {rooms_with_best}.

Player Settings

Toggle Action
Feedback Mode Chat vs actionbar for editor feedback
Actionbar Hints Editor wand hints
Floor Preview Ghost block previews

Admin Control

Button Action Permission
Reload Config /sf reload soapsfloor.admin.gui
Debug Info /sf debug soapsfloor.admin.gui
Room Browser Open browser None
Main Hub Return to hub None

Leaderboards

  1. Pick a room from the room list.
  2. View Best Time or Best Kills tabs.

Schematic Browser

Used from /sf wand schematics or shift + right-click wand in editor.

  • Lists .schem files from plugins/SoapsFloor/schematics/
  • Empty folder shows a notice item
  • After selecting a schematic, the floor selector sub-menu sets layer count

Floor Editor (wand editor)

Opened from the editor hotbar comparator.

  1. Hub. Select a floor, then open a settings panel.
  2. Access & locks. Set currency, item costs, and the boss flag.
  3. Mob settings. Set min/max counts, manage the entry list, add via chat, or use defaults.
  4. Countdown. Per-floor delay before drop (inherit room default from Room Settings, or set a custom value).
  5. Custom commands. Commands that run when the floor starts.

See Locked Floors.

Falling Hazard (wand editor)

Opened from the editor hotbar magma cream. Room-wide, off by default. Saves to the room YAML.

  • With GUI on: enable/disable, start timing, fall interval (ticks), hit/above modes, particle, color, advanced density options
  • Particle: left/right cycle presets; shift-click to type any Bukkit name in chat
  • With GUI off: right-click toggles enabled/disabled

See Falling Hazard.

Room Settings (wand editor)

Opened from the editor hotbar nether star. Room-wide (not per-floor): PvP, auto-start, party scaling inherit/on/off, join in progress, keep inventory/XP on death, countdown, min/max players.

Lobby unlock (host)

Shown to the session host before the run when locked floors exist.

  • Open the next locked floor (pays currency and/or items)
  • Start the run when auto-start / waiting timer is not driving the lobby

GUI actions

Defined in gui.yml header comments:

Action Effect
[close] Close menu
[open_menu] <id> Open another menu
[command] <cmd> Player runs command
[prev_page] / [next_page] Pagination
[refresh] Refresh current menu
[join_random] Join random room
[leave_session] Leave session
[help] Show help
[toggle] feedback Toggle feedback mode
[toggle] actionbar Toggle actionbar hints
[toggle] preview Toggle floor preview
[reload] Reload config
[debug] Show debug info
[tab] time / [tab] kills Leaderboard tab
[none] Decorative only

Menu IDs for [open_menu]: main_hub, room_browser, stats, settings, admin, leaderboards, leaderboard_view, schematic_browser.

Per-item permissions

Add permission: soapsfloor.some.perm on a gui.yml item to hide it from players without that node.

Customizing

Edit titles, materials, lore, and slots in gui.yml. Use MiniMessage formatting. Reload with /sf reload.