I am having trouble finding the velocity of an object that is not simulating physics. I understand the math involved and I’ve tried doing that in blueprints, but I think I am not understanding the time between frames correctly… In the picture, you can see that I am trying to find the distance between frames, but is this the correct way to do it? It seems that my hit trace is being triggered twice sometimes.
You’re going to want to do some reading/learning about how timing and ticks work in the engine. I still don’t have a 100% understanding of it myself, but the basics are that everything to do with execution order is based on frames. Your current script will find and set the velocity too late for it to be used, because the branch after FindVelocity will be called immediately (in the same frame) after the event is fired, but the variables set after the delay nodes will not execute until several frames later. Thus when you call HitTracer, you’re not going to get the correct weapon velocity for about 12 frames or so. (Assuming 60fps.)
Instead, I opted to find the velocity by taking the object location before executing any transforms (such as add location/offset type transforms), then taking the location again after all the transforms are complete in the same tick/frame.