
Key Required

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.")



Not to offend or anything but I expected something from a horror game