M
Description
pumpkin chest esp & culdrn use infinty yield and do tp walk 5 u will get the badge faster
GAMESurvive Overnight in a Mega Store
UPDATEDOct 23, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local RUN_STATE = getfenv().STATE
if not RUN_STATE then
RUN_STATE = {
connect = function(signal, fn) return signal:Connect(fn) end,
onCleanup = function() end,
}
end
local LOCAL_PLAYER = Players.LocalPlayer
local FONT = Drawing.Fonts.Plex
local MAX_DISTANCE = 3000
local RESCAN = 0.5
local COLORS = {
candy = Color3.fromRGB(255, 92, 178),
chest = Color3.fromRGB(255, 148, 36),
cauldron = Color3.fromRGB(118, 255, 138),
}
local settings = {
candy = true,
chest = true,
cauldron = true,
tracer = false,
legend = true,
}
local targets = {}
local draws = {}
local legendRows = {}
local function utilFolder()
local map = workspace:FindFirstChild("Map")
return map and map:FindFirstChild("Util")
end
local function releaseDraw(instance)
local d = draws[instance]
if not d then return end
d.box:Remove()
d.label:Remove()
d.trail:Remove()
draws[instance] = nil
end
local function refreshTargets()
local found = {}
local util = utilFolder()
if util then
local items = util:FindFirstChild("Items")
if items then
for _, item in ipairs(items:GetChildren()) do
if item:IsA("Tool") and item.Name:match("^Candy") then
found[item] = { kind = "candy", label = item.Name }
end
end
end
local chests = util:FindFirstChild("PumpkinChests")
if chests then
for _, chest in ipairs(chests:GetChildren()) do
if chest:IsA("Model") then
found[chest] = { kind = "chest", label = "Candy Chest" }
end
end
end
local cauldron = util:FindFirstChild("Cauldron")
if cauldron and cauldron:IsA("Model") then
found[cauldron] = { kind = "cauldron", label = "Cauldron" }
end
end
local stale = {}
for instance in pairs(draws) do
if not found[instance] then
stale[#stale + 1] = instance
end
end
for _, instance in ipairs(stale) do
releaseDraw(instance)
end
targets = found
end
local function getDraw(instance)
local d = draws[instance]
if d then return d end
d = {
box = Drawing.new("Square"),
label = Drawing.new("Text"),
trail = Drawing.new("Line"),
}
d.box.Filled = false
d.box.Thickness = 1
d.box.Transparency = 0.35
d.box.Color = Color3.new(1, 1, 1)
d.label.Size = 14
d.label.Center = true
d.label.Outline = true
d.label.Font = FONT
d.trail.Thickness = 1
d.trail.Transparency = 0.5
draws[instance] = d
return d
end
local function hideDraw(d)
d.box.Visible = false
d.label.Visible = false
d.trail.Visible = false
end
local function projectBox(camera, cf, size)
local minX, minY = math.huge, math.huge
local maxX, maxY = -math.huge, -math.huge
local visible = false
for sx = -0.5, 0.5, 1 do
for sy = -0.5, 0.5, 1 do
for sz = -0.5, 0.5, 1 do
local world = (cf * CFrame.new(size.X * sx, size.Y * sy, size.Z * sz)).Position
local point = camera:WorldToViewportPoint(world)
if point.Z > 0 then
visible = true
minX = math.min(minX, point.X)
maxX = math.max(maxX, point.X)
minY = math.min(minY, point.Y)
maxY = math.max(maxY, point.Y)
end
end
end
end
if not visible then return nil end
return minX, minY, maxX, maxY
end
local legendBg = Drawing.new("Square")
local legendTitle = Drawing.new("Text")
local function buildLegend()
legendBg.Filled = true
legendBg.Thickness = 0
legendBg.Color = Color3.fromRGB(10, 10, 14)
legendBg.Transparency = 0.4
legendBg.Position = Vector2.new(12, 12)
legendBg.Size = Vector2.new(272, 152)
legendTitle.Text = "SURVIVE OVERNIGHT - ESP"
legendTitle.Size = 14
legendTitle.Font = FONT
legendTitle.Outline = true
legendTitle.Color = Color3.fromRGB(255, 255, 255)
legendTitle.Position = Vector2.new(24, 20)
for i = 1, 6 do
local row = Drawing.new("Text")
row.Size = 13
row.Font = FONT
row.Outline = true
row.Position = Vector2.new(24, 42 + (i - 1) * 18)
row.Visible = false
legendRows[i] = row
end
end
local function updateLegend()
local on = settings.legend
legendBg.Visible = on
legendTitle.Visible = on
local candyCount, chestCount = 0, 0
for _, meta in pairs(targets) do
if meta.kind == "candy" then
candyCount = candyCount + 1
elseif meta.kind == "chest" then
chestCount = chestCount + 1
end
end
local rows = {
{ text = string.format("[F1] Candy %s", settings.candy and "ON" or "OFF"), color = COLORS.candy },
{ text = string.format("[F2] Candy Chests %s", settings.chest and "ON" or "OFF"), color = COLORS.chest },
{ text = string.format("[F3] Cauldron %s", settings.cauldron and "ON" or "OFF"), color = COLORS.cauldron },
{ text = string.format("[F4] Tracers %s", settings.tracer and "ON" or "OFF"), color = Color3.fromRGB(220, 220, 220) },
{ text = string.format("[F5] Panel %s", settings.legend and "ON" or "OFF"), color = Color3.fromRGB(220, 220, 220) },
{ text = string.format("candy %d chests %d", candyCount, chestCount), color = Color3.fromRGB(150, 150, 160) },
}
for i, row in ipairs(legendRows) do
row.Visible = on
row.Text = rows[i].text
row.Color = rows[i].color
end
end
local function render()
local camera = workspace.CurrentCamera
if not camera then return end
local viewport = camera.ViewportSize
local character = LOCAL_PLAYER.Character
local root = character and character:FindFirstChild("HumanoidRootPart")
local origin = root and root.Position or camera.CFrame.Position
for instance, meta in pairs(targets) do
local d = getDraw(instance)
local enabled = settings[meta.kind] and instance.Parent ~= nil
if not enabled then
hideDraw(d)
else
local ok, cf, size = pcall(function()
local boxCf, boxSize = instance:GetBoundingBox()
return boxCf, boxSize
end)
local minX, minY, maxX, maxY
if ok then
minX, minY, maxX, maxY = projectBox(camera, cf, size)
end
local distance = ok and (cf.Position - origin).Magnitude or math.huge
if minX and distance <= MAX_DISTANCE then
local color = COLORS[meta.kind]
local centerX = (minX + maxX) * 0.5
d.box.Visible = true
d.box.Color = color
d.box.Position = Vector2.new(minX, minY)
d.box.Size = Vector2.new(math.max(1, maxX - minX), math.max(1, maxY - minY))
local text = meta.label
if meta.kind == "cauldron" then
local state = instance:GetAttribute("CauldronState")
if state then text = text .. " - " .. tostring(state) end
end
text = text .. " [" .. math.floor(distance + 0.5) .. "m]"
d.label.Visible = true
d.label.Text = text
d.label.Color = color
d.label.Position = Vector2.new(centerX, minY - 17)
if settings.tracer then
d.trail.Visible = true
d.trail.Color = color
d.trail.From = Vector2.new(viewport.X * 0.5, viewport.Y)
d.trail.To = Vector2.new(centerX, maxY)
else
d.trail.Visible = false
end
else
hideDraw(d)
end
end
end
end
local KEYMAP = {
[Enum.KeyCode.F1] = "candy",
[Enum.KeyCode.F2] = "chest",
[Enum.KeyCode.F3] = "cauldron",
[Enum.KeyCode.F4] = "tracer",
[Enum.KeyCode.F5] = "legend",
}
buildLegend()
refreshTargets()
updateLegend()
RUN_STATE.connect(UserInputService.InputBegan, function(input, gameProcessed)
if gameProcessed then return end
local field = KEYMAP[input.KeyCode]
if not field then return end
settings[field] = not settings[field]
updateLegend()
end)
local elapsed = 0
RUN_STATE.connect(RunService.RenderStepped, function(dt)
elapsed = elapsed + dt
if elapsed >= RESCAN then
elapsed = 0
refreshTargets()
updateLegend()
end
render()
end)
RUN_STATE.onCleanup(function()
for instance in pairs(draws) do
releaseDraw(instance)
end
legendBg:Remove()
legendTitle:Remove()
for _, row in ipairs(legendRows) do
row:Remove()
end
end)
Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place