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

How do I make a Part w/ a ClickDetector give me a tool?

Asked by 5 years ago

I want to make a Part that when I click on it, gives me a Sword. I'm using a normal script.

I receive this error when I play my game in Studio:

  • Workspace.Part.ClickDetector.Script:9: attempt to index local 'player' (a nil value)
clickDetector = script.Parent
giver = clickDetector.Parent
sword = game.ServerStorage.ClassicSword:Clone()



function giveSwordToPlayer()
    local player = game.Players.LocalPlayer
    local playerBackpack = player.Backpack
    sword.Parent = playerBackpack
end



clickDetector.MouseClick:Connect(giveSwordToPlayer())

Also if anyone has any valuable sources to expand my knowledge on Rbx.lua other than the new Robloxdev wiki, please let me know.

Thank you

1 answer

Log in to vote
1
Answered by 5 years ago

This is because LocalPlayer is nil on the server. It can only be used on the client. Luckily, the MouseClick event passes the player as a parameter.

local clickDetector = script.Parent
local giver = clickDetector.Parent
local sword = game.ServerStorage.ClassicSword:Clone()



local function giveSwordToPlayer(player) 
    local playerBackpack = player.Backpack
    sword.Parent = playerBackpack
end



clickDetector.MouseClick:Connect(giveSwordToPlayer) -- no extra brackets 
0
I understand now, thank you. ReynaldoVictarion 70 — 5y
0
Quick question if you don't mind, how would I apply this same concept to a Text Button in a gui? ReynaldoVictarion 70 — 5y
0
Do you have a Discord? User#19524 175 — 5y
0
Yes ReynaldoVictarion 70 — 5y
Ad

Answer this question