GOAL: A player touches a certain part to get a tool from a UI (activates when player touches part). Then they make their way to another location to change their tool (another UI), by removing the tool from their backpack and giving them a new one from ReplicatedStorage.
--Player touches a part, UI tool giver pop up and closes when player picks a tool. Player moves to touch another part to have another UI pop up. This new UI allows them to remove their old tool, giving them a new tool.
ISSUE: All works perfectly, the problem is when a player has a tool equipped when they touch the part, the UI breaks. It neither gives a tool nor closes.
Shows UI on Touch -script
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 script.Parent:clone().Parent = player.PlayerGui wait(5) debounce = false wait() end end script.Parent.Parent.Touched:connect(onTouch)
Tool Giver GUI -local script
local button = script.Parent local tool = game.ReplicatedStorage:WaitForChild("Mug") local plr = game.Players.LocalPlayer button.MouseButton1Click:Connect(function() tool:Clone().Parent = plr.Backpack script.Parent.Parent.Parent.Enabled = false end)
Takes and Replaces Tools -local script
local button = script.Parent local tool = game.Players.LocalPlayer.Backpack.Mug local plr = game.Players.LocalPlayer local new = game.ReplicatedStorage.Water button.MouseButton1Click:Connect(function() tool:Destroy() new:Clone().Parent = game.Players.LocalPlayer.Backpack script.Parent.Parent.Parent.Enabled = false end)
CONCLUSION: How do I make it so the UI Tool Giver does NOT break when a player approaches with a tool equipped.