Party Composition, Roles, And Synergy Simulator
What This System Is
The party simulator validates how several deterministic builds cooperate against one encounter. It moves balance checks beyond isolated damage rotations by modeling role coverage, threat, healing, mitigation, interrupts, member survival, and per-member contribution in the same bounded timeline.
How Authors Use It
Party profiles live in assets/gameplay/party_strategy_profiles.json. Every member selects a canonical ability loadout, an optional build-strategy profile, combat stats, an action interval, a role, and a threat multiplier. Build-strategy references hydrate the member's existing ability rotation, so party simulation does not duplicate Dragoon burst or sustain policy.
The catalog supports tank, healer, damage, support, and control roles. Profiles can require roles and cap role counts. Validation rejects missing required roles, duplicate members, invalid combat bounds, missing loadouts, and missing build strategies.
The ability catalog includes initial Guardian, Cleric, and Tactician party kits:
- Guardian Strike and Intercede provide tank threat and mitigation;
- Mend and Smite let the Cleric triage injuries or contribute damage;
- Disrupt and Rally give the Tactician interrupt and mitigation coverage.
Rules And Invariants
Members act concurrently using stable cooldown, loadout, and rotation rules. Enemies attack the living member with the highest threat. Healing targets the lowest-health living member. Mitigation reduces both normal and failed-mechanic damage. Interrupt-capable members reserve Disrupt for an active cast instead of wasting it during normal rotation.
The fixture references a versioned encounter-mechanic script. Reusable templates control casts, raid-wide damage, tankbusters, add waves, enrage, targeting, timing, and response requirements. Every run is bounded by a tick and duration limit and produces a synchronized party timeline.
Validation And Debugging
Reports expose completion, party survival, duration, interrupt success, tank threat stability, healing, deaths per run, and each member's damage, healing, damage taken, threat, actions, and ability usage.
Difficulty-aware reports also expose the resolved tier and mutators plus average completion XP, gold, resolved personal items, and loot quality. Completed runs use the canonical encounter reward pipeline rather than projecting currency alone. The editor's Difficulty Matrix compares every registered party across all supported tiers and exercises each mutator against the balanced party.
Assertions cover minimum or maximum completion, survival, interrupt success, threat stability, healing bounds, required-role coverage, and simulation errors. Negative fixtures therefore remain useful regression gates: they assert the expected weakness rather than making the shipped suite permanently red.
Examples
Three fixtures exercise the Slime Infestation core encounter:
party.balancedcovers tank, healing, damage, mitigation, and interrupts;party.no_healerpreserves threat and interrupt coverage while asserting zero healing;party.burst_heavyraces damage without tank, healer, or interrupt coverage and asserts the expected zero interrupt rate.
The editor's Party Matrix action runs all three, publishes comparison bars, and exposes the synchronized timeline. Dependency-aware Content Health schedules party fixtures whenever their encounter is reachable and includes party/ability/build catalogs in its fingerprint.