So I was creating magic where I used Bodygyro to Aim. In the script, I make that bodygyro cframe always follow the user mouse but somehow it isn't accurate like this.
Aiming script (local script)
mouse.KeyDown:Connect(function(key)
if key == "q" and isKeyHeld == false then
if debounce == false and char:FindFirstChild("Fire") then
if player.Character.Charge.CurrentME.Value > 1100 then
if script.Parent.Values.QMove.Value == false then
debounce = true
isKeyHeld = true
local char = player.Character
local root = char:WaitForChild("HumanoidRootPart")
local bp = Instance.new("BodyPosition")
bp.Name = "Firebp"
bp.Parent = root
bp.P = bp.P * 4
bp.D = 200
bp.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
bp.Position = root.Position
local bg = Instance.new("BodyGyro")
bg.Name = "Firebg"
bg.Parent = root
bg.P = bg.P * 4
bg.D = 200
bg.MaxTorque = Vector3.new(math.huge,math.huge,math.huge)
while isKeyHeld == true do
bg.CFrame = CFrame.new(root.Position,mouse.Hit.p)
wait()
end
end
end
end
end
end)
Fireball cloning script
remotes.FireRemote.OnServerEvent:Connect(function(plr, skill,mouse)
if skill == "Fireball" then
repeat wait() until keyholded == false
local char = plr.Character
local newblast = assets.QMove.FireQ:Clone()
newblast.CFrame = char.HumanoidRootPart.CFrame * CFrame.new(0,0,-4)
local bv = Instance.new("BodyVelocity", newblast)
bv.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
bv.Velocity = (char.HumanoidRootPart.CFrame.lookVector * 100)
newblast.Parent = plr.Character.HumanoidRootPart
local name = Instance.new("StringValue",newblast)
name.Name = "Owner"
name.Value = plr.Name
local shootsound = script.Parent.Sounds.shoot:Clone()
shootsound.Parent = plr.Character.HumanoidRootPart
shootsound:Play()
shootsound:Destroy()
newblast.damagebonus.Value = damagebonus
while wait() do
if (newblast.Position - char.HumanoidRootPart.Position).magnitude > 800 then
newblast:Destroy()
end
end
end
end)
