Tag Archives: mechanics

weapon calculator

PlanetSide 2 Weapon Simulator

This tool is outdated, use Weapon Toolbox for up to date weapon stats. 

This program is a standalone simulator of PlanetSide 2 Weapon Mechanics.

It can simulate Cone of Fire, bullet hits, recoil, analyze the effects of attachments on each weapon, and compare different weapons to each other.

This is a work in progress, so please inform me of any bugs or suggestions.

>> Download v1.7 PTS here <<

Known issue: since it’s program in an archive, this might get flagged as potentially harmful. Windows Smart Screen and Avast have particular issues with it.

I assure you, no harm will come to your PC. Ignore the warnings. Use any online virus scan if you don’t believe me.

v1.6 main window

New in the latest version:

pts

Version 1.7 PTS includes changes from the 14/10/2016 PTS patch to damage and range. Recoil and CoF changes are not included.

Instructions 

Select Program Mode in the top right corner. Select a weapon from the list on the right. You can preview selected weapon’s stats in “Weapon Stats” module, and add attachments in “Attachments” module.

“Add to comparison” button copies currently selected weapons with all attachments. You can then select a different weapon or attachment combination.

“Weapon Stats” textbox only displays stats for currently selected weapon. To access stats of weapons copied for comparison, click “Get stats” button under weapon’s name and they will appear in a message box.

Attachment restrictions

I hate when programs try to be smarter than the user, so I let you decide which attachments can be put on which weapons. If you don’t know which weapons can accept which attachments, you can check that in-game (preferable) or on PS2 Wiki if you’re lazy.

Each weapon should be properly affected by attachments, but there are a few notable points:

Extended Mags won’t do anything for weapons it’s not available for.

Some weapons come with attachments already installed. For example,  MKV Suppressed comes with a pre-installed suppressor, so there’s no need to put a second suppressor on it.

Directive Shotguns in-game have Smart Choke equipped by default, but in the simulator, you will have to equip it yourself.

Slug Ammunition speed is predetermined as 300 m/s for all shotguns, even though slugs supposed to inherit the velocity of the shotgun, with Baron being the only exception. 

Simulation Mode

Simulation Mode allows you to test fire all selected weapons. Press Left Mouse Button or “Fire Fixed Burst” button to fire.

The program will simulate recoil and bullet hits in accordance with PlanetSide 2 Weapon Mechanics. Bullet drop and travel time are not accounted for. The recoil magnitude should be more or less up to scale with first person shooting in game.

Right Mouse Button toggles ADS. ADSing applies magnification from chosen optic, and lets the weapon use ADS CoFs.

Holding Middle Mouse Button will let you move the window around, and Mouse Wheel to zoom in and out. You can drag around recoil patterns using the blue circle in the bottom part as an anchor.

Bullets to Kill Module

Blackhand BTK

The simulator will automatically calculate the number of bullets required to kill a target at different ranges. Number in the brackets is time to kill (TTK).

You can specify target’s health and damage resistance in text boxes above. The “Legend” button will display a table to remind you which targets have what amount of health and damage resistance.

You can also specify the number of “Bonus Headshots” the target receives before BTK calculations. This is useful if you want to calculate the amount of bullets to kill a target after you open with a headshot.

Draw Target toggle

v1.5 drag target

Makes an enemy dummy target visible. You can drag and drop the target using the blue anchor at the bottom.

Target should be up to scale as if it’s 5m away from you in game. You can press W and S to move closer / away from the target.

Target scaling is zeroed at 5m, the more you away from it, the less accurate the scaling will be. But I did use my Angular Size research to get the target scaling as close to in-game as possible.

The “TTK Simulation” window will tell you the damage your weapon would do at that range.

TTK Simulation Module

v1.7 TTK simulation

This module is only visible when “Draw Target” is enabled.

My program cannot detect bullet hits, but you can do it manually by pressing “Head”, “Leg” and “Body” buttons.

The program will calculate damage you have dealt, and the remaining target health,
as well as how long it took to fire that amount of shots.

“Reset CoF” button will reset weapon’s CoF, and adjust “time elapsed” for the time
it would take to reset CoF in game.


“Record Pattern” mode is there for demonstration purposes.

Normally, the direction of Horizontal Recoil is chosen randomly. Record Pattern mode allows the user to choose the recoil direction with A and D keys.

This mode is only useful if you want to draw a specific recoil pattern to take a screenshot.

Configuration Module

On the first launch, the program will create “settings.ini”. You can use “save” and “load” buttons to store your preferred configuration. To reset to factory defaults, just delete the “settings.ini”.

To-Do

Already on my to-do list:

  • Let user manually add weapons
  • Add Recoil Simulation mode that will let the user control recoil with mouse
  • Let the “Save configuration” button save selected weapons as well.
  • add recoil pattern width and recoil per second calculations into weapon stats window, and calculated stat values (DPM, FSRM).
  • add TTK graph mode
  • add sorting by weapon class and faction to the weapon list
  • add a way to automatically update weapon stats through census API or accept export from Toolbox
  • add BTK thresholds to the left side of the bullet damage graph
  • add BTK thresholds graph

Changelog and archive

v1.0 – Initial Release

v1.1 – Bugfix

Fixed a bug with Decimal Symbol in different locales.

v1.2 – Function update

Users can now choose a firing stance.
Added weapon comparison.
Recoil patterns can be dragged around using the small blue circle at the bottom.
Also updated the weapon database to include velocity changes.

v1.3 – Bugfix

Fixed a bug that prevented weapon stats from updating properly with HVA, SPA and Suppressor attachments.

v1.4 – Function update

Added an option to draw weapon damage graphs.
Useful for comparing weapon damage at different ranges and with different attachments.

v1.5- Function update

Now the target from “Draw Target” option can be dragged and dropped using the blue anchor at the bottom of the target.

v1.5a – Function fix

Now the drawn target scales relative to center mass.

v1.6 – Function update

Added “BTK Thresholds” window. It will calculate the amount of bullets needed for a
weapon to kill a target with specified health and resistance at different ranges.

v1.6A – Function update

“BTK Thresholds” window will also display TTK.

v1.7 – Function update

Updated for the latest patch, and added “TTK Simulation” module.

v1.7 PTS – Database update

Updated for the latest PTS patch to highlight some weapon changes.


As a closing word, huge thanks to /u/L33-the-3rd for formatting the PS2 Weapon Database into CSV for me.

Horizontal Recoil Tolerance

Introduction

Horizontal Recoil Tolerance is the most mysterious and elusive recoil characteristic. We all knew what it’s supposed to do: set a limit on just how far Horizontal Recoil can take you from initial aiming position.

Horizontal Recoil Tolerance

There were many hints, starting with the datamined name of this stat, and ending with this video by Vanu Labs. 

However, nobody was able to figure out how to translate the datamined HRT values into what can be seen in game.

How everybody thinks it works

Let’s take the infamous Gauss SAW as an example:

Horizontal Recoil: 0.175 / 0.175
Horizontal Recoil Tolerance: 0.525

Instantly it becomes obvious that 0.525 is divisible by 0.175 without residue:

0.525 / 0.175 = 3

So the logical conclusion would be that Gauss SAW can kick up to 3 times into one direction, after which Horizontal Recoil Tolerance forces it to bounce in the opposite direction.

But that assumption is wrong. Gauss SAW can only kick up to 2 times in the same direction.

This comes from multiple in-game tests, where I record a high resolution video of firing a weapon, and then watch it frame by frame and document how crosshair moves after each shot. 

Here’s an example of such recording:

And here’s the recorded recoil path from that video example:

Gauss SAW recoil path

You can clearly see that Gauss SAW recoils only up to 2 times in the same direction. More recorded recoil paths:

SAW HRT no grip

It’s not just Gauss SAW, this is confirmed by testing other weapons as well; they all bounce less than this theory suggests. I have a notebook full of these scribbles:

manual testing

It’s obvious that the first theory about Horizontal Recoil Tolerance is wrong.

For years nobody was able to offer a correct theory, mostly from lack of interest or necessary knowledge. 

In the meantime, the solution is painfully simple, and if not for misleading HRT values, we’d crack that nut much earlier.

How it actually works

If you imagine HRT as an angle, the center of that angle is the position of your first shot. If the gun recoils left several times and exceeds the left half of tolerance, it will be forced to to recoil right at least once. 

HRT explanation

HRT is split in halves by crosshair position of a first shot in a burst, so that’s what we care about – half of tolerance, not the whole value.

If we return to our example with Gauss SAW:

Gauss Saw Horizontal Recoil Tolerance

full path - HRT

Accumulated horizontal recoil from 2 shots of Gauss SAW is equal to 0.35, which is greater than half of tolerance: 0.2625. That is why Gauss SAW can only recoil twice in the same direction. 

So the fact that 0.525 can be divided by horizontal recoil without residue has no meaning at all. It’s a nasty coincidence, nothing more.

I have tested and retested this theory many times with at least 12 different weapons, and it remains consistent and predictable. 

The possibility that it works somehow differently behind the scenes still exists, but it is small. 

The funny part is that HRT could take different values without affecting anything. Gauss SAW could have Tolerance anywhere between 0.36 and 0.69, and the result would be exactly the same – still kick only up to 2 times in the same direction.

HRT deviation

This leads to funny and unexpected things. For example:

T32 Bull: 0.18 / 0.18 Recoil, 0.5 Tolerance
T16 Rhino: 0.2 / 0.2 Recoil, 0.7 Tolerance
TMG-50: 0.175 / 0.175, 0.7 Tolerance

T32 Bull has much lower Tolerance than T16 Rhino, yet they both kick up to 2 times in one direction.

TMG-50 has same tolerance as T16 Rhino, but lower Horizontal Recoil, so it kicks up to 3 times in one direction, giving it a wider recoil pattern.

How HRT can be used

Horizontal Recoil is the most unpredictable and uncontrollable part of the whole recoil system. You can’t compensate for random.

Horizontal Recoil Tolerance brings a piece of order into this chaos. Horizontal Recoil can bounce wildly all it wants, but only within the bounds of HRT. 

Knowing how HRT works, you can calculate the width of the recoil pattern: the distance between the extremities of Horizontal Recoil:

recoil pattern width

Notice that Width is always larger than HRT, because Horizontal Recoil can exceed half of HRT once.

Calculations

First you will have to calculate the maximum amount of horizontal recoil kicks in the same direction:

N_Kicks = Round_Down ((HRT / 2) / Horizontal Recoil Minimum) + 1

In other words, to calculate the number of kicks, you have to divide HRT by 2, then divide the result by Minimum Horizontal Recoil, then round the result down, and then increase it by one.

For example:

T5 AMC
Horizontal Recoil: 0.2 / 0.2
Horizontal Recoil Tolerance: 0.45

HRT / 2 = 0.225
0.225 / 0.2 = 1.125
Round it down to 1, then increase by 1

N_Kicks = 2

Confirmed by in-game testing.

When you know the maximum amount of kicks, you can calculate the total width of the recoil pattern:

Width = N_Kicks * Horizontal Recoil Maximum * 2

For T5 AMC:

Recoil Pattern Width = 0.2 * 2 * 2 = 0.8 degrees

This means that as long as target’s Angular Size is less or equal to 0.8 degrees, you are guaranteed to hit it, from the standpoint of Horizontal Recoil. 

Unexpected implications

Attention! The following issue was fixed in 7/7/2016 patch. It no longer works this way!

Conclusion

Horizontal Recoil Tolerance remained a blind spot of PS2 weapon community for a long time, and I’m happy to finally shed some light on it.

There is still much to do in theorycrafting of PlanetSide 2, but now we finally can predict a weapon’s recoil pattern just from its stats.

Please feel free to comment me with any questions regarding PS2 weapon mechanics.