FO2 Wiki for Long Range perk isn't consistent with in-game testing (results inside)

durdle_the_turtle

First time out of the vault
Greetings NMA. Can any forum member confirm the results of this post?

The Wiki says the formula for long range (where there's no ranged penalty modifier) is 4*(PE-2). However that's simply not true, according to testing I did.

Using this formula, with PE 4 there's no penalty for 8 hexes and PE 3 there's no penalty for 4 hexes. With PE 10 there's no penalty for an absurd 32 hexes. These numbers make no sense. If your chance to hit is 80% at one hex, it should also be 80% at 32 hexes. But it's not 80%, it's <0%.

Based on tests, I concluded the actual formula for the Long Range perk is 2*(PE-4). That means you need a min Perception 5 to benefit at all. The actual multiplier is 2, not 4. So for each point of Perception above 5, the benefit increases linearly by 2 hexes up to a maximum 12 hexes. There's no 32 hexes of unmodified range in game. Also, characters with very bad to fair perception (1-4) do not get any long range benefits. This makes much more sense.

Here is the data collected in-game. You can verify the information yourself if you like. To test this in-game, I created a character with PE 10, AG 4, and Gifted + Good Natured traits. Small Guns skill is now 1%. I used 9 healing powders to reduce PE one point at a time.

Perception/Unmodified range (acc)
variables: Small Guns 1%, Target AC 15, .223 ammo (-20 AC modifier)

PE 10/12 hexes (81%)
PE 9/10 hexes (73%)
PE 8/8 hexes (65%)
PE 7/6 hexes (57%)
PE 6/4 hexes (49%)
PE 5/2 hexes (41%)
PE 4/0 (29%)
PE 3/0 (13%)
PE 2/0 (-3%)
PE 1/0 (-19%)
 
Yes, the perk is not a simple "X * (PE - 2)" flat addition to ToHit. The whole ToHit calculation is more complex.
For example, FO2 player with no crippled eyes using weapons with Long Range perk:
If Dist =< (PE * 2) - 8: ToHit = Skill + PE * 8 (only valid for player with PE >= 5, ToHit is a constant value within the distance)
If Dist > (PE * 2) - 8: ToHit = Skill + (PE - 2) * 16 - Dist * 4

(the calculated ToHit here is not yet included other modifiers like target's AC, light level effects, aimed shot penalty, etc.)
 
Last edited:
Yes, the perk is not a simple "X * (PE - 2)" flat addition to ToHit. The whole ToHit calculation is more complex.
For example, FO2 player with no crippled eyes using weapons with Long Range perk:
If Dist =< (PE * 2) - 8: ToHit = Skill + PE * 8 (only valid for player with PE >= 5, ToHit is a constant value within the distance)
If Dist > (PE * 2) - 8: ToHit = Skill + (PE - 2) * 16 - Dist * 4

(the calculated ToHit here is not yet included other modifiers like target's AC, light level effects, aimed shot penalty, etc.)

Not entirely correct. According to your formula, if PE=10 and Dist=13, then ToHit = Skill + (10-2) * 16 -4 = Skill + 124? No.

I believe the correct formula is (not factoring target AC or status effects):

If PE ≥ 5, Acc = Skill + (PE * 8) - (Range * 4), and no Range penalty before (PE -4) * 2 hexes.

If PE ≤ 4, Acc = Skill + (PE - 2) * 16 - (Range * 4).
 
Not entirely correct. According to your formula, if PE=10 and Dist=13, then ToHit = Skill + (10-2) * 16 -4 = Skill + 124? No.
You miss the "Dist * 4". It's ToHit = Skill + (10 - 2) * 16 - (4 * 13) = Skill + 76
Also you can check the pseudo code of how the engine calculate ToHit from the link in my previous post.
 
You miss the "Dist * 4". It's ToHit = Skill + (10 - 2) * 16 - (4 * 13) = Skill + 76
Also you can check the pseudo code of how the engine calculate ToHit from the link in my previous post.

I left out the Dist part because it wasn't in your first post. But yes, you are right.

Using your terms, the formula is (not factoring target AC or status effects):

If PE ≥ 5, ToHit = Skill + (PE * 8) - (Dist * 4), with no Dist penalty before (PE -4) * 2 hexes.

If PE ≤ 4, ToHit = Skill + (PE - 2) * 16 - (Dist * 4).


I believe it is the simplest way to express it for the purposes of the Wiki page. Unless you see any mistakes, I will edit the Wiki with the actual formula.
 
Using your terms, the formula is (not factoring target AC or status effects):
No. ToHit = Skill + (PE - 2) * 16 - (Dist * 4) is valid for all PE values, not just for PE ≤ 4.
Only when PE ≥ 5 there's another case with no Dist penalty.

I believe it is the simplest way to express it for the purposes of the Wiki page. Unless you see any mistakes, I will edit the Wiki with the actual formula.
The formulas in my post are only for FO2 player without crippled eyes (if player is blinded, the calculation will include other modifiers and derive other three formulas).
In Fallout 1, the player doesn't have a "PE-2" nerf when calculating distance modifier, so the formulas are:
Code:
If Dist =< (PE * 2): ToHit = Skill + PE * 8
If Dist > (PE * 2): ToHit = Skill + PE * 16 - Dist * 4

Few years ago I verified the calculation and splited it into various formulas for all cases (FO2 player, NPCs or FO1 player, player is blinded or not, using weapons with Long Range/Scoped Range perks, etc.), but the list wasn't written in English.
 
Last edited:
No. ToHit = Skill + (PE - 2) * 16 - (Dist * 4) is valid for all PE values, not just for PE ≤ 4.
Only when PE ≥ 5 there's another case with no Dist penalty.


The formulas in my post are only for FO2 player without crippled eyes (if player is blinded, the calculation will include other modifiers and derive other three formulas).
In Fallout 1, the player doesn't have a "PE-2" nerf when calculating distance modifier, so the formulas are:
Code:
If Dist =< (PE * 2): ToHit = Skill + PE * 8
If Dist > (PE * 2): ToHit = Skill + PE * 16 - Dist * 4

Few years ago I verified the calculation and splited it into various formulas for all cases (FO2 player, NPCs or FO1 player, player is blinded or not, using weapons with Long Range/Scoped Range perks, etc.), but the list wasn't written in English.

Right. You are correct. Great work with finding this information!

My goal is to make the Wiki page simple and elegant. Going back to your original post:

If Dist =< (PE * 2) - 8: ToHit = Skill + PE * 8 (only valid for player with PE >= 5, ToHit is a constant value within the distance)
If Dist > (PE * 2) - 8: ToHit = Skill + (PE - 2) * 16 - Dist * 4

I believe this is overly complex, because you must include "only valid for" statement.

Suggested simplification:

If Dist =< (PE-4)*2: ToHit = Skill + PE * 8

If Dist > (PE-4)*2: ToHit = Skill + (PE - 2) * 16 - (Dist*4)

4-4=0, therefore we don't need to say "only valid for".

Did I make any mistakes?
 
Back
Top