Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
COMMUNITY QUESTION

How to make your camera connect to your head?

After the update of ROBLOX where everything revolves around the HumanoidRoot part including the camera, when you crouch, your body moves, but not your point of view. Or, if it's possible to make the crouch script make your HumanoidRoot part move as well, that'd be helpful.



--[ Setup ]--
-- Locations
local StealthLava = script.Parent
local Player = game.Players.LocalPlayer
local Avatar = Player.Character
local Mouse = Player:GetMouse()

-- Emptys
local Hold = nil

--[ Get Items ]--
local Humanoid = Avatar:WaitForChild("Humanoid")
local Torso = Avatar:WaitForChild("Torso")
local RH = Torso:WaitForChild("Right Hip")
local LH = Torso:WaitForChild("Left Hip")

local RL = Avatar:WaitForChild("Right Leg")
local LL = Avatar:WaitForChild("Left Leg")

local RJ = Avatar:WaitForChild("HumanoidRootPart"):WaitForChild("RootJoint")

--[ Functions ]--
function CreateWeld(Part, CF)
	local w = Instance.new("Weld")
	w.Name = "LegWeld"
	w.Parent = Torso
	w.Part0 = Torso
	w.Part1 = Part
	w.C1 = CF
end

function StandUp()
	-- Right Leg
	RH.Part1 = RL

	-- Left Leg
	LH.Part1 = LL

	-- Delete Welds
	for i, s in pairs(Torso:GetChildren()) do
		if (s.Name == "LegWeld") and (s.ClassName == "Weld") then
			s:Destroy()
		end
	end

	-- Raise Character
	RJ.C0 = CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
	RJ.C1 = CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
end

--[ Hooks ]--
-- Controls
Mouse.KeyDown:connect(function(Key)
	if (Hold ~= nil) then return end
	if (string.upper(Key) ~= "C") and (string.lower(Key) ~= " ") then return end
	Hold = true

	if (Torso:FindFirstChild("LegWeld") == nil) and (string.lower(Key) ~= " ") then
		-- Right Leg
		RH.Part1 = nil
		CreateWeld(RL, CFrame.new(-0.5, 0.75, 1))

		-- Left Leg
		LH.Part1 = nil
		CreateWeld(LL, CFrame.new(0.5, 0.495, 1.25) * CFrame.Angles(math.rad(90), 0, 0))
		
		-- Lower Character
		RJ.C0 = CFrame.new(0, -1.25, 0) * CFrame.Angles(0, 0, 0)
		RJ.C1 = CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
		
		-- Slow Walk Speed
		Humanoid.WalkSpeed = 25
	else
		StandUp()

		-- Normal Walk Speed
		Humanoid.WalkSpeed = 34
	end

	wait(0.5)

	Hold = nil
end)

-- Value Changed
Humanoid.Changed:connect(function()
	if (Humanoid.WalkSpeed > 5) and (Hold == nil) then StandUp() end
end)

1 answer

Not sure what you mean, but you could set the CameraSubject to the Head for Torso:

Workspace.CurrentCamera.CameraSubject = Avatar.Torso -- or Head

This discussion is preserved as it was. New answers, comments, and votes are closed.