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,
})

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: