Animation keeps colliding with the ground

Hello, I’m trying to make a pizza tower taunt game on roblox but the breakdance animation keeps colliding with the ground. I’ve tried changing the torso’s position in the animation and it still collided with the ground for some reason. And yes, I’ve tried finding a solution in the DevForum but none of them helped.

How it looks like:
anim thing

If you want to look at the scrips, here:

Client:

local Player = game:GetService("Players").LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local UserInputService = game:GetService("UserInputService")

local RootPart = Character:WaitForChild("HumanoidRootPart")
local Head = Character:WaitForChild("Head")
local Humanoid = Character:WaitForChild("Humanoid")

local Remotes = script.Parent:WaitForChild("Remotes")
local FaceEvents = Remotes.FaceEvents
local Poses = script.Parent:WaitForChild("Poses")
local Animations = script.Parent:WaitForChild("Animations")

local BreakdanceAnimation = Humanoid:LoadAnimation(Animations.break_dance)
BreakdanceAnimation:AdjustWeight(0, 0)

local KeyToTaunt = Enum.KeyCode.E
local TauntCooldown = 0.4
local TimeToCheckIfStillHolding = 0.6
local TimeToFireBreakdanceEvent = 1

local CanTaunt = true
local CanBreakdance = false
local IsHolding = false
local IsBreakdancing = false

local DefaultFace = Head:WaitForChild("face").Texture

function Taunt()
	local AnimationTable = Poses:GetChildren()
	local PickedAnimation = AnimationTable[math.random(1, #AnimationTable)]
	local Animation = Humanoid:LoadAnimation(PickedAnimation)
	
	if Animation.Name == "spongebob" then
		--Head.face.Texture = "rbxassetid://12983048698"
		FaceEvents.spongebob:FireServer()
	end
	
	if Animation.Name == "peter_griffin_idle_pose" then
		--Head.face.Texture = "rbxassetid://12983086715"
		FaceEvents.petergriffin:FireServer()
	end
	
	if Animation.name == "death" then
		--Head.face.Texture = "rbxassetid://4820464519"
		FaceEvents.death:FireServer()
	end

	Animation:Play()

	task.delay(0.4, function()
		Animation:Stop()
		
		if Head.face.Texture ~= DefaultFace then
			--Head.face.Texture = DefaultFace
			FaceEvents.default:FireServer()
		end
	end)
end

UserInputService.InputBegan:Connect(function(Key, IfChatting)
	local KeyInput = Key.KeyCode

	if KeyInput == KeyToTaunt and CanTaunt then
		IsHolding = true

		CanTaunt = false

		Humanoid.AutoRotate = false
		RootPart.Anchored = true
		Remotes.Taunt:FireServer()
		Taunt()

		task.delay(TauntCooldown, function()
			Humanoid.AutoRotate = true
			RootPart.Anchored = false
			CanTaunt = true
		end)

		wait(TimeToCheckIfStillHolding)

		if IsHolding and CanTaunt then
			CanBreakdance = true
			BreakdanceAnimation:Play()
			BreakdanceAnimation:AdjustSpeed(1)

			wait(TimeToFireBreakdanceEvent)

			if CanBreakdance then
				CanBreakdance = false
				IsBreakdancing = true
				BreakdanceAnimation:AdjustSpeed(1.5)
				Remotes.Breakdance:FireServer(true)
			end
			
		end
	end
	
end)

UserInputService.InputEnded:Connect(function(Key, IfChatting)
	local KeyInput = Key.KeyCode

	if KeyInput == KeyToTaunt then
		IsHolding = false
		
		if CanBreakdance then
			CanBreakdance = false
		end	
	end
	
	if BreakdanceAnimation.IsPlaying then
		BreakdanceAnimation:Stop()
	end

	if IsBreakdancing and KeyInput == KeyToTaunt then
		IsBreakdancing = false
		BreakdanceAnimation:Stop()
		Remotes.StoppedBreakdancing:FireServer()
	end

end)

Server:

local ServerStorage = game:GetService("ServerStorage")

local Remotes = script.Parent:WaitForChild("Remotes")
local FaceEvents = Remotes.FaceEvents
local Sounds = script.Parent:WaitForChild("Sounds")
local Resources = ServerStorage:WaitForChild("Resources")

local Character = script.Parent.Parent
local RootPart = Character:WaitForChild("HumanoidRootPart")
local Head = Character:WaitForChild("Head")

local TauntImage = Resources.Taunt.TauntImage

local ClonedSounds = Instance.new("Folder", RootPart)
ClonedSounds.Name = "ClonedSounds"

local RNG = Random.new()

local DefaultFace = Head:WaitForChild("face").Texture
local SpongebobFace = "rbxassetid://12983048698"
local PeterGriffinFace = "rbxassetid://12983086715"
local DeathFace = "rbxassetid://4820464519"

local Boombox
local BreakdanceStart
local BreakdanceMusic

function PlaySound(SoundName, Parent, MaxSpeed : number, LowestSpeed : number)
	local RandomPlaybackSpeed = RNG:NextNumber(LowestSpeed, MaxSpeed)

	local Sound = SoundName:Clone()
	Sound.Name = "ClonedSound"
	Sound.Parent = Parent
	Sound.PlaybackSpeed = RandomPlaybackSpeed
	Sound:Play()

	task.delay(tonumber(Sound.Ended:Wait()), function()
		Sound:Destroy()
	end)

end

FaceEvents.default.OnServerEvent:Connect(function()
	Head.face.Texture = DefaultFace
end)

FaceEvents.spongebob.OnServerEvent:Connect(function()
	Head.face.Texture = SpongebobFace
end)

FaceEvents.petergriffin.OnServerEvent:Connect(function()
	Head.face.Texture = PeterGriffinFace
end)

FaceEvents.death.OnServerEvent:Connect(function()
	Head.face.Texture = DeathFace
end)

Remotes.Taunt.OnServerEvent:Connect(function()
	local TemporaryTauntImage = TauntImage:Clone()
	TemporaryTauntImage.Parent = RootPart
	TemporaryTauntImage.Image:Emit(1)

	PlaySound(Sounds.Taunt, ClonedSounds, 0.9, 1.1)

	wait(0.3)

	TemporaryTauntImage:Destroy()
end)

Remotes.Breakdance.OnServerEvent:Connect(function()
	Boombox = Resources.Boombox:Clone()
	Boombox.Position = RootPart.Position - Vector3.new(-2.5, 2, -4)
	Boombox.Rotation = RootPart.Rotation
	Boombox.Parent = Character

	BreakdanceStart = Sounds.BreakdanceStart:Clone()
	BreakdanceStart.Parent = ClonedSounds
	BreakdanceMusic = Sounds.BreakdanceMusic:Clone()
	BreakdanceMusic.Parent = ClonedSounds

	BreakdanceStart:Play()
	BreakdanceMusic:Play()
end)

Remotes.StoppedBreakdancing.OnServerEvent:Connect(function()
	Boombox:Destroy()
	BreakdanceStart:Destroy()
	BreakdanceMusic:Destroy()
end)

temporarily set all body parts except humanoidrootpartand accessories to cancollide false. hrp doesn’t move during an animation (I think) should keep you from falling through the earth