Why is client behaviour different on dedicated server than on listen server

I’m at a loss here.
I have a fire function that uses the weapon’s muzzle location to spawn and line trace a projectile.
Using a listen server, it works as it should; client-to-client, server-to-client and client-to-server, everything is displayed correctly as such:

But then using a dedicated server the particle is spawned incorrectly ,below the weapon:

I’ve sort of narrowed the issue down to the animation blueprint; I’m doing some ik to move the arms and head to where the player is looking. If I disable that part it spawns the particles from the weapon

But why does it act different, and how do I get it to work?
The way it’s set up; I’m getting the muzzle position, hand positions and look direction in c++, and in the anim blueprint I make a cast to the player class and call the get functions I made, then using those values it makes the changes to the ik.

I can’t believe I found the fix 5 minutes later. Here: Run on dedicated server cause problems with socket location - Programming & Scripting - Unreal Engine Forums