I made this script for a tool with a sound and particle emitter in the tool
when ever i activate the tool, i get the error "Sound is not a valid member of tool" is there anything wrong with the script? (The error sends me to line 3 by the way)
Edit: The solution was to add ":WaitForChild()" as the sound didn't load in time.
local tool = script.Parent local character = tool.Parent local sound = tool.Sound local debounce = false local on = false local aura = tool.ParticleEmitter tool.Activated:Connect(function() if debounce == false then debounce = true if on == false then on = true local soundclone = sound:Clone() local auraclone = aura:Clone() soundclone.Name = "Kaioken" auraclone.Name = "Kaioken" soundclone.Parent = character.Torso auraclone.Parent = character.Torso soundclone:Play() debounce = false else local children = character.Torso:GetChildren() for i = 1, #children do print(i, children[i].Name) end end end end)
The problem here is that you've named "Sound" to something else. Or "Sound" isn't even in the tool at all.
Check in the explorer and see what "Sound" is named too. (if it was called Namo it would be "local sound = tool.Namo") and if the Sound object doesn't exist just create one.
There is nothing wrong with the script. However, you may need to add your own sound to the tool.
Make sure to name it "Sound", as that is what the script is looking for.
Or, if there's already a sound in the tool, rename it to "Sound", or change line 3 to:
local sound = tool:FindFirstChildOfClass("Sound")
As follows:
local tool = script.Parent local character = tool.Parent local sound = tool:FindFirstChildOfClass("Sound") local debounce = false local on = false local aura = tool.ParticleEmitter tool.Activated:Connect(function() if debounce == false then debounce = true if on == false then on = true local soundclone = sound:Clone() local auraclone = aura:Clone() soundclone.Name = "Kaioken" auraclone.Name = "Kaioken" soundclone.Parent = character.Torso auraclone.Parent = character.Torso soundclone:Play() debounce = false else local children = character.Torso:GetChildren() for i = 1, #children do print(i, children[i].Name) end end end end)