Gnosis Combat Systems Deep Dive
This page has been reviewed against the current terminal/server build and the latest portal documentation surfaces. For exact live catalogs and tuning values, use the source-driven...
Gnosis Combat Systems Deep Dive
Documentation Freshness (2026-04-21)
- This page has been reviewed against the current terminal/server build and the latest portal documentation surfaces.
- For exact live catalogs and tuning values, use the source-driven portal compendiums:
/bestiary/spell-omnibus/technique-omnibus/item-omnibus/recipe-omnibus
- In-game references are available through the
Wwiki menu (including generated spell/component compendiums). - World/floor map reference is in-game via
P; the website map page is intentionally hidden. - Multiplayer host/deployment details live in
docs/multiplayer_server_wiki.mdanddocs/server_portal_setup.md.
Current Build Delta (2026-04-21)
- Deep floors now have a depth-scaled chance to spawn Lizard Kingdom Gates (
FeatureLizardKingdomGate). - Using a Lizard Kingdom Gate enters Lizard Kingdom side sites (
SiteLizardKingdom) with lizard society-biased populations. - Lizard Kingdom floors use dedicated cave themes (
Outer Warrens->Royal Sinkhalls) and integrate with map/examine/senses/clairvoyance text. :now opens a zen script planner for movement plus quoted directional combat actions (for example"attack"+d,"lthrow"+a,"parry", or3d"piercing strike"+3s), fast/charged pacing,Up/Downhistory recall,F1-F3saved slots, blue path preview, green impact-area preview, spirit-gated movement, committed sequence execution once movement starts, and burst-meter planning.- New reactive defense stances are live:
Hparry,Zspell-parry ward, and feat-gated enchanted-weapon spell parries (Spellbreaker Arms). - Martial content now spans broader world schools (Brazilian, Chinese boxing/monk-weapon lines, and Indian traditions) with style-specific damage-bias conversions and new technique-attack riders (kick launch, choke lock, vital-point pressure, monk sweep control).
- Western style coverage expanded (Savate, Catch Wrestling, Rapier Fencing, HEMA Longsword, Viking Skjoldr, Roman Legionary, Hoplite Phalanx, Systema, Tower Shield Bastion), including style-themed technique attacks with explicit attack-type/damage-type/effect metadata.
- Shield combat now supports dual-shield loadouts (for example dual tower shields) and dedicated shield-bash technique branches.
- This update is live in terminal mode and server mode; hosted clients inherit the behavior from the game build.
This is the implementation-level combat reference for the current Go terminal build.
It describes what is actually in code now: turn costs, formulas, targeting rules, AI behavior, conditions, spell combat, Aeons, and afterlife combat.
1. Combat Loop Architecture
Combat is fully turn-based. Most combat actions resolve as:
- Validate action (range, line of sight, resources, target legality).
- Spend resource(s) if applicable (stamina/focus).
- Resolve hit checks and effects.
- Apply damage/effects/death handling.
- Advance simulation by turns (
advanceEnemies(n)), unless negated byQuickTurns.
Important: offscreen loaded floors continue simulating, so combat choices can affect wider world state.
2. Turn Economy And Action Costs
Default combat action costs
- Move one tile:
advanceEnemies(movementCost()) - Melee strike:
3stamina, thenadvanceEnemies(1) - Throw:
2stamina, thenadvanceEnemies(1) - Shoot: stamina gate
2, thenadvanceEnemies(1)(current code only deducts stamina on the non-splash branch) - Use targeted consumable:
advanceEnemies(1) - Equip/unequip gear in inventory:
advanceEnemies(1) - Speak (
o):advanceEnemies(1)and can alert enemies - Standard spell cast: focus cost, then
advanceEnemies(1) - Crafted spell cast: focus cost, then
advanceEnemies(castTurns) - Aeon invoke:
advanceEnemies(1)
Crafted spell cast time
Crafted spell turn cost uses component count:
castTurns = ceil(componentCount / 2)- Code form:
(components + 1) / 2
Examples:
- 1-2 components: 1 turn
- 3-4 components: 2 turns
- 5-6 components: 3 turns
Quick turns override
QuickTurns reduces enemy/world advancement first:
- If action would advance
nturns and you haveqquick turns:negated = min(n, q)- actual advancement becomes
n - negated
Movement detail
movementCost = 1 + missingLegs (+1 if crawling or forced crawl)- Hunger from movement is independent of movementCost:
1 hunger per 4 movement steps(0.25per step average)
Zen script pacing and spirit budget
- In zen script fast mode, scripted actions resolve at half-turn pacing (
advanceEnemiesapplies 1 world turn per 2 scripted turns, rounding up at script end). - In zen script charged mode, scripted actions resolve at normal pacing (
1world turn per scripted turn). - Scripts only accept movement plus quoted applicable combat actions (equipped techniques, directional throws, parry/ward stance actions, and
"attack"/"atk"); invalid/inapplicable plans are rejected before execution. - Scripted movement consumes spirit (
1per successful movement step) and the chain stops when spirit is depleted. - Spirit is now a burst-limit meter: no passive regen/decay; it is built mainly through successful combat actions and spent on committed script movement/technique lines.
- Quoted named actions in zen scripts resolve applicable technique/throw/attack actions with optional lane hints (
+w/+a/+s/+d) and optional distance hints like+3a. - Quoted stance actions are available in scripts:
"parry"and"spell parry ward". - Barrage-labeled technique attacks now perform multi-hit strike chains in one turn with per-follow-up accuracy falloff.
- Technique attacks enforce a minimum cooldown floor of
3turns. - Technique attacks are mastery-gated: active technique/style rank progression unlocks higher-tier specials, and style-study rewards can unlock style-linked specials through manuals/books.
Piercing Strikeremains a non-reposition line cut, whileImpaling Rushis the matching forward-moving thrust/lunge variant.
Reactive parry stances
Gremains guard: flat damage absorption for that incoming enemy phase.His parry: if the incoming enemy hit is successfully deflected, that hit is canceled and the player gains+1quick turn.Zis spell-parry ward: same quick-turn proc behavior, but dedicated to spell-like incoming attacks.Spellbreaker Armsfeat allows normal parry stance (H) to also parry spell-like attacks while wielding an enchanted weapon.
3. Resource Economy In Combat
Stamina
- Used for physical combat actions.
- Actual stamina cost is reduced by conditioning:
physicalCost = max(1, base - conditioning/2)
Focus
- Used for spell actions.
- Actual focus cost is reduced by memory, attunement, and feat:
focusCost = max(1, base - reduction)- reduction includes:
soul.Memory / 4- active-element attunement contribution
+1ifFeatArcaneConduit
Passive regen
Per world turn (tickResources):
- Base stamina regen:
1 + conditioning/4 - Base focus regen:
1 + memory/6 - Spirit has no passive regeneration or decay in this model.
- Hunger penalties reduce regen at starving/famished states
- Sanctum increases stamina/focus/chi regeneration values
Spirit burst and chi forms
- Landing melee/throw/shoot/technique hits builds spirit burst toward
MaxSpirit. - Baseline offense scaling now reads current spirit (stored burst), not missing spirit.
- Chi forms can add in-combat burst effects:
Kaioken Blood Overdrive: spends chi and health during combat pressure to spike spirit gain.Hamon Healing Breath: spends chi during combat pressure to heal and sustain burst tempo.
4. Hit Resolution Core Formula
Global hit check:
finalChance = clamp(chance - defense, 18, 96)- Hit if
rand(0..99) < finalChance
This means all attacks have:
- hard floor:
18% - hard ceiling:
96%
Damage roll:
- Uniform integer roll in
[minDamage, maxDamage]
5. Player Combat Pipelines
Melee
Base flow:
- Stamina gate (
3) - Build min/max/accuracy from weapon or unarmed base
- Apply:
- offhand contribution (if valid dual setup)
- missing-limb penalties
- skill bonus (
applyCombatSkillBonus) - persistent unarmed knowledge bonuses
- feat bonuses
- active martial style bonuses
- true-name attack bonuses
- Hit roll:
rollHit(60 + acc*7, target.Defense*8)
Throw
Base flow:
- Stamina gate (
2) - Compute throw range with arm/eye penalties and martial range bonus
- Use projectile preview/path collision
- Accuracy baseline:
62 + (grace + weaponAcc)*6 - eyePenalty*8- plus throwing skill, feats, martial bonuses
- Hit roll against actor defense:
rollHit(accuracy + trueNameAccBonus*6, target.Defense*8)
- Thrown item leaves inventory and lands on impact tile
Shoot
Base flow:
- Stamina gate (
2) - Range from weapon shoot range with arm/eye penalties + martial modifiers
- Accuracy baseline:
64 + (grace + weaponAcc)*6 - missingArms*8 - eyePenalty*8- plus marksmanship skill, feats, martial bonuses
- Hit roll against actor defense:
rollHit(accuracy + trueNameAccBonus*6, target.Defense*8)
- Splash weapons:
- apply AoE damage to affected points
- off-center targets take reduced damage
- current implementation checks stamina availability but does not deduct stamina on the splash branch
Targeted consumables
- Use shared range selector and AoE preview.
- Can deal damage, reveal, heal/buff, deploy traps/security, apply oils, etc.
- Always consumes a turn when successfully used.
6. Modifier Stack (Damage / Accuracy)
Major combat modifiers currently in use:
- Stats (
Vigour,Grace,Wit,Faith) - Weapon profile and enchantments
- Skill ranks (weapon domain, throwing, marksmanship, spellcraft)
- Feats (for example
Pugilist,WeaponSpecialist,Sharpshooter,ThrowSavant) - Active martial style
- Persistent teachings and known unarmed styles
- True-name knowledge / named-state pressure
- Element mastery + attunement + active element
- Oil buffs on equipped weapon
- Body penalties (missing arms/legs, eye penalty; one missing eye is a penalty, not full blindness)
True-name combat effects
If you know target true name:
+1min damage+1max damage+1accuracy
If target is currently name-pressed (NamedTurns > 0):
- additional
+1min damage - additional
+2max damage - additional
+2accuracy
7. Targeting System (Range Selector)
All aimed systems use the same targeting UI (t/f/z/X/Aeon/item), but crafted formulas also carry a forge-time target profile.
Validation includes:
- map bounds
- range limit
- visibility requirements
- line-of-sight requirements
- projectile blocking (doors/walls/barricades/hidden doors)
- target legality (merchant, ally, self-only rules, etc.)
Preview types:
- projectile preview
- shot preview (with splash)
- tile preview
- AoE preview
- teleport preview
- special previews (for example Hollow Wolf lunge)
X (examine) uses selector UI but does not consume a turn.
8. Enemy Combat AI (Player Floor)
Perception and pursuit
- Enemies need line of sight to actively see player (
enemyCanSeePlayer). - If seen, they store player as
LastKnown. - If line of sight breaks, they move toward last known position.
- Once they reach last known position without reacquiring, they clear it and wander/search.
Invisibility detection
If player is invisible, detection uses a chance roll:
- Base from actor accuracy and distance
- Caster/elite enemy kinds get bonus detection chance
- Sneaking and acrobatics reduce detection
- Final chance clamped
3..82
Behavior priorities
- Handle control states (
pacified,restrained,fear). - Drag helpless player if adjacent and possible.
- Melee if adjacent and line of sight.
- Special logic (necromancer summon when available).
- Ranged fire in preferred distance band.
- Reposition (step away if too close for ranged profile).
- Path to last known.
- Wander/search.
Enemy hit formulas vs player
- Melee:
rollHit(58 + actorAcc*7, playerGrace*5) - Ranged:
rollHit(60 + actorAcc*7, playerGrace*4)
Notable enemy combat extras
- Goblin melee can steal obols.
- Necromancer can summon
Bone Wretch(cooldown-gated). - False angel ranged can force sleep.
- Sorcerer ranged can inflict temporary anosmia.
- Aeon boss ranged can inflict temporary deafness.
- Demon/guardian/aeon melee have higher limb-maim pressure.
- Enemies can break barricades.
9. Actor-vs-Actor Combat (Ambient Sim / Minions / Faction Fights)
Non-player actor combat uses ambient formulas:
- Melee:
rollHit(58 + acc*7, defense*8) - Ranged:
rollHit(60 + acc*7, defense*8)
Actors use combat profiles including equipped gear bonuses. This is what drives:
- offscreen faction fighting
- minion/servitor engagements
- ecosystem predation loops
10. Control, Status, And Attrition Effects
Player-side states relevant to combat
- Blind, Deaf, Mute, Anosmic
- Sleeping, Unconscious
- Crawling / forced crawl
- Toxicity overflow
- Burning/regen/oil timers
- Invisibility / muffle timers
- Limb wounds/loss/prosthetics
Actor-side states relevant to combat
- Restrained
- NamedTurns
- BurningTurns
- SoulTrapTurns
- PacifiedTurns
- FearTurns
- FrenzyTurns
- CourageTurns
- InfectedTurns + infection spread potency
All transient actor states tick down per world turn; some apply periodic damage or behavior overrides.
Ward behavior
- Ward is a pre-HP buffer.
- Incoming damage is absorbed by ward first.
- Remaining damage then hits HP.
11. Grapple / Interrogate / Rob (Close-Control Combat)
These are combat-adjacent control actions:
Grapple
- Cost:
3stamina - Check:
- attack side:
58 + vigour*7 + grace*4 - missingArms*12 - defense side:
target.Defense*8 + target.Accuracy*5 + target.MaxHP/2
- attack side:
- On success applies restraint turns and naming pressure.
Interrogate
- Requires restrained target
- Cost:
3focus - Check:
- attack side:
56 + wit*7 + faith*5 + soul.Memory*2 - defense side:
target.Defense*7 + target.HP
- attack side:
- On success can expose true name and extract knowledge.
Rob/Search restrained target
- Requires restrained target
- Cost:
2stamina - Check:
- attack side:
58 + grace*7 + wit*5 - missingArms*10(+sneak bonus if sneaking) - defense side:
target.Defense*6 + target.Accuracy*4 + target.HP/2
- attack side:
Each of these advances turns and can shift nearby combat state.
12. Spell Combat
Standard spells
- Focus cost from
standardSpellFocusCost(name), then reduced byfocusCost. - Usually 1-turn cast time.
- Uses the standard target modes (
self,actor,area,tile) and preview validation. - Cooldowns tracked per spell key.
Crafted spells
- Focus cost from
craftedSpellFocusCost(spell), then reduced byfocusCost. - Target profile is chosen at forge time (
self,single, orchain). - Targeting depends on form:
Bolt: projectile actor lineHalo: AoEStep: teleport tileVeil: self-cast
- Cast time scales with components (
ceil(n/2)turns). - Cooldown scales by school/element/attunement/mastery adjustments.
- Power scales with stats, attunement, mastery, table/form/element/school, and spellcraft skill.
Self-targeting support
The system supports self, actor, and area targeting paths. Crafted formulas can also lock in self/single/chain subject behavior at forge time, which is why the same form can become a self spell, a target spell, or a chain spell. Many defensive/utility/control spells can be self-cast (directly or via composition).
13. Aeon Combat
Two bound Aeon slots can be invoked in combat.
Current invoke profiles:
Cinder Saint: ranged AoE burstGlass Widow: short-range blink + wardSepulchral Tutor: reveal + AoE strikeIron Choir: large ward + healHollow Wolf: lunge setup into melee strike
Aeon invoke consumes a turn and applies per-Aeon cooldown.
14. Afterlife Combat Model
Afterlife is a separate combat mode with soul stats and Noss chain battles.
Chain sizes
- Normal death: 3 Noss encounters
- Final-trial death: 4
- Grand trial (level 9999): full 72 Noss chain
Core afterlife actions
a: strikef: soul-shot rangedG: guard (ward generation)H: parry stanceZ: spell-parry ward stancen: speak true name (instant dismiss if known)z: spells/formulas allowed in afterlife
Afterlife combat formulas
- Strike damage: scales from Echo/Faith/Wit and RNG
- Soul-shot hit chance: clamped formula with Grace/Wit/Insight vs judge accuracy
- Guard adds ward from Faith/Wit scaling
- Judge attack chance and damage scale by encounter stats and trial depth context
- Ward absorbs damage first, then soul HP
Final victory condition is clearing all required chain encounters; grand trial clear is game win.
15. Multiplayer Combat Turn Sync (Observer Rule)
On server mode, if two players mutually observe each other:
- acting player may be blocked until observed players resolve their own turn
- UI reports waiting state
- this applies to combat turns the same as other actions
Outside mutual observation, players continue on independent local turn progression.
16. Practical Combat Tuning Knobs (For Design Iteration)
High-impact tuning fields:
rollHitclamp bounds and attack/defense coefficients- stamina/focus base costs
- movement cost and quick-turn generation
- enemy preferred range bands and cooldowns
- limb-maim probabilities
- crafted spell cast-turn formula
- affliction durations and cleanse rates
- invisibility/speech detection formulas
- ward generation/decay rate sources
17. Related Docs
- Player guide: player_guide.md
- Player wiki: player_wiki.md
- Monster book wiki: monster_book_wiki.md
- Spellcraft wiki: spellcraft_wiki.md
- Core systems spec: core_systems_spec.md