godotengine/godot

GPUParticles2D `finished` signal isn't affected by `speed_scale`

Open

#119675 opened on May 22, 2026

View on GitHub
 (2 comments) (0 reactions) (0 assignees)C++ (110,708 stars) (25,320 forks)batch import
buggood first issueneeds testingtopic:particles

Description

Tested versions

v4.7.beta1.official [1c8cc9e7e]

System information

Godot v4.7.beta1 - Windows 10 (build 19045) - Multi-window, 2 monitors - Direct3D 12 (Forward+) - dedicated NVIDIA GeForce GTX 1060 6GB (NVIDIA; 32.0.15.8157) - AMD Ryzen 7 2700X Eight-Core Processor (16 threads) - 15.94 Gio memory - WASAPI (48000 Hz, Stereo/mono)

Issue description

Changing the speed_scale of a GPUParticles2D doesn't affect the timing of the finished signal. So, if the speed_scale is set to 0.5, the signal will be emitted in the middle of the effect.

I don't know if this is intentional behavior, and I imagine it's complicated to track the speed_scale in real time. I'm wondering if the initial speed_scale could be used when calculating the duration?

Steps to reproduce

N/A

Minimal reproduction project (MRP)

particle-finished-signal.zip

Contributor guide