Problem with fireball

I just made my fireball, and while play testing it instead of shooting straight forward it just tumbles down. How do I make it so instead of it shooting downwards, it goes completely straight?

(Script)

local fireball = game:GetService(“ServerStorage”):WaitForChild(“Fireball”)

local fireballSpeed = 100
local fireballLifetime = 5
local fireballDamage = 45

local cooldown = 3
local canshoot = true

script.Parent.Fire.OnServerEvent:Connect(function(player)
if not canshoot then return end

canshoot = false

local root = player.Character.HumanoidRootPart

local bv = Instance.new("BodyVelocity")
bv.MaxForce = Vector3.new(1,1,1) * 3000
bv.Velocity = root.CFrame.lookVector * fireballSpeed

local fb = fireball:Clone()
fb.Parent = game.Workspace
fb.CFrame = root.CFrame
bv.Parent = fb

game.Debris:AddItem(fb, fireballLifetime)

fb.Touched:Connect(function(hit)
	if hit.Parent.Name == player.Name then return end
	
	if hit.Parent:FindFirstChild("Humanoid") then
		hit.Parent.Humanoid.Health -= fireballDamage
	end
end)

wait(cooldown)
canshoot = true

end)

Add a body force to counteracts the effects of gravity. I also saw your other post on functions so here is a function taken from the BodyForce dev hub to do exactly that.

local function setGravity(part, g)
	local antiGravity = part:FindFirstChild("AntiGravity")
	if g == 1 then
		-- Standard gravity; destroy any gravity-changing force
		if antiGravity then
			antiGravity:Destroy()
		end 
	else
		-- Non-standard gravity: create and change gravity-changing force
		if not antiGravity then
			antiGravity = Instance.new("BodyForce")
			antiGravity.Name = "AntiGravity"
			antiGravity.Archivable = false
			antiGravity.Parent = part
		end
		antiGravity.Force = Vector3.new(0, part:GetMass() * workspace.Gravity * (1 - g), 0)
	end
end

Use it to set gravity to 0

setGravity(fireball,0)--part = fireball, g = 0 for 0 zero gravity

Honestly I’d just increase the MaxForce to at least 50000. 3000 is a very low number, and I doubt your fireball is very small.