the script is:
local tool = script.Parent
local player = script.Parent.Parent
if player:findFirstChild(“tool”) then
if player:FindFirstChild(“Shirt”) then
player.Shirt.ShirtTemplate = 1217784679
end
end
the script is:
local tool = script.Parent
local player = script.Parent.Parent
if player:findFirstChild(“tool”) then
if player:FindFirstChild(“Shirt”) then
player.Shirt.ShirtTemplate = 1217784679
end
end
Okay, So first of all you trying to locate “Shirt” in a player instance which doesn’t exist, it’s on the player’s character. Also, you shouldn’t use if player:FindFirstChild("tool") then
because there is a better way.
The question is this in a local script or a server sided script so that I can help you
Its a normal script. Does it have to be a local script?
No it does not have to be a local script it is better to have it as a sever script, because all players can see the changes. Let me make a script for you to understand and learn from. give me a moment please
local Tool = script.Parent ---Locate your tool instance here
Tool.Equipped:Connect(function()
local AllPlayers = game:GetService("Players") --- Locate all players in game so we can locate the player holding the tool
local CurrentPlayer = AllPlayers:GetPlayerFromCharacter(Tool.Parent)
if not CurrentPlayer then----Repeat the line above to make sure we get the player
return
else--- if the player is found this line works
local Character = CurrentPlayer.Character or CurrentPlayer.CharacterAdded:Wait() --- locate the player, and if not found wait until it is found
if Character then -- Check if theres a character
local Shirt = Character:FindFirstChildWhichIsA("Shirt")-- locate shirt on player
local Pants = Character:FindFirstChildWhichIsA("Pants")-- locate pants on player
Shirt.ShirtTemplate = ""---here you would fill in what id you want
Pants.PantsTemplate = ""---here you would fill in what id you want
end
end
end)
Tell me if this works if not give me the errors, this goes in a server script in the tool
Try this:
local Tool = script.Parent
Tool.Equiped:Connect(function()
local Char = Tool.Parent
local Shirt = Char:FindFirstChildWhichIsA("Shirt")
Shirt.ShirtTemplate = "1234" -- Put ID here
-- if you want the pants to do this. Otherwise delete this code
local Pants = Char:FindFirstChildWhichIsA("Pants")
Pants.PantsTemplate = "1234" -- Put ID here
end)
I forgot the Equipped:Connect
in the old version try this one out
local Tool = script.Parent
Tool.Equipped:Connect(function()
local Character = script.Parent
local Shirt = Character:FindFirstChildOfClass("Shirt")
local Pants = Character:FindFirstChildOfClass("Pants")
if Shirt then
Shirt.ShirtTemplate = "rbxassetid://0" --Change 0.
end
if Pants then
Pants.PantsTemplate = "rbxassetid://0" --Change 0.
end
end)
Why all the unecessary code? Also FindFirstChildOfClass()
is more performant than FindFirstChildWhichIsA()
, since the former looks for a child of a specific class whereas the latter looks for a child which inherits from the specified class.