Fate Die — Battle-End Loot Reroll System
The "Fate Die" (定命骰子) is the post-battle loot-quality mechanic. After winning a fight, the game rolls a 1-20 dice that determines drop quantity + drop tier priority. Clover (item D00002_000) is the consumable to reroll the dice — each reroll forces a strictly higher number, capped at 20. Team Luck stat (non-combat total) reduces Clover cost via free rerolls.
Source: raw probability table at
data-session/intermediate/datatables_json/DiceDataTable.json(also auto-generated asdata-session/mgg_datamine/DiceDataTable.md). Mechanic decompiled fromMainScripts.dll— seedata-session/intermediate/decompiled_dice.csforDiceDataTableschema +BattleResultPanel.GenerateDroppingItemsByDice+BattleResultPanel.RollDice+BattleResultPanel.Reroll. Server-authoritative reroll viaGameApi.Explore.DiceRerollAsync(POST/Explore/DiceReroll).
Probability table
20 entries (Point 1 → 20). Initial post-battle roll is weighted; total weight = 390.
| Point | Weight | InitialRoll% | DropPossi | EquipNum | RuneNum | Gold | E[equip] | E[rune] |
|---|---|---|---|---|---|---|---|---|
| 1 | 30 | 7.69% | 0% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 2 | 30 | 7.69% | 0% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 3 | 30 | 7.69% | 0% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 4 | 30 | 7.69% | 0% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 5 | 30 | 7.69% | 0% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 6 | 30 | 7.69% | 0% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 7 | 28 | 7.18% | 0% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 8 | 26 | 6.67% | 0% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 9 | 24 | 6.15% | 0% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 10 | 22 | 5.64% | 10% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 11 | 20 | 5.13% | 10% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 12 | 18 | 4.62% | 10% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 13 | 16 | 4.10% | 10% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 14 | 14 | 3.59% | 10% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 15 | 12 | 3.08% | 10% | 1-1 | 0-0 | 100 | 1.0 | 0 |
| 16 | 10 | 2.56% | 20% | 1-2 | 0-0 | 100 | 1.2 | 0 |
| 17 | 8 | 2.05% | 20% | 1-2 | 0-1 | 100 | 1.2 | 0.2 |
| 18 | 6 | 1.54% | 30% | 1-3 | 0-1 | 100 | 1.6 | 0.3 |
| 19 | 4 | 1.03% | 40% | 1-3 | 0-1 | 100 | 1.8 | 0.4 |
| 20 | 2 | 0.51% | 0% (n/a) | 3-3 | 1-1 | 100 | 3.0 | 1.0 |
InitialRoll% = Weight / 390. Probability of rolling 20 on a fresh battle = 1 in 195.
Column meaning
- Point — face value (1-20). Higher = better loot.
- Weight — gacha-pool weight for the initial roll. Larger weight = more likely on the first roll.
- Gold — flat 100 per battle, dice-rank-independent.
- IngreNum — ingredient drop count. All 0 in current data → ingredients drop via a different mechanism (chest / map event), not via the dice.
- DropPossi — per-rolling-slot success chance for extra drops (see
EquipNumparse). - EquipNum / RuneNum —
"X-Y"where: X= guaranteed drops (always rolled)Y - X= additional "rolling slots", each withDropPossichance to succeed- Examples:
1-1= 1 guaranteed, 0 rolling.1-3= 1 guaranteed + 2 rolling at DropPossi each.3-3= 3 guaranteed, 0 rolling. - E[equip] / E[rune] =
X + (Y-X) × DropPossi. Point 20 special-cases this to a fixed 3 equip + 1 rune (no rolling slots — pure guarantee).
Drop tier priority
From BattleResultPanel.GenerateDroppingItemsByDice:
DroppingPriority priority = (dice > 19) ? DroppingPriority.Highest : DroppingPriority.Random;
- Point ≤ 19: drops are picked at random from the stage's loot pool.
- Point ≥ 20: drops are picked from the highest-tier item in the stage's pool (guaranteed top-rarity).
- Special branch:
dice == 20 && rerollTime == 0(rolled 20 on the very first try, no Clover spent) — also locked to highest tier.
Reroll mechanic
Player taps the dice icon on the battle-result screen:
- If current Point ≥ 20 → button disabled (cannot reroll further).
- Else → confirm dialog (loc
Fight_Reward_Reset_Text01/Fight_Reward_Reset_Text02), then sendDiceRerollArgto server. - Server validates Clover availability, picks a new value from
DiceDataTableweighted-randomly AND loops until result > current Point (forced strictly higher). - Server returns
DiceRerollReplywithEventDice(new Point) +EventRerollTime(incremented counter) +DropBundle(re-rolled loot). - Cost: 1 Clover per reroll, minus free rerolls from team LUK (every 15 LUK = +1 free).
Conditional probability per reroll
After rolling Point P, the chance one reroll lands on each higher value Q > P is:
P[Q | start=P] = Weight[Q] / Σ Weight[k] for k in (P+1)..20
| From → | 16 | 17 | 18 | 19 | 20 |
|---|---|---|---|---|---|
| 15 (Σ=30) | 33.3% | 26.7% | 20.0% | 13.3% | 6.7% |
| 16 (Σ=20) | — | 40.0% | 30.0% | 20.0% | 10.0% |
| 17 (Σ=12) | — | — | 50.0% | 33.3% | 16.7% |
| 18 (Σ=6) | — | — | — | 66.7% | 33.3% |
| 19 (Σ=2) | — | — | — | — | 100% |
So reaching Point 20 from a typical first roll of 7-10 needs roughly 3-4 rerolls on average. From 15 → 20 needs about 4-5 more rerolls; from 19 → 20 is guaranteed in 1.
Free rerolls from LUK
Role_AttDes_08 / Noun_Des_32: "Every 15 Luck across the team (non-combat) grants +1 extra Clover reroll in battle results."
The +1 reroll is free (doesn't consume Clover). Stacks: 30 LUK = 2 free, 45 LUK = 3 free, etc. Team LUK includes:
- Base LUK from each fielded unit
- Gear LUK (EquipDataTable.Luck)
- Lucky-Streak talent family (TF10008_*)
- Insight relics that grant LUK
Talent / mechanic that pushes Point above 20
Loc Fight_Reward_Reset_Text01: "Rolling above 20 increases Gear drops by 1." There's a talent/passive that allows Point to exceed 20 (e.g. reach 21). When that happens, the drop logic still treats it as Highest priority, but with +1 extra gear drop on top of the Point-20 baseline (so 4 guaranteed equip + 1 rune). Source talent ID not yet located in current decompile slice — flagged for future investigation.
Strategy implications
- First reroll = best ROI. Even 1 Clover lifts you from random pool to typically Point 10+ (the threshold where DropPossi kicks in for rolling slots in later versions of the curve). Average first-reroll lands around Point 11 (median of weighted draw conditional on
>P_initial). - Saving for Point 20 = expensive but worth it if the boss has tier-S exclusive drop in the loot pool. From a fresh battle, expected Clover cost = ~3-4 rerolls.
- 15 LUK threshold is a hard breakpoint — gear/talent investment is worth crossing each 15-LUK boundary to add a free reroll. After 30/45/60 LUK the free-reroll budget often eliminates Clover cost entirely for routine farming.
- Skip rerolling on low-tier stages where the loot pool's "highest tier" is still mediocre — save Clover for boss / end-of-region stages where Point 20 unlocks tier-S exclusive drops.
Related loc keys
Help_Map_14— "Use Clover to reroll the Fate Die. Your team's total Luck affects reroll efficiency."Help_Map_15— "Higher rolls mean better rewards. Rolling 20 guarantees the highest-tier reward."Fight_Reward_Reset_Text01— "Rolling above 20 increases Gear drops by 1."Fight_Reward_Reset_Text02— "Each reroll guarantees a higher number, up to 20."Role_AttDes_08/Noun_Des_32— LUK → free Clover reroll formula.Items_Name_D00002_000— "Clover" item display name.Guide_Dialogue_82/Guide_Dialogue_84— tutorial dialogue confirming Point 20 = guaranteed top-tier drop.
Source files
data-session/intermediate/datatables_json/DiceDataTable.json— raw 20-entry probability table.data-session/mgg_datamine/DiceDataTable.md— auto-generated bilingual rendering (no CN columns since table is pure numeric).data-session/intermediate/decompiled_dice.cs—DiceDataTableclass definition (line 1626+),BattleResultPanel.GenerateDroppingItemsByDice(line 837),BattleResultPanel.RollDice(line 1530),BattleResultPanel.Reroll(line 1397),DiceEntry/DiceRerollArg/DiceRerollReplyserver contracts.- Regenerator:
data-session/tools/decompile_dice.py— run after every patch if Fate Die mechanic suspected of change.