# How can I manually calculate Particle Velocity in Niagara

**URL:** <https://forums.unrealengine.com/t/how-can-i-manually-calculate-particle-velocity-in-niagara/2379291>\
**Category:** Asset Creation\
**Tags:** particle-systems, unreal-engine, question\
**Created:** [March 7, 2025, 1:04pm UTC](https://forums.unrealengine.com/t/how-can-i-manually-calculate-particle-velocity-in-niagara/2379291 "2025-03-07T13:04:38Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![AliceHalley](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/alicehalley/32/1033330_2.png) [@AliceHalley](https://forums.unrealengine.com/u/AliceHalley)\
**Post date:** [March 7, 2025, 1:04pm UTC](https://forums.unrealengine.com/t/how-can-i-manually-calculate-particle-velocity-in-niagara/2379291/1 "2025-03-07T13:04:38Z")

</div>

I currently have a series of Particles moving along a spline. Since these particles do not have velocity when set this way I need a manual method of calculating Velocity for other uses when building the system.

In theory, I need to Set a Particle’s position lower in the stack, and then higher in the stack on the next frame, I need this variable to compare with the new current position, getting the difference.

However, I am unsure what method of setting parameters I need to do and what type of parameter it needs to be, as there are lots of parameter types and I’m not sure which one is best for my needs!

That said there may be other methods too.

---

<div class="post-metadata">

**Author:** ![BRS\_GerDAngelo](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/brs_gerdangelo/32/1009628_2.png) [@BRS\_GerDAngelo](https://forums.unrealengine.com/u/BRS_GerDAngelo)\
**Post date:** [March 7, 2025, 4:29pm UTC](https://forums.unrealengine.com/t/how-can-i-manually-calculate-particle-velocity-in-niagara/2379291/2 "2025-03-07T16:29:15Z")

</div>

Hi @AliceHalley  
Let’s see…  
Track Particle Position:

Keep both the current and last positions within a Vector parameter.  
Update Positions:

Each frame, set the last position equal to the current position, then set the current position according to where the particle lies along the spline.  
Calculate Velocity:

Decrease the last position from the current position and divide by the delta time to get velocity:

Velocity =  
Current Position−Previous Position  
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_  
Δt  
​  
Use in Niagara:

Implement this reasoning in Niagara with User Parameters for storing positions and calculating velocity per frame.

---

<div class="post-metadata">

**Author:** ![AliceHalley](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/alicehalley/32/1033330_2.png) [@AliceHalley](https://forums.unrealengine.com/u/AliceHalley)\
**Post date:** [March 8, 2025, 10:10am UTC](https://forums.unrealengine.com/t/how-can-i-manually-calculate-particle-velocity-in-niagara/2379291/3 "2025-03-08T10:10:20Z")

</div>

I completely get the high level logic and flow, but what specific means do I need to accomplish this?

Do I use Scratch? Set Variable? What namespace should the variable have?

Since I am quite new to Niagara, I still haven’t gotten to grips with the low level usage of all its systems.
