diff --git a/Core/GameEngine/Source/GameClient/FXList.cpp b/Core/GameEngine/Source/GameClient/FXList.cpp index a2d09ba954e..1c3149564b7 100644 --- a/Core/GameEngine/Source/GameClient/FXList.cpp +++ b/Core/GameEngine/Source/GameClient/FXList.cpp @@ -647,8 +647,12 @@ class ParticleSystemFXNugget : public FXNugget Real delayInMsec = m_delay.getValue(); if (delayInMsec >= 0.0f) { - UnsignedInt delayInFrames = REAL_TO_INT_CEIL(ConvertDurationFromMsecsToFrames(delayInMsec)); - sys->setInitialDelay(delayInFrames); + Real delayInFrames = ConvertDurationFromMsecsToFrames(delayInMsec); +#if defined(GENERALS_ONLINE_HIGH_FPS_RENDER) + // Info: Particle systems update on legacy frames, so their delays must use the same cadence at 60Hz. + delayInFrames /= GENERALS_ONLINE_HIGH_FPS_FRAME_MULTIPLIER; +#endif + sys->setInitialDelay(REAL_TO_INT_CEIL(delayInFrames)); } if( m_useCallersRadius && overrideRadius )