Why is my rocket getting flung?

Hello! I’m trying to make a simple rocket, but it gets flung. Here’s the code:

local engine = script.Parent.Engine
local fuel = math.round(script.Parent.Fuel.Mass*2)

function ignition(t)
	wait(t)
	local bv = Instance.new("BodyGyro")
	bv.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
	bv.D = 1
	bv.P = 1000
	
	bv.Parent = script.Parent.Engine
	while true do
		bv.CFrame *= script.Parent.Capsule.CFrame
		wait()
	end
end

ignition(5)

I normally don’t use body movers, so I have no idea what I’m doing. Here’s a video: