Cannot Restore Projectiles Movement

I have a basic C++ projectile class that utilizes ProjectileMovementComponent

.

I want to slow down the projectiles in radius when I press the F key (that works exactly like I want) here is the Blueprint

Now I am trying to restore the projectile’s speed by pressing the G key, but it is not working. Visually the projectile’s speed remains the same (200.f). However, when I use print string, it shows that the projectile’s speed is 1000. f

I m still getting the hang of Blueprint and feeling a bit stuck on this problem. Any guidance would be really helpful

Hmm initial speed is, as the same suggests, only applied at projectile initialization.
Changing it on the fly is useless.

Projectile’s speed is computed every frame according to its parameters. When you reduce MaxSpeed, projectile speed is immediately clamped to that new MaxSpeed. However when you increase MaxSpeed, the projectile has no reason to increase speed unless it has an acceleration.

To restore speed, you can set its Velocity directly or call SetVelocityInLocalSpace(X=MaxSpeed,Y=0,Z=0). This will only work properly for straightforward projectiles.
This option will not be super practical especially once you have multiple projectiles with different speeds.

Alternatively, for slowing down stuff I would suggest using CustomTimeDilation. This is literally slow motion (or fast forward) builtin the engine, applicable per-actor. For example set CustomTimeDilation to 0.1 to slow 10x, then set it back to 1 to restore normal speed.

Thanks for your help!