So recently I've been making a role playing game and have made a framework for my guns. So for the ammo I thought to myself "Why not use a debounce to stop the player from firing more bullets until they press 'Reload'?". So I've written the script out but it doesn't seem to work, because after reloading the player is still unable to fire again after depleting their ammo.

local debounce = false

local cooldownTime = 0.7

script.Parent.Activated:Connect(function()
	if not debounce then
		debounce = true
		local shooting = game:GetService("Players").LocalPlayer.Character.Humanoid:LoadAnimation(script.Parent.Shoot)
		
		local sound = game:GetService("StarterPack").Shotgun.shooting
		
		sound:Play()
		shooting:Play()
		wait(cooldownTime)
		Ammo = Ammo-1
		debounce = false
		if Ammo < 1 then
			debounce = true
		else
				if Ammo > 1 then
					debounce = false
				end
		end
	end
end)

This section of the code is where the player's input (AKA the mouse click) is detected, and where the ammo value is located.

local debounce = false
local eq=false
local cooldownTime = 1
local mouse=game.Players.LocalPlayer:GetMouse()
script.Parent.Equipped:Connect(function(mouse)
eq=true
end)
script.Parent.Unequipped:Connect(function(mouse)
eq=false
end)
    mouse.KeyDown:Connect(function(key)
        if not debounce and key== "r" and eq then
            debounce = true
            local reload = game:GetService("Players").LocalPlayer.Character.Humanoid:LoadAnimation(script.Parent.Reload)
            local sound = game:GetService("StarterPack").Shotgun.reloading
            reload:Play()
			reload.Looped = false
			sound:Play()
			Ammo = Ammo + 1
            wait(cooldownTime)
            debounce = false
        end 
    end)

This section is where the player hits R in order to reload and the ammo value is refilled.

Any tips, ideas, additional coding, or a link to a post relating to this kind of stuff would be greatly appreciated!