Stats

From Arx Libertatis Wiki
Jump to navigation Jump to search

Stats are the values controlling how well a character can perform various activities. The player has the following stats in Arx Fatalis. Some stats can be increased when leveling up, and are influenced by equipped items.

Experience

The player gains XP by exploration, killing enemies and advancing quests. Once enough Xp. is obtained the player will level up and receive a number of attribute and skill points that can be freely distributed.

Level Total Xp. Difference
1 2000 2000
2 4000 2000
3 6000 2000
4 10000 4000
5 16000 6000
6 26000 10000
7 42000 16000
8 68000 26000
9 110000 42000
10 178000 68000

Level 10 is the maximum level that can be reached by the player.

The player receives 16 attribute points and 18 skill points for level 0 during character creation and then one attribute point and 15 skill points for each additional level for a total of 26 attribute points and 168 skill points.

Attributes

Main article: Attributes.

Attributes are the most basic player stats - they can be increased when the character levels up, but are not affected by any other stats. There are four different attributes in Arx Fatalis:

  • Strength
  • Mental
  • Dexterity
  • Constitution.

All attributes have a minimum of 6 points (ignoring negative status effects).

Skills

Main article: Skills.

Skills define how good the player is at various groups of tasks. Like attributes, they can be assigned points by the player for each level. Unlike attributes however, their full values are also influenced by the player's attributes. In Arx Fatalis the player has nine different skills:

Skill Str Men Dex Con Minimum Skill
Stealth
×2
2
12
Technical
×1
×1
2
12
Intuition
×2
2
12
Ethereal link
×2
2
12
Object knowledge
×0.5
×1.5
×0.5
2.5
15
Casting
×2
2
12
Close combat
×2
×1
3
18
Projectile
×1
×2
3
18
Defense
×3
3
18
3.5
8.5
6.5
3
21.5

Skill points do not have a minimum themselves but there is an effective minimum of 12 to 18 due to skill bonuses received from starting 6 points in each attribute.

Other stats

The remaining player stats cannot be directly modified by spending points when leveling up but instead are computed from the player's attributes and skills.

Health

Also known as "Life" in the source code.

base_max_health = raw_constitution * (level + 2)
full_max_health = full_constitution * (level + 2)

Player health is never above full_max_health. If health drops to 0 the player dies - duh.


Mana

base_max_mana = raw_mental * (level + 1)
full_max_mana = full_mental * (level + 1);

Player mana is always in the range [0, full_max_mana].


Armor Class

base_armor_class = max(1, floor(base_defense / 10 - 1))
fullbase_armor_class = max(1, floor(full_defense / 10 - 1))

Arx Fatalis 1.21 and Arx Libertatis 1.1.x and earlier have a bug causing the fullbase_armor_class value to be calculated as (ie: not including skill modifiers from items and spells):

fullbase_armor_class = base_armor_class

This is fixed in later Arx Libertatis versions.

Equipped items can increase or decrease the armor class:

modabs_armor_class = ∑<item>[ modabs(<item>, armor_class) ]

Alternatively, equipped items can also add or remove a percentage of the armor class:

modrel(<item>, armor_class) = modpercent(<item>, armor_class) / 100
modrel_armor_class = ∑<item>[ modrel(<item>, armor_class) ] * max(0, fullbase_armor_class + modabs_armor_class)

Armor/lower armor spells subtract/add one point per caster level to the armor class. Other spells don't modify the armor class directly.

modspell(armor_class, Armor,       <caster_level>) = 1 * <caster_level>
modspell(armor_class, Lower armor, <caster_level>) = -1 * <caster_level>
modspell(armor_class, <spell>,     <caster_level>) = 0
modspell_armor_class = ∑<spell>,<caster_level>[ modspell(armor_class, <spell>, <caster_level>) ]

The full armor class is calculated as:

full_armor_class = max(0, fullbase_armor_class + modabs_armor_class + modrel_armor_class + modspell_armor_class + cheats)


Magic Resistance

base_resist_magic = raw_mental * (2 + base_casting / 100)
fullbase_resist_magic = full_mental * (2 + full_casting / 100)

Arx Fatalis 1.21 and Arx Libertatis 1.1.x and earlier have a bug causing the fullbase_resist_magic value to be calculated as (ie: not including attribute and skill modifiers from items and spells):

fullbase_resist_magic = base_resist_magic

This is fixed in later Arx Libertatis versions.

Equipped items can increase or decrease the magic resistance:

modabs_resist_magic = ∑<item>[ modabs(<item>, resist_magic) ]

Alternatively, equipped items can also add or remove a percentage of the magic resistance:

modrel(<item>, resist_magic) = modpercent(<item>, resist_magic) / 100
modrel_resist_magic = ∑<item>[ modrel(<item>, resist_magic) ] * max(0, fullbase_resist_magic + modabs_resist_magic)

The full magic resistance is calculated as:

full_resist_magic = max(0, fullbase_resist_magic + modabs_resist_magic + modrel_resist_magic + cheats)


Poison Resistance

base_resist_poison = raw_constitution * 2 + base_defense / 4
fullbase_resist_poison = full_constitution * 2 + full_defense / 4

Arx Fatalis 1.21 and Arx Libertatis 1.1.x and earlier have a bug causing the fullbase_resist_poison value to be calculated as (ie: not including attribute modifiers from items and spells):

fullbase_resist_poison = raw_constitution * 2 + full_defense / 4

This is fixed in later Arx Libertatis versions.

Equipped items can increase or decrease the poison resistance:

modabs_resist_poison = ∑<item>[ modabs(<item>, resist_poison) ]

Alternatively, equipped items can also add or remove a percentage of the poison resistance:

modrel(<item>, resist_poison) = modpercent(<item>, resist_poison) / 100
modrel_resist_poison = ∑<item>[ modrel(<item>, resist_poison) ] * max(0, fullbase_resist_poison + modabs_resist_poison)

The full magic resistance is calculated as:

full_resist_poison = max(0, fullbase_resist_poison + modabs_resist_poison + modrel_resist_poison + cheats)


Damages

This is the level of damage the player can inflict in one hit:

base_damages = max(1, raw_strength / 2 - 5)
fullbase_damages = max(1, full_strength / 2 - 5)

Arx Fatalis 1.21 and Arx Libertatis 1.1.x and earlier have a bug causing the fullbase_damages value to be calculated as (ie: not including attribute modifiers from items and spells):

fullbase_damages = base_damages

This is fixed in later Arx Libertatis versions.

Equipped items can increase or decrease the damages:

modabs_damages = ∑<item>[ modabs(<item>, damages) ]

Alternatively, equipped items can also add or remove a percentage of the damages:

modrel(<item>, damages) = modpercent(<item>, damages) / 100
modrel_damages = ∑<item>[ modrel(<item>, damages) ] * max(0, fullbase_damages + modabs_damages)

Arx Fatalis 1.21 and Arx Libertatis 1.1.x and earlier have a bug causing the modrel_damages value not include modabs_damages. This is fixed in later Arx Libertatis versions.

The full damages are calculated as:

bonus_damages = full_close_combat / 10 

full_damages = max(1, fullbase_damages + modabs_damages + modrel_damages + bonus_damages + cheats)


Aim Time

This is the time the player needs to charge the weapon to inflict maximum damages.

Equipped items can set the aim time:

modabs_aim_time = ∑<item>[ modabs(<item>, aim_time) ]
if(floor(modabs_aim_time) <= 0)
  base_aim_time = 1500
else
  base_aim_time = floor(modabs_aim_time)

TODO: This does not make sense if more than one item modifies aim_time.

The full aim time is calculated as:

full_aim_time = max(1500, base_aim_time - floor(full_dexterity * 20 - 200))

Some cheats set the aim time to 100.


Critical Hit

The critical hit is the chance (in percent) the player has to score a critical it. It is calculated as follows:

base_critical_hit = max(1, raw_dexterity * 2 + base_close_combat / 5 - 18)
fullbase_critical_hit = max(1, full_dexterity * 2 + full_close_combat / 4 - 18)

Equipped items can increase or decrease the critical hit chance:

modabs_critical_hit = ∑<item>[ modabs(<item>, critical_hit) ]

Alternatively, equipped items can also add or remove a percentage of the critical hit chance:

modrel(<item>, critical_hit) = modpercent(<item>, critical_hit) / 100
modrel_critical_hit = ∑<item>[ modrel(<item>, critical_hit) ] * max(0, fullbase_critical_hit + modabs_critical_hit)

The full armor class is calculated as:

full_armor_class = max(0, fullbase_critical_hit + modabs_critical_hit + modrel_critical_hit + cheats)


Damage Absorption

damage_absorption = full_defense / 2


Caster level

Main article: Caster level.