Make NPC model rotate/aim while moving with Humanoid:MoveTo()

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? I want an NPC to be able to move with
    Humanoid:MoveTo() while aiming on a position without canceling the “:MoveTo()”

  2. What is the issue? I try use Model:PivotTo() on the NPC but it cancels the “:MoveTo()”

  3. What solutions have you tried so far? I found this with a solution but I dont understand anything about it

In conclusion, I want the NPC model to be able to rotate or aim while being able to move using the Humanoid:MoveTo()

local rep = game.ReplicatedStorage
local exc = game.ReplicatedStorage.Stuff.ExclamanationMark

rep:WaitForChild("Remotes"):WaitForChild("MoveCommand").OnServerEvent:Connect(function(plr,mcframe, right)
	local rig = game.Workspace.Rig
	if right then
		if game.Workspace:FindFirstChild("ExclamanationMark") then game.Workspace.ExclamanationMark:Destroy() end
		local excc = exc:Clone()
		excc.Position = mcframe.Position
		excc.Parent = game.Workspace
		rig.Humanoid:MoveTo(mcframe.Position)
	else
		local targetCFrame = CFrame.new(rig.PrimaryPart.Position, mcframe.Position)
		local _, targetY, _ = targetCFrame:ToOrientation()

		local targetYDegrees = math.deg(targetY)
		print("Target Y orientation (degrees):", targetYDegrees)

		local currentCFrame = rig:GetPivot()
		local position = currentCFrame.Position
		local currentX, _, currentZ = currentCFrame:ToOrientation()

		-- Create a new CFrame with only the Y orientation changed
		local newCFrame = CFrame.new(position) * CFrame.Angles(currentX, math.rad(targetYDegrees), currentZ)
		rig:PivotTo(newCFrame)
	end
end)

CFrame is very confusing to me, please give some explanation on it, thank you.

1 Like

Just try and delete the else statement

1 Like

what? no, right click to move. Left click to make the npc rotate, but it cancels the :MoveTo() from the right click, I dont want it to cancel

1 Like