Page MenuHomeFeedback Tracker

Reloadtime doesn't equate rate of fire
Reviewed, UrgentPublic

Description

This severely limits the weapon diversity when you are only able to have a select few rate of fire intervals.

I want a gun that shoots faster than an M4, but not as fast as a FAMAS, but that's not possible to do. I'm sure this has to be a known issue already.

Details

Severity
Major
Resolution
Open
Reproducibility
Always
Operating System
Windows 10 x64
Category
General
Steps To Reproduce

set weapon to reloadTime=0.075000003;
then reloadTime=0.059999999;

Try anything in the middle and it will default to one or the other instead of being in the middle.

Event Timeline

designful created this task.Nov 3 2021, 6:34 AM

Weapons are unfortunately limited to the player simulation rate of 40hz and not independent to the server frame rate.

Other issues probably arise if they were to move the weapon fsm update and event processing from the player command handler since it appears at the very least weapon event processing depends on animation events

Geez changed the task status from New to Reviewed.Nov 3 2021, 3:11 PM
Geez added a subscriber: Geez.

Hello designful.

The system works as follows:

  • Weapons can only fire 1 bullet every player simulation update which runs on a frequency of 30Hz (Every 0.033... seconds).
  • The reloadTime paramenter sets the minimum amount of time which has to pass between fire events
  • Note, that value below 0.033 will be clamped to 0.033 anyway
  • This means that weapons fire rates can only be a multiple of that value.
    • At 0.033... the fire rate is about 1800 rpm.
    • At 0.066... the fire rate is about 900 rpm.
    • At 0.098... the fire rate is about 900 rpm.
    • At 0.100... the fire rate is about 600 rpm.
    • Etc...

We currently do not plan to change this behaviour.

Regards,
Geez

1.15 is about to show how unhealthy this is. Buffing the M4 only serves to defeat the only purpose the FAMAS had which was a higher rate of fire.

Gews added a subscriber: Gews.Nov 6 2021, 2:22 AM

It means 99% of automatic weapons will have to be covered by only four cyclic rates: 450, 600, 900 and 1800 rpm.

Very unfortunate.

Volern added a subscriber: Volern.Nov 6 2021, 3:04 AM

This currently makes no sense. If the fire rate can only be a multiple of 0.033 essentially meaning the only rpm settings the game has is 600, 900 and 1800. If that is the case why in 1.14 did every gun have its own set rate regardless of this fact.

From what I have checked the M4 in 1.14 has a reloadtime of 0.075. This would make the rpm of the gun 800rpm. However when shot in game it was shooting at 600rpm. Now in 1.15 exp the reloadtime is 0.064999998, making it ~923rpm, which I would assume is being rounded down to 900rpm by the game(hard to test 900 vs 923 rpm). When checking the fire rate of the gun while shooting it now shoots at 900rpm. Basically the gun was supposed to shoot at 800rpm but in 1.14 and below it was shooting at 600rpm instead because of the multiple of 0.033.

A similar thing was happening with the famas. In 1.14 the famas had a reloadtime of 0.059. Making it 1000rpm. However when shot in game it was shooting at 900rpm. Now in 1.15 exp it has been set to the same as the m4 making it ~923 rpm. Not sure why the famas was adjusted when it essentially makes no difference, and is still shooting at 900rpm.

The mp5k as well used to be 600rpm when shot with a reloadtime of 0.067 when it should have been ~895rpm. Now the reloadtime is the same as the m4 and famas mentioned previously making the rpm ~923rpm.

Looking at all of this the rpm of the weapons was not being set by the reloadtime specifically. It seems to be rounding the rpm of each gun down to the lower multiple of 0.033. So anything between 600 and 899 rpm was being rounded down to 600rpm when fired in-game. Anything above 900rpm would round down to 900rpm. There wasnt any guns with a higher fire rate than 900rpm as far as I could tell other than semi automatic weapons. However the fire rate of those would be limited by user input rather than the game as they don't fire at the max rate the game can make them output so its hard to test. Basically it looks like in 1.14 the guns were attempted to have fire rates outside of that multiple. Like how the m4 should have been 800 and the famas should have been 1000.

Basically my question is why did every gun have an arbitrary reloadtime if it can only do 3 rpm settings. It also is weird because the reloadtimes were not set to the multiples of 0.33. They were just set to something close to them. Also why has this changed from the old engine. Looking at something like the m249 in the files which doesnt appear to have been updated since the old engine, the reloadtime setting says 60/800. Im not sure if that is just placeholder or if thats how it used to be, but that would make it the same as the m4 in 1.14. I cannot check the old game to check what the fire rates of the guns used to be to check if its always had to be a multiple of 0.33 so I could be completely wrong about it being different from the old engine to the current.

Gews added a comment.EditedNov 7 2021, 1:45 AM

I cannot check the old game to check what the fire rates of the guns used to be to check if its always had to be a multiple of 0.33 so I could be completely wrong about it being different from the old engine to the current.

In ARMA it works correctly. In old versions of DayZ many weapons had fire rate around 600 rpm and it seemed affected by performance so it might be hard to say.

But I have one example. The MP5K had a full auto reloadtime=0.067.

That's more than twice 30Hz, yet it fired at approximately 900 rpm in-game.

But after 0.63 the MP5K with same reloadTime of 0.067 suddenly fired only ~600 rpm.

So it seems probable this limitation was introduced with 0.63 engine changes.

Video comparison:

https://www.youtube.com/watch?v=pGS5YJBsX4Q

Edit: Note in this clip actual cyclic rate for 0.55 version is 760-770 rpm. Old WOBO video has example of MP5K fire rate at ~875 rpm.