To throw my hat in the ring ![]()
Instead of changing Actor’s world offset each tick just change its movement speed. Here is how it can work on a character:
Since the freeze mechanic is global I would probably register each freezable object in Game State and replace the “Freeze Loop” by a call to the GameState. Let it handle the freezing and unfreezing of the registered objects but that’s just a preference.
