Rewards

Last updated Oct 28, 2026

Rewards

Victory payouts from global commands and per-room reward tables.

Defaults: Default rewards.yml · Globals also in Default config.yml (victory) · Hub: Config Reference

Quick goal: Want victory rewards.

Staff how-to

  1. Edit tables in rewards.yml (or use shipped casual / standard / hardcore).
  2. Assign: /sf setreward <room> <table> or Room Settings → Reward table.
  3. Optional globals: victory.reward-commands in config.yml.
  4. Dry-run: /sf rewards test <table> [player] [times].
  5. /sf reload, then clear a room.

Commands

Command Permission Description
/sf setreward <room> <table> soapsfloor.admin.setreward Assign table
/sf setreward <room> none soapsfloor.admin.setreward Clear table
/sf rewards list soapsfloor.admin.setreward List tables
/sf rewards info <table> soapsfloor.admin.setreward Inspect entries
/sf rewards test <table> [player] [times] soapsfloor.admin.setreward Dry-run (no commands)

Global victory commands

In config.yml under victory.reward-commands. Placeholders: {player}, {players}, {room}, {time}, {kills}, {total_kills}, {floors}.

Soft prefixes on globals and table lines: message:, broadcast: (once per clear), party:, title:, actionbar:, sound:.

Table structure

Key Description
append-to-global-rewards File default: table rolls plus globals when true
tables.<name>.rolls Weighted picks per player
tables.<name>.unique-rolls No duplicate weighted entry on one clear
tables.<name>.entries Map of named entries

Entry fields

Field Description
map key / display Stable id; optional MiniMessage display
weight Share among eligible entries
chance Optional gate before weight (0–1 or 0–100%)
amount Fixed or {min,max} → {amount}
repeat Times to apply when picked (not the same as table rolls)
always Granted once before weighted picks
first-clear-only Only if this player never cleared this room
Gates permission, party size, floors, kills
commands / message Console commands and optional player message

Roll order

  1. Weakness multiplier (if any)
  2. Party scaling rewards.roll-multiplier-per-player
  3. Always entries that pass gates
  4. Weighted rolls: gates → chance → pick → entry repeat
  5. Optional summary line from messages.yml

Multipliers change roll count (fractional extras), not {amount} or always entries.

Verify

Check Passes when
Assigned Room shows the table in settings
Test /sf rewards test lists grants
Clear Fighters receive table and/or globals

Reload policy: Getting Started.


Defaults: Default rewards.yml · Hub: Config Reference · Intent: Want victory rewards

Still stuck? Ask about this page