Animation not equal to animation used ingame

I am trying to make an idle animation, and it get messed up when loading. Any advice?

Here is the code that loads in the animation. It clearly plays the animation, just a wierd version of the same.

local WorldViewModel = tool.WorldView.BodyAttach
local IdleAnimation = tool:WaitForChild("Idle")

tool.Equipped:Connect(function()
	local plr = PlayerService:GetPlayerFromCharacter(tool.Parent) -- ignore
	local char = plr.Character or plr.CharacterAdded:Wait()
	local anim = char.Humanoid:LoadAnimation(IdleAnimation)
	anim:Play()

Ive tried a few different types of animations, not just this one. They are all a mess

try this:

local WorldViewModel = tool.WorldView.BodyAttach
local IdleAnimation = tool:WaitForChild("Idle")

tool.Equipped:Connect(function()
	local plr = PlayerService:GetPlayerFromCharacter(tool.Parent) -- ignore
	local char = plr.Character or plr.CharacterAdded:Wait()
	local anim = char.Humanoid:LoadAnimation(IdleAnimation)
    anim.Priority = Enum.AnimationPriority.Idle
	anim:Play()

That worked, but why? What does this state do?

i added this line:

anim.Priority = Enum.AnimationPriority.Idle

without this, the currrent idle anim is interfering with yours, so by adding the priority, ur idle anim ovverrides the roblox one

Aaaah, makes sense. Thanks for all the help!