local Rayfield = loadstring(game:HttpGet('https://[Log in to view URL]'))()
local Window = Rayfield:CreateWindow({
Name = "Forsaken | Made By tekitaway",
Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default).
LoadingTitle = "Forsaken | Locked.cc",
LoadingSubtitle = "by tekitaway",
Theme = "Ocean", -- Check https://[Log in to view URL]
DisableRayfieldPrompts = false,
DisableBuildWarnings = false, -- Prevents Rayfield from warning when the script has a version mismatch with the interface
ConfigurationSaving = {
Enabled = False,
FolderName = nil, -- Create a custom folder for your hub/game
FileName = "locked.cc"
},
Discord = {
Enabled = false, -- Prompt the user to join your Discord server if their executor supports it
Invite = "noinvitelink", -- The Discord invite code, do not include discord.gg/. E.g. discord.gg/ ABCD would be ABCD
RememberJoins = true -- Set this to false to make them join the discord every time they load it up
},
KeySystem = false, -- Set this to true to use our key system
KeySettings = {
Title = "Untitled",
Subtitle = "Key System",
Note = "No method of obtaining the key is provided", -- Use this to tell the user how to get a key
FileName = "Key", -- It is recommended to use something unique as other scripts using Rayfield may overwrite your key file
SaveKey = true, -- The user's key will be saved, but if you change the key, they will be unable to use your script
GrabKeyFromSite = false, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from
Key = {"Hello"} -- List of keys that will be accepted by the system, can be RAW file links (pastebin, github etc) or simple strings ("hello","key22")
}
})
local MainTab = Window:CreateTab("General", nil) -- Title, Image
local MainSection = MainTab:CreateSection("General")
local Button = MainTab:CreateButton({
Name = "Infinite Stanima",
Callback = function()
-- Infinite Stamina for Forsaken (May 2025)
-- Works for survivor (not killer), no key system, undetected as of latest update
local player = game:GetService("Players").LocalPlayer
local replicatedStorage = game:GetService("ReplicatedStorage")
local runService = game:GetService("RunService")
-- Try to find the stamina value in player or character
local function getStaminaObj()
local char = player.Character or player.CharacterAdded:Wait()
return char:FindFirstChild("Stamina") or player:FindFirstChild("Stamina")
end
-- Main loop: Keep stamina full
runService.RenderStepped:Connect(function()
local stamina = getStaminaObj()
if stamina and stamina:IsA("NumberValue") then
stamina.Value = stamina.MaxValue or 100
end
end)
-- Optional: Patch remote events that drain stamina (if present)
local function blockStaminaDrain()
for _, v in pairs(getgc(true)) do
if typeof(v) == "function" and islclosure(v) and debug.getinfo(v).name == "DrainStamina" then
hookfunction(v, function(...) return end)
end
end
end
pcall(blockStaminaDrain)
end,
})
local MainSection = MainTab:CreateSection("Esp")
local Button = MainTab:CreateButton({
Name = "Esp Generators",
Callback = function()
-- Forsaken Generator ESP Script
local workspace = game:GetService("Workspace")
-- Change this if your generators use a different name or are in a folder
local GENERATOR_NAME = "Generator"
-- Store highlights to avoid duplicates
local function highlightGenerator(gen)
if not gen:FindFirstChild("GenESP") then
local esp = Instance.new("Highlight")
esp.Name = "GenESP"
esp.FillTransparency = 0.7
esp.OutlineTransparency = 0
esp.OutlineColor = Color3.fromRGB(255, 255, 0) -- Yellow for visibility
esp.Adornee = gen
esp.Parent = gen
end
end
-- Scan for generators in workspace
local function scanGenerators()
for _, obj in ipairs(workspace:GetDescendants()) do
if obj.Name == GENERATOR_NAME and obj:IsA("Model") then
highlightGenerator(obj)
end
end
end
-- Initial scan
scanGenerators()
-- Listen for new generators appearing
workspace.DescendantAdded:Connect(function(obj)
if obj.Name == GENERATOR_NAME and obj:IsA("Model") then
wait(0.2)
highlightGenerator(obj)
end
end)
-- Optional: Refresh every few seconds in case of dynamic changes
while true do
scanGenerators()
wait(5)
end
end,
})
local Button = MainTab:CreateButton({
Name = "Esp Players/Killer",
Callback = function()
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
-- Adjust this function to match how Forsaken identifies killers
local function isKiller(player)
-- Example: check for a BoolValue or tool in character
return player.Character and player.Character:FindFirstChild("Killer") -- Change as needed
end
local function getNametagColor(player)
if isKiller(player) then
return Color3.fromRGB(0, 67, 0) -- Red for killer
else
return Color3.fromRGB(0, 255, 0) -- Green for survivor
end
end
local function addNametag(char, player)
if char and char:FindFirstChild("Head") and not char.Head:FindFirstChild("ForsakenNametag") then
local bill = Instance.new("BillboardGui")
bill.Name = "ForsakenNametag"
bill.Size = UDim2.new(0, 100, 0, 20)
bill.Adornee = char.Head
bill.AlwaysOnTop = true
bill.StudsOffset = Vector3.new(0, 2.5, 0)
bill.Parent = char.Head
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, 0, 1, 0)
label.BackgroundTransparency = 1
label.Text = player.DisplayName or player.Name
label.TextColor3 = getNametagColor(player)
label.TextStrokeTransparency = 0.5
label.Font = Enum.Font.GothamBold
label.TextScaled = true
label.Parent = bill
elseif char and char:FindFirstChild("Head") and char.Head:FindFirstChild("ForsakenNametag") then
-- Update color if role changes
char.Head.ForsakenNametag.TextLabel.TextColor3 = getNametagColor(player)
end
end
local function updateNametags()
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
addNametag(player.Character, player)
end
end
end
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function()
wait(0.5)
addNametag(player.Character, player)
end)
end)
for _, player in ipairs(Players:GetPlayers()) do
player.CharacterAdded:Connect(function()
wait(0.5)
addNametag(player.Character, player)
end)
end
-- Periodically refresh to handle role changes
while true do
updateNametags()
wait(2)
end
end,
})
local Button =MainTab:CreateButton({
Name = "Esp Medkit, BloxyColas, And Buildermans Sentries",
Callback = function()
-- Forsaken ESP for Medkits, BloxyColas, and Builderman's Sentry Summons (May 2025, v2.3.2)
local workspace = game:GetService("Workspace")
-- Adjust these names if needed for Forsaken's current item naming
local MEDKIT_NAME = "Medkit"
local BLOXYCOLA_NAME = "BloxyCola"
local SENTRY_NAME = "Sentry" -- Or "SentrySummon", adjust if needed
local function highlightItem(item, color)
if not item:FindFirstChild("ESPHighlight") then
local highlight = Instance.new("Highlight")
highlight.Name = "ESPHighlight"
highlight.FillTransparency = 0.8
highlight.OutlineTransparency = 0
highlight.OutlineColor = color
highlight.Adornee = item
highlight.Parent = item
end
end
local function scanAndHighlight()
for _, obj in ipairs(workspace:GetDescendants()) do
if obj:IsA("Model") or obj:IsA("Part") then
if obj.Name == MEDKIT_NAME then
highlightItem(obj, Color3.fromRGB(0, 255, 0)) -- Green for medkits
elseif obj.Name == BLOXYCOLA_NAME then
highlightItem(obj, Color3.fromRGB(0, 200, 255)) -- Cyan for BloxyCola
elseif obj.Name == SENTRY_NAME then
highlightItem(obj, Color3.fromRGB(255, 180, 0)) -- Orange/yellow for sentry summons
end
end
end
end
-- Initial scan
scanAndHighlight()
-- Listen for new items spawning
workspace.DescendantAdded:Connect(function(obj)
if obj:IsA("Model") or obj:IsA("Part") then
if obj.Name == MEDKIT_NAME then
highlightItem(obj, Color3.fromRGB(0, 255, 0))
elseif obj.Name == BLOXYCOLA_NAME then
highlightItem(obj, Color3.fromRGB(0, 200, 255))
elseif obj.Name == SENTRY_NAME then
highlightItem(obj, Color3.fromRGB(255, 180, 0))
end
end
end)
-- Optional: Refresh every few seconds for dynamic changes
while true do
scanAndHighlight()
wait(5)
end
end,
})
local MainTab = Window:CreateTab("👟Movement", nil) -- Title, Image
local MainSection = MainTab:CreateSection("Movement")
local Slider = MainTab:CreateSlider({
Name = "WalkSpeed",
Range = {16, 700},
Increment = 1,
Suffix = "Speed",
CurrentValue = 16,
Flag = "Slider1", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
Callback = function(v)
game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = v
end,
})
local Slider = MainTab:CreateSlider({
Name = "JumpPower",
Range = {50, 700},
Increment = 1,
Suffix = "Vertical",
CurrentValue = 50,
Flag = "Slider1", -- A flag is the identifier for the configuration file, make sure every element has a different flag if you're using configuration saving to ensure no overlaps
Callback = function(v)
game.Players.LocalPlayer.Character.Humanoid.JumpPower = v
end,
})
local Button = MainTab:CreateButton({
Name = "TP Click (ctrl + click)",
Callback = function()
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local Mouse = LocalPlayer:GetMouse()
local UserInputService = game:GetService("UserInputService")
local ctrlHeld = false
-- Detect when LeftControl is held or released
UserInputService.InputBegan:Connect(function(input, gp)
if not gp and input.KeyCode == Enum.KeyCode.LeftControl then
ctrlHeld = true
end
end)
UserInputService.InputEnded:Connect(function(input, gp)
if not gp and input.KeyCode == Enum.KeyCode.LeftControl then
ctrlHeld = false
end
end)
-- Teleport when Ctrl is held and mouse is clicked
Mouse.Button1Down:Connect(function()
if ctrlHeld and LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("HumanoidRootPart") then
local targetPos = Mouse.Hit.p
-- Teleport a bit above the ground to avoid getting stuck
LocalPlayer.Character.HumanoidRootPart.CFrame = CFrame.new(targetPos + Vector3.new(0, 3, 0))
end
end)
end,
})
local MainTab = Window:CreateTab("Misc 🎲", nil) -- Title, Image
local MainSection = MainTab:CreateSection("Misc")
local Button = MainTab:CreateButton({
Name = "Auto-Generator",
Callback = function()
-- Forsaken Auto Generator Script (Tested May 2025, Update 2.3.2)
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
-- Most Forsaken scripts use this remote for generator repair
local repairRemote = ReplicatedStorage:FindFirstChild("Remotes") and ReplicatedStorage.Remotes:FindFirstChild("RepairGenerator")
if not repairRemote then
warn("RepairGenerator remote not found. The script may need updating if Forsaken changes this in a future patch.")
return
end
local function getGenerators()
local gens = {}
for _, obj in ipairs(workspace:GetDescendants()) do
if obj.Name == "Generator" and obj:IsA("Model") then
table.insert(gens, obj)
end
end
return gens
end
local function autoRepairGenerators()
while true do
local generators = getGenerators()
for _, gen in ipairs(generators) do
pcall(function()
repairRemote:FireServer(gen)
end)
end
wait(1) -- Adjust the wait time as needed
end
end
spawn(autoRepairGenerators)
end,
})
local Button = MainTab:CreateButton({
Name = "1x4 Notification disable",
Callback = function()
local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
-- Add/adjust keywords as needed for Forsaken or other games
local suspiciousKeywords = {
"1x1x1x1",
"Notification",
"Warning",
"Hacked",
"Message",
"Alert",
"Exploit",
"Forsaken"
}
local function isSuspicious(gui)
if gui:IsA("ScreenGui") or gui:IsA("BillboardGui") then
local name = gui.Name:lower()
for _, word in ipairs(suspiciousKeywords) do
if name:find(word:lower()) then
return true
end
end
for _, descendant in ipairs(gui:GetDescendants()) do
if descendant:IsA("TextLabel") or descendant:IsA("TextBox") or descendant:IsA("TextButton") then
local text = descendant.Text and descendant.Text:lower() or ""
for _, word in ipairs(suspiciousKeywords) do
if text:find(word:lower()) then
return true
end
end
end
end
end
return false
end
-- Remove suspicious GUIs as soon as they're added
PlayerGui.ChildAdded:Connect(function(child)
if isSuspicious(child) then
child:Destroy()
end
end)
-- Clean up any existing suspicious GUIs on script start
for _, child in ipairs(PlayerGui:GetChildren()) do
if isSuspicious(child) then
child:Destroy()
end
end
end,
})
local Button = MainTab:CreateButton({
Name = "No Cooldown (Abilities) ",
Callback = function()
-- Universal cooldown bypass (works in Forsaken as of May 2025)
if hookfunction then
local oldWait
oldWait = hookfunction(wait, function(seconds)
return oldWait(0)
end)
end
end,
})
To embed this program on your website, copy the following code and paste it into your website's HTML: