Hi my names is pixeluted and i want to detect if player have tool here is my script
local player = game.Players.LocalPlayer
local BackPack = player.Backpack
BackPack.ChildAdded:Connect(function()
print("Yes")
if BackPack:FindFirstAncestor("Test") then
print("Finded")
local Text = Instance.new("TextLabel",script.Parent.Handler)
Text.Text = "Test"
Text.Name = "TestTool"
local What = Instance.new("StringValue",Text)
What.Name = "What"
What.Value = "Test"
local Value = Instance.new("IntValue",Text)
Value.Name = "Value"
Value.Value = 20
end
end)
Please elaborate on what you mean by the player has a tool. I’m not quite sure what your code is doing and don’t know the functionality you’re looking for.
Please, I want to help, but you have to elaborate further than “player got in Backpack tool”, it’s not a proper sentence and I don’t understand what you mean by it. I understand you’re from the Czech Republic so it might not be so easy to articulate what you want in English, but I’m unclear on what you’re asking for.
For checking if an instance contains a specific child, we can use Instance:FindFirstChild(Name)
I think you may have confused this with Instance:FindFirstAncestor(), which you used in your code.
If you want to check if the tool when it gets added to Backpack, use this:
local Player = game:GetService("Players").LocalPlayer
local Backpack = Player:WaitForChild("Backpack")
local ToolName = "Test"
Backpack.ChildAdded:Connect(function(Tool)
if Tool.Name == ToolName then
print("This is the tool I'm looking for.")
end
end)
If you want to simply check the tools already in the backpack, you would use a for loop. This would give you all the tools named “Test”.
local Player = game:GetService("Players").LocalPlayer
local Backpack = Player:WaitForChild("Backpack")
local ToolName = "Test"
for _, Tool in pairs(Backpack:GetChildren()) do
if Tool.Name == ToolName then
print("This is the tool I'm looking for.")
end
end
Finally, if you only want one tool with the name “Test” if there are multiple named that, you could use:
local Player = game:GetService("Players").LocalPlayer
local Backpack = Player:WaitForChild("Backpack")
local ToolName = "Test"
local Tool = Backpack:FindFirstChild(ToolName)
if Tool then
print("This is the tool I'm looking for.")
end