Problems with position and Body Velocity?

Hello, I’m making a fireball with BodyVelocity, but I’m adding some vfx effects at the end when the fireball touches something, but the effects are always being positioned in the wrong position, even if I set the effects equal to the position of the ball fire, I think the problem is BodyVelocity, I was wondering how can I move a part with CFrame to where the mouse is pointing

if you’re doing this all on serverside, it might be a ping/lag/latency problem since the physics of the part is handled on clientside and the positioning of the vfx is serverside, you’d end up with this:

server assigns bodyvelocity
client starts moving the part
part hits target
(wait half the player’s ping so the hit can be sent to the server)
server sees hit and creates vfx
(wait half the player’s ping so the vfx can be sent to the client)
client displays vfx

assuming ping is 10 seconds
this would have the vfx show up where the part was 10 seconds ago on clientside

I might be wrong though, I’m not sure how wrong the position of the vfx is on your screen, maybe you’re setting the wrong position

the vfx is in replicatedstorage it doesn’t need to be created, yes i’m positioning it wrong, when the touched event starts, i have a wait of 1.65 seconds to make an “effect” that the fireball has entered the ground, after that when i get the fireball position the position comes wrong with little difference from the correct position