Jagged Alliance 3

Jagged Alliance 3

60 ratings
Stealth kills explained
By sandman25dcsss
Description of instant kill mechanics
2
3
9
   
Award
Favorite
Favorited
Unfavorite
Stealth kills
Here are my findings after studying source code.

The most important thing is that number of stealth kill bars scales linearly:
1 bar: 1%-25% chance of instakill
2 bars: 26%-50% chance of instakill
3 bars: 51%-75% chance of instakill
4 bars: 76%-100% chance of instakill

Stealth kill is possible only with single hit attacks. UI is confusing as it shows stealth kill chance for burst and autofire, but the chance is ignored.

Factors affecting chance to instakill:
  • min chance is 1%
  • attacker's Dexterity: +1% for each dexterity point
  • target's Wisdom: -1% for each wisdom point. Yes, each unit has wisdom, for instance Goon has wisdom 30 while Elite Raid Leader has wisdom 85.
  • if at this point the chance is negative because attacker's Dexterity is less than target's Wizdom, the chance becomes 0
  • -40% for Crocodile and a few story characters
  • +10% if targeted body part is head or neck
  • +15% for attacks with 3+ Aim levels if attacker has perc Assassination (Dexterity tier 3)
  • +10% if attacker has perc Ambusher (Dexterity tier 2)
  • +10% if attacker has trait Stealthy. Also final chance to kill instantly cannot be below 30% if attacker has this trait.
  • +2% per Aim level if weapon has Tactical Device modification
After all those factors are totaled the game can multiply the calculated chance based on:
  • target state:
    a) *0.33 if target is Aware
    b) *0.5 if target is Suspicious or Surprised
  • *0.5 if attacker's weapon penetration class (light/medum/heavy) is worse than target's armor class (light/medum/heavy)

Extra information from TheSherman:
"if it is a successful stealth kill (you passed the check) there is no gun noise whatsoever. if you missed your check but still kill your victim, they will hear the gunshot and pain grunts"

Example:
Fox with Dex 92 and Stealthy trait uses weapon with light penetration class to shoot at Goon's medium armoured body part, the Goon has Wisdom 30 and is Surprised after his teammate has just been killed by Fox.
So we have 92 (attacker's Dexterity) - 30 (target's Wisdom) + 10 (Stealthy trait)=72.
Then we multiply 72 by 0.5 because Goon is Surprised and get 36.
Then we multiply 36 by 0.5 again because Goon has better armour class than Fox' weapon penetration class and get 18. But since Fox has Stealthy trait the chance cannot be less than 30% so Fox has 30% chance to instakill Goon.
As you can see difference between 72% and 18% is huge and it is caused by different enemy state and armor.

Even if enemy has a perk to avoid first hit during each turn, it still dies to instakill. But if instakill roll fails and enemy gets just a normal hit, the perk is activated and enemy avoids all damage, even if the damage would be 100% HP.

Another example:
Grizzly with Dex 76 shooting at Elite Raider Leader with Wizdom 85. Calculated chance is 0%. Min chance is 1% so we have 1% of instakill. It does not matter if target is aware and what armor class uses. The game shows 1 stealth kill bar and you decide to try your luck. Don't, in this specific case it is just 1%, not 24%.
Melee instant kill
Also while studying the code I noticed that Machete (melee weapon) has a chance to kill enemy instantly too, even if it is not stealthy attack. It does not stack with stealth chance, game uses whichever chance is greater. Machete needs to target neck for that and the instakill chance is calculated as 5 + max(0, (attacker's Strength stat - target's Health stat)/2).

Example:
Igor with Strength 98 uses Machete to attack Goon's neck with Health 28, chance to kill instantly is 5 + max( 0, (98-28) / 2) = 5 + max(0, 70/2)=5 + max(0,35) = 5 + 35 = 40, that means 40%
Displaying the chance in game
To see the chance of stealth kill in game, just use my mod.
https://steamcommunity.com/sharedfiles/filedetails/?id=3012152757

Buns has 1% vs unaware Crocodile:


IMP character with Stealthy, Assassination and Ambusher has 30% vs the same Crocodile:
22 Comments
=M$= Oroberus Nov 1, 2023 @ 4:13pm 
This was indeed helpful

The most confusing thing is how stealth kills and weapon base damage interact ... they just don't

Doesn't matter if you hit a highly armored target with a single shot of a Glock and HP ammo (therefor doing absolute no damage what so ever, in plan numbers) or a high helath no armor target with some AP rounds ... if the stealth kill triggers, it triggers.

This makes bringing pistols with you viable and keeps SMGs indeed viable too even late game, if your playstyle fits
sandman25dcsss  [author] Sep 14, 2023 @ 10:01pm 
@TheSherman
Thank you, added to the guide.
TheSherman Sep 14, 2023 @ 4:26pm 
I am sure
sandman25dcsss  [author] Sep 14, 2023 @ 1:47pm 
@TheSherman
Are you sure about it? I haven't studied the code regarding noise.
TheSherman Sep 14, 2023 @ 1:30pm 
if it is a successful stealth kill (you passed the check) there is no gun noise whatsoever. if you missed your check but still kill your victim, they will hear the gunshot and pain grunts
Marbur Aug 16, 2023 @ 1:12pm 
Good guide!:cozybethesda:
lx Aug 13, 2023 @ 11:44am 
id say, gun noises go much shorter, than you think. just like the ranges.
but i have not tried a very close scenario, to be certain that the gun is heard.
yes, stealth killing is possible, with very loud weapons.
sandman25dcsss  [author] Aug 12, 2023 @ 9:42pm 
@rano
Sorry, I don't know how the noise system works, but from my game experience there is noise range depending on weapon used.
rato Aug 12, 2023 @ 4:38pm 
Hey,me again. Do you know how it works for the detection after the attack? If it is stealth kill I doesn't produce noises? But still there is the gun noise right? To be detected u just need to be heard? I remember instances that a sniper remained hidden shotting a gun without supressor during the battle
sandman25dcsss  [author] Aug 5, 2023 @ 3:24am 
@rato
Yes, it looks like multishot does not allow stealth kills:
if shot_attack_args.multishot then
miss, crit = true, false
...
if not miss and 0 < shot_attack_args.stealth_kill_chance then
kill = shot_attack_args.stealth_kill_roll <= shot_attack_args.stealth_kill_chance
end