Investigating why some visual effects don’t pause when the tree is paused. Namely, the particles generated by the GPUParticles2D node seem to continue moving around when paused and my shaders that use TIME keep animating even when paused.

For GPUParticles2D, this issue seems related: https://github.com/godotengine/godot/issues/85213

And it appears that someone is working on a fix.

For my shader, it appears that the canonical solution for this is to use a global shader variable:

RandomShaper No version of this branch for 4.0 is needed, since it introduces global shader variables, with which one can easily implement their own version of this.

See: