Problem with animation

so i have an animation that picks up the plate. i put the M6D in the uppertorso and unfortunately the m6d ends up being inside the upper torso. ty!!!

local module = {}

function module.startAnim()
	local PlateM6DEvent = game.ReplicatedStorage:WaitForChild("PlateM6DEvent")
	
	PlateM6DEvent.OnClientEvent:Connect(function(randomPlate)
		local p = game.Players.LocalPlayer
		local c=p.Character
		local hum:Humanoid = c.Humanoid
		local pickupanim, pickupIdle = script.pickupAnim, script.pickupIdle
		local pickupanimtrack, pickupIdletrack = hum.Animator:LoadAnimation(pickupanim), hum.Animator:LoadAnimation(pickupIdle)
		local M6D:Motor6D = c.UpperTorso.plateM6D


		M6D.Part0 = c.UpperTorso
M6D.Part1 = randomPlate


		script.Parent.Parent.Visible = false
		pickupanimtrack:Play()
		pickupanimtrack:GetMarkerReachedSignal("pauseAnim"):Connect(function()
			pickupanimtrack:AdjustSpeed(0)
		end)
	end)
end

return module

problem:

its supposed to look like this: 0:00-0:06

I didn’t really look at the code, the only thing that was bothering me was how you’re using a module for exactly one function, it doesn’t seem like a performant method or a useful one.

If you’re trying to make an animation that places a plate down on the table in front of them, just set the plate’s CFrame to the humanoid root part’s and translate it front of it a bit.