My script is working technically. But he always faces the opposite way you are. I've tried rotating the turtle, Changing the part he faces the same direction as. but it just doesnt work . What am i doing wrong?

Pet Script

local serverStorage = game:GetService("ServerStorage")
local pet = serverStorage:FindFirstChild("Turtle")
local event = game:GetService("ReplicatedStorage"):FindFirstChild("PetEvent")

local function givePet(player)
	if player then
		local char = player.Character
		if char then
			local humroot = char:FindFirstChild("HumanoidRootPart")
			local head = char:FindFirstChild("Head")
			local NewPet = pet:Clone()
			NewPet.Parent = char
			
			local bodypos = Instance.new("BodyPosition",NewPet)
			bodypos.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
			
			local bodygyro = Instance.new("BodyGyro",NewPet)
			bodygyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
			
			while wait() do
				bodypos.Position = humroot.Position + Vector3.new(4,3,4)
				bodygyro.CFrame = head.CFrame 
			end
		end
	end
end

event.OnServerEvent:Connect(function(plr)
	local char = plr.Character or plr.CharacterAdded:Wait()
	if char then
		givePet(plr)
	end
end)

It also a Union in case that matters.