M
Description
FEATURES ARE LISTED BELOW: [✦] INFINITE STAMINA
GAMEForsaken
UPDATEDOct 15, 2026
ACCESSKeyless
PLATFORMDesktop & Mobile
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
--[[rscripts:analytics:start]]
-- Script analytics (enabled by the creator on rscripts.net).
-- Runs in its own thread and cannot affect the script below.
task.spawn(function()
pcall(function()
loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6ad15cea146860794215f84b"))()
end)
end)
--[[rscripts:analytics:end]]
--[[*
*If you enjoy the script, please consider liking the post.*
*It helps motivate me to release more open-source scripts*
*and keep existing ones updated.*
*MADE BY: [https://rscripts.net/@Yamis_Scripts]*
*]]
if game.PlaceId ~= 83645629621104 then
warn("Infinite stamina only supports Forsaken (PlaceId: 83645629621104).")
return
end
local plrs = game:GetService("Players")
local rs = game:GetService("ReplicatedStorage")
local ts = game:GetService("TweenService")
local lp = plrs.LocalPlayer
local pg = lp:WaitForChild("PlayerGui", 15)
local sys = rs:WaitForChild("Systems", 15)
local cs = sys:WaitForChild("Character", 15)
local sm = cs:WaitForChild("Game", 15):WaitForChild("Sprinting", 15)
local sp = require(sm)
local prev = pg:FindFirstChild("InfiniteStaminaCleanup")
local reran = prev and prev:IsA("BindableEvent")
if reran then
prev:Fire()
task.wait()
if prev.Parent then
prev:Destroy()
end
end
local ce = Instance.new("BindableEvent")
ce.Name = "InfiniteStaminaCleanup"
ce.Parent = pg
local rgb = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromHSV(0, 0.82, 1)),
ColorSequenceKeypoint.new(0.16, Color3.fromHSV(0.13, 0.85, 1)),
ColorSequenceKeypoint.new(0.33, Color3.fromHSV(0.33, 0.75, 1)),
ColorSequenceKeypoint.new(0.5, Color3.fromHSV(0.5, 0.75, 1)),
ColorSequenceKeypoint.new(0.67, Color3.fromHSV(0.64, 0.8, 1)),
ColorSequenceKeypoint.new(0.83, Color3.fromHSV(0.83, 0.75, 1)),
ColorSequenceKeypoint.new(1, Color3.fromHSV(1, 0.82, 1)),
})
local sweepInfo = TweenInfo.new(2.6, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true)
local full = UDim2.fromScale(1, 1)
local active = true
local oldLoss = sp.StaminaLoss
local stamEvent
local stamConn
local guiConn
local tempUi
local uiConns = {}
local fx = {}
local function gradTween(inst)
local oldGrad = inst:FindFirstChildOfClass("UIGradient")
local grad = oldGrad or Instance.new("UIGradient")
local oldColor = oldGrad and grad.Color
local oldOffset = oldGrad and grad.Offset
local oldRot = oldGrad and grad.Rotation
if not oldGrad then
grad.Name = "StaminaRainbow"
end
grad.Color = rgb
grad.Rotation = 0
grad.Offset = Vector2.new(-0.35, 0)
grad.Parent = inst
local tw = ts:Create(grad, sweepInfo, {Offset = Vector2.new(0.35, 0)})
tw:Play()
return function()
tw:Cancel()
if oldGrad then
if grad.Parent then
grad.Color = oldColor
grad.Offset = oldOffset
grad.Rotation = oldRot
end
else
grad:Destroy()
end
end
end
local function infText(lbl)
local oldTextAlpha = lbl.TextTransparency
local oldStrokeAlpha = lbl.TextStrokeTransparency
local inf = lbl:Clone()
inf:ClearAllChildren()
inf.Name = "Inf"
inf.AnchorPoint = Vector2.new(0, 0)
inf.Position = UDim2.fromScale(0, 0)
inf.Size = UDim2.fromScale(1, 1)
inf.BackgroundTransparency = 1
inf.Text = "Inf"
inf.TextColor3 = Color3.new(1, 1, 1)
inf.TextTransparency = 0
inf.TextStrokeTransparency = oldStrokeAlpha
inf.Visible = true
inf.ZIndex = lbl.ZIndex + 1
inf.Parent = lbl
local stopGrad = gradTween(inf)
local function hideText()
if lbl.TextTransparency ~= 1 then
lbl.TextTransparency = 1
end
if lbl.TextStrokeTransparency ~= 1 then
lbl.TextStrokeTransparency = 1
end
end
local textConn = lbl:GetPropertyChangedSignal("TextTransparency"):Connect(hideText)
local strokeConn = lbl:GetPropertyChangedSignal("TextStrokeTransparency"):Connect(hideText)
hideText()
return function()
textConn:Disconnect()
strokeConn:Disconnect()
stopGrad()
inf:Destroy()
if lbl.Parent then
lbl.TextTransparency = oldTextAlpha
lbl.TextStrokeTransparency = oldStrokeAlpha
end
end
end
local function clearFx(slot)
local effect = fx[slot]
if effect then
fx[slot] = nil
effect.clear()
end
end
local function bindBar(hud)
local bars = hud:FindFirstChild("Bars")
local stam = bars and bars:FindFirstChild("Stamina")
local bar = stam and stam:FindFirstChild("Bar")
local clip = bar and bar:FindFirstChild("Clipping")
local fill = clip and clip:FindFirstChild("Top")
local amt = stam and stam:FindFirstChild("Amount")
if not (fill and amt) then
return
end
if fx.bar and fx.bar.inst == stam then
return
end
clearFx("bar")
local oldClipSize = clip.Size
local oldFillSize = fill.Size
local oldFillColor = fill.ImageColor3
local stopInf = infText(amt)
fill.ImageColor3 = Color3.new(1, 1, 1)
local stopFillGrad = gradTween(fill)
local function keepFull()
if clip.Size ~= full then
clip.Size = full
end
if fill.Size ~= full then
fill.Size = full
end
end
local clipConn = clip:GetPropertyChangedSignal("Size"):Connect(keepFull)
local fillConn = fill:GetPropertyChangedSignal("Size"):Connect(keepFull)
keepFull()
fx.bar = {
owner = hud,
inst = stam,
clear = function()
clipConn:Disconnect()
fillConn:Disconnect()
stopInf()
stopFillGrad()
if fill.Parent then
fill.ImageColor3 = oldFillColor
clip.Size = oldClipSize
fill.Size = oldFillSize
end
end,
}
end
local function bindCtr(ctr)
if fx.center and fx.center.inst == ctr then
return
end
clearFx("center")
fx.center = {inst = ctr, clear = infText(ctr)}
end
local function bindDrain(dr)
if fx.drain and fx.drain.inst == dr then
return
end
clearFx("drain")
local img = dr:IsA("ImageLabel") or dr:IsA("ImageButton")
local frame = dr:IsA("Frame")
local oldColor
if img then
oldColor = dr.ImageColor3
dr.ImageColor3 = Color3.new(1, 1, 1)
elseif frame then
oldColor = dr.BackgroundColor3
dr.BackgroundColor3 = Color3.new(1, 1, 1)
end
local stopGrad = gradTween(dr)
fx.drain = {
inst = dr,
clear = function()
stopGrad()
if dr.Parent then
if img then
dr.ImageColor3 = oldColor
elseif frame then
dr.BackgroundColor3 = oldColor
end
end
end,
}
end
local function watchUi(ui)
if tempUi == ui then
return
end
for _, conn in uiConns do
conn:Disconnect()
end
table.clear(uiConns)
clearFx("bar")
clearFx("center")
clearFx("drain")
tempUi = ui
table.insert(uiConns, ui.ChildAdded:Connect(function(item)
if item.Name == "PlayerInfo" then
bindBar(item)
elseif item.Name == "CenterStaminaCounter" then
bindCtr(item)
elseif item.Name == "Drain" and item:IsA("GuiObject") then
bindDrain(item)
end
end))
table.insert(uiConns, ui.ChildRemoved:Connect(function(item)
if item.Name == "PlayerInfo" and fx.bar and fx.bar.owner == item then
clearFx("bar")
elseif item.Name == "CenterStaminaCounter" and fx.center and fx.center.inst == item then
clearFx("center")
elseif item.Name == "Drain" and fx.drain and fx.drain.inst == item then
clearFx("drain")
end
end))
local hud = ui:FindFirstChild("PlayerInfo")
local ctr = ui:FindFirstChild("CenterStaminaCounter")
local dr = ui:FindFirstChild("Drain")
if hud then
bindBar(hud)
end
if ctr then
bindCtr(ctr)
end
if dr and dr:IsA("GuiObject") then
bindDrain(dr)
end
end
local function holdStam(fromEvent)
local loss = sp.StaminaLoss
if type(loss) == "number" and loss ~= 0 then
oldLoss = loss
sp.StaminaLoss = 0
end
local maxStam = sp.MaxStamina
if type(maxStam) == "number" and type(sp.Stamina) == "number" and sp.Stamina ~= maxStam then
sp.Stamina = maxStam
if not fromEvent and sp.__staminaChangedEvent then
sp.__staminaChangedEvent:Fire(maxStam)
end
end
end
local function bindStam()
local sig = sp.StaminaChanged
if sig == stamEvent then
return
end
if stamConn then
stamConn:Disconnect()
end
stamEvent = sig
stamConn = sig and sig:Connect(function()
holdStam(true)
end)
end
ce.Event:Connect(function()
if not active then
return
end
active = false
if guiConn then
guiConn:Disconnect()
end
if stamConn then
stamConn:Disconnect()
end
for _, conn in uiConns do
conn:Disconnect()
end
clearFx("bar")
clearFx("center")
clearFx("drain")
if sp.StaminaLoss == 0 and type(oldLoss) == "number" then
sp.StaminaLoss = oldLoss
end
ce:Destroy()
end)
guiConn = pg.ChildAdded:Connect(function(item)
if item.Name == "TemporaryUI" then
watchUi(item)
end
end)
local ui = pg:FindFirstChild("TemporaryUI")
if ui then
watchUi(ui)
end
bindStam()
holdStam(false)
task.spawn(function()
while active do
bindStam()
holdStam(false)
task.wait(0.4)
end
end)
if reran then
print("Previous instance cleared; infinite stamina restarted.")
else
print("Infinite stamina running.")
end
Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place