Welcome to symthic forums! We would love if you'd register!
You don't have to be expert in bit baking, everyone is more than welcome to join our community.

You are not logged in.

Hey! If this is your first visit on symthic.com, also check out our weapon damage charts.
Currently we have charts for Battlefield 3, Call of Duty: Black Ops 2, Medal of Honor: Warfighter and Call of Duty: Modern Warfare 3

Posts: 6

Date of registration
: Dec 14th 2017

Platform: PS4

Battlelog:

Reputation modifier: 1

Thursday, December 14th 2017, 1:42pm

Hi there,

New to the forums, but used this site for a long time and have read a few of the posts that seem to have optimum fire rate calculators, but really not sure if they are quite what I'm looking for. I main the Autoloading Marksman, so looking to try and work out precisely what the 'best' fire rate is to maintain best accuracy. By best accuracy I mean that spread and horizontal recoil are reset to base positions (I can manage vertical recoil reasonably well).

I know there are times where you might want to spam the trigger, like if an enemy is so close that the recoil and spread are irrelevant, but on a static target at range, getting spread and H-recoil back to base is where I think I'm firing too slowly, and would like help knowing what the optimum is so I can try and match it etc.

Thanks

Posts: 9

Date of registration
: May 16th 2017

Platform: Xbox One

Location: Louisiana

Reputation modifier: 2

Thursday, December 14th 2017, 2:02pm

Based on what I see from InterimAegis' new analysis, about 300 RPM at range should do it.

Posts: 534

Date of registration
: Dec 24th 2011

Platform: PC

Battlelog:

Reputation modifier: 10

Thursday, December 14th 2017, 2:03pm

Spread, and usually recoil (there's apparently some exceptions, I guess), start to decrease when the next shot can be fired, but isn't fired. The generally-accepted formula is this.

optimalROF = 60 / ( 60 / rateOfFire + SIPS / SDec )

Recoil works more-or-less the same for Medic rifles, I do believe. Now, spread will always settle faster than recoil, and thus spread is used to calculate the maximum optimal/effective rate of fire.

Doing this for the Autoloading 8 .35 Marksman with spread, vertical recoil only, maximum horizontal recoil only, and vertical recoil with maximum horizontal recoil (hypotenuse), respectively. Maximum recoil with no countering of it would be the bare minimum optimal/effective rate of fire.

60 / ( 60 / 359 + 0.125 / 3.75 ) = 299.3 rounds per minute
60 / ( 60 / 359 + 0.85 / 3 ) = 133.2 rounds per minute
60 / ( 60 / 359 + 0.15 / 3 ) = 276.3 rounds per minute
60 / ( 60 / 359 + 0.863 / 3 ) = 131.9 rounds per minute

Note that the optimal/effective rate of fire via spread is typically one rate of fire tier (based on a 30 Hz tick rate) below the SLR's maximum rate of fire for Marksman, Optical, and Factory variants. For the rest of the SLR variants (Sniper, Trench, Storm, Sweeper, and Extended), it's two rate of fire tiers below.

Posts: 6

Date of registration
: Dec 14th 2017

Platform: PS4

Battlelog:

Reputation modifier: 1

Thursday, December 14th 2017, 3:00pm

### Quoted from "RangerOfDanger"

Based on what I see from InterimAegis' new analysis, about 300 RPM at range should do it.
I tried to fire at that rate (effectively 5 times a second), but it really was too quick. The recoil and spread were still very evident. It was about as fast as I could spam the trigger. It's definitely a littler slower fire rate to get the accuracy back I feel.

Posts: 208

Date of registration
: Mar 31st 2015

Platform: Xbox One

Reputation modifier: 6

Thursday, December 14th 2017, 3:01pm

### Quoted from "CReaperDorian"

Spread, and usually recoil (there's apparently some exceptions, I guess), start to decrease when the next shot can be fired, but isn't fired. The generally-accepted formula is this.

optimalROF = 60 / ( 60 / rateOfFire + SIPS / SDec )

Recoil works more-or-less the same for Medic rifles, I do believe. Now, spread will always settle faster than recoil, and thus spread is used to calculate the maximum optimal/effective rate of fire.

Doing this for the Autoloading 8 .35 Marksman with spread, vertical recoil only, maximum horizontal recoil only, and vertical recoil with maximum horizontal recoil (hypotenuse), respectively. Maximum recoil with no countering of it would be the bare minimum optimal/effective rate of fire.

60 / ( 60 / 359 + 0.125 / 3.75 ) = 299.3 rounds per minute
60 / ( 60 / 359 + 0.85 / 3 ) = 133.2 rounds per minute
60 / ( 60 / 359 + 0.15 / 3 ) = 276.3 rounds per minute
60 / ( 60 / 359 + 0.863 / 3 ) = 131.9 rounds per minute

Note that the optimal/effective rate of fire via spread is typically one rate of fire tier (based on a 30 Hz tick rate) below the SLR's maximum rate of fire for Marksman, Optical, and Factory variants. For the rest of the SLR variants (Sniper, Trench, Storm, Sweeper, and Extended), it's two rate of fire tiers below.

The recoil decrease is nonlinear, so you can’t use this formula for recoil, only spread. Recoil settles faster than your calculation (see recoil decrease scale thread). Optimum rate of fire is 300 rpm before the TTK patch. After the patch it will bump up a half step to 326. See my post for other weapons.

Posts: 6

Date of registration
: Dec 14th 2017

Platform: PS4

Battlelog:

Reputation modifier: 1

Thursday, December 14th 2017, 3:14pm

### Quoted from "CReaperDorian"

Spread, and usually recoil (there's apparently some exceptions, I guess), start to decrease when the next shot can be fired, but isn't fired. The generally-accepted formula is this.

optimalROF = 60 / ( 60 / rateOfFire + SIPS / SDec )

Recoil works more-or-less the same for Medic rifles, I do believe. Now, spread will always settle faster than recoil, and thus spread is used to calculate the maximum optimal/effective rate of fire.

Doing this for the Autoloading 8 .35 Marksman with spread, vertical recoil only, maximum horizontal recoil only, and vertical recoil with maximum horizontal recoil (hypotenuse), respectively. Maximum recoil with no countering of it would be the bare minimum optimal/effective rate of fire.

60 / ( 60 / 359 + 0.125 / 3.75 ) = 299.3 rounds per minute
60 / ( 60 / 359 + 0.85 / 3 ) = 133.2 rounds per minute
60 / ( 60 / 359 + 0.15 / 3 ) = 276.3 rounds per minute
60 / ( 60 / 359 + 0.863 / 3 ) = 131.9 rounds per minute

Note that the optimal/effective rate of fire via spread is typically one rate of fire tier (based on a 30 Hz tick rate) below the SLR's maximum rate of fire for Marksman, Optical, and Factory variants. For the rest of the SLR variants (Sniper, Trench, Storm, Sweeper, and Extended), it's two rate of fire tiers below.
I'll be honest I don't understand all that you said - particularly about tick rates and fire tier etc, but the values are really useful.

Looking at your second, third, and fourth figures, it seems like v recoil means slowing down to 133.2 RPM, and h recoil means slowing down to 276 RPM, but for some reason combining them both doesn't need just the lowest value but requires an even slower 131.9 RPM. I would have thought that if h recoil is done in 218ms, and v recoil is in 450ms, then by the time v recoil is at base the h recoil would be too. I'm guessing I've missed something as I don't really understand the mechanics of it all.

Ultimately your calculations somewhat match my experience, which is that to get best accuracy I can't really fire that much more than 2 shots a second (131.9 RPM according to your calcs). Sounds like I do need to stay that slow for full accuracy. I wonder if there is a curve to this, so, using just spread and h recoil scenario its completely back at base after 218ms (60000ms / 276.3 RPM, but might be 80% of the way there after 200ms.

Posts: 208

Date of registration
: Mar 31st 2015

Platform: Xbox One

Reputation modifier: 6

Thursday, December 14th 2017, 3:34pm

### Quoted from "CReaperDorian"

Spread, and usually recoil (there's apparently some exceptions, I guess), start to decrease when the next shot can be fired, but isn't fired. The generally-accepted formula is this.

optimalROF = 60 / ( 60 / rateOfFire + SIPS / SDec )

Recoil works more-or-less the same for Medic rifles, I do believe. Now, spread will always settle faster than recoil, and thus spread is used to calculate the maximum optimal/effective rate of fire.

Doing this for the Autoloading 8 .35 Marksman with spread, vertical recoil only, maximum horizontal recoil only, and vertical recoil with maximum horizontal recoil (hypotenuse), respectively. Maximum recoil with no countering of it would be the bare minimum optimal/effective rate of fire.

60 / ( 60 / 359 + 0.125 / 3.75 ) = 299.3 rounds per minute
60 / ( 60 / 359 + 0.85 / 3 ) = 133.2 rounds per minute
60 / ( 60 / 359 + 0.15 / 3 ) = 276.3 rounds per minute
60 / ( 60 / 359 + 0.863 / 3 ) = 131.9 rounds per minute

Note that the optimal/effective rate of fire via spread is typically one rate of fire tier (based on a 30 Hz tick rate) below the SLR's maximum rate of fire for Marksman, Optical, and Factory variants. For the rest of the SLR variants (Sniper, Trench, Storm, Sweeper, and Extended), it's two rate of fire tiers below.
I'll be honest I don't understand all that you said - particularly about tick rates and fire tier etc, but the values are really useful.

Looking at your second, third, and fourth figures, it seems like v recoil means slowing down to 133.2 RPM, and h recoil means slowing down to 276 RPM, but for some reason combining them both doesn't need just the lowest value but requires an even slower 131.9 RPM. I would have thought that if h recoil is done in 218ms, and v recoil is in 450ms, then by the time v recoil is at base the h recoil would be too. I'm guessing I've missed something as I don't really understand the mechanics of it all.

Ultimately your calculations somewhat match my experience, which is that to get best accuracy I can't really fire that much more than 2 shots a second (131.9 RPM according to your calcs). Sounds like I do need to stay that slow for full accuracy. I wonder if there is a curve to this, so, using just spread and h recoil scenario its completely back at base after 218ms (60000ms / 276.3 RPM, but might be 80% of the way there after 200ms.

You can’t calculate recoil like this. It’s a complicated function. I can look for you later today. Focus on spread, metronome yourself at 300 RPM and when the patch drops 326 RPM. Tick rate is the server refresh rate. You can figure out how many frames it takes to fire a bullet, for example. Standard tick rate is 30 (big game on console) or 60 (small game on console or all games on PC).

Posts: 6

Date of registration
: Dec 14th 2017

Platform: PS4

Battlelog:

Reputation modifier: 1

Thursday, December 14th 2017, 3:59pm

### Quoted from "InterimAegis"

You can’t calculate recoil like this. It’s a complicated function. I can look for you later today. Focus on spread, metronome yourself at 300 RPM and when the patch drops 326 RPM. Tick rate is the server refresh rate. You can figure out how many frames it takes to fire a bullet, for example. Standard tick rate is 30 (big game on console) or 60 (small game on console or all games on PC).
Thanks buddy. I've been trying that, and its fast and mostly accurate, but finding longer engagements I'm not quite hitting enough shots (needs 4 of the 5 for the kill at the moment). Gonna be interesting when the TTK changes come in and buff this truly awesome gun even further.

Posts: 208

Date of registration
: Mar 31st 2015

Platform: Xbox One

Reputation modifier: 6

Thursday, December 14th 2017, 4:42pm

### Quoted from "InterimAegis"

You can’t calculate recoil like this. It’s a complicated function. I can look for you later today. Focus on spread, metronome yourself at 300 RPM and when the patch drops 326 RPM. Tick rate is the server refresh rate. You can figure out how many frames it takes to fire a bullet, for example. Standard tick rate is 30 (big game on console) or 60 (small game on console or all games on PC).
Thanks buddy. I've been trying that, and its fast and mostly accurate, but finding longer engagements I'm not quite hitting enough shots (needs 4 of the 5 for the kill at the moment). Gonna be interesting when the TTK changes come in and buff this truly awesome gun even further.

Here is how you do recoil, as promised, from the miscellaneous page. C is recoil decrease scale, which I think was buffed to 6 or 7 with TSNP:

### Quoted

Recoil
Each shot adds RecoilUp degrees to vertical aim (pitch)
Each shot adds random_uniform(-recoilLeft, recoilRight) to horizontal aim (yaw), positive being clockwise.
Recoil decrease per one logical frame per one axis (ver. or hor.) is calculated as follows:

CurrentRecoil = Current amount of recoil (either ver. or hor.)
RecoilDecrease = Weapon's recoil decrease value
DeltaTime = Time since last logical frame (seconds)
TimeSinceLastShot = Time since last fired shot (seconds)
C = Some constant (approx. 5.0)

RecoilTerm = ((abs(CurrentRecoil) / 0.5)^0.6 + .001)
Decrease = RecoilTerm * RecoilDecrease * DeltaTime * TimeSinceLastShot^0.5 * C

NewRecoil = (CurrentRecoil - Decrease) if CurrentRecoil > 0 else (CurrentRecoil + Decrease)

Note that vertical and horizontal recoil are independent, and both get decreased with same equation.

Posts: 3,291

Date of registration
: Apr 26th 2013

Platform: PS4

Location: Arizona, USA

Reputation modifier: 15

Thursday, December 14th 2017, 4:58pm

To Aim Assist or not to Aim Assist, that is the question.

### Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

AccelerationInputThreshold 0.98
AccelerationMultiplier 5.0
AccelerationDamping 4.0
AccelerationTimeThreshold 0.15
SquaredAcceleration 0.0
MaxAcceleration::Vec2
x 2.0
y 2.0
YawSpeedStrength 1.0
PitchSpeedStrength 1.0
AttractDistanceFallOffs::Vec2
x 1.0
y 1.2
AttractSoftZone 0.75
AttractUserInputMultiplier 0.45
AttractUserInputMultiplier_NoZoom 0.5
AttractOwnSpeedInfluence 0.0
AttractTargetSpeedInfluence 0.85
AttractOwnRequiredMovementForMaximumAttract 0.0
AttractStartInputThreshold 0.1
AttractMoveInputCap 0.0
AttractYawStrength 1.0
AttractPitchStrength 0.34
MaxToTargetAngle 45.0
MaxToTargetXZAngle 45.0
ViewObstructedKeepTime 0.0
SnapZoomLateralSpeedLimit 1000.0
SnapZoomTime 0.2
SnapZoomPostTimeNoInput 0.2
SnapZoomPostTime 0.2
SnapZoomReticlePointPriority 999
SnapZoomAutoEngageTime 0.0
SnapZoomBreakTimeAtMaxInput 0.2
SnapZoomBreakMaxInput 0.2
SnapZoomBreakMinAngle 90.0
SnapZoomSpamGuardTime 1.2
SoldierBackupSkeletonCollisionData *nullGuid*
CheckBoneCenterOnlyDistance 40.0

### Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

AccelerationInputThreshold 0.98
AccelerationMultiplier 5.0
AccelerationDamping 4.0
AccelerationTimeThreshold 0.15
SquaredAcceleration 0.0
MaxAcceleration::Vec2
x 2.0
y 2.0
YawSpeedStrength 1.0
PitchSpeedStrength 1.0
AttractDistanceFallOffs::Vec2
x 1.0
y 1.2
AttractSoftZone 0.0
AttractUserInputMultiplier 1.0
AttractUserInputMultiplier_NoZoom -1.0
AttractOwnSpeedInfluence 0.0
AttractTargetSpeedInfluence 0.0
AttractOwnRequiredMovementForMaximumAttract 0.0
AttractStartInputThreshold 0.0
AttractMoveInputCap 0.0
AttractYawStrength 0.0
AttractPitchStrength 0.0
MaxToTargetAngle 45.0
MaxToTargetXZAngle 45.0
ViewObstructedKeepTime 0.0
SnapZoomLateralSpeedLimit 1000.0
SnapZoomTime 0.2
SnapZoomPostTimeNoInput 0.0
SnapZoomPostTime 0.0
SnapZoomReticlePointPriority 999
SnapZoomAutoEngageTime 0.0
SnapZoomBreakTimeAtMaxInput -1.0
SnapZoomBreakMaxInput 0.2
SnapZoomBreakMinAngle 90.0
SnapZoomSpamGuardTime 0.5
SoldierBackupSkeletonCollisionData *nullGuid*
CheckBoneCenterOnlyDistance 40.0
DisableForcedTargetRecalcDistance 7.0

### Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

 AccelerationInputThreshold 0.98
AccelerationMultiplier 5.0
AccelerationDamping 4.0
AccelerationTimeThreshold 0.15
SquaredAcceleration 0.0
MaxAcceleration::Vec2
x 2.0
y 2.0
YawSpeedStrength 1.0
PitchSpeedStrength 1.0
AttractDistanceFallOffs::Vec2
x 1.0
y 1.2
AttractSoftZone 0.75
AttractUserInputMultiplier 0.45
AttractUserInputMultiplier_NoZoom 0.5
AttractOwnSpeedInfluence 0.0
AttractTargetSpeedInfluence 0.85
AttractOwnRequiredMovementForMaximumAttract 0.0
AttractStartInputThreshold 0.1
AttractMoveInputCap 0.0
AttractYawStrength 1.0
AttractPitchStrength 0.34
MaxToTargetAngle 45.0
MaxToTargetXZAngle 45.0
ViewObstructedKeepTime 0.0
SnapZoomLateralSpeedLimit 1000.0
SnapZoomTime 0.2
SnapZoomPostTimeNoInput 0.0
SnapZoomPostTime 0.0
SnapZoomReticlePointPriority 999
SnapZoomAutoEngageTime 0.0
SnapZoomBreakTimeAtMaxInput -1.0
SnapZoomBreakMaxInput 0.2
SnapZoomBreakMinAngle 90.0
SnapZoomSpamGuardTime 0.5
SoldierBackupSkeletonCollisionData *nullGuid*
CheckBoneCenterOnlyDistance 40.0
DisableForcedTargetRecalcDistance 7.0