From 8977b1af6c716c4487573be7099fac17762b37e7 Mon Sep 17 00:00:00 2001 From: Jaredl-Dev <260281143+Jaredl-Dev@users.noreply.github.com> Date: Mon, 24 Aug 2026 15:20:27 -0700 Subject: [PATCH] Fix delayed particle effect timing at 60Hz --- Core/GameEngine/Source/GameClient/FXList.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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 )