I am using this script for my Giver:
local debounce = false function getPlayer(humanoid) local players = game.Players:children() for i = 1, #players do if players[i].Character.Humanoid == humanoid then return players[i] end end return nil end function onTouch(part) local human = part.Parent:findFirstChild("Humanoid") if (human ~= nil) and debounce == false then debounce = true local player = getPlayer(human) if (player == nil) then return end game.Lighting.HyperLaser:clone().Parent = player.Backpack wait(5) debounce = false end end script.Parent.Touched:connect(onTouch)
This used to work but all the sudden it doesnt work at all :( I have no idea what is wrong can you guys help me?
There are a couple of mistakes, I did a complete rewrite of the script, made it more efficient, and more organized and easier to read. Consider reading the wiki this will help you a lot.
I have explained each and every thing to the best of my ability, hope I make everything clear for you.
Here's the script:
local debounce = false function onTouch(hit) local player = game.Players:GetPlayerFromCharacter(hit.Parent) -- getting the player from his character if player.Character and not debounce then -- checking if the player's character exists and the debounce == false local char = player.Character -- defining character for later use debounce = true local weapon = game.Lighting.HyperLaser:clone() weapon.Parent = char -- parenting the weapon to character wait(5) debounce = false end end script.Parent.Touched:connect(onTouch)
Note: I highly recommend using ServerStorage, rather than Lighting, but I used Lighting anyway since you already had it like that.
Hope it helps!