Vector not moving with pawn?

Ok, so I’ve been trying to get a weapon to fire from my space ship pawn and for some reason the vector of the weapon’s location isn’t moving with the pawn. Its like its firing from a world relative location every time so this means the aiming doesn’t update and neither does the position its firing from.

Here’s a video to show what’s happening:

and my blueprint setup:

Now the weird thing is, I originally built this blueprint in another project with the First Person Shooter template and it was working fine there, but now that I’ve re-created the code inside my project it no longer works so I can’t make sense of why this might be.

I’ve also tried adding an arrow component to the pawn, parenting it to the ship mesh and grabbing the world location of the arrow and using that instead of the Gun Offset vector, but that doesn’t work either.
Any help would be greatly appreciated.

The only thing I’m noticing is that your offset doesn’t take the ship’s rotation into account, possibly in the RotateVector node.

Also, you might want to add a socket to your ship skeleton at the point where the projectile should be fired. (Or several of them if there are upgrades allowing multiple projectiles.) Sockets are part of the skeleton and move and rotate along with their object, so you could then use GetSocketLocation and GetSocketRotation instead of a fixed offset.

https://docs.unrealengine.com/latest/INT/Engine/Content/Types/SkeletalMeshes/Sockets/index.html

Thanks for the suggestions. The part that confuses me is firstly that this worked fine with the First Person Template - the gun offset followed the rotation of the pawn. Secondly the ship is currently a static mesh. Though I could make it a skeletal mesh easily enough, shouldn’t the arrow component work the same way as a socket would if its parented to the ship mesh? It doesn’t seem to at all which is really confusing.

Ok, I actually got it working. What I did was actually stupidly simple. After you suggested to use a socket (which you can’t really do in a static mesh) I used the arrow component, dragged out a reference to it, then used a Get socket location and Get socket rotation node, did a split struct pin on the spawn actor’s location and fed the values into the corresponding places and now it works! Thanks so much for the suggestion about the rotation value.