
Key RequiredUniversal

-- LocalScript (dentro de StarterPlayer.StarterPlayerScripts)
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
local Camera = workspace.CurrentCamera
-- Configurações
local MAX_STAMINA = 100
local RUN_SPEED = 20
local WALK_SPEED = 16 -- Velocidade padrão do Roblox
local RUN_FOV = 85
local NORMAL_FOV = 70 -- FOV padrão do Roblox
local STAMINA_DECREASE_AMOUNT = 8
local STAMINA_DECREASE_INTERVAL = 2 -- segundos
local STAMINA_REGEN_AMOUNT = 5
local STAMINA_REGEN_INTERVAL = 1 -- segundo
-- Variáveis de estado
local currentStamina = MAX_STAMINA
local isRunning = false
local lastStaminaDecreaseTime = 0
local lastStaminaRegenTime = 0
-- Criar a UI
local playerGui = Player:WaitForChild("PlayerGui")
-- ScreenGui
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "StaminaUI"
screenGui.Parent = playerGui
-- Frame da barra de stamina (fundo)
local staminaFrame = Instance.new("Frame")
staminaFrame.Name = "StaminaFrame"
staminaFrame.Size = UDim2.new(0.3, 0, 0.03, 0) -- 30% da largura da tela, 3% da altura
staminaFrame.Position = UDim2.new(0.35, 0, 0.05, 0) -- Centralizado na parte superior
staminaFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
staminaFrame.BorderSizePixel = 0
staminaFrame.Parent = screenGui
-- Barra de stamina (preenchimento)
local staminaBar = Instance.new("Frame")
staminaBar.Name = "StaminaBar"
staminaBar.Size = UDim2.new(1, 0, 1, 0) -- Começa cheia dentro do Frame
staminaBar.Position = UDim2.new(0, 0, 0, 0)
staminaBar.BackgroundColor3 = Color3.fromRGB(0, 255, 0) -- Cor verde
staminaBar.BorderSizePixel = 0
staminaBar.Parent = staminaFrame
-- Botão de correr
local runButton = Instance.new("TextButton")
runButton.Name = "RunButton"
runButton.Size = UDim2.new(0.08, 0, 0.08, 0) -- Pequeno quadrado
runButton.Position = UDim2.new(0.85, 0, 0.8, 0) -- Canto inferior direito
runButton.BackgroundColor3 = Color3.fromRGB(0, 0, 0) -- Preto
runButton.TextColor3 = Color3.fromRGB(255, 255, 255) -- Texto branco
runButton.Text = "Correr"
runButton.Font = Enum.Font.SourceSansBold
runButton.TextSize = 18
runButton.BorderSizePixel = 0
runButton.Parent = screenGui
-- Função para atualizar a barra de stamina
local function updateStaminaBar()
local percentage = currentStamina / MAX_STAMINA
staminaBar:TweenSize(UDim2.new(percentage, 0, 1, 0), "Out", "Quad", 0.1, true)
-- Mudar a cor da barra dependendo da stamina
if currentStamina > MAX_STAMINA / 2 then
staminaBar.BackgroundColor3 = Color3.fromRGB(0, 255, 0) -- Verde
elseif currentStamina > MAX_STAMINA / 4 then
staminaBar.BackgroundColor3 = Color3.fromRGB(255, 255, 0) -- Amarelo
else
staminaBar.BackgroundColor3 = Color3.fromRGB(255, 0, 0) -- Vermelho
end
end
-- Função para iniciar a corrida
local function startRunning()
if currentStamina > 0 then
isRunning = true
Humanoid.WalkSpeed = RUN_SPEED
Camera.FieldOfView = RUN_FOV
runButton.Text = "Walk" -- Mudar texto do botão
lastStaminaDecreaseTime = os.time() -- Resetar tempo para começar a diminuir
end
end
-- Função para parar de correr
local function stopRunning()
isRunning = false
Humanoid.WalkSpeed = WALK_SPEED
Camera.FieldOfView = NORMAL_FOV
runButton.Text = "Run" -- Mudar texto do botão
lastStaminaRegenTime = os.time() -- Resetar tempo para começar a regenerar
end
-- Conectar o botão de correr
runButton.MouseButton1Click:Connect(function()
if isRunning then
stopRunning()
else
startRunning()
end
end)
-- Loop principal do jogo (rodando a cada frame)
RunService.RenderStepped:Connect(function()
if Humanoid.Health > 0 then -- Apenas se o personagem estiver vivo
if isRunning then
-- Diminuir stamina se o personagem estiver andando e correndo
if Humanoid.MoveDirection.Magnitude > 0 then -- Verifica se o personagem está se movendo
local currentTime = os.time()
if currentTime - lastStaminaDecreaseTime >= STAMINA_DECREASE_INTERVAL then
currentStamina = math.max(0, currentStamina - STAMINA_DECREASE_AMOUNT)
updateStaminaBar()
lastStaminaDecreaseTime = currentTime
if currentStamina == 0 then
stopRunning() -- Parar de correr se a stamina acabar
end
end
else
-- Se estiver parado enquanto correndo, não diminui stamina, mas também não regenera automaticamente aqui
-- A regeneração só acontece quando isRunning é falso
end
else
-- Regenerar stamina
local currentTime = os.time()
if currentTime - lastStaminaRegenTime >= STAMINA_REGEN_INTERVAL then
currentStamina = math.min(MAX_STAMINA, currentStamina + STAMINA_REGEN_AMOUNT)
updateStaminaBar()
lastStaminaRegenTime = currentTime
end
end
end
end)
-- Inicializar a barra de stamina
updateStaminaBar()
print("Funcionou")



Why would you use this script? I use for fun :/
It seems useless Especially when you're just limiting yourself