From fecd35405449ce61e5acc52f8b788bf582db0ea2 Mon Sep 17 00:00:00 2001 From: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com> Date: Wed, 12 Nov 2025 04:25:13 +0200 Subject: [PATCH] Fixes every single high-priority status effect in the game running twice as fast (#93883) ## About The Pull Request Fixes #93875 Removes an obsolete SS_TICKER flag from SSpriority_effects, which was originally put there by Absolucy for a priority bump. The original issue with status effects pausing for long periods of time was very likely caused by the SS_BACKGROUND flag on both SSprocessing and SSfast_process, which SSpriority_effects doesn't have. The reason why this issue surfaced is because of #93694, which caused the inconsistency between the real wait time of 0.1s and passed seconds_per_tick of 0.2s to become apparent in the duration of status effects. Previously, duration was based on world.time, which was unaffected by this inconsistency, even though it existed before my PR as well. ## Why It's Good For The Game Fixing all stun times being halved for no raisin is pretty good for the game. It's also better for the SSpriority_effects subsystem to respect the subsystem priority order. If we need it to be higher in the order, then make it that way, instead of using SS_TICKER to bypass it entirely. ## Changelog :cl: fix: High-priority status effects like stuns no longer process (and thus expire) twice as quickly as they should. /:cl: --- code/controllers/subsystem/processing/priority_effects.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/controllers/subsystem/processing/priority_effects.dm b/code/controllers/subsystem/processing/priority_effects.dm index ee4fb7f7f6d..f3be081ec50 100644 --- a/code/controllers/subsystem/processing/priority_effects.dm +++ b/code/controllers/subsystem/processing/priority_effects.dm @@ -1,6 +1,6 @@ PROCESSING_SUBSYSTEM_DEF(priority_effects) name = "Priority Status Effects" - flags = SS_TICKER | SS_KEEP_TIMING | SS_NO_INIT - wait = 2 // Not seconds - we're running on SS_TICKER, so this is ticks. + flags = SS_KEEP_TIMING | SS_NO_INIT + wait = 0.2 SECONDS // Same as SSfastprocess, but can be anything, assuming you refactor all high-priority status effect intervals and durations to be a multiple of it. priority = FIRE_PRIORITY_PRIORITY_EFFECTS stat_tag = "PEFF"