## [1.2.0] - Raid rewards, fight summary, uncapped health
### Added
- **Raid rewards** — new optional `rewards` block. `"lootMode": "per_player"` gives every eligible
player their own roll of the loot table, delivered straight to their inventory (overflow drops at
their feet and only they can pick it up). Eligibility needs `minDamagePercent` of the boss's max
health dealt, so leechers get nothing.
- `"unique": true` loot entries roll once and go to exactly one raider — never duplicated. Ideal
for one-of-a-kind Fiw Tools weapons (`toolId`).
- `damageLuck` (per boss or per entry) makes bigger contributors luckier; `maxChance` caps it.
- `topRanks` limits an entry to the top N damage dealers.
- `commands`, `participantCommands` and `mvpCommands` with `{boss}` `{killer}` `{mvp}`
`{player}` `{damage}` `{percent}` `{rank}` `{participants}` `{x}` `{y}` `{z}` placeholders.
- **Fight summary** — optional chat recap on death: killing blow, top damage with share %, most
damage taken, who fell, unique drops and fight time. Only players who actually engaged the boss
are listed. Global defaults in the new `config/fiw_bosses/settings.json`, per-boss overrides via
a `fightSummary` block, and live toggles with `/boss summary on|off|top|show`.
- **`/boss phase <targets> next|prev|set <n>`** — move a live boss to another phase without
touching its HP. HP thresholds it already passed won't pull it back.
- **Fiw Tools phase hooks** — phase changes are reported to Fiw Tools (its new `on_boss_phase`
trigger), and a public `FiwBossesAPI` lets its `boss_phase` admin ability change phases.
- **Real HP on the boss bar** — `bossBar.showHealth` (or the global `showBossBarHealth` in
`settings.json`) appends the HP to the bar title, e.g. `1,500/1,500 ❤`.
- Example raid boss: `examples/raid/raid_titan.json`.
### Fixed
- **`/boss kill` and `/kill` could fail to kill a boss.** Admin kills went through the boss's damage
handling, so an armed `second_wind` or `preDeathDialogue` swallowed them (and `/boss kill` still
reported success). Generic-kill damage now bypasses immunity states, protection, Second Wind and
the pre-death hold.
- **`second_wind` re-armed instantly after saving the boss** when it had been armed longer than its
`cooldownTicks`. The re-arm cooldown now starts when the revive is spent, as documented.
- **Boss/minion `health` above 1024 no longer gets silently capped.** Vanilla clamps max health to
1024; bosses and custom minions now really have their configured HP (a 60,000 HP boss has 60,000
HP), and Jade / WTHIT / The One Probe show the true value. The global attribute cap is untouched.
Vanilla-base minions are still real vanilla mobs and stay capped.
- **Bosses near spawn were deleted on every NeoForge/Forge restart.** Configs loaded after spawn and
force-loaded chunks had already loaded their entities, so those bosses were removed as
"definition not found". Configs now load before the worlds.
- **A boss's phase wasn't restored after a restart** (it re-entered phase 1 and then re-advanced by
HP, losing admin-forced phases). The saved phase is now restored.
- **Disguised bosses/minions (`renderEntity`) glided without walking or attack animations** on
1.21.1 and 1.20.1. The disguise model now plays the boss's real walk cycle and arm swing.
- **A boss that died right before a save came back at full health** after the restart. It now stays
dead.
### Notes
- Issue #2 (PMMO crash naming `EarthShatterEntity`): that entity belongs to the separate
*FD Bosses* mod, not FIW Bosses. FIW Bosses' entities register full attribute suppliers and are
handled by PMMO's scan normally.
- `/boss kill` never grants raid rewards, commands or a summary; in the default `shared` loot mode
the ground drop still happens as before.
- All features are available on every supported version and loader (1.21.11, 1.21.8, 1.21.1,
1.20.1 — Fabric, NeoForge, Forge).
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }