-- Rotate character to face water
local Goal = {
CFrame = CFrame.new(
Character.HumanoidRootPart.Position,
Vector3.new(
fishingSpot.PrimaryPart.Position.X,
Character.HumanoidRootPart.Position.Y,
fishingSpot.PrimaryPart.Position.Y
)
)
}
local Tween = TweenService:Create(Character.HumanoidRootPart, TweenInfo.new(), Goal)
Tween:Play()
Not too sure if what I’m saying is helpful in any capacity, but just for the sake of clarification: is it intentional that you’re feeding a Y coordinate to where a Z coordinate is expected? That goes for your lookAt argument where the third number of the vector (Z) is being given a Y.
Vector3.new(
fishingSpot.PrimaryPart.Position.X,
Character.HumanoidRootPart.Position.Y,
fishingSpot.PrimaryPart.Position.Y -- This says Y, not Z
)
local target_CF = fishingSpot.CFrame * CFrame.new(0, 0, 5) --//Might need to be negative Z
local root_CF = Character.HumanoidRootPart.CFrame
Character.HumanoidRootPart.CFrame = CFrame.new(root_CF.p, Vector3.new(target_CF.X, root_CF.p.Y, target_CF.Z)