RootPart Anchoring Problem

Whenever I anchor a HumanoidRootPart in midair and then unanchor it, the camera bugs out and doesn’t follow the player anymore unless it’s Shiftlock.

Video:

Is there a source to this problem and is there any solution to fix/work around it?

Are you using any sort of custom camera implementation/any script that alters the Camera? If so, please show it

I investigated a little after reading this and found out this script caused the camera to bug out completely. It is a slightly camera delay.

local run = game:GetService("RunService")

local cam = game.Workspace.CurrentCamera

local plr = game.Players.LocalPlayer
local char = plr.Character or plr.CharacterAdded:Wait()

local head = char:WaitForChild("Head")
local hrp = char:WaitForChild("HumanoidRootPart")
local hum = char:WaitForChild("Humanoid")

local cam_offset = CFrame.new()
local lerp_time = 0.15

local function update_cam(dt)
	cam_offset = cam_offset:Lerp(CFrame.new() + (hrp.CFrame + Vector3.new(0, 1.5, 0)):ToObjectSpace(head.CFrame).Position, lerp_time)

	hum.CameraOffset = cam_offset.Position
end

run.RenderStepped:Connect(update_cam)

Even when disabled, anchoring and unanchoring the RootPart causes some funky behavior for a few seconds.

Try setting the target of the player to the Character’s head instead of HumanoidRootPart if you plan on moving the root part around and don’t want it to be focused.

Dumb question, but how do I set the target of the player?

CurrectCamera.Target
actually it’s called camerasubject now so I see your confusion
also the default is humanoid, not rootpart. humanoid sets it to the rootpart though. You have to manually set it through a script, like

local camera = Workspace.CurrentCamera
local localPlayer = game:GetService("Players").LocalPlayer
local headpart = localPlayer:WaitForChild("Head")
camera.CameraSubject = head

I have not tested the script but it should focus on the head and not the RootPart, even if you move the RootPart

I worked around anchoring entire and just used LinearVelocity to hold the character in place instead