Tweening the object's CFrame always moves it to the middle of the map

  1. What do you want to achieve?
    → The Tween should tween the object, independently from it’s orientation before the tween, to the orientation 0, 0, 0.

  2. What is the issue?
    → The problem is that the it tweens the object always to the middle of the map and doesn’t tween the orientation to 0, 0, 0

The Code:

	local RotateTween = TweenService:Create(workspace.TestPart, TweenInfo.new(3, Enum.EasingStyle.Quart, Enum.EasingDirection.InOut), {CFrame = CFrame.fromEulerAnglesXYZ(0, 0, 0)})

	RotateTween:Play()

Why are you using CFrame? Just use Orientation:

local RotateTween = TweenService:Create(workspace.TestPart, TweenInfo.new(3, Enum.EasingStyle.Quart, Enum.EasingDirection.InOut), {Orientation = Vector3.new(0, 0, 0)})

RotateTween:Play()

By the way, this is happening because you did not define the position, and the default is 0,0,0 if you want to use CFrame to do this, you will need to define the position of the part itself and then add the orientation:

local TweenService = game:GetService("TweenService")

local Part = workspace.TestPart
local RotateTween = TweenService:Create(Part, TweenInfo.new(3, Enum.EasingStyle.Quart, Enum.EasingDirection.InOut), {CFrame = Part.CFrame * CFrame.fromEulerAnglesXYZ(0, 0, 0)})

RotateTween:Play()