[Deasl AI] Universal ESP Script v2.0 local Players = game:GetService("Players") local Workspace = game:GetService("Workspace") local RunService = game:GetService("RunService") local UserInputService = game:GetService("UserInputService") local lp = Players.LocalPlayer local defaultSettings = { enabled = false, highlightPlayers = true, highlightMonsters = true, playerColor = Color3.fromRGB(0, 255, 0), monsterColor = Color3.fromRGB(255, 0, 0), outlineColor = Color3.fromRGB(255, 255, 255), fillTransparency = 0.5, outlineTransparency = 0.3, } local settings = {} for k, v in pairs(defaultSettings) do settings[k] = v end local espObjects = {} local connections = {} local function clearESP() for _, obj in pairs(espObjects) do pcall(function() obj:Destroy() end) end espObjects = {} for _, conn in pairs(connections) do pcall(function() conn:Disconnect() end) end connections = {} end local function addHighlight(character, color, outlineColor) if not character or character == lp.Character then return end if character:FindFirstChild("DeaslESP") then return end local hl = Instance.new("Highlight") hl.Name = "DeaslESP" hl.FillColor = color hl.OutlineColor = outlineColor hl.FillTransparency = settings.fillTransparency hl.OutlineTransparency = settings.outlineTransparency hl.Adornee = character hl.Parent = character table.insert(espObjects, hl) end local function getModelType(model) if not model:IsA("Model") then return nil end if model:FindFirstChild("Humanoid") == nil then return nil end for _, player in pairs(Players:GetPlayers()) do if player.Character == model then return "player" end end return "monster" end local function updateESP() if not settings.enabled then clearESP() return end for _, model in pairs(Workspace:GetDescendants()) do if model:IsA("Model") and model:FindFirstChild("Humanoid") then local mType = getModelType(model) if mType == "player" and settings.highlightPlayers then addHighlight(model, settings.playerColor, settings.outlineColor) elseif mType == "monster" and settings.highlightMonsters then addHighlight(model, settings.monsterColor, settings.outlineColor) end end end end local screenGui = Instance.new("ScreenGui") screenGui.Name = "DeaslUniversalESP" screenGui.ResetOnSpawn = false screenGui.Parent = lp.PlayerGui local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 240, 0, 260) mainFrame.Position = UDim2.new(0.5, -120, 0.3, 0) mainFrame.BackgroundColor3 = Color3.fromRGB(10, 10, 20) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = screenGui Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 8) local title = Instance.new("TextLabel") title.Size = UDim2.new(1, 0, 0, 30) title.Text = "Universal ESP" title.TextColor3 = Color3.fromRGB(0, 200, 255) title.BackgroundTransparency = 1 title.Font = Enum.Font.GothamBold title.TextScaled = true title.Parent = mainFrame local toggleBtn = Instance.new("TextButton") toggleBtn.Size = UDim2.new(0.8, 0, 0, 30) toggleBtn.Position = UDim2.new(0.1, 0, 0.15, 0) toggleBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 60) toggleBtn.Text = "ESP: OFF" toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255) toggleBtn.Font = Enum.Font.GothamBold toggleBtn.TextScaled = true toggleBtn.BorderSizePixel = 0 toggleBtn.Parent = mainFrame Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 4) local function updateToggleText() toggleBtn.Text = settings.enabled and "ESP: ON" or "ESP: OFF" toggleBtn.BackgroundColor3 = settings.enabled and Color3.fromRGB(0, 200, 80) or Color3.fromRGB(40, 40, 60) end toggleBtn.MouseButton1Click:Connect(function() settings.enabled = not settings.enabled updateToggleText() if not settings.enabled then clearESP() end end) local function createCheckbox(text, yPos, getter, setter) local frame = Instance.new("Frame") frame.Size = UDim2.new(0.9, 0, 0, 25) frame.Position = UDim2.new(0.05, 0, yPos, 0) frame.BackgroundColor3 = Color3.fromRGB(20, 20, 30) frame.BorderSizePixel = 0 frame.Parent = mainFrame Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 4) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(0.7, 0, 1, 0) lbl.Position = UDim2.new(0.05, 0, 0, 0) lbl.BackgroundTransparency = 1 lbl.Text = text lbl.TextColor3 = Color3.fromRGB(200, 200, 200) lbl.Font = Enum.Font.Gotham lbl.TextScaled = true lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Parent = frame local chk = Instance.new("TextButton") chk.Size = UDim2.new(0, 20, 0, 20) chk.Position = UDim2.new(0.9, 0, 0.5, -10) chk.BackgroundColor3 = getter() and Color3.fromRGB(0, 200, 80) or Color3.fromRGB(40, 40, 60) chk.Text = getter() and "✔" or "" chk.TextColor3 = Color3.fromRGB(255, 255, 255) chk.Font = Enum.Font.GothamBold chk.TextScaled = true chk.BorderSizePixel = 0 chk.Parent = frame Instance.new("UICorner", chk).CornerRadius = UDim.new(0, 4) chk.MouseButton1Click:Connect(function() setter(not getter()) chk.BackgroundColor3 = getter() and Color3.fromRGB(0, 200, 80) or Color3.fromRGB(40, 40, 60) chk.Text = getter() and "✔" or "" if settings.enabled then updateESP() end end) end createCheckbox("Подсвечивать игроков", 0.3, function() return settings.highlightPlayers end, function(v) settings.highlightPlayers = v end ) createCheckbox("Подсвечивать монстров/NPC", 0.45, function() return settings.highlightMonsters end, function(v) settings.highlightMonsters = v end ) local refreshBtn = Instance.new("TextButton") refreshBtn.Size = UDim2.new(0.8, 0, 0, 25) refreshBtn.Position = UDim2.new(0.1, 0, 0.6, 0) refreshBtn.BackgroundColor3 = Color3.fromRGB(50, 50, 70) refreshBtn.Text = "Обновить ESP" refreshBtn.TextColor3 = Color3.fromRGB(255, 255, 255) refreshBtn.Font = Enum.Font.GothamBold refreshBtn.TextScaled = true refreshBtn.BorderSizePixel = 0 refreshBtn.Parent = mainFrame Instance.new("UICorner", refreshBtn).CornerRadius = UDim.new(0, 4) refreshBtn.MouseButton1Click:Connect(function() clearESP() if settings.enabled then updateESP() end end) local hideBtn = Instance.new("TextButton") hideBtn.Size = UDim2.new(0.8, 0, 0, 25) hideBtn.Position = UDim2.new(0.1, 0, 0.75, 0) hideBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 80) hideBtn.Text = "Скрыть меню (Insert)" hideBtn.TextColor3 = Color3.fromRGB(255, 255, 255) hideBtn.Font = Enum.Font.GothamBold hideBtn.TextScaled = true hideBtn.BorderSizePixel = 0 hideBtn.Parent = mainFrame Instance.new("UICorner", hideBtn).CornerRadius = UDim.new(0, 4) hideBtn.MouseButton1Click:Connect(function() mainFrame.Visible = not mainFrame.Visible end) RunService.Heartbeat:Connect(function() if settings.enabled then updateESP() end end) Workspace.DescendantAdded:Connect(function(obj) if settings.enabled and obj:IsA("Model") and obj:FindFirstChild("Humanoid") then updateESP() end end) UserInputService.InputBegan:Connect(function(input, gp) if not gp and input.KeyCode == Enum.KeyCode.Insert then mainFrame.Visible = not mainFrame.Visible end end) local drag = { active = false, startPos = nil, startMouse = nil } mainFrame.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then drag.active = true drag.startPos = mainFrame.Position drag.startMouse = input.Position end end) mainFrame.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then drag.active = false end end) UserInputService.InputChanged:Connect(function(input) if not drag.active then return end if input.UserInputType ~= Enum.UserInputType.MouseMovement and input.UserInputType ~= Enum.UserInputType.Touch then return end local delta = input.Position - drag.startMouse mainFrame.Position = UDim2.new( drag.startPos.X.Scale, drag.startPos.X.Offset + delta.X, drag.startPos.Y.Scale, drag.startPos.Y.Offset + delta.Y ) end) updateToggleText() if settings.enabled then updateESP() end print("[Deasl AI] Universal ESP loaded! Press Insert to hide/show menu")