I'm trying to get a cube to rotate old cube simulator style, but it just falls into the void?

It just instantly falls and doesn’t rotate at all

Code:

for _,v in pairs (game.Workspace.Cube:GetDescendants()) do
	if v:IsA("BasePart") then
		v.Anchored = false
		local weld = Instance.new("WeldConstraint")
		weld.Part0 = v
		weld.Part1 = game.Workspace.Cube.CubeMain
		weld.Parent = v
	end
end

while true do
	wait(5)
	game.TweenService:Create(game.Workspace.Cube.CubeMain.BodyGyro, TweenInfo.new(5),{
		CFrame = CFrame.new(game.Workspace.Cube.CubeMain.Position + Vector3.new(math.random(-1,1),math.random(-1,1),math.random(-1,1)),game.Workspace.Cube.CubeMain.Position)
	
	}):Play()
	
end

You unanchored CubeMain as well. Is this even intended?

I don’t think the bodygyro works if the part is anchored?

I suppose so, but the thing is there is nothing that stops it from falling, i.e. gravity. Could you possibly negate the gravity?

Maybe, I tried bodyforce and adjusted the y value but it still wouldn’t work

BodyVelocity set at 0, 0, 0 will make it stay afloat iirc

a falsery and a lie and an untruth

Should have made myself more clearer. Adding it before unanchoring will make it stay afloat.
https://gyazo.com/247abe9a5e6973098b03825650f62fbb
https://gyazo.com/3d9126220e463217ae151bd040d5fa66

local x = Instance.new("BodyVelocity")
x.Velocity = Vector3.new(0, 0, 0)
x.Parent = script.Parent
script.Parent.Anchored = false

It still doesn’t work, I already have the bodyvelocity in the cube without adding it through a script