Motor6D Animation Not Playing

I’m trying to make a Motor6D animation play when the player uses their weapon. However the animation plays but the actual weapon is in the wrong position and doesn’t move.

This is the code that initializes the player and sets up the Motor6D. The Motor6D is copied from the rig that was used to animate it and then has the Parts changed. This is a regular script under ServerScriptService.

Code
local function makeKiller(player, killer, skin)
	local character = player.Character or player.CharacterAdded:Wait()
	local weapon = RS.Killers[killer].Weapons.Basic.Weapon:Clone()
	weapon.Parent = character
	local canAttack = Instance.new("BoolValue")
	canAttack.Name = "canAttack"
	canAttack.Value = true
	canAttack.Parent = weapon
	local canAttack = Instance.new("BoolValue")
	canAttack.Name = "canAbility"
	canAttack.Value = true
	canAttack.Parent = weapon
	local canAttack = Instance.new("BoolValue")
	canAttack.Name = "canDetect"
	canAttack.Value = true
	canAttack.Parent = weapon
	local canAttack = Instance.new("BoolValue")
	canAttack.Name = "lungeBlocked"
	canAttack.Value = false
	canAttack.Parent = weapon
	weapon:SetAttribute("Killer", killer)
	local stats = script.playerStat:Clone()
	stats.Parent = SS.KillerStats
	stats.Name = player.Name
	local character = player.Character or player.CharacterAdded:Wait()
	weldHitbox(character, "Slasher")
	character.controlHandleKlr.Disabled = false
	for _,obj in pairs(SS.WeaponCode:GetChildren()) do
		if obj:IsA("RemoteEvent") or obj:IsA("RemoteFunction") then
			local new = obj:Clone()
			new.Parent = weapon.Handle
		end
	end
	local ToolGrip = RS.Assets.Killer_Rig.Weapon.Handle.Motor6D:Clone()
	ToolGrip.Parent = weapon.Handle
	ToolGrip.Part0 = character.RightHand
	ToolGrip.Part1 = weapon.Handle
	ToolGrip.Enabled = false
	task.wait()
	ToolGrip.Enabled = true
	for _,v in pairs(SS.WeaponCode[killer]:GetChildren()) do
		local newScript = v:Clone()
		newScript.Parent = weapon.Handle
		if newScript:IsA("Script") or newScript:IsA("LocalScript") then
			newScript.Disabled = false
		end
	end
	Functions.drawAvatar(character, "Slasher", "Killers", skin)
	handleSpawn(workspace.Map.KillerSpawns, character)
	stats = require(stats)
	stats:KlrInit(killer)
end

This is the animation script which is in a module that locally plays the animation.

Code
local myWeapon = character:WaitForChild("Weapon")
local humanoid = character.Humanoid
local animator = humanoid.Animator
local idleAnim = animator:LoadAnimation(myWeapon.Idle)
local lungeAnim = animator:LoadAnimation(myWeapon.Lunge)

local KillerInfo = require(RS.Modules.KillerInfo)
local myKiller = myWeapon:GetAttribute("Killer")

local lunging = false

idleAnim:Play()

local KillerFunctions = {}

function KillerFunctions:EndStab()
	lunging = false
	myWeapon.Handle.killerStab:InvokeServer("End")
	myHitBox:HitStop()
	lungeAnim:Stop()
	idleAnim:Play()
end

function KillerFunctions:Stab()
	--HUD.killerAbilities.basicAttack.cooldown.timeLeft.Text = ""
	--HUD.killerAbilities.basicAttack.cooldown.timeLeft.Visible = true
	--HUD.killerAbilities.basicAttack.cooldown.Visible = true
	local canAttack = myWeapon.Handle.killerStab:InvokeServer("Start")
	if canAttack then
		lunging = true
		idleAnim:Stop()
		lungeAnim:Play()
		myHitBox:HitStart()
		repeat
			task.wait()
		until lunging == false or myWeapon.lungeBlocked.Value == true
		if lunging then
			KillerFunctions:EndStab()
		end
	end
end

I tried playing the animation on the server as well but it still didn’t position properly. I’m not sure what to do I have never used Motor6D before! Thank you for reading!