How would I go about in making Player Arms Follow the Camera

(Note That is this NOT a Viewmodel)

I want to try and figure out how to Get the Player’s Arms to Follow the Camera like a Viewmodel when in First Person,


Looking at Posts and Videos, they are either:

  • How to make Arms Visible

  • Cloning Arms and Following the Camera

  • Viewmodel Tutorial


For Better Context:

When in Third Person, The Player would See this:

When The Player is Holding a Weapon, In Third Person, It will look like this:

But In First Person, The Player Arms will Follow the Camera until they Aren’t in Third Person:

I just cant seem to find a Relevant Topic on this, nor an Explanation on what to do.


So I Already know about Motor6D and with C0 and C1.

The only issue is that I’m not sure how to do the math functions nor am I able Position the Limbs properly to the Camera, Every thing I do would either:

  • Flings the Player a Billion studs away.
  • Limb floats in the Air away from Camera and moves further away.

This Video is from Setting the CameraSubject to the Arm After it fling away from the Character.

I have used ToObjectSpace and Inverse, But they still gave me this effect.

How should I do this?

local RunService = game:GetService("RunService") -- RunService

local Camera = workspace.CurrentCamera -- Camera
local Plr = game.Players.LocalPlayer -- LocalPlayer
local Char = Plr.Character -- Character

local Torso = Char:WaitForChild("Torso") -- Torso Holding the Motor6D's

local RS = Torso:WaitForChild("Right Shoulder") -- Right Arm
local LS = Torso:WaitForChild("Left Shoulder") -- Left Arm

while true do
	RunService.RenderStepped:Wait() -- This is so it doesn't spam the Output and not Crash
    Char["Right Arm"].LocalTransparencyModifier = 0; Char["Left Arm"].LocalTransparencyModifier = 0

	RS.C0 = RS.C0 -- What do I do here? This Part is where I'm confused, I Have tried a bunch of things
end

What should I do?

Maybe you could make use of the new IK solver?

I’m not sure what you mean by this, can you explain?

Yeah, I’m more of referring to placing Player Arms to the Camera, like with viewmodels

Yep. You could just have it solved through IK, to constantly follow the camera lol.

Still Wondering about this.

local runService = game:GetService("RunService")
local character = script.Parent

local VM = game.ReplicatedStorage.ViewModelStorage.VM:Clone()
VM.Parent = workspace.CurrentCamera
local leftShoulder = character.Torso["Left Shoulder"]
local rightShoulder = character.Torso["Right Shoulder"]

runService.RenderStepped:Connect(function()
	character:FindFirstChild("Right Arm").LocalTransparencyModifier = 0
	character:FindFirstChild("Left Arm").LocalTransparencyModifier = 0
	VM:SetPrimaryPartCFrame(workspace.CurrentCamera.CFrame + workspace.CurrentCamera.CFrame.LookVector * 0)
	local dist = (workspace.CurrentCamera.CFrame.Position - character.Head.Position).Magnitude
	if dist < 1 then
		rightShoulder.Part0 = VM.Torso
		leftShoulder.Part0 = VM.Torso
	else
		rightShoulder.Part0 = character.Torso
		leftShoulder.Part0 = character.Torso
	end
end)

I found this in youtube, FPS from scratch
Arms follow camera in first person and act normal + default in third person

im on vacation so i can’t test it

1 Like

So will the Arms still work as normal when doing this?

I guess, I can’t test right now.
Here’s some tutorial to figure out

still not by me

1 Like

Wow, That is Actually very Helpful, Thanks!

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.