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)