Im trying to make a gun to my game, and i made this script:
-- Algumas variaveis --
local pistola = script.Parent
local hole = pistola.Hole
local mouse = game.Players.LocalPlayer:GetMouse()
-- Lista de Valores --
local ammo = 12
local maxAmmo = 64
local damage = 20
local headshotDamage = 50
local range = 100
local coolDown = 0.5
-- impedir spamming --
local spam = false
-- Mudar o rato --
pistola.Equipped:Connect(function()
mouse.Icon = "rbxassetid://358948941"
end)
pistola.Unequipped:Connect(function()
mouse.Icon = ""
end)
-- Disparo --
pistola.Activated:Connect(function()
if spam == false then
spam = true
pistola.Handle.Disparo:Play()
local bullet = Instance.new("Part")
bullet.Size = Vector3.new(range,0.25,0.25)
local ray = Ray.new(hole.CFrame.Position, (mouse.Hit.Position - hole.CFrame.Position).Unit*range)
local hit, position = workspace:FindPartOnRay(ray, game.Players.LocalPlayer.Character)
local distance = (pistola.Handle.CFrame.p - position).magnitude
bullet.CFrame = CFrame.new(pistola.Handle.CFrame.p, position) * CFrame.new(0,0, distance/2)
bullet.Transparency = 0.5
bullet.CanCollide = false
bullet.Anchored = true
bullet.Parent = game.Workspace
bullet.Orientation = hole.Orientation
bullet.Position = hole.Position
game:GetService("Debris"):AddItem(bullet, 0.5)
spam = false
end
end)
Ignore the parts were i speak portuguese :P But then i start recieving this error: 18:30:18.806 - Hole is not a valid member of Tool
idk what's happening, could you pls help me?
Also send a real answer, not a comment.

2 comments
What is hole and is it a child of what ever script.Parent is?
it's either the hole didn't load in or the hole isn't a child of Tool, if it is, try using pistola:WaitForChild("Hole")