Value's Get Printed an Increasing Amount of Times

Yes it’s me again with another problem, surprise!

image

Basically what your seeing is what’s being printed to a console whenever my gun “fires”, those large gap like margins you see, occur when you let go of the left mouse button and then press (hold) it again. Each time you do this the gun “fires” more times than it’s suppose to (went from x1 to x2 to x3). If you think you can figure out what’s going on please leave a reply, it would be greatly appreciated. Thanks for reading.

peace!

(unless you comment or somethin… then I’ll probably like reply back… yeah)

My Code:

local function handleAction(actionName, inputState, inputObject)
	-- Firing
	elseif actionName == Action_Fire then
		if Loaded then
			if Status == "Aiming" then
				-- Input Began
				if inputState == Enum.UserInputState.Begin then
					-- No Ammo
					if Ammo == 0 then
						GunEvent:FireServer("PlayAudio", Empty_Audio)
						Status = "Aiming"

					elseif Ammo	> 0 then
						Fire_Animation:Play()
						Status = "Firing"


						ConnectionOne = Fire_Animation:GetMarkerReachedSignal("FireEvent"):Connect(function(Hit)
							if Ammo == 0 then
								EndAnimations()

								local Down = UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2)
								if Down then
									Aim_Animation:Play()
									Status = "Aiming"
									Idle_Animation:Play()
									Status = "Idle"
								else
									Idle_Animation:Play()
									Status = "Idle"
								end
							end
							
							if Ammo > 0 then
								Ammo = Ammo - 1
							end
						
							GunEvent:FireServer("FireGun")
							GunEvent:FireServer("PlayAudio", Fire_Audio)
							Fire_Animation.Stopped:Wait(0.4)
							GunEvent:FireServer("FireGun")
						end)
					end


					-- Input Ended
				elseif inputState == Enum.UserInputState.End then
					local ButtonBeingHeld = UserInputService:IsMouseButtonPressed(Enum.UserInputType.MouseButton2)
					Fire_Animation:Stop()

					if ButtonBeingHeld then
						Aim_Animation:Play()
						Status = "Aiming"

					elseif not ButtonBeingHeld then
						Idle_Animation:Play()
						Status = "Idle"

					end
				end	
			end
		end
     end

-- Bind Actions
ContextActionService:BindAction(Action_Aim, handleAction, true, Enum.UserInputType.MouseButton2)
ContextActionService:BindAction(Action_Fire, handleAction, true, Enum.UserInputType.MouseButton1)
ContextActionService:BindAction(Action_Load, handleAction, true, Enum.KeyCode.F)
ContextActionService:BindAction(Action_Reload, handleAction, true, Enum.KeyCode.R)

Hi dude, not sure if I am fully grasping the problem here but I am not seeing a debounce anywhere apart from the animation:stopped (which wouldnt debounce anyway) - maybe that could be an issue?