Ethernalis Systems Reference

People & Enemies

The dungeon is not empty machinery. Every creature that inhabits it moves, hungers, reasons, equips what it finds, and fights by laws that apply equally to it and to you.
- On the four kinds of NPC, the AI that drives them, and the combat they bring
4 NPC Kinds· 4-Stage AI Loop· Combat Mechanics· Enchanted Enemies· Quest Tags
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 — there is no record of them 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. World NPCs carry quest state, but that state is not stored on the NPC itself — it is stored on the player as a set of tags. The NPC only knows what the player has demonstrated to the world. Two players who meet the same world NPC will have different conversations if they carry different tags.

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 four-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 Tick

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 — Need Satisfaction

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. An NPC that cannot satisfy its need does nothing about it this turn. Once need crosses 80 and the NPC has not already complained, it logs a protest — companions will address this to the player directly. At extreme levels, unmet needs degrade performance.

Stage 3 — Combat

If an enemy is present in the same room, 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 4 — Movement

After needs and combat are resolved, the NPC moves. The direction it chooses depends on 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 the NPC has a smell direction set — because it has detected a strong scent in a particular direction — it will prefer that direction over a fully 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.

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's roll 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 six-sided 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 apply a stun counter to their target. An NPC with a stun counter greater than zero skips its combat stage entirely and has its movement restricted for as long as the counter persists. The counter decrements by one each turn. A creature that would otherwise be dangerous becomes manageable while stunned — but the window is finite, and the counter decrementing is automatic. 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 — spawner cards that wait through a fixed interval of world turns and then produce a new enemy in an adjacent room slot if one is available. A room without space suppresses the spawner until a slot opens. This means 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. Removing the NPC from the encounter also removes the gear it carried — it does not teleport into the player's inventory but 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 scratch — base values first, then all equipped bonuses stacked 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. There is no flag marking an item as "enemy-only" — 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. A companion slot is a real inventory commitment — carrying a companion is carrying a creature with needs, opinions, and combat capability. 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 a tag system. When a player completes an action relevant to a quest — kills a target, delivers an item, enters a location — a tag is written to the player's record. When the player next speaks with the relevant NPC, the NPC reads those tags and responds accordingly. The NPC does not track the quest; the world does not track the quest. The player's own record is the only ledger. This means quest progress is personal: two players in the same session can be at different stages with the same NPC.

Dialogue

A world NPC encountered for the first time generates a brief biography for itself — origin, temperament, current circumstance — drawn from its available trait and template data. Subsequent conversations reference the player's tags and the NPC's current state. 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 structured response to the state both parties currently occupy.

← All Systems