Skip to content

Armor balance

Coolthulhu edited this page Mar 23, 2017 · 4 revisions

Approximating armor value is hard, but a rough algorithm helps with finding outliers - armor pieces too weak to matter or too strong not to be used.

The formulas presented are rather calculator-unfriendly, but simpler versions will be provided to help with balancing new items.

Coverage multiplier

Coverage is very important for all protective armor pieces. As such coverage below 100% is penalized extra hard.

Coverage multiplier is calculated as follows:

1 - tanh(3 * (1 - coverage / 100))

Or from table:

Coverage Value
100 1
95 0.85
90 0.7
85 0.6
80 0.45
75 0.35

Simple value

Simple value only takes coverage, physical protection and encumbrance into account.

Note: simple value is only useful for calculating protection of torso, arms and (to lesser extent) legs. Head takes no encumbrance penalty, mouth, eyes, and hands are attacked very rarely but cause heavy penalties for encumbrance, feet are attacked very rarely but need acid protection.

The formula is:

coverage_multiplier * ((bash_protection+cut_protection)/2) / (encumbrance + 2)

Encumbrance is increased by 2 to penalize very light armors that require layering to provide real protection, get damaged quickly and are affected by armor stacking limit. If the item is refittable, the lower, refitted encumbrance should be used.

Armor stats should be balanced so that simple value fits the guidelines:

Simple value range Armor type
>3 Ultra-high tech armor that consumes rare, non-replenishable resources (right now) just to work
2-3 Ultra-high tech armor with major flaws (no acid protection etc.)
1.5-2 Best craftable armor focused solely on physical protection
1-1.5 Great craftable armor that may have some other features
0.75-1 Good armor (can be craftable relatively early on) or specialized armored clothing
0.5-0.75 Good clothing or mediocre armor
0.3-0.5 Thick clothing or improvised armor
<0.3 Clothing that isn't supposed to be used as armor

Sample armors and their simple value (not necessarily fitting the table above):

Armor Coverage Encumbrance (Bash+Cut)/2 Simple value
RM13 combat armor (on) 100 5 26 3.71
heavy power armor 100 60 171 2.76
plate armor 95 10 24 1.70
dragon skin vest 85 5 16 1.32
chainmail armor 95 10 18 1.28
heavy survivor suit 100 25 34 1.26
chitinous armor 90 10 21 1.24
MBR vest (empty) 85 7 18 1.16
MBR vest (superalloy) 85 15 34 1.16
leather vest 90 4 9 1.06
survivor suit 100 15 15 0.88
fencing jacket 100 5 6 0.86
subject suit 95 3 5 0.85
motorcycle pants 100 10 9 0.75
bone body armor 95 14 14 0.74
leather body armor 90 10 12 0.71
leather jacket 90 7 9 0.71
sports jersey 90 3 5 0.71
striped pants 95 2 3 0.64
leather duster 90 8 9 0.64
armored leather vest 90 14 14 0.62
MBR vest (steel plating) 85 30 34 0.61
judo gi 95 5 5 0.61
sweater 95 5 5 0.61
MBR vest (hard plates) 85 45 48 0.59
survivor wetsuit 100 10 7 0.58
fur duster 90 9 9 0.58
survivor duster 85 7 9 0.58
ornamental plate armor 90 35 30 0.57
fencing pants 95 7 6 0.57
jumpsuit 95 1 2 0.57
SWAT armor 95 25 18 0.57
union suit 95 1 2 0.57
turnout trousers 100 20 12 0.55
survivor firesuit 100 20 12 0.55
hoodie 95 6 5 0.53
flannel jacket 90 6 6 0.53
leather trenchcoat 90 10 9 0.53
pair of hard arm guards 80 5 8 0.53
leather pants 95 8 6 0.51
jean jacket 90 5 5 0.51
RM13 combat armor 100 20 11 0.50
army winter jacket 95 10 7 0.50
pair of metal arm guards 80 15 18 0.49
army jacket 95 7 5 0.47
leather touring suit 95 7 5 0.47
long-sleeved shirt 90 1 2 0.47
motorcycle armor 95 20 12 0.46
jeans 95 8 5 0.43
polo shirt 90 3 3 0.43
gambeson 80 7 8 0.41
leather chaps 65 3 9 0.39
pants 95 5 3 0.36
lab coat 90 2 2 0.35
dress shirt 90 2 2 0.35
light jacket 90 4 3 0.35
pair of arm warmers 80 1 2 0.31
ANBC suit 100 35 11 0.30
windbreaker 90 6 3 0.27
cargo pants 95 8 3 0.26
pair of thigh-high boots 80 15 9 0.25
duster 90 7 3 0.24
winter coat 95 20 6 0.23
pair of paper arm guards 80 10 5 0.19
clown suit 90 20 5 0.16
pair of 2-by-arm guards 75 25 11 0.15
pair of leather vambraces 50 8 9 0.09
duffel bag 50 30 3 0.01
American flag 60 50 2 0.01
Clone this wiki locally