Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Having trouble making a client only script server sided. Help?

Asked by
icecar 13
4 years ago

I'm making a script that requires a remote event and im having trouble figuring out why it doesn't work. Heres the code:

Local Script:

local ReplicatedStorage = game:GetService("ReplicatedFirst")
local HeadRotation = ReplicatedStorage:WaitForChild("HeadRotation")

HeadRotation:FireServer()

Script:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local HeadRotation = Instance.new("RemoteEvent", ReplicatedStorage)
HeadRotation.Name = ("HeadRotation")

local function HeadRotationFired(player)
    local CFNew, CFAng, CFtoObjectSpace = CFrame.new, CFrame.Angles, CFrame.new( ).toObjectSpace
local asin, pi, hpi = math.asin, math.pi, math.pi / 2

local Plr= game.Players.LocalPlayer

game:GetService("RunService").RenderStepped:Connect(function()
    if Plr.Character then
        local Root, Neck, Humanoid, Camera = Plr.Character:FindFirstChild("HumanoidRootPart"), Plr.Character:FindFirstChild("Neck", true), Plr.Character:FindFirstChild("Humanoid"), workspace.CurrentCamera
        if Root and Neck and Humanoid and Camera.CameraSubject then
            local R6 = Humanoid.RigType == Enum.HumanoidRigType.R6
            if Camera.CameraSubject.Parent == Plr.Character then
                local CameraDirection = CFtoObjectSpace(Root.CFrame, Camera.CFrame).lookVector.unit
                Neck.C0 = CFNew(Neck.C0.p) * CFAng(0, -asin(CameraDirection.x), 0) * (R6 and CFAng(-hpi + asin(CameraDirection.y), 0, pi) or CFAng(asin(CameraDirection.y), 0, 0))
            else
                Neck.C0 = R6 and CFNew(Neck.C0.p) * CFAng(-hpi, 0, pi) or CFNew(Neck.C0.p)
            end
        end
    end
end)
end

HeadRotation.OnServerEvent:Connect(HeadRotationFired)

The head rotation script itself is not mine but everything else I did.

0
Use remote functions, not events. Troxure 87 — 4y

Answer this question