Ad
Log in to vote
0

Weirdest error of all time, "attempt to index upvalue 'player'(a nil value)?

Asked by 5 months ago

I have a GUI that gives a player a tool but it cant do it with FE on so I decided to use a RemoteEvent to trigger it and then give it to the player.

Here is the script(Located unter ServerScriptService)

local replicatedstorage = game:GetService("ReplicatedStorage")
local givetool = replicatedstorage:WaitForChild("RemoteEvent")
local player = game.Players.LocalPlayer

givetool.OnServerEvent:connect(function()
    local weapon1 = replicatedstorage:WaitForChild("Thompson")
    weapon1:Clone().Parent = player.Backpack
    weapon1:Clone().Parent = player.StarterGear
end)

Here is the local script (Located under StarterGui.SurfaceGUI)

local replicatedstorage = game:GetService("ReplicatedStorage")
local givetool = replicatedstorage:WaitForChild("RemoteEvent")
local button = script.Parent:WaitForChild("Play")

button.MouseButton1Click:connect(function()
    givetool:FireServer()
end)

The local script fires after pressing a button and then it triggers but it errors where it says "weapon1:Clone().Parent = player.Backpack. It says basically cant upvote player because its a nil value.

0
You can't use LocalPlayer in a server script. http://wiki.roblox.com/index.php?title=API:Class/Players/LocalPlayer biglulu 0 — 5mo

1 answer

Log in to vote
1
Answered by
xEraGamer 121
5 months ago

You can't use game.Players.LocalPlayer in a server script as you did in the above examples. Instead, the player is automatically the first argument in .OnServerEvent function.

local replicatedstorage = game:GetService("ReplicatedStorage")
local givetool = replicatedstorage:WaitForChild("RemoteEvent")

givetool.OnServerEvent:connect(function(player)
    local weapon1 = replicatedstorage:WaitForChild("Thompson")
    weapon1:Clone().Parent = player.Backpack
    weapon1:Clone().Parent = player.StarterGear
end)

1
Thanks man, youre a life saver! GottaHaveAFunTime 132 — 5mo
Ad

Answer this question



Ad