Character not facing direction of part

Hi, so i made a fan obstacle that when the player touches, he gets launched upwards into the air. This works fine except for when i start rotating the fan. If i turn it diagonally, the player will still get launched diagonally of course, but he won’t face that direction for some reason. Any help? The MoveTo part is anchored and is facing upwards.

    --------------------------------------
    Root.CFrame = self._MoveTo.CFrame
    --------------------------------------
    Settings:SetAttribute("Moveset", false)
    --------------------------------------
    Animation.Priority = Enum.AnimationPriority.Action4
    Animation:Play(0)
    --------------------------------------
    local Sound = Sounds.Obstacles.Ventilator:Clone()
    Sound.Parent = Root
    Sound:Play()
    --------------------------------------
    local Attachment = Instance.new("Attachment", Root)
    Attachment.Position = Vector3.new(0, 0, 0)
    Attachment.Name = "VentilatorAttachment"
    --------------------------------------
    local Velocity = Instance.new("LinearVelocity", Root)
    Velocity.Name = "VentilatorVelocity"
    Velocity.VectorVelocity = Direction * 120
    Velocity.Attachment0 = Attachment
    Velocity.MaxForce = math.huge
    --------------------------------------
    Debris:AddItem(Sound, 0.5)
    Debris:AddItem(Attachment, 0.25)
    Debris:AddItem(Velocity, 0.25)
    --------------------------------------

A local script example of facing a part.

local player = game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local root = char:WaitForChild("HumanoidRootPart")
local target = workspace:WaitForChild("TargetPart")

root.CFrame = CFrame.lookAt(root.Position, target.Position)

It doesn’t work for some reason. Keep in mind that what i want is for the character to have the exact same rotation as the MoveTo part.

Oh, I did misunderstand that …

local player = game.Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local hrp = char:WaitForChild("HumanoidRootPart")
local part = workspace:WaitForChild("TargetPart")

hrp.CFrame = CFrame.new(hrp.Position, hrp.Position + part.CFrame.LookVector)

Keep in mind this is just an example. Yours will look a bit different …
This is just how to make that call.

It still won’t work sadly.

    Root.CFrame = CFrame.new(Root.Position, Root.Position + self._MoveTo.CFrame.UpVector)

Where did that come from … it would be, self._MoveTo.CFrame.LookVector)

I don’t know if your .self is right but, I do know …
hrp.CFrame = CFrame.new(hrp.Position, hrp.Position + part.CFrame.LookVector)
Will make the player face the same direction as the part (as far as the Y).

It’s still won’t work sadly. zetztz

Must be something else … Still have this in the studio as a test working fine. Let me take a good look at this script …

Replace this line: Root.CFrame = self._MoveTo.CFrame
With: Root.CFrame = CFrame.lookAt(Root.Position, Root.Position + Direction)

untested.