I don’t quite know why this is happening, I have used .Touched so many times, but there seems to be about a .2 second touch delay (not really delayed because it’s in advance but you get the point). Here is a video of the problem:
The Ball is meant to touch the ground then get destroyed, as you can see in the video ,that is not what is happening.
Here is the segment of code that is giving me trouble. You can disregard most of the other stuff, such as the magnitude and measuring, I am going to be using that later.
local giantFireBall = game.ReplicatedStorage.Powers.MHA.GiantFireBall.spawn local mouse = game:GetService("MouseService") local fireBall = game.ServerStorage.Powers.MHA.giantFireBall.FireBall giantFireBall.OnServerEvent:Connect(function(plr, plrPos, hit) local fireBallClone = fireBall:Clone() local maxMag = 200 local plrMag = (hit - plrPos).p local magnitude = plrMag.magnitude fireBallClone.CFrame = hit * CFrame.new(0, 100, 0) fireBallClone.Parent = workspace.magic fireBallClone.Touched:Connect(function() fireBallClone:Remove() end)