Pity System
Pity System
The pity system guarantees that players will receive a prize of at least a certain rarity after a configurable number of opens without getting that rarity. It prevents players from going on very long losing streaks.
How It Works
- Every time a player opens a crate, their pity counter increases by 1
- If the rolled prize meets or exceeds the
guaranteed-min-rarity, the counter resets to 0 - If the player reaches the
thresholdwithout receiving a qualifying prize, the next open is forced to roll from prizes of at leastguaranteed-min-rarity - After the guaranteed prize is given, the counter resets to 0
Player opens 49 crates:
Opens 1-48: Got COMMON prizes. Counter: 1, 2, 3... 48
Open 49: Got RARE prize! โ
Counter resets to 0
Player opens 50+ crates without RARE:
Opens 1-49: Got COMMON prizes. Counter: 1, 2... 49
Open 50: Pity triggers โ forced RARE+ prize! ๐ฐ Counter resets to 0
Configuration
The pity system is configured per-crate inside the crate's .yml file:
# Inside crates/legendary.yml
pity:
enabled: true # Set to false to disable pity for this crate
threshold: 50 # After 50 opens without a RARE+, guarantee one
guaranteed-min-rarity: RARE # Minimum rarity of the guaranteed prize
Field Reference
| Field | Type | Required | Description |
|---|---|---|---|
enabled |
Boolean | Yes | Enable or disable pity for this crate |
threshold |
Integer | Yes | Number of opens before guarantee triggers |
guaranteed-min-rarity |
String | Yes | Minimum rarity: COMMON, UNCOMMON, RARE, EPIC, LEGENDARY |
Rarity Ladder
Pity guarantees prizes at or above the specified rarity:
LEGENDARY โ highest
EPIC
RARE โ setting guaranteed-min-rarity: RARE guarantees RARE, EPIC, or LEGENDARY
UNCOMMON
COMMON โ lowest
guaranteed-min-rarity |
Eligible Prizes |
|---|---|
COMMON |
All prizes (essentially no filter) |
UNCOMMON |
UNCOMMON, RARE, EPIC, LEGENDARY |
RARE |
RARE, EPIC, LEGENDARY |
EPIC |
EPIC, LEGENDARY |
LEGENDARY |
LEGENDARY only |
Warning: If you set
guaranteed-min-rarity: LEGENDARYbut the crate has only 1 LEGENDARY prize, every pity trigger will give that exact prize. Make sure there are enough prizes at the guaranteed rarity.
Pity Data Persistence
Pity counters are stored per-player per-crate in the SQLite database (crateforge.db). They persist across:
- Server restarts
- Player disconnections
- Plugin reloads
Note: Pity counters are tied to the crate ID. If you change a crate's ID, all existing pity progress for that crate is lost.
Recommended Settings
Standard Survival Server
pity:
enabled: true
threshold: 50
guaranteed-min-rarity: RARE
Premium/Legendary Crate
pity:
enabled: true
threshold: 100
guaranteed-min-rarity: EPIC
Common/Cheap Crate
pity:
enabled: true
threshold: 20
guaranteed-min-rarity: UNCOMMON
Disable Pity (pure RNG)
pity:
enabled: false
Calculating Effective Rates
With pity, the effective rate of getting guaranteed-min-rarity+ is higher than the raw weight suggests:
Without pity: purely based on weight ratios
With pity (threshold=50, 60% natural rate):
โ In the worst case, a player gets the prize every 50 opens
โ Average opens per RARE+ = much lower than 50 due to natural drops
Tip: Be transparent with your players! Display the pity threshold in the crate's display name or use
/cf previewto let them see it.
Navigation
Home | Crate Format | Animations | Commands & Permissions