Real world angles?

There is an entire (rather large) section in the article regarding the corresponding real life angles, and solid angles and everything. This was written by an anon (, and I'm doubting the accuracy of what is in this section. Does *anybody* even *have* a way of measuring an angle in borderlands?

AFAIK, the section is pure speculation. I started it as speculation, but at least it read as speculation... happypal (talk • contribs) 13:24, August 22, 2012 (UTC)

The whole "solid angle" thing (which I revised into using actual units (square degrees)) is correct so long as the original accuracy equation is correct (the one for calculating the angle of spread).
As far as the original accuracy equation goes, I did a little looking at the numbers and figured that they were probably an approximation of nicer numbers.  In particular, every point of accuracy corresponded to almost exactly 0.02% of 360°.  Since the original equation is apparently just a rough estimation, I didn't figure there was much purpose in having a bunch of icky decimal places if they're not terribly accurate anyway.
If I had access to the game's data files, I'd take a peek at the code to see if I could figure out how exactly the angle is calculated; for now, I'm just working with what others have written.  —ProtonZero[talk] 23:58, August 22, 2012 (UTC)
TY for the explanation. It'd be great if you could get that figure. On my hand, I'll try to verify the 35.0 vs 37.7. happypal (talk • contribs) 06:04, August 23, 2012 (UTC)
Hi there. I did some research with the above shotguns. My 37.7 is more accurate than my 35.0. Does *anybody* know where this data comes from, or have *anything* that could even remotely support this claim? happypal (talk • contribs) 08:38, August 24, 2012 (UTC)
I honestly have no idea where the data came from.  I'm procuring Borderlands as of this writing to see if I can do some research.  —ProtonZero[talk] 18:28, August 24, 2012 (UTC)
Update: I got debug mode working and did some angle calculations.  Essentially, the weapon value "spread" is 1/3 of the diameter of the circle (in, say, inches) made by shooting a million rounds into a target 100 inches away.  For example, 2.2 spread means that the target circle 100" away will have a diameter of 6.6".  The calculations I've written on the page now reflect this.  As noted on the page, I haven't tested this with highly inaccurate weapons yet, and they might deviate from this standard formula.  —ProtonZero[talk] 21:02, August 24, 2012 (UTC)

Holyshit, that is some fine research. I always wondered if "spread" wasn't a the "tan" value of a the firing angle, but never had the guts to actually pull out a ruler and measure this stuff! Thanks. For "0.0" weapons, keep in mind you can get their "true" accuracy/spread with gearcalc:

  • Sledge's Shotgun: -67,9%, 20.15
  • Boom Stick: -27.3%, 15.28
  • Jackobs ZZ Barrel 2 Matador: -1.8, 12.22

Besides, even with gearcalc, you can extract the accuracy manually after reading the spread from the debug info.
If you can verify that Sledge's shotgun holds true to your formula (with these numbers), then you'll have proven your formula accurate for all spreads (!)
PS: Could you update my spread formula of "12 − (0.12 × Accuracy)"? Your form of "12 × (100% − Accuracy)" is more elegant, and only uses one "magic number". I don't want to conflict with you if you are editing. happypal (talk • contribs) 21:17, August 24, 2012 (UTC)

This might be silly, but are you doing your tests with Roland? Does he have any points invested in Scattershot? happypal (talk • contribs) 08:14, August 25, 2012 (UTC)
Conveniently, the debug menu takes accuracy bonuses into consideration when displaying the current weapon's spread (including when using sights), so it actually doesn't matter.  Even so, I did re-spec to make sure nothing impacted the performance of Sledge's Shotgun, which does indeed follow the shotgun formula correctly.  At some point I'll scrounge up each weapon type and make sure it checks out.  —ProtonZero[talk] 08:28, August 25, 2012 (UTC)
I know what is happening! I found a formula which works for all weapons, and all spreads. Gonna post it now, give me a sec. happypal (talk • contribs) 15:32, August 25, 2012 (UTC)

Here's the thing: AccuracyPool needs to be taken into account. I did a test with a battery of weapons (from Sledge's to Hyperion Lances), writing down the spread, the AccMin, and taking a screenshot, and then measuring the size of the reticule. This gives more consistent results, as weapon with/without stocks will have a different handling, and it will be hard to consistently measure their "pools".

The results is that the size of the reticule is always EXACTLY (give or take 1%) equal to "25 × ( spread + AccPool )". I got this result regardless of the weapon type.

My guess is that the results you saw came from shotguns having particularly high AccPools, in particular, even sighted, remain un-accurate.

So know, we've proven there is a linear correlation of "25×spread" to "2×tan(aperture/2)", how do we actually get the ratio between the two?

Here is my thought: I did the tests with a fixed 85° FOV, and my screen is 1920 pixels large. So, a 42.5° weapon would have a reticule of 1920 pixels. Also, a weapon with 1 Spread+Acc has a reticule of 25 spread. This gives us the system:

a × 2 × tan(42.5°) = 1920
a × 2 × tan(Aperture / 2) = Spread × 25

a = 960/tan(42.5) = 960 / 0.916 = 1047
Aperture = 2 × arctan(Spread &times 12.5 / a)

Aperture = 2 × arctan(Spread &times 0.0122)

This is actually incredibly close to your (original) formula, which was indeed accurate for all weapons!

If you want the input data, please find it here in HTML comments, in tabulated text format.

I think the last thing to do though, might be to move the section "up" back into the normal Accuracy page?

Doesn't check out—but first, some background with regard to FOV.  One of the first things I tried to do when testing accuracy in general was get a correlation between pixels and aperture.  Unfortunately, despite everywhere listing the game as having a FOV of 85°, that's not quite accurate.  Once I got the debug menu working, though, I used the player rotation, pointing at the two sides of the crosshair and noting the difference (rotators in Unreal Engine are integers, with 360° = 216 = 65536).
Secondarily, just to clarify: the aperture is the total angle from side to side (diameter, if you will), not the angle from center to side ("radius").
Now, I've nailed down the base Sledge's Shotgun to 22.40°–22.85° (depending on if the reticle is on the inside or outside of the aperture).  Using 20.15 with my shotgun formula calculates 22.79°, which is right on the money.  Adding in the 2.4 AccMin bumps it up to some 25.4° (and using your 0.0122 would get an even less accurate figure).  In addition, testing with a certain pistol yielded ~3.55°; my ×1.6 formula calculated 3.57°, your addition formula calculated 3.94°.  Testing with a certain other shotgun yielded ~3.50°; my ×1 formula calculated 3.47°, your addition formula calculated 4.31°.
So there is unfortunately no cigar there.  Even so, I can't shake that the accuracy pool must impact the reticle, since shooting makes the reticle larger directly with the pool.  Not sure how to go about this...  —ProtonZero[talk] 18:36, August 25, 2012 (UTC)
Note: when employing your formula I ditched the 0.0122 because even using 0.01 resulted in overestimates, and 0.01 is a much nicer number.
  1. About aperture: Well, yeah? But if you want to get the diameter of the projected cone from the apperture, you have to apply a tan to the angle from the center of the circle, to the edge, ergo, the half apperture. This will get you the radius of the circle, so the base formula. "2×a×tan(Apperture/2)" is accurate.
  2. About FOV: I didn't know that. Thankyou. There is indeed a "rotation" field. I calculated that my "half" FOV span a rotation of 6362 units, giving me a total FOV of "360×2×6362/65536=70°"
  3. Recalculating my above formula with this new number, I get:
FiringCone = 2 × arctan((Spread+AccPool) × 0.0093)
Does this correlate better with your measures?
  • Were all your "other" weapon tests with accurate weapons? Because for an unsighted Pistol (or sniper rifle), the Pool will probably be just as big as (or bigger) than the spread. Do you have an Anarchy lying around? Test it.
  • Regarding Sledge's Shotgun: What stock? Because the stock has an effect on the accuracy pool, hence the bullet pattern. It is accounted for in my formula. happypal (talk • contribs) 19:48, August 25, 2012 (UTC)
Edit: In original formula, I meant "Spread+AccPool" when I wrote "Spread", as well as "FiringCone" when I wrote Apperture, I corrected this in my updated formula. happypal (talk • contribs) 19:57, August 25, 2012 (UTC)

Random Break

Hi Proton, I did some more "number crunshing", and I noticed something: The calculated angles are seriously close to the spead/AccPool themselves. Then I thought to myself: Given the low angles of the values we have been calculating, "tan(x) ≈ x". Also 0.0093 is suspiciously close to π/360 (which is 0.0087) ...
I tried to do some "extreme" testing, and the initial formula remains the most accurate one, but I think I found something interesting if you bear with me: If we express the formula in degrees, then ...

FiringCone = 2×arctan((Spread+AccPool)/2)

So how do we extract "Deviation"(Player Accuracy) and "Apperture"(Gun Accuracy) from this? Technically, we can't, but we can give a pretty damn good approximate:

Deviation = 2×arctan(AccPool/2)
Apperture = 2×arctan(Spread/2)

See where I'm going with this? This can be approximated to:

Deviation = AccPool
Apperture = Spread

Which brings us back to the original formula:

FiringCone = Spread+AccPool

I feel Derp :/

I re-tried all my calculations with the above "simplified" formula, and there are some deviations (10% for Sledge's, 5% for a 7% Matador). Still, as a "layman's" rule of thumb, I think our readers will appreciate the effort.

PS: I'll state my final "accurate" formula as:

FiringCone = 2×arctan((Spread+AccPool)/2 * 2π/360)

happypal (talk • contribs) 07:46, August 26, 2012 (UTC)

Mother of God.  That's it.  Spread + AccPool = total aperture.
So listen, using pixels as a measurement doesn't actually work due to the way perspective projection in 3D works.  If your screen is 1000 pixels wide and has a FOV of 70°, something that measures 100 pixels isn't actually 7°.  I'll spare you the math, but trust me: this simple formula solves everything.  Everything checks out now.  Squee.  —ProtonZero[talk] 08:22, August 26, 2012 (UTC)
Oh yeah... 3D projection... that does explain everything, lol. Gonna celebrate by devoting the next couple of days by actually playing Borderlands! happypal (talk • contribs) 09:57, August 26, 2012 (UTC)
Yeah... I've played Borderlands for a grand total of maybe six hours... I've spent at least eight hours working on all of this.  It's a bad habit of mine to study a game more than I actually play it.  Fun times though, and I feel very relieved and accomplished.  —ProtonZero[talk] 17:51, August 26, 2012 (UTC)

So are you saying the true formula describes a slope rather than an angle? In this case the width of the cone as a proportion of the range would be

cone diameter / range = deg2rad(spread + accuracyPool)

In other words, is the diameter on the screen perfectly proportional to spread + accuracyPool? If so:

  • 1 point of spread/accuracyPool = cone diameter of 1.7453% of the range.
  • Since 12 Accuracy (on the item card) = 1 point of spread...
  • 1 Accuracy = cone diameter of 0.1454% of the range. In other words, a change of 1 in Accuracy will change the cone diameter by 14.54 cm at a range of 100 meters.
  • Or equivalently, 6.8755 Accuracy changes the cone diameter by 1% of the range.

Also, does AccuracyPool apply at all when using sights? It seems unlikely given the high Accuracy Minimum for sniper rifles. --Evil4Zerggin (talk) 23:17, September 9, 2012 (UTC)

The formula describes an angle, not a slope.  I originally assumed it was a slope because I figured a simple angle would have already been figured out.
1 point of spread OR AccuracyPool = 1° aperture.  Also, what you mean is 12 Spread = 100 Accuracy.  Each point of Accuracy is thus equivalent to 0.12° aperture.
AccuracyPool applies when using sights, but depending on the character and weapon the pool may be as low as zero, and may also even "recharge" accuracy faster than you can fire (in the case of some sniper rifles).  —ProtonZero[talk] 00:51, September 10, 2012 (UTC)
I'm still not completely clear. Above we have
FiringCone = 2×arctan((Spread+AccPool)/2 * 2π/360)
. The arctangent converts slopes to angles, not the other way around, so this seems to be giving the angle of the cone as a function of a slope quantity. To give an extreme example, a spread of 360 would result in a firing cone of 144.7 degrees diameter by this formula, whereas if it was 1 spread = 1 degree, the cone would reach behind the character. (Of course, either way 1 spread = 1 degree at the center of the screen.) Or is that the wrong formula?
As for AccuracyPool, Accuracy (character) says that the AccuracyPool starts at AccuracyMin, which is quite high for Sniper Rifles. This is consistent with the large crosshairs when firing a Sniper Rifle from the hip, but if AccuracyPool also applies to aiming down the scope, what explains the much higher accuracy of Sniper Rifles there? --Evil4Zerggin (talk) 01:11, September 10, 2012 (UTC)
That formula is incorrect.  90% of all of our formulas up there are incorrect; we were experimenting, trying to find the correct one(s).  The correct formula is simply: aperture = spread + AccPool, where aperture is in degrees.  Theoretically one could indeed shoot behind oneself if there was enough spread, but as I recall, the largest spread is Sledge's Shotgun, totaling to 22.5° or so.
Aiming down the scope changes the nature of the AccuracyPool.  —ProtonZero[talk] 04:25, September 10, 2012 (UTC)
Thanks for all the research, by the way.
Are you sure AccuracyPool isn't just ignored entirely when aiming down the sights? See tests below. --Evil4Zerggin (talk) 05:10, September 10, 2012 (UTC)

I'm sure.  Debug menu.  —ProtonZero[talk] 06:15, September 10, 2012 (UTC)


In previous discussions there was mention of an AccuracyPool. Does this mean that even if a "100.0" accuracy weapon were possible, the AccuracyPool would still make things not perfectly accurate? And do skills affect both Spread and AccuracyPool, or just one or the other?

--Evil4Zerggin (talk) 17:06, September 8, 2012 (UTC)

Yes. The accuracy pool stacks on top of accuracy.
Regarding skills, it depends on each skill individually. For example, Proficiencies affect only AccuracyPool, but Scattershot affects both. happypal (talk • contribs) 17:12, September 8, 2012 (UTC)
This is going to complicate speculations on Badass Rank distribution D: Is AccuracyPool what is being described in Accuracy (character) then? --Evil4Zerggin (talk) 17:28, September 8, 2012 (UTC)
Hmm looks like it is. --Evil4Zerggin (talk) 17:30, September 8, 2012 (UTC)

Any chance we could re-merge the articles? I found the current layout very confusing as you can see.

--Evil4Zerggin (talk) 01:44, September 9, 2012 (UTC)

Ty for the feedback. A sensible request, but I think it would be better to work a bit more on Accuracy first (which I plan to do). Did you read it BTW? Because it kind of answers your above question (Twice). If that was not clear to you, then the confusion was a result of that page's low quality, not the splice itself.
Experience has shown in the past though, that keeping both on the same page has provided massive confusion, so consider yourself lucky you were only partly confused. I wish it were simpler, but it isn't.
I'll keep your request in mind, and see how it pans out, but considering BL2 releases in a week, it will not be on top of my priority list :D. happypal (talk • contribs) 08:17, September 9, 2012 (UTC)
PS: Bessie has 100% perfect spread when scoped. After every shot though it does take a bit of accuracy pool penalty. But it fires so slow, the pool is back down to zero before every shot anyways, so you'll never see it. happypal (talk • contribs) 08:17, September 9, 2012 (UTC)
I might take a look at revising that page myself then. --Evil4Zerggin (talk) 17:26, September 9, 2012 (UTC)
Please do! happypal (talk • contribs) 18:53, September 9, 2012 (UTC)

AccuracyPool testing

Test stock1 vs stock5

stock1 vs stock5.

Doing some testing to try to determine if AccuracyPool is used when looking down the sights. Unfortunately it's hard to distinguish the inaccuracy of the bullets from the "screen shake". --Evil4Zerggin (talk) 03:00, September 10, 2012 (UTC)

After some thought, here's an argument in favor of AccuracyPool not affecting scoped shots:

  • In an earlier test, I tested a SMG with sight_none, which doesn't give any bonuses to accuracy. It was much more accurate when looking down the sights than when firing from the hip. So this is strong evidence that Accuracy Maximum doesn't affect shots taken looking down the sights.
  • In the test pictured at right, I used two identical SMGs except for the stock. stock1 gives +20% accuracy regen rate (irrelevant since I'm unloading a clip and so it doesn't get to regen during the test); stock5 gives -100% recoil, -40% Accuracy Min and Max, and +80% accuracy regen rate. Firing from the hip shows a much wider group from stock1 as expected. Firing scoped shows stock1 with a much taller, but not much wider group. In fact, stock1's group is only wider at the top, and only slightly so. I'm inclined to chalk this up to "screen shake" rather than bullet accuracy. Why?
    • The part of the group closest to the reticule is closely contained by the circle in both cases. I think these are the shots that happened before too much "screen shake" happened.
    • The circle is exactly the same size (to the pixel) in both cases (another, more accurate SMG had a smaller circle) and it is a good representation of the spread. This means that a) the game is not taking AccuracyMin into account when computing the size of the circle (otherwise the stock1 would have had a larger circle). The bullets can't be taking AccuracyMin into account either, because otherwise the horizontal spread would be almost twice as wide as the circle, which is not the case even for the shots affected by muzzle rise.

--Evil4Zerggin (talk) 03:23, September 10, 2012 (UTC)

Gear Calculator stats:

Stat stock1 stock5
Spread 1.60 1.60
Accuracy Minimum 2.00 1.43
Accuracy Maximum 10.00 7.14

--Evil4Zerggin (talk) 05:15, September 10, 2012 (UTC)

Hmm, though I just realized a weakness in my methodology: I used a character with high SMG proficiency, which reduces Accuracy Minimum/Maximum and makes any effects less obvious. I'll try again tomorrow with a character with lower proficiency. --Evil4Zerggin (talk) 05:25, September 10, 2012 (UTC)

Very interesting finds. I did some research to test this after reading you, and I think I can add to what you found: the entire "AccuracyPool" has no effect when sighted. Period. EG: the new values of ACCuracyMin when sighted are irrelevant and ignored.
This was tested with a matador and some tape (pixel) measure: Long story short, the size of the reticule corresponds to the spread only.
So it looks like our formula is not correct for when a weapon is sighted :/ happypal (talk • contribs) 06:25, September 10, 2012 (UTC)
After User:ProtonZero mentioned debug (thanks ProtonZero!) I tried it out, and indeed there is still an AccuracyPool being tracked when aiming down the sights. The AccuracyMin/Max are generally smaller than when firing from the hip. Still not sure whether it's actually being applied to the bullets or not. --Evil4Zerggin (talk) 06:45, September 10, 2012 (UTC)
Also, I hope there's some sort of Badass Point respeccing in BL2, otherwise figuring out the effect of accuracy/recoil reduction is going to be a bear :s --Evil4Zerggin (talk) 06:50, September 10, 2012 (UTC)
Masher AccuracyMin test

The Masher test.

I did a new test that seems to show that AccuracyPool does not actually affect bullets when sighted. I built two Mashers that were identical, except one had stock_none and the other had stock2. Both had sight_none so there was no bonus from scopes when sighted, and I set proficiency to level 1 so there was no reduction in AccuracyPool from that.

Stat stock_none stock2
Spread 2.19 2.19
Accuracy Minimum from hip 2.55 1.64
Accuracy Minimum aiming down sights 1.70 n/a

I constructed this so that AccuracyMin for the stock_none when aiming down the sights would be slightly higher than stock2 firing from the hip (confirmed via debug). I fired several shots from the hip from stock2 and they filled the crosshairs as expected. I then fired several shots aiming down the sights from stock_none, then switched back to stock2 to compare the group to the crosshair size. stock_none's shots were much tighter than the stock2's crosshairs as you can see. So it looks like AccuracyPool is still being computed, but it's not actually being applied. Which is good because the AccuracyMin/Max calculation doesn't seem to be being performed in a sane manner.

--Evil4Zerggin (talk) 00:02, September 11, 2012 (UTC)

Note that spread changes when you sight (EDIT: with a scope).  Disregard that, I just did a simple test with an assault rifle where the total aperture should have increased significantly, and it definitely didn't increase whatsoever; the kickback simply caused the aperture to aim upwards over the course of the peppering.  I think it's safe to say that AccPool is completely disregarded when sighting.  —ProtonZero[talk] 03:23, September 11, 2012 (UTC)

AccuracyPool and scope sway

More testing suggests that AccuracyPool controls scope sway when sighting, and that "stability" from Sniper Rifle proficiency is really accuracyRegenRate.

--Evil4Zerggin (talk) 00:34, September 12, 2012 (UTC)

Here's some data from SMGs with different stocks and other parts with no modifiers:

Stock AccuracyMax
Listed modifier Debug, decimal Debug, fraction
stock_none -20% 6.6667 80 / 12
stock1 0% 6.1538 80 / 13
stock2 -10% 5.7143 80 / 14
stock3 -20% 4.7059 80 / 17
stock4 -30% 4.0000 80 / 20
stock5 -40% 3.3333 80 / 24
stock1 + barrel5 -40% 4.7059 80 / 17
stock5 + barrel5 -80% 2.8571 80 / 28

So it looks like there may be some hidden modifier or calculation affecting AccuracyMaximum when scoped. This doesn't seem to affect all weapons though.

--Evil4Zerggin (talk) 00:50, September 12, 2012 (UTC)

More data: something's strange, stock1 + barrel5 has the same AccuracyMaximum modifier as stock5 but has a worse actual AccuracyMax when sighted.

--Evil4Zerggin (talk) 01:01, September 12, 2012 (UTC)

Area/Solid Angle Equation

Is the equation for the "solid angle" borked? The output values of that equation do not match the graphs at all and something appears to be missing. Unless I'm mistaken, the equation should read something like:


The current value (64,800) seems completely bonkers, but maybe I've missed something.

Vigintillion (talk) 21:51, September 6, 2013 (UTC)

Never mind, I was using degrees instead of radians to express spread and was getting strange results from my calculations. The constant 64,800 seems to work but I've no idea how...

Vigintillion (talk) 22:10, September 6, 2013 (UTC)

There are 129600π square degrees in a complete sphere.  The calculation uses half of that, kind of like how many calculations for a circle use 180°.  —ProtonZero[talk] 06:04, September 7, 2013 (UTC)
Community content is available under CC-BY-SA unless otherwise noted.