I'm just surprised. A few minutes ago, it was working fine (well the bodyvelocity was), and after I fixed some stuff (I forgot game was FE, so I forgot to set up remote events etc. to create parts), the fireball just didn't move.
(My script is 300 lines long, so I just narrowed it down to the part the fireball gets created.)
Here is the part that gets the fireball created:
local shot = game.ReplicatedStorage.CreateFireballShot:InvokeServer(script.Parent.Name, mouse.Hit.p)
And here is the script in ServerScriptService which listens for those remotes:
function game.ReplicatedStorage.CreateFireballShot.OnServerInvoke(plr, name, mpos)
local shot = Instance.new("Part", workspace)
shot.Name = "Shot/"..plr.Name.."/"..name
game.Debris:AddItem(shot, 10)
shot.BrickColor = BrickColor.new("Bright orange")
shot.Size = Vector3.new(4,4,4)
shot.Shape = "Ball"
shot.Anchored = false
shot.CanCollide = false
shot.Transparency = 0.5
shot.BottomSurface = "SmoothNoOutlines"
shot.TopSurface = "SmoothNoOutlines"
shot.FrontSurface = "SmoothNoOutlines"
shot.BackSurface = "SmoothNoOutlines"
shot.RightSurface = "SmoothNoOutlines"
shot.LeftSurface = "SmoothNoOutlines"
shot.CFrame = plr.Character.Torso.CFrame * CFrame.new(0, 0, -4)
shot.CFrame = CFrame.new(shot.Position, mpos)
local fire = Instance.new("Fire", shot)
fire.Size = 15
fire.Heat = 15
local velo = Instance.new("BodyVelocity", shot)
velo.maxForce = Vector3.new(math.huge, math.huge, math.huge)
velo.velocity = shot.CFrame.lookVector * 80
return shot
end
(Also narrowed it down ^)

1 comment
The script that the fireball gets created in is a LocalScript, inside the tool.