Playing an animation somehow causes my character to phase through some objects

title says it all.
example: (sorry for external media.)
robloxapp-20241027-2044263.wmv (7.4 MB)
if you need the code:

code

in a server script in workspace:

game.ReplicatedStorage.Vault.OnServerEvent:Connect(function(player,lookvector)
	local character = player.Character
	local hum = character.Humanoid
	print(hum.JumpPower)
	hum:LoadAnimation(character.MovementAnims.Vault):Play()
	hum.HipHeight = 2
	character.MomentumModifiers.VaultInstant.Value = 20
	character.MomentumModifiers.VaultAcceleration.Value = 10
	print("set vaultaccel")
	task.wait(0.5)
	character.MomentumModifiers.VaultInstant.Value = 0
	hum.HipHeight = 0
end)
game.ReplicatedStorage.SkateBegin.OnServerEvent:Connect(function(player)
	local character = player.Character
	local hum = character.Humanoid
	hum:LoadAnimation(character.MovementAnims.SkateBegin):Play()
	task.wait(0.2)
	hum:LoadAnimation(character.MovementAnims.SkateStand):Play()
	character.MomentumModifiers.Skating.Value = 20
	character.TopSpeed.Value = 300
	character.Skateboard.Trail.Enabled = true
	character.Skateboard.CheckerTrail.Enabled = true
end)
game.ReplicatedStorage.SkateEnd.OnServerEvent:Connect(function(player)
	task.wait(0.3)
	local character = player.Character
	local hum = character.Humanoid
	for i,v in pairs(hum.Animator:GetPlayingAnimationTracks()) do
		if v.Name == "SkateStand" then
			v:Stop()
		end
	end
	hum:LoadAnimation(character.MovementAnims.SkateEnd):Play()
	character.MomentumModifiers.Skating.Value = 0
	character.TopSpeed.Value = 10
	character.Skateboard.Trail.Enabled = false
	character.Skateboard.CheckerTrail.Enabled = false
end)

in a script in startercharacterscripts:

local continuousmovementcounter = 0
local continuousmovementval = script.Parent.MomentumModifiers.ContinuousMovement
local vaultaccelval = script.Parent.MomentumModifiers.VaultAcceleration
local vaultinstantval = script.Parent.MomentumModifiers.VaultInstant
local skateval = script.Parent.MomentumModifiers.Skating
while true do
	task.wait(0.1)
	if script.Parent.Humanoid.MoveDirection.Magnitude > 0.1 then
		continuousmovementcounter += 0.1
		
	elseif continuousmovementval.Value > 0 then
		continuousmovementval.Value -= 0.1
	end
	if continuousmovementcounter >= continuousmovementval.Value and continuousmovementval.Value < 10 then
		continuousmovementval.Value += 1
		continuousmovementcounter = 0
	end
	if script.Parent.MomentumModifiers.VaultAcceleration.Value > 0.1 then
		script.Parent.MomentumModifiers.VaultAcceleration.Value -= 0.2
	end
	script.Parent.Humanoid.WalkSpeed = 20 + continuousmovementval.Value + vaultaccelval.Value + skateval.Value + vaultinstantval.Value
end

in a local script in startercharacterscripts:

local character = script.Parent
local skating = false
game.UserInputService.InputBegan:Connect(function(input)
	if input.KeyCode == Enum.KeyCode.Space then
		if character.Humanoid:GetState() == Enum.HumanoidStateType.Running then
			local walllower = workspace:Raycast(character.HumanoidRootPart.Position,character.HumanoidRootPart.CFrame.LookVector*2)
			local wallupper = workspace:Raycast(character.HumanoidRootPart.Position + Vector3.new(0,5,0),character.HumanoidRootPart.CFrame.LookVector*2 + Vector3.new(0,5,0))
			print(walllower)
			print(wallupper)
			if walllower.Instance and not wallupper and skating == false then
				print("trying to vault")
				game.ReplicatedStorage.Vault:FireServer(character.HumanoidRootPart.CFrame.LookVector)
			end
		end
	end
	if input.KeyCode == Enum.KeyCode.LeftShift then
		if skating == false then
			print("begin")
			skating = true
			game.ReplicatedStorage.SkateBegin:FireServer()
			repeat
				wait(0.1)
			until skating == false
			game.ReplicatedStorage.SkateEnd:FireServer()
		end
	end
end)
game.UserInputService.InputEnded:Connect(function(input)
	if input.KeyCode == Enum.KeyCode.LeftShift then
		if skating == true then
			print("end")
			skating = false
		end
	end
end)