local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local CoreGui = game:GetService("CoreGui") local Workspace = workspace local UserInputService = game:GetService("UserInputService") getgenv().ESP_Monsters = true getgenv().ESP_Loot = true getgenv().ESP_MaxDistance = 300 local DEPTH_MODE = pcall(function() return Enum.HighlightDepthMode.AlwaysOnTop end) and Enum.HighlightDepthMode.AlwaysOnTop or "AlwaysOnTop" local MONSTER_COLOR = Color3.fromRGB(255, 30, 30) local MONSTER_NAME_COLOR = Color3.fromRGB(255, 100, 100) local LOOT_COLORS = { Gold = {highlight = Color3.fromRGB(255, 215, 0), name = Color3.fromRGB(255, 200, 0)}, Copper = {highlight = Color3.fromRGB(218, 165, 32), name = Color3.fromRGB(200, 140, 20)}, Diamond = {highlight = Color3.fromRGB(0, 255, 255), name = Color3.fromRGB(100, 255, 255)} } local activeESP = {} local function getPlayerPos() local char = LocalPlayer.Character if char and char:FindFirstChild("HumanoidRootPart") then return char.HumanoidRootPart.Position end return nil end local MONSTER_BLACKLIST = { "jumpscare", "scare", "decoy", "fake", "static", "prop", "corpse", "dead", "body", "ragdoll", "dummy", "visual", "effect", "particle", "screen", "ui", "gui", "sound", "trigger", "ambient", "decoration" } local MONSTER_WHITELIST = { "ape", "monster", "enemy", "mutant", "creature", "beast", "gorilla", "killer", "hunter", "predator", "nightmare", "terror" } local function isRealMonster(model) local hum = model:FindFirstChild("Humanoid") if not hum or hum.Health <= 0 then return false end if Players:GetPlayerFromCharacter(model) then return false end local hasAI = false for _, child in ipairs(model:GetChildren()) do if child:IsA("Script") or child:IsA("LocalScript") or child:IsA("ModuleScript") then local n = child.Name:lower() if n:find("ai") or n:find("brain") or n:find("behavior") or n:find("movement") or n:find("chase") or n:find("attack") or n:find("path") or n:find("wander") or n:find("roam") then hasAI = true; break end end end local modelName = model.Name:lower() for _, kw in ipairs(MONSTER_BLACKLIST) do if modelName:find(kw) then return false end end if hasAI then return true end for _, kw in ipairs(MONSTER_WHITELIST) do if modelName:find(kw) then return true end end local parts, hasRootPart = 0, false for _, child in ipairs(model:GetChildren()) do if child:IsA("BasePart") then parts = parts + 1 if child.Name == "HumanoidRootPart" then hasRootPart = true end end end if parts >= 3 and hasRootPart then local root = model:FindFirstChild("HumanoidRootPart") if root and root:IsA("BasePart") and root.AssemblyLinearVelocity.Magnitude > 0.1 then return true end return hasAI end return false end local function clearAllESP() for _, obj in ipairs(activeESP) do pcall(function() obj:Destroy() end) end activeESP = {} end local function addHighlight(obj, color, name) local hl = Instance.new("Highlight") hl.Name = name or "ESP" hl.FillColor = color hl.FillTransparency = 0.4 hl.OutlineColor = color hl.OutlineTransparency = 0 pcall(function() hl.DepthMode = DEPTH_MODE end) hl.Adornee = obj hl.Parent = CoreGui table.insert(activeESP, hl) return hl end local function addBillboard(obj, color, text, maxDist) local bb = Instance.new("BillboardGui") bb.Name = "ESP_Label" bb.Size = UDim2.new(0, 100, 0, 30) bb.StudsOffset = Vector3.new(0, 2.5, 0) bb.AlwaysOnTop = true bb.MaxDistance = maxDist or getgenv().ESP_MaxDistance local tl = Instance.new("TextLabel") tl.Size = UDim2.new(1, 0, 1, 0) tl.BackgroundTransparency = 1 tl.Text = text or obj.Name tl.TextColor3 = color tl.TextStrokeTransparency = 0.3 tl.TextStrokeColor3 = Color3.fromRGB(0, 0, 0) tl.Font = Enum.Font.SourceSansBold -- unchanged, as only GUI text becomes cursive tl.TextSize = 14 tl.TextScaled = false tl.Parent = bb bb.Adornee = obj bb.Parent = CoreGui table.insert(activeESP, bb) return bb end local function rescanESP() clearAllESP() if not getgenv().ESP_Monsters and not getgenv().ESP_Loot then return end local maxDist = getgenv().ESP_MaxDistance local playerPos = getPlayerPos() for _, obj in ipairs(Workspace:GetDescendants()) do pcall(function() if playerPos then local objPos = nil if obj:IsA("BasePart") then objPos = obj.Position elseif obj:IsA("Model") and obj.PrimaryPart then objPos = obj.PrimaryPart.Position end if objPos and (objPos - playerPos).Magnitude > maxDist then return end end if getgenv().ESP_Monsters and obj:IsA("Model") and isRealMonster(obj) then addHighlight(obj, MONSTER_COLOR, obj.Name) addBillboard(obj, MONSTER_NAME_COLOR, obj.Name, math.floor(maxDist * 0.6)) end if getgenv().ESP_Loot and obj:IsA("BasePart") then local lootData = LOOT_COLORS[obj.Name] if lootData then addHighlight(obj, lootData.highlight, obj.Name) addBillboard(obj, lootData.name, obj.Name, math.floor(maxDist * 0.6)) end end end) end end local function toggleMonsters(enabled) getgenv().ESP_Monsters = enabled rescanESP() end local function toggleLoot(enabled) getgenv().ESP_Loot = enabled rescanESP() end rescanESP() local function createGUI() local gui = Instance.new("ScreenGui") gui.Name = "PotatoESP" gui.ResetOnSpawn = false gui.Parent = CoreGui local mainFrame = Instance.new("Frame") mainFrame.Size = UDim2.new(0, 240, 0, 220) mainFrame.Position = UDim2.new(0, 30, 0, 30) mainFrame.BackgroundColor3 = Color3.fromRGB(20, 20, 20) mainFrame.BorderSizePixel = 0 mainFrame.Active = true mainFrame.Draggable = true mainFrame.Parent = gui Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 8) -- Title with cursive font local titleLabel = Instance.new("TextLabel") titleLabel.Size = UDim2.new(1, -20, 0, 30) titleLabel.Position = UDim2.new(0, 10, 0, 8) titleLabel.BackgroundTransparency = 1 titleLabel.Text = "Gonzas Apes" titleLabel.TextColor3 = Color3.fromRGB(255, 255, 255) titleLabel.Font = Enum.Font.SourceSansItalic -- cursive titleLabel.TextSize = 16 titleLabel.TextXAlignment = Enum.TextXAlignment.Left titleLabel.Parent = mainFrame local yPos = 45 local function makeToggle(name, initial, callback) local frame = Instance.new("Frame") frame.Size = UDim2.new(1, -20, 0, 40) frame.Position = UDim2.new(0, 10, 0, yPos) frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) frame.BorderSizePixel = 0 frame.Parent = mainFrame Instance.new("UICorner", frame).CornerRadius = UDim.new(0, 6) local label = Instance.new("TextLabel") label.Size = UDim2.new(0, 100, 1, 0) label.Position = UDim2.new(0, 10, 0, 0) label.BackgroundTransparency = 1 label.Text = name label.TextColor3 = Color3.fromRGB(200, 200, 200) label.Font = Enum.Font.SourceSansItalic -- cursive label.TextSize = 14 label.TextXAlignment = Enum.TextXAlignment.Left label.Parent = frame local btn = Instance.new("TextButton") btn.Size = UDim2.new(0, 60, 0, 28) btn.Position = UDim2.new(1, -70, 0, 6) btn.BackgroundColor3 = initial and Color3.fromRGB(60, 180, 60) or Color3.fromRGB(180, 50, 50) btn.TextColor3 = Color3.fromRGB(255, 255, 255) btn.Font = Enum.Font.SourceSansItalic -- cursive btn.TextSize = 12 btn.Text = initial and "ON" or "OFF" btn.BorderSizePixel = 0 btn.AutoButtonColor = false btn.Parent = frame Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 14) local debounce = false btn.MouseButton1Click:Connect(function() if debounce then return end debounce = true initial = not initial btn.Text = initial and "ON" or "OFF" btn.BackgroundColor3 = initial and Color3.fromRGB(60, 180, 60) or Color3.fromRGB(180, 50, 50) callback(initial) wait(0.2) debounce = false end) yPos = yPos + 46 end makeToggle("MONSTERS", getgenv().ESP_Monsters, toggleMonsters) makeToggle("LOOT", getgenv().ESP_Loot, toggleLoot) local sliderFrame = Instance.new("Frame") sliderFrame.Size = UDim2.new(1, -20, 0, 70) sliderFrame.Position = UDim2.new(0, 10, 0, yPos) sliderFrame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) sliderFrame.BorderSizePixel = 0 sliderFrame.Parent = mainFrame Instance.new("UICorner", sliderFrame).CornerRadius = UDim.new(0, 6) local sliderLabel = Instance.new("TextLabel") sliderLabel.Size = UDim2.new(1, -10, 0, 20) sliderLabel.Position = UDim2.new(0, 5, 0, 5) sliderLabel.BackgroundTransparency = 1 sliderLabel.Text = "Distance: " .. getgenv().ESP_MaxDistance sliderLabel.TextColor3 = Color3.fromRGB(200, 200, 200) sliderLabel.Font = Enum.Font.SourceSansItalic -- cursive sliderLabel.TextSize = 12 sliderLabel.TextXAlignment = Enum.TextXAlignment.Left sliderLabel.Parent = sliderFrame local sliderTrack = Instance.new("Frame") sliderTrack.Size = UDim2.new(1, -30, 0, 10) sliderTrack.Position = UDim2.new(0, 15, 0, 32) sliderTrack.BackgroundColor3 = Color3.fromRGB(60, 60, 60) sliderTrack.BorderSizePixel = 0 sliderTrack.Parent = sliderFrame Instance.new("UICorner", sliderTrack).CornerRadius = UDim.new(0, 5) local sliderFill = Instance.new("Frame") sliderFill.Size = UDim2.new((getgenv().ESP_MaxDistance - 50) / 950, 0, 1, 0) sliderFill.BackgroundColor3 = Color3.fromRGB(255, 255, 255) sliderFill.BorderSizePixel = 0 sliderFill.Parent = sliderTrack Instance.new("UICorner", sliderFill).CornerRadius = UDim.new(0, 5) local sliderKnob = Instance.new("TextButton") sliderKnob.Size = UDim2.new(0, 22, 0, 22) sliderKnob.Position = UDim2.new((getgenv().ESP_MaxDistance - 50) / 950, -11, 0, -6) sliderKnob.BackgroundColor3 = Color3.fromRGB(255, 255, 255) sliderKnob.Text = "" sliderKnob.BorderSizePixel = 0 sliderKnob.AutoButtonColor = false sliderKnob.Parent = sliderTrack Instance.new("UICorner", sliderKnob).CornerRadius = UDim.new(1, 0) local minDist, maxDist = 50, 1000 local isDragging = false local function updateSlider(percent) percent = math.clamp(percent, 0, 1) local distance = math.floor((minDist + (maxDist - minDist) * percent) / 10) * 10 getgenv().ESP_MaxDistance = distance sliderLabel.Text = "Distance: " .. distance sliderFill.Size = UDim2.new(percent, 0, 1, 0) sliderKnob.Position = UDim2.new(percent, -11, 0, -6) if getgenv().ESP_Monsters or getgenv().ESP_Loot then rescanESP() end end local function getPercent(input) local absPos = sliderTrack.AbsolutePosition local absSize = sliderTrack.AbsoluteSize return (input.Position.X - absPos.X) / absSize.X end sliderKnob.MouseButton1Down:Connect(function() isDragging = true end) sliderTrack.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isDragging = true updateSlider(getPercent(input)) end end) UserInputService.InputChanged:Connect(function(input) if isDragging and input.UserInputType == Enum.UserInputType.MouseMovement then updateSlider(getPercent(input)) end end) UserInputService.InputEnded:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isDragging = false end end) sliderFill.InputBegan:Connect(function(input) if input.UserInputType == Enum.UserInputType.MouseButton1 then isDragging = true updateSlider(getPercent(input)) end end) UserInputService.InputBegan:Connect(function(input, gameProcessed) if gameProcessed then return end if input.KeyCode == Enum.KeyCode.K then gui.Enabled = not gui.Enabled end end) print("GUI loaded.") end createGUI() print("lol.")