Profession and utility mutation framework — LW → BS → Tailoring #3

Closed
opened 2026-07-09 10:25:02 +00:00 by denise · 1 comment
Owner

Summary

Canonical design for profession / gathering mutations — mutated mobs as high-effort material nodes that can still roll Instability rewards.

Branch: feature/profession-mutations

Repo doc: docs/PROFESSION_MUTATIONS.md

Depends on: #2 (merged / smoke-tested)


Design locks (2026-07-09)

Decision Choice
Drop items Vanilla item_template IDs × materialMult
Tier coverage Instability tiers 1–9
Rollout Scaled (LW)Crystalline (BS)Threadbare (tailoring)
Drop model illidari_profession_loot multi-row bundles per (professionTag, zoneTier)
Theme coupling Profession mutations require matching zone theme
Utility slot T4+ optional slot; profession XOR reward

Schema

  • mutation_definitions: mutationRole, professionTag, materialMult
  • illidari_profession_loot: (professionTag, zoneTier, itemId, minCount, maxCount, chance)
  • Gilded/Hoarder/Destined → mutationRole = reward

Implementation phases

  • Phase 0 — Design lock
  • Phase 1 — Framework (schema, utility slot, corpse loot hook, config)
  • Phase 2 — Scaled / Leatherworking (#6)
  • Phase 3 — Crystalline / Blacksmithing (#4)
  • Phase 4 — Threadbare / Tailoring (#7)
  • Phase 5 — Polish (economy tuning, owed-loot fallback, in-game validation all tiers)

Deferred: Verdant, Runed, Cooking/Fishing, enchanting mats on Threadbare


Child issues

Phase Issue Mutation IDs
2 #6 Scaled — Leatherworking 22, 24, 25
3 #4 Crystalline — Blacksmithing 26–28
4 #7 Threadbare — Tailoring 23

Test plan (framework)

  1. .mutation roll until utility slot hits at T4+ zone
  2. Confirm profession + combat mutations coexist; Gilded + Scaled never on same mob
  3. Kill Scaled mob in Badlands — corpse has leather + thread bundle
  4. Instability Cache can still drop independently
  5. .mutation reload picks up SQL changes
## Summary Canonical design for **profession / gathering mutations** — mutated mobs as high-effort material nodes that can still roll Instability rewards. **Branch:** `feature/profession-mutations` **Repo doc:** [`docs/PROFESSION_MUTATIONS.md`](https://vcs.ablationsystems.com/denise/mod-illidari-difficulty/src/branch/feature/profession-mutations/docs/PROFESSION_MUTATIONS.md) **Depends on:** [#2](https://vcs.ablationsystems.com/denise/mod-illidari-difficulty/issues/2) (merged / smoke-tested) --- ## Design locks (2026-07-09) | Decision | Choice | |----------|--------| | Drop items | Vanilla `item_template` IDs × `materialMult` | | Tier coverage | Instability tiers **1–9** | | Rollout | **Scaled (LW)** → **Crystalline (BS)** → **Threadbare (tailoring)** | | Drop model | `illidari_profession_loot` multi-row bundles per `(professionTag, zoneTier)` | | Theme coupling | Profession mutations require matching zone `theme` | | Utility slot | T4+ optional slot; profession XOR reward | --- ## Schema - `mutation_definitions`: `mutationRole`, `professionTag`, `materialMult` - `illidari_profession_loot`: `(professionTag, zoneTier, itemId, minCount, maxCount, chance)` - Gilded/Hoarder/Destined → `mutationRole = reward` --- ## Implementation phases - [x] Phase 0 — Design lock - [x] Phase 1 — Framework (schema, utility slot, corpse loot hook, config) - [x] Phase 2 — **Scaled / Leatherworking** ([#6](https://vcs.ablationsystems.com/denise/mod-illidari-difficulty/issues/6)) - [x] Phase 3 — **Crystalline / Blacksmithing** ([#4](https://vcs.ablationsystems.com/denise/mod-illidari-difficulty/issues/4)) - [x] Phase 4 — **Threadbare / Tailoring** ([#7](https://vcs.ablationsystems.com/denise/mod-illidari-difficulty/issues/7)) - [ ] Phase 5 — Polish (economy tuning, owed-loot fallback, in-game validation all tiers) **Deferred:** Verdant, Runed, Cooking/Fishing, enchanting mats on Threadbare --- ## Child issues | Phase | Issue | Mutation IDs | |-------|-------|-------------| | 2 | [#6 Scaled — Leatherworking](https://vcs.ablationsystems.com/denise/mod-illidari-difficulty/issues/6) | 22, 24, 25 | | 3 | [#4 Crystalline — Blacksmithing](https://vcs.ablationsystems.com/denise/mod-illidari-difficulty/issues/4) | 26–28 | | 4 | [#7 Threadbare — Tailoring](https://vcs.ablationsystems.com/denise/mod-illidari-difficulty/issues/7) | 23 | --- ## Test plan (framework) 1. `.mutation roll` until utility slot hits at T4+ zone 2. Confirm profession + combat mutations coexist; Gilded + Scaled never on same mob 3. Kill Scaled mob in Badlands — corpse has leather + thread bundle 4. Instability Cache can still drop independently 5. `.mutation reload` picks up SQL changes
denise changed title from Profession and utility mutation framework — gathering drops, cap model, combat tax to Profession and utility mutation framework — LW → BS → Tailoring 2026-07-09 18:28:10 +00:00
Author
Owner

Phases 1–4 implemented and smoke-tested. Shared roll pool fix (7172ffe) replaces the utility-slot model. Landing via PR #8.

Phase 5 polish (owed-loot fallback, extra profession variants) remains open as follow-up after merge.

Phases 1–4 implemented and smoke-tested. Shared roll pool fix (`7172ffe`) replaces the utility-slot model. Landing via [PR #8](https://vcs.ablationsystems.com/denise/mod-illidari-difficulty/pulls/8). Phase 5 polish (owed-loot fallback, extra profession variants) remains open as follow-up after merge.
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
denise/mod-illidari-difficulty#3
No description provided.