Welcome! Share code as fast as possible.

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local maxStamina = 100
local minStamina = 20




--Creating/resetting stats when character spawns in
Players.PlayerAdded:Connect(function(player)
	player.CharacterAdded:Connect(function(character)
		--Creating stat folder
		local statFolder = Instance.new("Folder")
		statFolder.Name = "Stats"
		statFolder.Parent = character
		
		--Creating stamina
		local stamina = Instance.new("IntValue")
		stamina.Name = "Stamina"
		stamina.Value = maxStamina
		stamina.Parent = statFolder
		
		local running = Instance.new("BoolValue")
		running.Name = "Running"
		running.Value = false
		running.Parent = statFolder
	end)

end)


local UpdateStamina = ReplicatedStorage.UpdateStamina
local function tryToContinueStaminaUsage(player, useStamina)
	local character = player.Character
	local statFolder = character:WaitForChild("Stats")
	local stamina = statFolder.Stamina.Value
	
	if useStamina < stamina then
		stamina -= useStamina
		print(stamina)
		--UpdateStamina:FireClient(player, stamina)
		return true
	else
		stamina = 0
		--UpdateStamina:FireClient(player, stamina)
		return false
	end
end

local function tryToUseStamina(player, useStamina)
	local character = player.Character
	local statFolder = character:WaitForChild("Stats")
	local stamina = statFolder.Stamina.Value
	
	if stamina < minStamina then
		--Shake bar event
		return false
	else
		return tryToContinueStaminaUsage(player, useStamina)
	end
end

local function regenStamina(player, addStamina)
	
end



--What happens when a player tries to run
--Returns resulting stamina
local StartRun = ReplicatedStorage.StartRun
local runStaminaUsage = 1
StartRun.OnServerEvent:Connect(function(player)
	local character = player.Character
	local statFolder = character:WaitForChild("Stats")
	local stamina = statFolder.Stamina.Value
	local running = statFolder.Running.Value
	
	tryToUseStamina(player, stamina, runStaminaUsage)
	running = true
	
	while running do
		if not tryToContinueStaminaUsage(player, runStaminaUsage) then
			running = false
		end
		task.wait()
		print(stamina)
	end
end)


local EndRun = ReplicatedStorage.EndRun
EndRun.OnServerEvent:Connect(function(player)
	local character = player.Character
	local statFolder = character:WaitForChild("Stats")
	local stamina = statFolder.Stamina.Value
	local running = statFolder.Running.Value
	print("Turned off running")
	running = false
end)