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)