Manual:Game Mechanics/Skills
It seems skill (spells et. al) checks got kind of lost in the mists of time. Here is the general idea:
Skills and abilities are all in [0..200] Rolls are open-ended 1d100.
Let's use swim as an example.
A characters proficiency in swim in 0..200.
0: Zero means no skill at all 75: An average swimmer 200: is the most divine swimmer.
Now image having swim in average conditions. If your skill is average (50) then the skill check is to see the result of (1d100 + skill) - 100. If the result is above 0 the swim was a success. Therefore if your skill is 0 you always fail an average swim roll is > 100. If your skill is 75 for an average swim, you succeed 75% of the time. If your skill is 100 then you always succeed. Remeber that the open-ended roll can of course always offset even a sure success or fail.
The difficulty of a swim could be:
+50: The easiest possible circumstances. Shallow, clear, still water. Players with 0 skill fail half the time. . . 0: Average normal swimming conditions . . -100: The most absurdly difficult swim imaginable. Players with 200 skill succeed always (except OE).
A character that fails a skill check might be swallowing water if the fail is [0..-20]. And might take one hp damage per 10 failure if the result is worse than -20.
The function skillcheck() captures precisely this setup.
For a skill like flee, the difficulty could be an expression of the character's and opponent levels compared.
+5: For each level better than the opponent 0: Same level, no modifier -5; For each level worse than the opponent
So a level 5 PC fighting a level 1 rabbit gets a +40 bonus to flee. Since an NPC does not have skills, generally its level can be used as its skill. So a level 50 NPC has a flee skill of 50.