Ethernalis Systems Reference

People & Enemies

The dungeon is not empty machinery. Every creature that inhabits it moves, hungers, scavenges, flees when wounded, and fights by laws that apply equally to it and to you.
- On the four kinds of NPC, the AI that drives them, their combat, and the quests they carry
4 NPC Kinds· 5-Stage AI Loop· Combat Mechanics· Enchanted Enemies· Quest Narratives· Kill-Fetch Quests· Spell-Bound Creatures
I
A World That Breathes

The Four Kinds

All creatures in Ethernalis, whether hostile, friendly, or indifferent, share the same underlying structure as any other card. What differs is where they live, what they remember, and what they want.

Dungeon NPC

Lives entirely within a single dungeon run. Dungeon NPCs roam, fight, eat, drink, equip gear they find, and respond to the player's presence and recent actions. They exist only while the dungeon does, with no record kept beyond the session that generated them. The most varied kind: guards, monsters, wandering scholars, and everything the theme produces.

World NPC

Persists across sessions in the wider world, tied to a fixed location or a range of them. What a world NPC knows of the player comes entirely from what that player has demonstrated to the world. Two players who meet the same world NPC will have different conversations if their histories differ.

Companion

A recruited NPC who travels with the player. Companions leave the dungeon grid and enter the player's carried party when recruited. They move where the player moves, can be equipped with gear from the player's inventory, can be sent to explore adjacent rooms, and can be dismissed back to a dungeon slot when no longer needed. They hunger and thirst alongside the player.

Merchant

Stationary traders encountered in the dungeon or in the world above. Merchants have a type that defines their stock, a level that reflects their trading experience, gold to make transactions with, and personality traits that colour their pricing and reactions. They restock over time and grow as business passes through them.


II
Turn by Turn

The AI Loop

Every dungeon NPC is processed once per world turn by the same five-stage loop, in the same order, every time. The loop does not change based on creature type. What changes is the values that drive each decision.

Stage 1: Needs

At the start of the loop, the hunger and thirst of every NPC on the grid increase by one. This happens before any action is taken. An NPC that has not eaten or drunk in many turns will be deep into its need values before it gets a chance to do anything about them.

Stage 2: Hunger, Thirst & Scavenging

Any NPC whose hunger or thirst exceeds 20 searches its own inventory for food or drink and consumes it. If it carries nothing suitable, it searches the room it currently occupies. Separately from this, every NPC proactively picks up one provision per turn from its current room even when not yet hungry — so NPCs that encounter food stock up rather than waiting until they are desperate. Once need crosses 80 and the NPC has not already complained, it logs a protest; companions address this to the player directly.

Stage 3: Behaviour

Each turn the NPC evaluates its situation and sets two flags: whether it is moving, and what logic mode governs that movement. An NPC with adequate provisions and healthy stats rests in place. One that is running short of food or drink begins exploring to find more. One at less than 25% health abandons both states and switches to flee mode — it will not fight and will not stand still. Once health recovers, normal behaviour resumes automatically. Companions are excluded from automatic movement management.

Stage 4: Combat

If an enemy is present in the same room and the NPC is not in a wounded-flee state, the NPC picks a target and attempts an attack. The attack roll and damage formula are the same as the player's. There is no separate system for NPC combat. See the next section for the full breakdown. Stunned NPCs skip this stage for the duration of their stun counter.

Stage 5: Rest or Movement

After needs and combat are resolved, the NPC either rests or moves. A stationary NPC with a healing item will use it on itself at this stage. A moving NPC chooses a destination according to its current logic mode. Movement can trigger traps or blocked doors at the destination tile, which apply their effects to the moving NPC. The NPC's position is updated and broadcast after movement completes.

Movement Logic

Null Logic

The default state. An NPC in null logic moves at random, choosing from any available adjacent tile. If it has detected a strong scent in a particular direction it will prefer that direction over a random choice. This is how creatures that hunt by scent find their way toward prey without line-of-sight.

Cowardly Logic

An NPC in cowardly logic filters out any move that brings it closer to the player's last known position, choosing instead the tile that increases its distance. A cowardly NPC will pass through connecting rooms, potentially triggering traps along the way. Flight is a preference, not an absolute: if every available exit leads toward the player, the NPC moves anyway. Taking enough damage or certain environmental changes can push an NPC out of cowardly logic.

Enemy Flee Logic

Set automatically when an NPC's health drops below 25%. Unlike cowardly logic, which filters moves relative to the player's direction, enemy flee accepts any available exit. The NPC does not care which way it goes, only that it leaves. The mode clears itself once health has recovered.

Angered Logic

An angered NPC filters available moves to prefer the direction of the player's last known position and actively closes the distance. It can open doors and will attack anything in its path that is not an ally. Angered logic is triggered when an NPC takes damage from the player, witnesses a companion being harmed, or is affected by certain spells. It does not reset until the NPC is no longer aware of a threat.


III
How the Fight Is Decided

Combat Mechanics

Enemies fight by the same rules as the player - the same roll, the same damage formula, the same elemental stack apply to every creature in the dungeon.

The Attack Roll

When an NPC attacks, it rolls against its melee or ranged stat, whichever applies to the weapon it has equipped. The roll produces a number between 0 and 99. If that number falls below the NPC's melee (or ranged) value, the attack lands. If it falls above, the attack misses.

A creature with a melee of 60 hits roughly three times out of five. One with a melee of 20 hits roughly once in five. The stat is the direct probability expressed as a percentage. A high-dodge target reduces the effective hit chance further: the attacker must clear both the miss threshold and the defender's dodge.

Damage

A successful hit deals physical damage equal to the attacker's strength, minus the defender's defense, plus a die roll. If either side carries elemental damage bonuses, those are added on top of the physical result, and the defender's elemental resistances reduce them independently of physical defense.

This means a heavily armoured defender may shrug off a physical strike while remaining fully exposed to a fire-dealing weapon. Elemental damage and physical damage are resolved in the same hit, not as separate events, but the mitigation that applies to each is entirely different. Build your defenses accordingly.

Elemental Damage

NPCs carry elemental damage values in the same five schools as the player: fire, ice, acid, holy, and dark. These values come from their base definition and from any elemental weapon they have equipped. When an attack lands, each non-zero elemental bonus is applied to the defender and reduced by the corresponding elemental resistance. An enemy with high dark damage and low holy damage is a fundamentally different threat from one that hits purely physically.

Stun

Some attacks, spells, and traps stun their target. A stunned NPC skips its combat stage entirely and has its movement restricted for as long as the stun lasts, then recovers automatically. A creature that would otherwise be dangerous becomes manageable while stunned, but the window is finite. A stunned enemy is a timed opportunity, not a permanent solution.

Spawn Intervals

Not all enemies are placed at dungeon generation time. Some location cards are local clocks: they wait through a fixed interval of world turns, then produce a new enemy nearby if there is space for it. Areas left unattended can grow more dangerous over time, and revisiting a cleared room does not guarantee it has stayed cleared.


IV
Armed, Armoured, and Enchanted

Gear and Enchantment

Gear Found and Used

Dungeon NPCs can pick up and equip items they find in the room during their turn. If a better weapon is lying in the same space as the NPC, it may arm itself with it before the player's next action. The same applies to armour, shields, and other wearable items. An NPC that begins the encounter lightly armed may not remain so if the dungeon has left equipment nearby.

Some NPCs are placed with gear already equipped. Their starting stats reflect that equipment. When an NPC is removed from the encounter, the gear it carried falls back into the room where the fight ended.

The Same Measures

NPCs use the same stat model as the player. Health, stamina, mana, elemental defences, strength, speed, dodge, sneak: all are tracked per NPC. A dungeon creature with high fire defence is genuinely resistant to fire spells; a humanoid with high dodge is genuinely harder to hit. When an NPC equips or loses a piece of gear, its stats are recalculated from its base values up, with all equipped bonuses applied on top.

Carry capacity follows the same rule as the player: an NPC can carry weight equal to its strength multiplied by forty. An NPC that is overburdened cannot pick up additional items, even if they would be an improvement.

Enchantment on Enemies

Any gear an enemy carries follows the full item rulebook: quality, material, sockets, and enchantments included. An enemy that spawns or picks up a socketed weapon benefits from that rune exactly as the player would. The game makes no distinction between player-held and enemy-held enchanted gear.

Socketed Enemy Gear

Enemies can spawn carrying socketed weapons and armour. The rune school and item category determine the buff, just as they do for the player. An enemy with a fire-runed weapon deals additional fire damage on every hit. One wearing defense-runed armour is harder to hurt. If it appears in an enemy's inventory, the player can loot it and the enchantment travels with it.

Enchanted Items Picked Up Mid-Fight

If an enchanted item sits in the same room as a hostile NPC, that NPC may arm itself with it during its turn. An enemy that was ordinary at the start of the fight may become significantly more dangerous if the player dropped or left a runed weapon nearby. What the player brings into a room is part of the encounter's risk.

Room Runes Affect Both Sides

A rune socketed into a location card applies its effect to every creature in that room. The dungeon does not take sides. A fire rune on the floor amplifies the fire damage of any fire attack made within it, whether the player casts it or the enemy does. An enemy spellcaster fighting in a fire-runed room is a more dangerous opponent than the same creature in an unruned corridor. The dungeon's enchantments belong to the space, not to whoever placed them.


V
Allies and Obligations

Companions and Quests

Recruitment

When a dungeon NPC is recruited, it moves from its slot in the room into the player's carried companion list. From that point, it travels wherever the player travels. Carrying a companion is a real commitment: they have needs, opinions, and combat capability of their own. They can be sent into adjacent rooms to explore ahead, and they can be dismissed back to a room slot when the arrangement is no longer useful.

Quest State

World NPCs offer and track quests through the player's own history. When a player completes an action relevant to a quest, the record of it is kept on their behalf. When they next speak with the relevant NPC, the NPC reads what has been done and responds accordingly. The NPC does not track the quest independently. The player's own history is the only ledger, which means quest progress is personal: two players in the same session can be at different stages with the same NPC.

Quest Narratives

When a player asks an NPC for work, the NPC opens with a short passage of flavour text before presenting the objective. A hermit asks differently than an outlaw; an emissary differently than a wanderer. The narrative is there to give context, not to direct what the player must do.

Kill-Fetch Quests

A rare quest type, roughly one in ten, where the NPC asks the player to recover a specific enchanted item carried by a named enemy. When the player accepts, that enemy is placed in the dungeon carrying the item. The quest is complete when the player brings it back. The item is surrendered when the reward is claimed and cannot be kept.

Dialogue

A world NPC encountered for the first time has a brief biography: origin, temperament, current circumstance. Subsequent conversations reflect what the player has done and what the NPC currently knows. An NPC who gave the player a task will acknowledge whether that task is done, and their tone adjusts to reflect it. Dialogue is not branching fiction. It is a response to the situation both parties currently occupy.

Starting Provisions

Procedurally generated NPCs spawn carrying food rations and a water bottle. They begin each dungeon run in a resting state rather than immediately wandering in search of food. A provisioned NPC stays put, conserves health, and has time to settle before the player arrives, greatly improving the odds that it is still alive at first contact. Once provisions run out, the NPC begins exploring to find more.


VI
Compelled by Magic

Spell-Bound Creatures

Three spells can convert a hostile enemy into a compliant NPC mid-dungeon: Animal Charm, Mind Control, and Necrotize. The creature that results is not a willing companion — it is a bound one. Its behaviour is stripped to the minimum, and its compliance is always temporary.

Animal Charm (Druidic)

Converts an animal enemy into a charmed NPC. The creature loses its hostile intent but retains nothing of its former AI. It will not hunger, forage, or act independently. The charmed tag is applied and the creature becomes immediately recruitable. The charm lasts for 50 × Druidic proficiency level turns before the effect fades and the animal reverts to a hostile enemy.

Mind Control (Illusion)

Converts a humanoid enemy into a dominated NPC. Like a charmed animal, the creature is immediately compliant but stripped of all AI upkeep — no hunger, no thirst, no independent movement. The dominated tag is applied and recruitment is available at once. The illusion holds for 50 × Illusion proficiency level turns. When it breaks, the creature turns hostile where it stands.

Necrotize (Necromancy)

Converts an undead enemy into a necrotized thrall. The creature is bound rather than charmed — it carries the undead_thrall tag and obeys with the same minimal compliance as charmed or dominated creatures. The binding holds for 50 × Necromancy proficiency level turns. When the counter reaches zero the creature does not revert — it crumbles into Bones entirely.

Interaction and Restrictions

No Normal Dialogue

A spell-bound creature does not hold conversation. Speaking to one produces a short piece of flavour text — something in keeping with its blank, compelled state — rather than the standard NPC dialogue tree. It cannot give quests, share information, or respond to any normal social option.

Restricted Commands

While on the dungeon grid, a spell-bound creature accepts three commands: Stay (halts movement), Explore (resumes movement), and Come with me (recruits as a companion). Once recruited, the only available command is Wait here, which dismisses the creature back to a room slot. No quest options, no provisioning requests, and no loyalty mechanics apply.

No AI Upkeep

Spell-bound creatures are excluded from the entire AI maintenance loop. They do not accumulate hunger or thirst, do not scavenge for provisions, do not pick up or drop items, and do not have their behaviour state updated each turn. They move only when the player explicitly orders them to explore, and stop the moment they are told to stay.

When the Binding Expires

Every spell-bound creature carries a countdown soul. The counter decrements once per dungeon tick. What happens at zero depends on the creature type — and on where it is when the timer runs out.

Revert (Charmed & Dominated)

When the countdown expires, the charmed or dominated creature reverts to type enemy, loses its compliance tags, and begins moving again. If it was on the dungeon grid the change happens in place. If it was travelling as a companion it is dropped to the nearest available adjacent room slot before turning hostile. If no slot is free, the reversion is deferred to the next tick and retried until a slot opens.

Crumble (Necrotized)

When the necrotized countdown expires, the creature does not revert — it disintegrates into Bones. On the dungeon grid the card transforms in place, preserving its unique stamp. As a companion it is removed from the player's party and Bones are placed in the nearest available adjacent room slot. If no slot is free the transformation is deferred until one opens, exactly as with a reverting creature.

No Free Slot

Expiry is never silent and never simply discards the creature. If the room around the player is completely occupied when a companion's binding expires, the countdown resets to one and the attempt is repeated the following turn. The creature stays in the party until the dungeon finds space for what it is about to become.


VII
What Trust Buys

Loyalty and Knowledge

An NPC who has reached the limit of their loyalty — who has seen the seeker prove themselves through completed quests — may share something they would tell no one else. Not a rumour. A place.

The Threshold

The reveal can only occur once an NPC's loyalty reaches 100 or above. After each successful quest completion (which adds 30 loyalty) or mini-quest completion (which adds 15), there is a 5 % chance the NPC chooses to share a historical location. The chance fires only once per NPC instance — once given, it will not be offered again from the same source.

The Gift

When the reveal triggers, the game selects a historical artifact or beast location that the player does not yet know about. A journal entry is written: the NPC's name, the name of the site, and a note that it lies somewhere in the region. The player's knowledge tags are updated immediately. The corresponding icon on the region map becomes visible the next time the map is viewed.

Hidden Until Earned

Artifact and beast positions are present in the region snapshot from the moment the world is generated — they are not created by the reveal, only uncovered. A seeker who finds such a site without a guide simply has no map marker to orient by. The knowledge tag is the difference between knowing where to look and finding the site by chance.

Journal Record

The reveal writes a description into player.tag_descriptions keyed by the location's required tag. This description appears in the player's journal alongside all other knowledge entries. If the player already has every location revealed, the trigger no-ops silently — the NPC simply has nothing left to tell.

← All Systems