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

The remote event script is still not working and I don't know why. Help?

Ive changed up the code a tiny bit but I don't know whats wrong.

Script:

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local HeadRotation = Instance.new("RemoteEvent")
HeadRotation.Parent = 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

    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

HeadRotation.OnServerEvent:Connect(HeadRotationFired)

Local script:

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

HeadRotation:FireServer()

5 comments

0

Pls be more specific what isn't working

0

There is no need to define the plr variable. Use the parameter player that gets passed automatically when a client communicates with a server.

0

You also can not get a localplayer on the server

0

Argument, not parameter

0

many apologies

1 answer

The server can't use LocalPlayer because the server isn't client-oriented.

In your server script, remove line 10 and replace lines 12 and 13 with this:

	if player.Character then
        	local Root, Neck, Humanoid, Camera = player.Character:FindFirstChild("HumanoidRootPart"), player.Character:FindFirstChild("Neck", true), player.Character:FindFirstChild("Humanoid"), workspace.CurrentCamera

You may then replace line 16 with:

if Camera.CameraSubject.Parent == player.Character then

player is the name of the parameter used in your function to receive the player object argument passed by OnServerEvent.

6 comments

0

For some reason its not working

0

Getting any errors?

0

nope no errors.

0

R6 is a condition in your code. A condition evaluates to either true or false.

0

So what do I need to changed

0

That argument.

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