I was wondering how i would go about making a script to wait until a tool is in my player.Character
I have already tried using .Equipped, but that makes the function fire when the tool is in his inventory, i want to check if the player has the tool in his hands
You could do this which is more reliable. Add this into a local script. Then move the local script into starter gui(if u don’t then this wont work.)
local Character = game.Players.LocalPlayer.Character
if Child:IsA("Tool") then
if Child.Name == "ToolNameHere" then
--- do stuff
This will check every time a child is added. So it’ll check if it is a tool. Then it will check if it’s your desired tool name. Then you can make it do the stuff.
Thanks a lot! ive been trying to figure this out I really appreciate it!
Haha, no problem! Have a good day!
The Equipped event is fired every time the player equips a new tool, I think that would be better to use since it has less impact on the server.
He said he has already tried to use .equipped but he wanted to check if the player has the tool in their hands.
local players = game:GetService("Players")
local backpack = player:WaitForChild("Backpack")
local tools = backpack:GetChildren()
for i, tool in pairs(tools) do
--do stuff here
That is exactly what equipped is for. Your script is just checking the backpack of the player.
I know. But he said he wanted to use something esle thats not .Equipped.
Equipped is only fired when the tool is equipped not when the tool is simply in the player’s backpack.
I think the OP wanted to detect when any Tool instance was given to the player, not a specific one.
Reply: Yeah, but that’s not your fault.
I’m not sure their post is a little misleading and they seem to be conflating equipped with inventory.