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

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

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.

1 comment

0

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

1 answer

✓ Accepted answer

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 comment

1

Thanks man, youre a life saver!

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