This script is in startercharacter scripts
local tweenService = game:GetService("TweenService")
local Camera = workspace.CurrentCamera
local Player = game.Players.LocalPlayer
local Character = Player.Character
local Root = Character:WaitForChild("HumanoidRootPart")
local RArm = Character:FindFirstChild("Right Shoulder", true)
local LArm = Character:FindFirstChild("Left Shoulder", true)
local YOffset = RArm.C0.Y
local YOffset2 = LArm.C0.Y
local CFNew, CFAng = CFrame.new, CFrame.Angles
local asin = math.asin
game:GetService("RunService").RenderStepped:Connect(function()
local CameraDirection = Root.CFrame:toObjectSpace(Camera.CFrame).lookVector
if RArm and LArm then
if Character.Humanoid.RigType == Enum.HumanoidRigType.R15 then
RArm.C0 = CFNew(0, YOffset, 0) * CFAng(0, -asin(CameraDirection.x), 0) * CFAng(asin(CameraDirection.y), 0, 0)
LArm.C0 = CFNew(0, YOffset, 0) * CFAng(0, -asin(CameraDirection.x), 0) * CFAng(asin(CameraDirection.y), 0, 0)
elseif Character.Humanoid.RigType == Enum.HumanoidRigType.R6 then
RArm.C0 = CFNew(1, 0.5, 0) * CFAng(0,math.rad(90),0) * CFAng(0, 0, asin(CameraDirection.y))
LArm.C0 = CFNew(-1, 0.5, 0) * CFAng(0,math.rad(-90),0) * CFAng(0, 0, -asin(CameraDirection.y))
end
end
end)
game.ReplicatedStorage.Look.OnClientEvent:Connect(function(otherPlayer, LArmCFrame, RArmCFrame)
local RArm = otherPlayer.Character:FindFirstChild("Right Shoulder", true)
local LArm = otherPlayer.Character:FindFirstChild("Left Shoulder", true)
if RArm and LArm then
tweenService:Create(RArm, TweenInfo.new(.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false, 0), {C0 = RArmCFrame}):Play()
tweenService:Create(LArm, TweenInfo.new(.5, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false, 0), {C0 = LArmCFrame}):Play()
end
end)
while wait(1) do
game.ReplicatedStorage.Look:FireServer(RArm.C0)
game.ReplicatedStorage.Look:FireServer(LArm.C0)
end
This script is in serverscriptservice, and there is a remote event called "Look" in replicatedstorage
game.ReplicatedStorage.Look.OnServerEvent:Connect(function(player, LArmCFrame, RArmCFrame)
for key, value in pairs(game.Players:GetChildren()) do
if value ~= player and (value.Character.LeftArm.Position - player.Character.LeftArm.Position).Magnitude < 50 then
if value ~= player and (value.Character.RightArm.Position - player.Character.RightArm.Position).Magnitude < 50 then
game.ReplicatedStorage.Look:FireClient(value, player, LArmCFrame, RArmCFrame)
end
end
end
end)
