I created a similar question recently, about a script I created not working with a custom character, andI worked on my script and got it almost working, but the offset of the head rotation is off, and I can't seem to fix it. script:
local player = game.Players.LocalPlayer local character = player.character local head = character.Head local uppertorso = character.UpperTorso local lowertorso = character.LowerTorso local camera = game.Workspace.CurrentCamera local uis = game:GetService("UserInputService") local rs = game:GetService("RunService") function headMove() local camangle = camera.CFrame.lookVector character.UpperTorso.Neck.Transform = CFrame.Angles(camangle.y,camangle.x, 0) print(character.UpperTorso.Neck.Transform) end rs.Stepped:Connect(headMove)
And here is how it is behaving (GIF is low quality, sorry)
https://media.giphy.com/media/1Be1NCGYjZIzmuRzw6/giphy.gif