That’s because it gets the tool from rep storage. Not the tool in the player’s backpack. Because when the tool is equipped it’s in the player’s backpack.
Here’s a simple script that fixes it
local Player = game.Players.LocalPlayer
local BackPack = Player.Backpack
local Tool = BackPack:WaitForChild("LightStick")
Tool.Equipped:Connect(function()
script.Parent.Frame.Visible = true
end)
local players = game:GetService("Players")
local player = players.LocalPlayer or players.PlayerAdded:Wait()
local backpack = player:WaitForChild("Backpack")
local lightStick = backpack:WaitForChild("LightStick")
lightStick.Equipped:Connect(function()
script.Parent.Frame.Visible = true
end)
The handle of a tool doesn’t have the Equipped/Unequipped events, the tool instance itself does.