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:
- choose a role or loadout preset
- confirm supplies and safety rules
- 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:
Actor Snapshot: the character's combat, survival, and utility channels.Expedition Snapshot: loadout-derived role coverage, shared supplies, and safety rules.Encounter Package: enemy stats, behavior profile, tags, and scripted mechanics.Area and Route State: weather, terrain, route risk, and dynamic event modifiers.Knowledge State: monster knowledge, route knowledge, and relevant map quality.
Minimal Encounter Model¶
Every encounter template should resolve from a very small contract:
goalvisible_tagskey_phasebest_skillsfailure_risk
Use that contract for both authoring and resolver logic.
goaldefines what success meansvisible_tagsdefine what kind of threat this iskey_phasegets the strongest weighting in the resolverbest_skillsdefines the main skill families the resolver should pull from firstfailure_riskdefines 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¶
openconfinedelevatedroughforestmarshurbanruin
Visibility Tags¶
cleardarkfogsnowstormsmoke
Threat Tags¶
beastundeadbriganddrakeswarmcastergiantconstruct
Pressure Tags¶
ambushescortpursuitholdoutbosswavesiegeattrition
Status Tags¶
bleedpoisonfearburnfrostshockcorruption
Logistics Tags¶
long_routelow_foodlow_watercargo_prioritymount_stressnight_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 skillDefense: mitigation, cover, damage resistance, healing, and condition recovery — armor, shields, and recovery skills combinedArcane: magical offense and magical defense — implements, focuses, and arcane skills; used in place of or alongside Offense for magic buildsUtility: control, setup, counters, combat leverage, march stability, cargo security, and retreat qualityBurden: 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_valueis the derived channel for that phasesupport_bonusshould be capped so support skills help but do not drown the main signalexpedition_bonusshould stay small and capture useful context from supplies, cargo rules, or retreat settingsseed_rollshould stay small enough that preparation dominates luck
Recommended roll rule:
- use a deterministic bounded roll, such as
-6to+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, orPolearms - 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:
ElementalismorArcane Theoryas primaryWardingas support for defensive magic buildsRitualismas 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:
ShieldingHeavy ArmorLight ArmorEvasionWarding
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 JudgmentLeadershipTinkeringRitualismWarding
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(orArcanefor magic builds)DefenseUtility- 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:
ArcheryplusTrackingagainst beastsPolearmsplusShieldingin escort fightsElementalismplusWardingin storm or drake fightsRestorationplusField Medicinewhen 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 swingSuccess: clear advantageEdge: small advantageFailure: small setbackCollapse: 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_snapshotcombat_channel_valuerole_coverage_snapshotexpedition_rule_setencounter_tag_setphase_resolution_logskill_contribution_logmorale_statestatus_stack
Resolution Pattern¶
- build or read the combat snapshots
- attach encounter tags and area modifiers
- resolve Approach, Clash, and Recovery in order
- write the phase margins and major triggers
- 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
Related Systems¶
- combat resolution
- combat encounter templates
- loadouts and safety rules
- skill catalog
- teaching and apprenticeship
- browser-first constraints
- system simulation patterns