Not allow to changed value when its already changed

Im trying to add a delay for a stamina regen system after the stamina is decreased

When you constaly use stamina, it wont add a delay to it, I believe its because the previous function allow the stamina to regen, i can`t describe it better, here’s a video: https://gyazo.com/9a78bf2bda2a96c6cb55e081f1ec88b7

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local useStamina = ReplicatedStorage:FindFirstChild("useStamina")



useStamina.OnServerEvent:Connect(function(player, StaminaCost)
	print(StaminaCost)
	print("useStamina")
	local char = player.Character or player.CharacterAdded:Wait()
	local PlayerStats = char:FindFirstChild("PlayerStats")
	local Stamina = PlayerStats:FindFirstChild("Stamina")
	local allowStaminaRegen = PlayerStats:FindFirstChild("allowStaminaRegen")
	
	if StaminaCost > 0 and Stamina.Value - StaminaCost >= 0 then
		allowStaminaRegen = false
		print("regen off")
		Stamina.Value = Stamina.Value - StaminaCost
		wait(2)
		print("regen on")
		allowStaminaRegen = true
	end
	
end)
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local useStamina = ReplicatedStorage:FindFirstChild("useStamina")



useStamina.OnServerEvent:Connect(function(player, StaminaCost)
	print(StaminaCost)
	print("useStamina")
	local char = player.Character or player.CharacterAdded:Wait()
	local PlayerStats = char:FindFirstChild("PlayerStats")
	local Stamina = PlayerStats:FindFirstChild("Stamina")
	local allowStaminaRegen = PlayerStats:FindFirstChild("allowStaminaRegen")
	
	if StaminaCost > 0 and Stamina.Value - StaminaCost >= 0 and allowStaminaRegen.Value == true then
		allowStaminaRegen.Value = false
		print("regen off")
		Stamina.Value = Stamina.Value - StaminaCost
		wait(2)
		print("regen on")
		allowStaminaRegen.Value = true
	end
	
end)
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local useStamina = ReplicatedStorage:FindFirstChild("useStamina")



useStamina.OnServerEvent:Connect(function(player, StaminaCost)
	print(StaminaCost)
	print("useStamina")
	local char = player.Character or player.CharacterAdded:Wait()
	local PlayerStats = char:FindFirstChild("PlayerStats")
	local Stamina = PlayerStats:FindFirstChild("Stamina")
	local allowStaminaRegen = PlayerStats:FindFirstChild("allowStaminaRegen")
	
	if StaminaCost > 0 and Stamina.Value - StaminaCost >= 0 then
		Stamina.Value = Stamina.Value - StaminaCost
	end
	if allowStaminaRegen.Value == true then
		allowStaminaRegen.Value = false
		print("regen off")
		wait(2)
		print("regen on")
		allowStaminaRegen.Value = true
	end
	
end)
1 Like