Weaknesses and Rewards
Last updated Sep 18, 2026
Weaknesses and Rewards
Optional challenge modifiers and completion rewards.
Weakness system
File: plugins/SoapsFloor/weaknesses.yml
| Key | Default | Description |
|---|---|---|
enabled |
true |
Master toggle |
voting.duration |
15 |
Vote time in seconds |
voting.options-count |
3 |
Random options shown |
voting.allow-no-weakness |
true |
Include "No Weakness" choice |
Vote flow
- Waiting timer ends and room locks.
- Random weaknesses are offered in chat (clickable).
- Players vote with clicks or
/sf vote <number>. - Winner applies for the whole run.
- Countdown starts after voting ends.
/sf vote has no separate permission. Players must be in an active vote.
Reward multiplier
Each weakness has a multiplier (e.g. 1.5 = +50% reward-roll chance via fractional extras). Stacks with party scaling rewards.roll-multiplier-per-player.
Built-in weaknesses
| ID | Effect | Multiplier |
|---|---|---|
no-sprint |
Cannot sprint | 1.3 |
exposed |
Cannot sneak | 1.25 |
half-hearts |
50% max health | 1.5 |
soft-spot |
Take 25% more damage | 1.35 |
no-healing |
No natural / regen healing | 1.5 |
no-shield |
No shields + take 20% more damage (Open Guard) | 1.4 |
no-crits |
Crits deal normal damage | 1.3 |
slow-hands |
−40% attack speed | 1.3 |
short-reach |
50% melee reach | 1.3 |
weakness-effect |
Reduced melee damage | 1.35 |
mining-fatigue |
Mining fatigue (slow swings) | 1.25 |
fragile-armor |
Double durability loss | 1.2 |
no-jumping |
Cannot jump | 1.35 |
heavy-gravity |
Higher gravity | 1.4 |
slowness |
Reduced speed | 1.25 |
hunger-drain |
Continuous hunger loss | 1.3 |
blindness |
Limited vision | 1.4 |
darkness |
Short visibility | 1.45 |
poison |
Constant poison | 1.5 |
no-food |
Cannot eat food | 1.35 |
no-potions |
Cannot drink or throw potions | 1.4 |
no-ranged |
Bows / crossbows / tridents blocked | 1.25 |
no-totems |
Totems of Undying do not activate | 1.3 |
heavy-hit |
Stronger knockback taken | 1.35 |
bleeding |
Hits apply brief wither | 1.4 |
Set enabled: false on any entry to remove it from the vote pool.
Global victory rewards
In config.yml under victory.reward-commands:
reward-commands:
- "broadcast:&e{players} &7cleared &6{room} &7in &a{time}"
- "message:&7Your kills: &a{kills}"
- "eco give {player} 100"
Placeholders: {player}, {players}, {room}, {time}, {kills}, {total_kills}, {floors}.
Commands run as console for each player on victory. Both victory.reward-commands and table commands support message: and broadcast: prefixes.
Reward tables
File: plugins/SoapsFloor/rewards.yml
Weighted tables assigned per room with /sf setreward.
| Command | Permission | Description |
|---|---|---|
/sf setreward <room> <table> |
soapsfloor.admin.setreward |
Assign table |
/sf setreward <room> none |
soapsfloor.admin.setreward |
Clear table |
rewards.yml structure
| Key | Description |
|---|---|
append-to-global-rewards |
true = table rolls plus global commands |
tables.<name>.rolls |
Weighted picks per player |
tables.<name>.unique-rolls |
No duplicate weighted entry on one completion |
tables.<name>.entries |
Guaranteed and/or weighted reward entries |
Each entry:
| Field | Description |
|---|---|
weight |
Relative chance (ignored when guaranteed: true) |
guaranteed |
Always granted once before weighted rolls |
commands |
Console commands; supports message: / broadcast: prefixes |
message |
Optional MiniMessage to the player |
Placeholders: {player}, {room}, {time}, {kills}, {total_kills}, {floors}.
Weakness × party multipliers apply fractional extras (e.g. rolls 1 × 1.3 → one roll plus a 30% chance of a second), not a hard ceil.
Example table
tables:
basic:
rolls: 1
entries:
- weight: 50
message: "<green>+50 Coins!</green>"
commands:
- "eco give {player} 50"
hard:
rolls: 2
unique-rolls: true
entries:
- guaranteed: true
commands:
- "eco give {player} 75"
- weight: 40
commands:
- "eco give {player} 200"
Shipped examples: basic, hard.
Multiplier stacking
Final reward rolls consider:
- Weakness multiplier (if any)
- Party scaling
rewards.roll-multiplier-per-player
Higher risk runs with more players earn more reward chances.