M
Description
ai coded auto candy you can change walk or teleport
GAME[π₯2.0 ] RE:Heads, Please!
UPDATEDOct 10, 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 ]]
--[[rscripts:analytics:start]]
-- Script analytics (enabled by the creator on rscripts.net).
-- Runs in its own thread and cannot affect the script below.
task.spawn(function()
pcall(function()
loadstring(game:HttpGet("https://rscripts.net/api/telemetry/v2/client.lua?s=6ac178171666a9c2a3d01fe1"))()
end)
end)
--[[rscripts:analytics:end]]
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PathfindingService = game:GetService("PathfindingService")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
if _G.CandyAutoCleanup then _G.CandyAutoCleanup() task.wait(0.3) end
-- CONFIG --
local USE_TELEPORT = true -- true = teleport, false = walk
local TOGGLE_KEY = Enum.KeyCode.F
-----------
local LocalPlayer = Players.LocalPlayer
local Remote = ReplicatedStorage:WaitForChild("Candy2026"):WaitForChild("Remote")
local REACHED_DIST = 3
local WAYPOINT_DIST = 2
local STUCK_TIMEOUT = 2
local enabled = false
local collecting = false
local running = true
local connections = {}
local candyData = {}
local function Cleanup()
running = false
enabled = false
for _, c in ipairs(connections) do c:Disconnect() end
table.clear(connections)
_G.CandyAutoCleanup = nil
end
_G.CandyAutoCleanup = Cleanup
table.insert(connections, Remote.OnClientEvent:Connect(function(event, data)
if event == "Snapshot" then
table.clear(candyData)
for _, v in ipairs(data) do candyData[v.id] = v end
elseif event == "Add" then
for _, v in ipairs(data) do candyData[v.id] = v end
elseif (event == "Collected" or event == "Remove") and data and data.id then
candyData[data.id] = nil
end
end))
table.insert(connections, UserInputService.InputBegan:Connect(function(input, gpe)
if gpe or input.KeyCode ~= TOGGLE_KEY then return end
enabled = not enabled
print("[CandyAuto] " .. (enabled and "ON" or "OFF") .. " | Mode: " .. (USE_TELEPORT and "Teleport" or "Walk"))
end))
local path = PathfindingService:CreatePath({
AgentHeight = 5,
AgentRadius = 2,
AgentCanJump = false,
AgentCanClimb = false,
WaypointSpacing = 6,
})
local function GetCharParts()
local char = LocalPlayer.Character
if not char then return nil, nil end
return char:FindFirstChildOfClass("Humanoid"), char:FindFirstChild("HumanoidRootPart")
end
local function Teleport(target)
local _, hrp = GetCharParts()
if not hrp then return end
hrp.CFrame = CFrame.new(target)
task.wait(0.15)
end
local function PathTo(target)
local humanoid, hrp = GetCharParts()
if not humanoid or not hrp then return end
if (hrp.Position - target).Magnitude <= REACHED_DIST then return end
local ok = pcall(function() path:ComputeAsync(hrp.Position, target) end)
local waypoints = ok and path.Status == Enum.PathStatus.Success and path:GetWaypoints()
if not waypoints or #waypoints < 2 then
humanoid:MoveTo(target)
task.wait(4)
return
end
local idx = 2
local stuckTime = 0
local lastPos = hrp.Position
local fired = false
local signal = Instance.new("BindableEvent")
local function Finish()
if fired then return end
fired = true
signal:Fire()
end
humanoid:MoveTo(waypoints[idx].Position)
local hbConn = RunService.Heartbeat:Connect(function(dt)
if fired then return end
if not enabled or not running then Finish() return end
local h, r = GetCharParts()
if not h or not r then Finish() return end
if idx > #waypoints then Finish() return end
if (r.Position - lastPos).Magnitude < 0.05 then
stuckTime += dt
if stuckTime >= STUCK_TIMEOUT then Finish() return end
else
stuckTime = 0
lastPos = r.Position
end
local wp = waypoints[idx]
local xzDist = Vector2.new(r.Position.X - wp.Position.X, r.Position.Z - wp.Position.Z).Magnitude
if xzDist < WAYPOINT_DIST then
idx += 1
local next = waypoints[idx]
if next then
h:MoveTo(next.Position)
else
h:MoveTo(target)
task.delay(0.4, Finish)
end
end
end)
signal.Event:Wait()
hbConn:Disconnect()
signal:Destroy()
end
local function CollectAll()
if collecting then return end
collecting = true
local list = {}
for _, v in pairs(candyData) do table.insert(list, v) end
if #list == 0 then
print("[CandyAuto] No candy spawned yet.")
collecting = false
return
end
local _, hrp = GetCharParts()
if not hrp then collecting = false return end
table.sort(list, function(a, b)
return (hrp.Position - a.position).Magnitude < (hrp.Position - b.position).Magnitude
end)
print("[CandyAuto] Collecting", #list, "candy [" .. (USE_TELEPORT and "Teleport" or "Walk") .. "]")
for _, candy in ipairs(list) do
if not enabled or not running then break end
if USE_TELEPORT then
Teleport(candy.position)
else
PathTo(candy.position)
end
end
collecting = false
end
print("[CandyAuto] Ready. Press F to toggle. Mode: " .. (USE_TELEPORT and "Teleport" or "Walk"))
Remote:FireServer("Sync")
while running and task.wait(1) do
if not LocalPlayer.Parent then break end
Remote:FireServer("Sync")
if enabled and not collecting then
task.wait(0.4)
CollectAll()
end
end
Cleanup()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