How do monsters in NetHack attack

nethack

There is much information about how the player attacks (or attempts to attack) in the weapon spoiler. But there is no information on how monsters attack.

How is the monsters value of to-Hit* calculated?

*) alias 'chance to hit' or 'toHit'

The damage and effects of successful hits is described in the monster spoiler from the spoiler page.

Best Answer

The to-hit formula is covered in detail on the wiki's Armor Class page. The source ref for much of this is in mhitu.c.

I'll summarize the to-hit; there are a lot of special cases based on visibility, attack type, situation, and consecutive monster attacks.

The basic formula is: 10 + AC + Level, where "AC" is the player's current AC (i.e. Armor Class - it is lowered primarily by equipping armor; lower is better), and Level is the monster level of the attacker. This value is compared against a random number between 1 and 20; if the roll is lower than this formula, the attack hits.

If the player's AC is below 0, it is instead treated as a random number between -1 and their displayed AC. Lower AC is always better, but even at -100 AC it is possible to get a very unlucky roll and still get hit.

The wiki includes tables showing statistically expected damage for differing armor class values from various attackers; this can give a general idea of how much AC protects you, but this also includes the damage resistance from having negative AC.