
Key Required

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Lighting = game:GetService("Lighting")
local UserInputService = game:GetService("UserInputService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
if PlayerGui:FindFirstChild("FatalityKeyboardMenu") then
PlayerGui.FatalityKeyboardMenu:Destroy()
end
local config = {
EspPlayers = false,
EspMonsters = false,
EspItems = false,
ItemMinPrice = 50,
InfinitySprint = false,
FullBright = false
}
local menuVisible = true
local selectedIndex = 1
local options = {
{name = "Players ESP", type = "toggle", key = "EspPlayers"},
{name = "Monsters ESP", type = "toggle", key = "EspMonsters"},
{name = "Items ESP", type = "toggle", key = "EspItems"},
{name = "Item Min Price Filter", type = "slider", key = "ItemMinPrice", min = 10, max = 200, step = 5},
{name = "Infinite Sprint", type = "toggle", key = "InfinitySprint"},
{name = "Fullbright", type = "toggle", key = "FullBright"}
}
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "FatalityKeyboardMenu"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = PlayerGui
local MenuFrame = Instance.new("Frame")
MenuFrame.Size = UDim2.new(0, 260, 0, 220)
MenuFrame.Position = UDim2.new(0, 20, 0, 40)
MenuFrame.BackgroundColor3 = Color3.fromRGB(24, 18, 30)
MenuFrame.BorderColor3 = Color3.fromRGB(160, 32, 90)
MenuFrame.BorderSizePixel = 2
MenuFrame.Parent = ScreenGui
local Header = Instance.new("Frame")
Header.Size = UDim2.new(1, 0, 0, 25)
Header.BackgroundColor3 = Color3.fromRGB(15, 12, 18)
Header.BorderSizePixel = 0
Header.Parent = MenuFrame
local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -10, 1, 0)
Title.Position = UDim2.new(0, 10, 0, 0)
Title.Text = "FATALITY.WIN | by derkolya"
Title.TextColor3 = Color3.fromRGB(240, 240, 240)
Title.Font = Enum.Font.SourceSansBold
Title.TextSize = 14
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.BackgroundTransparency = 1
Title.Parent = Header
local Labels = {}
for i, opt in ipairs(options) do
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1, -20, 0, 25)
label.Position = UDim2.new(0, 10, 0, 30 + (i-1) * 28)
label.BackgroundTransparency = 1
label.Font = Enum.Font.SourceSansBold
label.TextSize = 14
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = MenuFrame
Labels[i] = label
end
local function UpdateMenuText()
for i, opt in ipairs(options) do
local prefix = (i == selectedIndex) and "> " or " "
local val = config[opt.key]
local suffix = ""
if opt.type == "toggle" then
suffix = val and " [ON]" or " [OFF]"
elseif opt.type == "slider" then
suffix = " [" .. tostring(val) .. "$]"
end
Labels[i].Text = prefix .. opt.name .. suffix
Labels[i].TextColor3 = (i == selectedIndex) and Color3.fromRGB(180, 20, 100) or Color3.fromRGB(200, 200, 200)
end
end
UpdateMenuText()
UserInputService.InputBegan:Connect(function(input, gpe)
if input.KeyCode == Enum.KeyCode.RightShift then
menuVisible = not menuVisible
MenuFrame.Visible = menuVisible
end
if not menuVisible then return end
if input.KeyCode == Enum.KeyCode.Up then
selectedIndex = selectedIndex - 1
if selectedIndex < 1 then selectedIndex = #options end
UpdateMenuText()
elseif input.KeyCode == Enum.KeyCode.Down then
selectedIndex = selectedIndex + 1
if selectedIndex > #options then selectedIndex = 1 end
UpdateMenuText()
elseif input.KeyCode == Enum.KeyCode.Right then
local opt = options[selectedIndex]
if opt.type == "toggle" then
config[opt.key] = true
elseif opt.type == "slider" then
config[opt.key] = math.clamp(config[opt.key] + opt.step, opt.min, opt.max)
end
UpdateMenuText()
elseif input.KeyCode == Enum.KeyCode.Left then
local opt = options[selectedIndex]
if opt.type == "toggle" then
config[opt.key] = false
elseif opt.type == "slider" then
config[opt.key] = math.clamp(config[opt.key] - opt.step, opt.min, opt.max)
end
UpdateMenuText()
end
end)
local TrackedMonsters = {}
local TrackedItems = {}
local function CreateBillboard(parent, text, color)
if parent:FindFirstChild("BackroomsEsp") then return parent.BackroomsEsp end
local bg = Instance.new("BillboardGui")
bg.Name = "BackroomsEsp"
bg.AlwaysOnTop = true
bg.Size = UDim2.new(0, 140, 0, 30)
bg.StudsOffset = Vector3.new(0, 3, 0)
bg.Adornee = parent
local label = Instance.new("TextLabel")
label.BackgroundTransparency = 1
label.Size = UDim2.new(1, 0, 1, 0)
label.Text = text
label.TextColor3 = color
label.Font = Enum.Font.SourceSansBold
label.TextSize = 14
label.TextStrokeTransparency = 0
label.Parent = bg
bg.Parent = parent
return bg
end
local function CreateLightCham(parent, color)
if parent:FindFirstChild("BackroomsBoxCham") then return parent.BackroomsBoxCham end
local box = Instance.new("BoxHandleAdornment")
box.Name = "BackroomsBoxCham"
box.AlwaysOnTop = true
box.ZIndex = 5
box.Size = parent:IsA("Model") and (parent:GetExtentsSize() + Vector3.new(0.2,0.2,0.2)) or Vector3.new(2,2,2)
box.Color3 = color
box.Transparency = 0.6
box.Adornee = parent:IsA("Model") and (parent.PrimaryPart or parent:FindFirstChildWithinHierarchy("HumanoidRootPart")) or parent
box.Parent = parent
return box
end
local function GetItemPrice(obj)
local price = obj:GetAttribute("Value") or obj:GetAttribute("Price") or obj:GetAttribute("Money") or obj:GetAttribute("ScrapValue") or obj:GetAttribute("Worth")
if not price then
for _, child in ipairs(obj:GetDescendants()) do
if child:IsA("NumberValue") or child:IsA("IntValue") then
local cName = child.Name:lower()
if cName:find("val") or cName:find("price") or cName:find("money") or cName:find("worth") or cName:find("cost") then
price = child.Value
break
end
end
end
end
if not price then
local prompt = obj:FindFirstChildOfClass("ProximityPrompt") or obj:FindFirstChildWithinHierarchy("PickupPrompt")
if prompt and prompt.ObjectText then
local num = prompt.ObjectText:match("%d+") or prompt.ActionText:match("%d+")
if num then price = tonumber(num) end
end
end
return price or 0
end
local function IsMonster(obj)
if not obj:IsA("Model") then return false, "", Color3.fromRGB(255, 20, 100) end
local name = obj.Name:lower()
if name:find("bacteria") and not name:find("spider") then
return true, "Bacteria", Color3.fromRGB(255, 20, 100)
elseif name:find("spider") or obj:FindFirstChild("SpiderAI") or obj:FindFirstChild("SpiderAnims") then
return true, "Bacteria Spider", Color3.fromRGB(255, 60, 0)
elseif name:find("funnyman") or name:find("partygoer") or name:find("весельчак") or obj:FindFirstChild("PartygoerAI") then
return true, "Partygoer", Color3.fromRGB(230, 200, 30)
elseif obj:FindFirstChild("Animate") and obj:FindFirstChild("Humanoid") and not Players:GetPlayerFromCharacter(obj) then
return true, "Monster", Color3.fromRGB(255, 20, 100)
end
return false, "", Color3.fromRGB(255, 20, 100)
end
local function ProcessObject(obj)
local isMon, monName, monColor = IsMonster(obj)
if isMon then
local targetPart = obj.PrimaryPart or obj:FindFirstChild("HumanoidRootPart") or obj:FindFirstChildOfClass("Part")
if targetPart then
local bb = CreateBillboard(targetPart, monName, monColor)
local ch = CreateLightCham(obj, monColor)
table.insert(TrackedMonsters, {bb = bb, ch = ch, obj = obj})
end
return
end
if obj:IsA("Model") or obj:IsA("BasePart") then
if obj:FindFirstChildOfClass("ProximityPrompt") or obj:FindFirstChild("PickupPrompt") or obj:FindFirstChild("Interact") or obj.Name:lower():find("scrap") or obj:GetAttribute("Value") then
local value = GetItemPrice(obj)
local cleanName = obj.Name:gsub("Model", ""):gsub("Part", "")
local itemDisplayName = cleanName
if value > 0 then
itemDisplayName = itemDisplayName .. " ($" .. tostring(value) .. ")"
else
itemDisplayName = itemDisplayName .. " (Loot)"
end
local targetPart = obj:IsA("Model") and (obj.PrimaryPart or obj:FindFirstChildOfClass("Part")) or obj
if targetPart then
local bb = CreateBillboard(targetPart, itemDisplayName, Color3.fromRGB(0, 255, 130))
local ch = CreateLightCham(obj, Color3.fromRGB(150, 150, 150))
table.insert(TrackedItems, {bb = bb, ch = ch, obj = obj, val = value})
end
end
end
end
for _, obj in ipairs(workspace:GetDescendants()) do pcall(ProcessObject, obj) end
workspace.DescendantAdded:Connect(function(obj) pcall(ProcessObject, obj) end)
local defaultAmbient = Lighting.Ambient
local defaultOutdoor = Lighting.OutdoorAmbient
local defaultBrightness = Lighting.Brightness
RunService.Heartbeat:Connect(function()
for _, player in ipairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character then
local root = player.Character:FindFirstChild("HumanoidRootPart")
if root then
local bb = CreateBillboard(root, player.Name, Color3.fromRGB(0, 180, 255))
local ch = CreateLightCham(player.Character, Color3.fromRGB(0, 180, 255))
bb.Enabled = config.EspPlayers
ch.Visible = config.EspPlayers
end
end
end
for i = #TrackedMonsters, 1, -1 do
local data = TrackedMonsters[i]
if data.obj and data.obj.Parent then
data.bb.Enabled = config.EspMonsters
data.ch.Visible = config.EspMonsters
else
table.remove(TrackedMonsters, i)
end
end
for i = #TrackedItems, 1, -1 do
local data = TrackedItems[i]
if data.obj and data.obj.Parent then
data.bb.Enabled = config.EspItems
data.ch.Visible = config.EspItems
if data.val > 0 then
data.ch.Color3 = data.val >= config.ItemMinPrice and Color3.fromRGB(0, 255, 100) or Color3.fromRGB(150, 150, 150)
else
data.ch.Color3 = Color3.fromRGB(0, 255, 100)
end
else
table.remove(TrackedItems, i)
end
end
if config.InfinitySprint and LocalPlayer.Character then
local humanoid = LocalPlayer.Character:FindFirstChildOfClass("Humanoid")
for _, child in ipairs(LocalPlayer.Character:GetChildren()) do
if child:IsA("LocalScript") and (child.Name:lower():find("stamina") or child.Name:lower():find("sprint") or child.Name:lower():find("energy")) then
child.Disabled = true
end
end
LocalPlayer.Character:SetAttribute("Stamina", 100)
LocalPlayer.Character:SetAttribute("Energy", 100)
if humanoid and humanoid.MoveDirection.Magnitude > 0 then
if UserInputService:IsKeyDown(Enum.KeyCode.LeftShift) then
humanoid.WalkSpeed = 24
else
humanoid.WalkSpeed = 14
end
end
end
if config.FullBright then
Lighting.Ambient = Color3.fromRGB(255, 255, 255)
Lighting.OutdoorAmbient = Color3.fromRGB(255, 255, 255)
Lighting.Brightness = 2
else
Lighting.Ambient = defaultAmbient
Lighting.OutdoorAmbient = defaultOutdoor
Lighting.Brightness = defaultBrightness
end
end)No comments yet for this script.
