Sources
Primary — engine code
Arkane released the Arx Fatalis source under GPL on 14 January 2011 (game assets remain proprietary). Every formula in this vault was read from the Arx Libertatis tree, a maintained cross-platform port of that release, as checked out locally at H:\Work\Projects\ArxSharp\ArxLibertatis.
| File | What it verifies |
|---|---|
src/game/Player.cpp |
Starting stats (4×6, 16 attr / 18 skill), XP table, level-up rewards, life/mana formulas, attribute→skill contributions, misc stats, hunger + regen + poison clock, GetPlayerStealth |
src/game/Player.h |
Skill list; spellLevel() = clamp((Casting + Mind) × 0.1, 1, 10) |
src/game/Equipment.cpp |
ARX_EQUIPMENT_ComputeDamages — attack, backstab ×1.5, absorb, crit ×1.5, hit chance |
src/game/Spells.cpp |
Full mana cost table, caster-level assignment, fizzle conditions |
src/game/magic/SpellData.cpp |
All 50 spells: tier, rune sequence, secret flag |
src/game/magic/Rune.h |
The 21 rune symbols and their meanings |
src/game/magic/Precast.cpp |
MAX_PRECAST = 3, FIFO eviction, 1 s cooldown, mana charged at launch |
src/game/magic/spells/SpellsLvl01.cpp, SpellsLvl03.cpp |
Magic Missile and Fireball damage/count/radius scaling |
src/game/NPC.cpp |
Behaviour flags and stack, evade rolls, reaction to player strikes, vision cone ±110°, detection conditions, hearing radii (600 / 800) |
src/ai/PathFinder.h / PathFinder.cpp |
A* over the anchor graph, tunable heuristic, cylinder constraint, flee and wander queries, STEALTH_LIGHT_COST = 300 illumination cost |
src/scene/Interactive.cpp |
Buy/sell price formulas, the Intuition modifier, and HaveCommonGroup (group set intersection) |
src/game/Inventory.cpp |
Identification threshold ObjectKnowledge + Mind ≥ identify_value |
src/script/ScriptedLang.cpp |
SENDEVENT dispatch: -g global-by-group, -gr radius-by-group, -gz zone-by-group; ISGROUP / !ISGROUP operators |
src/game/Damage.cpp |
Area damage skips NPCs sharing a group with the source, except where the player is involved |
Primary — retail game data
Unpacked at H:\Work\Projects\ArxSharp\Build\unpacked:
graph/obj3d/interactive/fix_inter/_common/lockpick.asl— the shared lockpicking routine: auto-fail below the lock's rating,Mecanism − lockpickability + 20percent per 3-second attempt, 150 XP on success, picks damaged on failure, attempt aborts beyond 400 unitsgraph/obj3d/interactive/fix_inter/lever/lever.asl— trap state (trapped,trap_lockpickability,SETTRAP) and the Disarm Trap check:casterLevel × 10 ≥ ratinggraph/obj3d/interactive/fix_inter/puzzle_pillar01/puzzle_pillar01_0001/— controlled-zone object-placement puzzle with a^POSSESScheckgraph/obj3d/interactive/fix_inter/akbaa_puzzle/akbaa_puzzle.asl—COMBINE→DESTROY→SENDEVENT→REPLACEMEpattern- Mechanism census by script folder: 118 levers, 83 teleport markers, 56 buttons, 44 secret objects, 36 plates/elevators, 30
puzzle_*, 22 traps, 13 statues, 10 wheels, 7 pillars, 6 portcullises, 6 bridges, 3 altars graph/obj3d/interactive/npc/— 41 NPC class folders. Stat blocks (SET_NPC_STAT,SET_XP_VALUE,SET_POISONOUS) read fromrat_base,ratman_base,goblin_base(base / lord / king),troll_base,undead_base(zombie / mummy),spider_base(base / baby / nasty),golem,demon- The two shared NPC include sets,
main_animalandmain_clever— faction membership,CALL_FOR_HELP(600 units fighting, 1200 fleeing), cowardice escalation, confusability gates, the Harm/Life-Drain panic branch, ratman teleport and gold theft - Faction census from base scripts (
SET §friend,SETGROUP):goblin(+goblin_castle/goblin_earth/goblin_water),ratmen,trolls,UNDEAD,DEMON,kingdom/human_kingdom,akbaa,sacred_sword, plusMICECAREas a non-faction subscription channel. Spiders, golems and rats arefriend "NONE" graph/levels/— 24 level directories (level0–level24, nolevel9)localisation/utext_english.ini— all in-game book, note and journal text: the Noden laws, the god register, Lord Long's account, the High Priest's memoir, Falan Orbiplanax's letter, and the quest journal spine. Source of everything in World History & Lore, including the year 199 / 216 discrepancyitems/provisions/— the crafting chain:flour,bread_uncooked,pie_uncooked,applepie_uncooked,food_prep.ON COMBINE+REPLACEMEtransformations, prices, and the^INPLAYERINVENTORYguard on everyON COOK- Item category census: 285 movable, 229 quest items, 195 provisions, 169 magic, 120 special, 109 armor, 104 weapons, 36 jewelry
- ~3,600
.aslentity scripts acrossfix_inter,items,npc,system
Divergence caveat
Arx Libertatis is a port, not a byte-identical build. It fixes bugs and has changed behaviour in at least one analysed area: version 1.2 (2021) shipped a more forgiving rune-recognition algorithm and frame-rate-independent detection. Treat casting-feel claims as describing AL, not retail 1.21. Arithmetic formulas (damage, mana, prices, XP) are inherited from the original code and are far more likely to be faithful, but any single number could in principle have been touched — spot-check against the retail binary before publishing anything load-bearing.
Secondary — development history
- "From New To Arkane: Ten Years Of Development", Gamasutra / Game Developer. Colantonio on Arx: he calls it the truest game they made, admits it shipped buggy, and states the team was nine people at a time when 30+ was normal.
- Wikipedia — Arx Fatalis: release dates (DE 28 June 2002; UK 8 Nov 2002; NA 12 Nov 2002; Xbox 2003–04), credits (director/designer Raphaël Colantonio, programmer Cyril Meynier), 2011 GPL source release.
- Wikipedia — Arkane Studios: founded 1 October 1999 in Lyon; intended as Ultima Underworld III until EA declined; publisher difficulties then JoWooD; critically well received but a commercial failure; the critical praise led to the Source-engine relationship and ultimately Dark Messiah.
- Arx Libertatis 1.2 release coverage, GamingOnLinux, 2021: confirms the 2011 GPL release and the reworked rune-detection algorithm.
- Game Informer — "Co-Creating Dishonored: An Interview With The Directors", 2011. Colantonio and Harvey Smith on meeting during Arx Fatalis and Deus Ex, and on Underworld as their shared favourite.
- PC Gamer — Colantonio on his Steam library, 2026. Thief, Underworld and Looking Glass influence, pre-Arx.
- Bethesda — "5 Key Moments in Arkane History". Studio founding date and the Underworld-sequel origin.
Gaps to close
- Whether Intuition has any engine-side effect beyond sell price (in-game framing suggests sensing hidden things; not found in code)
- ~~Where Mecanism gates trap disarming as opposed to locks~~ — closed: traps are disarmed by the Disarm Trap spell on a
casterLevel × 10check (lever.asl); Mecanism governs locks only - ~~Whether any NPC script implements coordination between multiple attackers, or whether all tactics are per-entity~~ — partly closed: there is no formation or flanking logic, but
CALL_FOR_HELPand thePLAYER_ENEMYgroup broadcast do pull whole factions into a fight - Stat blocks not yet extracted: liche, gargoyle, snake woman, black thing, worm, ice dragon, ylside, the Akbaa boss phases
- Named-region ↔ level-index mapping, and the status of the missing
level9 - A retail-1.21 spot-check of the damage and mana tables