Page MenuHomeFeedback Tracker

Curator artillery support modules' ammo does not propagate visually in networked environment
New, NormalPublic

Description

The artillery support modules inside Zeus which allow you to drop 82mm mortars and 155mm howitzers do not behave properly in a networked environment. When spawned in the dedicated environment for example, the rounds which are createVehicle'd by ModuleOrdnance_F are not visible on any clients as they fall. The explosions do occur and propagate as expected, but the projectiles themselves that are meant to fall from the sky do not appear correctly.

Details

Severity
Minor
Resolution
Open
Reproducibility
Always
Operating System
Windows 10 x64
Operating System Version
Version 1703 (OS Build 15063.674)
Category
Zeus - General
Steps To Reproduce
  1. Start a dedicated server and connect to it.
  1. In Zeus, in the CREATE pane on the right, under the modules menu, in the fire support group, put down either the 82mm mortar or 155mm howitzer modules.
  1. Wait for the explosion. You will never actually see a mortar round fall to the ground, but you will see the resulting explosion.

If you perform step 2 in a local MP environment (AS THE HOST) or in the singleplayer environment, you'll note that you can see the artillery round fall through the sky and hit the ground.

Additional Information

This was discovered while making a mortar whistle addon utilizing the soundFly[] parameter for the cfgAmmo classnames ModuleOrdnanceHowitzer_F_ammo and ModuleOrdnanceMortar_F_ammo. After many hours of debugging and frustrated mashing of keyboards, we found that we could solve the issue by changing the following parameters for the two classes:

artilleryLock = 0; // when this was //not// zero, the vehicle (mortar round) was invisible on any machine where the vehicle (mortar round) was not local
simulation = "shotRocket"; // when this was the default ("shotShell"), the vehicle (mortar round) would appear to remain stationary, unaffected by setVelocity or gravity, but only on machines where the vehicle (mortar round) was not local
thrustTime = 0; // trivially, if thrustTime was not set to zero, the vehicle (mortar round) would behave like a rocket and try to produce thrust

Event Timeline