Skip to content

Combat and Skills Integration

Purpose

This document defines a concrete combat model for the browser MMO so that combat and non-combat skills both matter without turning the game into twitch action or unreadable spreadsheet noise.

See combat-encounter-templates.md for sample encounters built on this model. See loadouts-and-safety-rules.md for the preset taxonomy used by the launch flow.

Simplicity Review

The earlier combat draft was directionally correct, but it exposed too many moving parts at once. That is dangerous for a browser game.

The revised rule is:

  • easy to start: the player should make only a few meaningful combat decisions before launching a mission
  • complex to master: experienced players should gain advantage through better skill coverage, better preparation, smarter tag reading, and better loadout matching

Complexity should live in mastery, not in basic operation.

Design Rules

1. Combat Is Multi-Phase

Skills should matter at different points of the encounter, not all at once.

2. Skills Should Unlock Behaviors, Not Only Bigger Numbers

A stronger character should gain safer outcomes, better counters, and more control options, not only raw damage.

3. Non-Combat Skills Matter Around Combat

Not every non-combat skill should alter sword damage directly. Many of them should matter in approach, attrition, recovery, extraction, and preparation.

4. Browser Clarity Comes First

The player must be able to understand why a fight went well or badly from a short summary. Hidden micro-modifiers should be minimized.

5. Limit What Matters Per Encounter

No encounter should try to use every combat-related skill at once. Each encounter should emphasize a small number of primary and secondary skills.

6. Default Presets Should Be Good Enough

New players should be able to succeed with role presets and simple expedition defaults. Mastery should come from better preparation, better loadouts, and better tag reading.

Player-Facing Combat Loop

Combat should not add a separate setup layer beyond expedition prep.

The player should usually make only these choices:

  1. choose a role or loadout preset
  2. confirm supplies and safety rules
  3. launch the expedition

Advanced players can still optimize tag counters, supplies, skill coverage, group composition, and how their loadout matches the encounter, but those should be refinements on top of a simple default launch flow.

Combat Resolution Stack

Each encounter should resolve from five stacked inputs:

  1. Actor Snapshot: the character's combat, survival, and utility channels.
  2. Expedition Snapshot: loadout-derived role coverage, shared supplies, and safety rules.
  3. Encounter Package: enemy stats, behavior profile, tags, and scripted mechanics.
  4. Area and Route State: weather, terrain, route risk, and dynamic event modifiers.
  5. Knowledge State: monster knowledge, route knowledge, and relevant map quality.

Minimal Encounter Model

Every encounter template should resolve from a very small contract:

  • goal
  • visible_tags
  • key_phase
  • best_skills
  • failure_risk

Use that contract for both authoring and resolver logic.

  • goal defines what success means
  • visible_tags define what kind of threat this is
  • key_phase gets the strongest weighting in the resolver
  • best_skills defines the main skill families the resolver should pull from first
  • failure_risk defines which penalty escalates first when the character performs badly

If an encounter needs more than this, the design is probably getting too specific for a browser MMO and should be simplified.

Encounter Tags

Tags tell the resolver which skills matter most.

The important simplification rule is that only a small subset should be visible in any one encounter.

Recommended player-facing cap:

  • 1 primary threat tag
  • 1 terrain or visibility tag
  • 1 pressure tag
  • optional 1 status or logistics tag

The backend can carry more detail if needed, but the authored encounter template should usually expose only 2-4 meaningful tags.

Terrain Tags

  • open
  • confined
  • elevated
  • rough
  • forest
  • marsh
  • urban
  • ruin

Visibility Tags

  • clear
  • dark
  • fog
  • snow
  • storm
  • smoke

Threat Tags

  • beast
  • undead
  • brigand
  • drake
  • swarm
  • caster
  • giant
  • construct

Pressure Tags

  • ambush
  • escort
  • pursuit
  • holdout
  • boss
  • wave
  • siege
  • attrition

Status Tags

  • bleed
  • poison
  • fear
  • burn
  • frost
  • shock
  • corruption

Logistics Tags

  • long_route
  • low_food
  • low_water
  • cargo_priority
  • mount_stress
  • night_fight

Derived Combat Channels

Instead of resolving every fight directly from dozens of raw skills, the server should derive a small set of combat channels from the character profile. These channel names match the snapshot fields stored in equipment-and-gear.md.

Recommended channels:

  • Offense: offensive output and kill pressure — weapon or implement attack power plus primary attack skill
  • Defense: mitigation, cover, damage resistance, healing, and condition recovery — armor, shields, and recovery skills combined
  • Arcane: magical offense and magical defense — implements, focuses, and arcane skills; used in place of or alongside Offense for magic builds
  • Utility: control, setup, counters, combat leverage, march stability, cargo security, and retreat quality
  • Burden: a penalty modifier on Defense and Utility when the character carries more than their Endurance and armor skill can handle; not a positive channel — only reduces effectiveness

Sub-components: The Defense channel absorbs what was previously called Sustain (healing, resilience, condition recovery from Restoration/Field Medicine/Endurance). The Utility channel absorbs what was previously called Logistics (march stability, cargo, retreat from Pack Handling/Routefinding/Leadership). Phase formulas may reference these sub-components by name for clarity but they are derived from the Defense and Utility channels respectively.

These channels are recalculated whenever relevant skills, equipment, supplies, or conditions change.

This is intentionally smaller than the previous model so combat can stay readable.

Skill Contribution Model

Use a weighted-sum formula with a small bounded random factor, but cap how many skills are actually allowed to matter in one phase.

Recommended rule per phase:

  • 1 primary skill
  • 1 secondary skill
  • up to 2 support skills
  • 1 skill coverage bonus

Generic pattern:

phase_score = channel_value + primary_skill_bonus + secondary_skill_bonus + support_bonus + gear_bonus + expedition_bonus + knowledge_bonus - encounter_pressure + seed_roll

Where:

  • channel_value is the derived channel for that phase
  • support_bonus should be capped so support skills help but do not drown the main signal
  • expedition_bonus should stay small and capture useful context from supplies, cargo rules, or retreat settings
  • seed_roll should stay small enough that preparation dominates luck

Recommended roll rule:

  • use a deterministic bounded roll, such as -6 to +6
  • keep the roll smaller than the difference created by a good skill or loadout match

Example Channel Formulas

These are templates, not final balance numbers.

Offense

Use the character's main attack style plus one relevant support source.

Offense = weapon_or_implement_rating + primary_attack_skill + 0.30 * support_attack_skill + equipment_quality

Examples:

  • melee build: Blades, Axes and Hammers, or Polearms
  • ranged build: Archery
  • arcane build: uses Arcane channel instead (see below)

Arcane

Arcane = implement_rating + arcane_skill + 0.30 * support_arcane_skill + focus_amplification + equipment_quality

Examples:

  • Elementalism or Arcane Theory as primary
  • Warding as support for defensive magic builds
  • Ritualism as support for encounter-specific arcane actions

For non-magic builds, the Arcane channel defaults to zero and does not penalize the character.

Defense

Defense = armor_and_shield_rating + primary_defense_skill + 0.30 * support_defense_skill + context_cover_bonus + recovery_skill_contribution

Examples of primary defense skills:

  • Shielding
  • Heavy Armor
  • Light Armor
  • Evasion
  • Warding

The recovery_skill_contribution is the sustain sub-component of Defense:

recovery_skill_contribution = 0.40 * (Restoration or Field Medicine) + 0.20 * Endurance

This means healers and Warden builds contribute meaningfully to the Defense channel through recovery skills, not only armor.

Utility

Utility = control_or_judgment_skill + 0.30 * support_control_skill + trap_or_ward_bonus + tag_counter_bonus + logistics_skill_contribution

Typical inputs:

  • Combat Judgment
  • Leadership
  • Tinkering
  • Ritualism
  • Warding

The logistics_skill_contribution is the march-and-cargo sub-component of Utility:

logistics_skill_contribution = 0.40 * (Pack Handling or Routefinding) + 0.20 * (Animal Handling or Caravan Handling)

Combat Phases

Combat should have three player-facing phases.

That is the biggest simplification in the revised model.

Phase 1: Approach

This folds together contact, scouting, and opening setup.

It answers:

  • do we see the threat coming
  • do we start in control or under pressure
  • do our counters and loadout fit the encounter

Main inputs:

  • Utility
  • Utility logistics sub-component
  • knowledge bonuses
  • scouting gear
  • skill coverage

Formula template:

ApproachScore = Utility + 0.50 * utility_logistics_sub + knowledge_bonus + scout_bonus + expedition_bonus - opener_pressure + seed_roll

Main skills that can matter:

  • Tracking
  • Routefinding
  • Surveying
  • Weather Sense
  • Combat Judgment
  • Leadership
  • Warding
  • Tinkering

Results:

  • ambush reduced or suffered
  • opening advantage gained or lost
  • enemy opener softened
  • group starts stable or stressed

Phase 2: Clash

This is the main fight itself.

It answers:

  • can we pressure the enemy faster than they pressure us
  • can we keep the group from collapsing
  • can we apply or resist key mechanics

Main inputs:

  • Offense (or Arcane for magic builds)
  • Defense
  • Utility
  • enemy threat profile

Formula template:

ClashScore = Offense (or Arcane) + Defense + 0.50 * Utility + tag_counter_bonus - enemy_power + seed_roll

Main skills that can matter:

  • one primary attack skill
  • one primary defense skill
  • up to two support skills matched to tags

Typical examples:

  • Archery plus Tracking against beasts
  • Polearms plus Shielding in escort fights
  • Elementalism plus Warding in storm or drake fights
  • Restoration plus Field Medicine when poison or attrition pressure is high

Results:

  • damage dealt and taken
  • guard break or hold line
  • status effects applied or resisted
  • morale swing

Phase 3: Recovery

This folds together attrition, retreat, stabilization, and extraction.

It answers:

  • do we preserve people and cargo
  • do injuries spiral or stabilize
  • do we leave cleanly or limp away

Main inputs:

  • Defense recovery sub-component
  • Utility logistics sub-component
  • retreat threshold or cargo rules
  • current wound load

Formula template:

RecoveryScore = defense_recovery_sub + utility_logistics_sub + leadership_bonus + medicine_bonus + expedition_bonus - attrition_pressure - wound_load + seed_roll

Main skills that can matter:

  • Endurance
  • Field Medicine
  • Herbalism
  • Campcraft
  • Pack Handling
  • Animal Handling
  • Leadership
  • Routefinding

Results:

  • injury severity
  • resource loss
  • chance of clean retreat
  • post-fight readiness for the next encounter

Overall Encounter Result

Use a simple weighted blend:

EncounterOutcome = 0.25 * ApproachScore + 0.50 * ClashScore + 0.25 * RecoveryScore

This keeps the main fight central while still rewarding scouting and recovery.

The encounter's key_phase should shift emphasis modestly rather than replacing this model. For example:

  • Approach-heavy encounter: 0.40 / 0.40 / 0.20
  • Clash-heavy encounter: 0.20 / 0.60 / 0.20
  • Recovery-heavy encounter: 0.20 / 0.40 / 0.40

That gives encounters different behavior without adding a separate ruleset.

Skill Checks by Tag

Tags determine which checks become important.

The rule is that each tag should pull in only a small set of skills.

ambush

  • Approach: Tracking, Routefinding, Surveying
  • Clash support: Leadership, Combat Judgment, Warding

beast

  • Approach: Tracking, Hunting and Trapping
  • Clash: Archery, Polearms
  • Recovery: Field Medicine, Scavenging

undead

  • Clash: Restoration, Warding, Ritualism, Axes and Hammers
  • Recovery: Field Medicine against corruption or fear aftermath

poison

  • Clash defense: Evasion, Warding
  • Recovery: Herbalism, Field Medicine, Restoration

storm

  • Approach: Weather Sense, Routefinding
  • Clash: Warding, Elementalism
  • Logistics: Animal Handling, Pack Handling

escort

  • Clash: Shielding, Polearms, Leadership
  • Recovery: Pack Handling, Animal Handling, rear guard discipline

long_route

  • Recovery: Endurance, Campcraft, Waterfinding, Preservation, Cooking

swarm

  • Clash: Archery, Elementalism, Tinkering
  • Recovery: Field Medicine, Herbalism

No Extra Combat Subsystem

Combat should not have a separate per-character slot or trigger subsystem.

The useful variation should come from:

  • skill coverage
  • loadout profile
  • gear and supply prep
  • encounter tag knowledge
  • expedition rules

If a build needs a special advantage, express it through those existing layers or through equipment and enemy-script interactions rather than a new combat sub-system.

This keeps combat reports readable and keeps mastery focused on preparation and character build instead of proc management.

Non-Combat Skills in the Combat Ecosystem

Some skills should matter before or after the exchange phase rather than during every strike check.

Preparation Skills

  • Smithing
  • Carpentry
  • Leatherworking
  • Clothworking
  • Alchemy
  • Tinkering
  • Cooking
  • Preservation

These feed:

  • gear quality
  • ammo quality
  • trap loadouts
  • medicine stock
  • ration quality
  • weather prep

Recovery and Salvage Skills

  • Field Medicine
  • Herbalism
  • Scavenging
  • Salvage Recovery
  • Appraisal

These feed:

  • injury severity
  • post-fight losses
  • useful byproduct recovery
  • rare part preservation

Command and Social Skills

  • Leadership
  • Stewardship
  • Teaching
  • Scribing

These should influence:

  • group cohesion and morale
  • militia or town support in some contracts
  • drill learning speed and combat decision-making
  • combat record keeping or codex preparation

Do not force Trade or Negotiation to affect direct in-fight math unless the encounter is specifically a contract, militia, or escort context where those skills logically shape support quality.

Monster Knowledge Integration

Monster knowledge should provide targeted bonuses, not flat global power.

Recommended effects:

  • identify key tags before mission start
  • improve target priority against known enemies
  • expose special weakness windows
  • reduce surprise from signature enemy mechanics

Knowledge formula:

KnowledgeBonus = family_knowledge + regional_variant_knowledge + recent_report_quality

In practice, this should usually convert into one of three readable benefits:

  • tag reveal before departure
  • counter bonus in Approach or Clash
  • reduced risk from one signature enemy mechanic

Result Bands

Phase margins should resolve into readable outcome bands.

Recommended model:

  • Crush Success: dominant advantage, major positive swing
  • Success: clear advantage
  • Edge: small advantage
  • Failure: small setback
  • Collapse: major setback

This is easier to explain in a browser report than raw decimal math.

Easy to Start, Hard to Master

Easy to Start

A new player should be able to succeed by choosing:

  • a role preset
  • a sensible supply loadout
  • simple safety rules

The game should auto-select the most relevant skills and suggest sensible supply and safety defaults for that setup.

Hard to Master

Mastery should come from:

  • reading encounter tags correctly
  • bringing the right skill coverage across the group
  • counter-picking threat types
  • choosing the right loadout and expedition safety plan
  • using better logistics and recovery preparation
  • understanding when Approach or Recovery matters more than raw Clash power

Example Encounter Walkthrough

Encounter: storm, reef, ambush, drake, shock, escort

Approach

Tracking, Routefinding, Surveying, and Weather Sense check whether the character spots nesting signs and bad tide routes early.

Combat Judgment, Warding, and escort prep then decide whether the first drake dive is blunted or whether the escort line breaks immediately.

Clash

Polearms punish dive lanes, Archery pressures wounded drakes, Warding reduces shock bursts, and Restoration stabilizes burns and impact trauma.

Recovery

Endurance, Pack Handling, Animal Handling, and Field Medicine decide whether the escort cargo survives the storm pressure and whether the expedition can keep moving.

Technical Model

Core Records

Store:

  • combat_snapshot
  • combat_channel_value
  • role_coverage_snapshot
  • expedition_rule_set
  • encounter_tag_set
  • phase_resolution_log
  • skill_contribution_log
  • morale_state
  • status_stack

Resolution Pattern

  1. build or read the combat snapshots
  2. attach encounter tags and area modifiers
  3. resolve Approach, Clash, and Recovery in order
  4. write the phase margins and major triggers
  5. summarize the few strongest reasons for the outcome

Logging Rule

For browser readability, store the full math if needed for debugging, but expose only the top contribution reasons in the player-facing report.

Good examples:

  • Ambush softened by Tracking and Routefinding
  • Frontline held by Shielding and Heavy Armor
  • Poison losses reduced by Herbalism and Field Medicine
  • Retreat preserved cargo due to Leadership and Pack Handling
  • combat resolution
  • combat encounter templates
  • loadouts and safety rules
  • skill catalog
  • teaching and apprenticeship
  • browser-first constraints
  • system simulation patterns