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
- Edit tables in
rewards.yml(or use shippedcasual/standard/hardcore). - Assign:
/sf setreward <room> <table>or Room Settings → Reward table. - Optional globals:
victory.reward-commandsinconfig.yml. - Dry-run:
/sf rewards test <table> [player] [times]. /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
- Weakness multiplier (if any)
- Party scaling
rewards.roll-multiplier-per-player - Always entries that pass gates
- Weighted rolls: gates → chance → pick → entry
repeat - 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