-- [[ Rscripts Risk Notice ]] -- This script is not verified by rscripts.net. 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 Rscripts Risk Notice ]] local Players = game:GetService("Players") local LP = Players.LocalPlayer local PG = LP:WaitForChild("PlayerGui") local old = PG:FindFirstChild("egg farm") if old then old:Destroy() end local CFG = { Running = false, HoldTime = 0.8, Height = 4, ReturnPos = Vector3.new(-1476, -21, 11001), ReturnWait = 0.5, MaxZone = 22, } local AREA_DATA = { { Name = "HalloweenNightmareVoid", Zone = 22, Rebirth = true }, { Name = "HalloweenSpiderCatacombs", Zone = 21, Rebirth = true }, { Name = "HalloweenHauntedCarnival", Zone = 20, Rebirth = true }, { Name = "HalloweenBloodMoonCastle", Zone = 19, Rebirth = false }, { Name = "HalloweenGhostManor", Zone = 18, Rebirth = false }, { Name = "HalloweenGraveyard", Zone = 17, Rebirth = false }, { Name = "HalloweenWitchSwamp", Zone = 16, Rebirth = false }, { Name = "HalloweenPumpkinPatch", Zone = 15, Rebirth = false }, } local AREAS = {} for _, a in ipairs(AREA_DATA) do table.insert(AREAS, { Name = a.Name, Zone = a.Zone, Enabled = true, Rebirth = a.Rebirth, }) end local function getRoot() local c = LP.Character return c and c:FindFirstChild("HumanoidRootPart") end local function tpTo(pos) local root = getRoot() if not root then return false end root.AssemblyLinearVelocity = Vector3.zero root.AssemblyAngularVelocity = Vector3.zero root.CFrame = CFrame.new(pos) return true end local function getAreasFolder() local hw = workspace:FindFirstChild("HalloweenWorld") return hw and hw:FindFirstChild("Areas") end local function getRuntimeFolder() local hw = workspace:FindFirstChild("HalloweenWorld") return hw and hw:FindFirstChild("Runtime") end local function occupiedNestKeys() local set = {} local rt = getRuntimeFolder() if not rt then return set end for _, c in ipairs(rt:GetChildren()) do local nestKey = c:GetAttribute("EggNest") if type(nestKey) == "string" and nestKey ~= "" then set[nestKey] = c.Name end end return set end local function collectNestsInArea(areaModel) local list, seen = {}, {} for _, d in ipairs(areaModel:GetDescendants()) do local key = d:GetAttribute("NestKey") local zone = d:GetAttribute("NestZone") if (key or zone) then local container = d.Parent or d if not seen[container] then seen[container] = true local pos if d:IsA("BasePart") then pos = d.Position elseif d:IsA("Model") then if d.PrimaryPart then pos = d.PrimaryPart.Position else for _, s in ipairs(d:GetDescendants()) do if s:IsA("BasePart") then pos = s.Position; break end end end end if pos then table.insert(list, { container = container, pos = pos, key = tostring(key or "?"), zone = tonumber(zone) or 0, }) end end end end table.sort(list, function(a, b) return a.key < b.key end) return list end local function firePrompt(p) if fireproximityprompt then local ok = pcall(fireproximityprompt, p) if ok then return true end end return pcall(function() p:InputHoldBegin() task.wait(math.max(0.05, p.HoldDuration)) p:InputHoldEnd() end) end local function triggerNearbyPrompts(aroundPos, radius) for _, d in ipairs(workspace:GetDescendants()) do if d:IsA("ProximityPrompt") and d.Enabled then local parent = d.Parent local pPos if parent then if parent:IsA("BasePart") then pPos = parent.Position elseif parent:IsA("Attachment") then pPos = parent.WorldPosition elseif parent:IsA("Model") and parent.PrimaryPart then pPos = parent.PrimaryPart.Position end end if pPos and (pPos - aroundPos).Magnitude <= radius then firePrompt(d) end end end end local function findTargetNest() local folder = getAreasFolder() if not folder then return nil, nil, nil end local occupied = occupiedNestKeys() for _, a in ipairs(AREAS) do if a.Enabled then local area = folder:FindFirstChild(a.Name) if area then for _, nest in ipairs(collectNestsInArea(area)) do if nest.zone <= CFG.MaxZone and nest.zone > 0 then local animeName = occupied[nest.key] if animeName then return a.Name, nest, animeName end end end end end end return nil, nil, nil end local function collectOne(nest) local aim = nest.pos + Vector3.new(0, CFG.Height, 0) tpTo(aim) task.wait(0.1) tpTo(aim) task.wait(CFG.HoldTime) triggerNearbyPrompts(nest.pos, 12) task.wait(0.15) triggerNearbyPrompts(nest.pos, 8) task.wait(0.15) end local function goBack() local aim = CFG.ReturnPos + Vector3.new(0, CFG.Height, 0) tpTo(aim) task.wait(CFG.ReturnWait) tpTo(aim) task.wait(0.2) end local function cycle() local areaName, nest = findTargetNest() if not nest then goBack() task.wait(2) return end collectOne(nest) goBack() task.wait(0.3) end local thread local function start() if CFG.Running then return end CFG.Running = true thread = task.spawn(function() while CFG.Running do pcall(cycle) task.wait(0.1) end end) end local function stop() if not CFG.Running then return end CFG.Running = false if thread then task.cancel(thread) thread = nil end end local gui = Instance.new("ScreenGui") gui.Name = "halloween event .gg/get-ravine" gui.ResetOnSpawn = false gui.Parent = PG local frame = Instance.new("Frame") frame.Size = UDim2.new(0, 260, 0, 330) frame.Position = UDim2.new(0, 20, 0, 20) frame.BackgroundColor3 = Color3.fromRGB(35, 35, 35) frame.BorderSizePixel = 0 frame.Active = true frame.Draggable = true frame.Parent = gui local title = Instance.new("TextLabel") title.Size = UDim2.new(1, -28, 0, 20) title.Position = UDim2.new(0, 8, 0, 4) title.BackgroundTransparency = 1 title.Text = "halloween event .gg/get-ravine" title.TextColor3 = Color3.fromRGB(210, 210, 210) title.TextXAlignment = Enum.TextXAlignment.Left title.Font = Enum.Font.SourceSans title.TextSize = 14 title.Parent = frame local close = Instance.new("TextButton") close.Size = UDim2.new(0, 20, 0, 20) close.Position = UDim2.new(1, -24, 0, 4) close.BackgroundColor3 = Color3.fromRGB(35, 35, 35) close.BorderSizePixel = 0 close.Text = "x" close.TextColor3 = Color3.fromRGB(210, 210, 210) close.Font = Enum.Font.SourceSans close.TextSize = 14 close.Parent = frame close.MouseButton1Click:Connect(function() stop() gui:Destroy() end) local toggle = Instance.new("TextButton") toggle.Size = UDim2.new(1, -16, 0, 26) toggle.Position = UDim2.new(0, 8, 0, 28) toggle.BackgroundColor3 = Color3.fromRGB(55, 55, 55) toggle.BorderSizePixel = 0 toggle.Text = "off" toggle.TextColor3 = Color3.fromRGB(210, 210, 210) toggle.Font = Enum.Font.SourceSans toggle.TextSize = 14 toggle.Parent = frame local function mkInput(y, label, key) local lbl = Instance.new("TextLabel") lbl.Size = UDim2.new(0, 90, 0, 20) lbl.Position = UDim2.new(0, 8, 0, y) lbl.BackgroundTransparency = 1 lbl.Text = label lbl.TextColor3 = Color3.fromRGB(190, 190, 190) lbl.TextXAlignment = Enum.TextXAlignment.Left lbl.Font = Enum.Font.SourceSans lbl.TextSize = 13 lbl.Parent = frame local box = Instance.new("TextBox") box.Size = UDim2.new(0, 60, 0, 20) box.Position = UDim2.new(0, 100, 0, y) box.BackgroundColor3 = Color3.fromRGB(45, 45, 45) box.BorderSizePixel = 0 box.Text = tostring(CFG[key]) box.TextColor3 = Color3.fromRGB(210, 210, 210) box.Font = Enum.Font.SourceSans box.TextSize = 13 box.ClearTextOnFocus = false box.Parent = frame box.FocusLost:Connect(function() local n = tonumber(box.Text) if n and n >= 0 then CFG[key] = n else box.Text = tostring(CFG[key]) end end) end mkInput(60, "hold time", "HoldTime") local hdr = Instance.new("TextLabel") hdr.Size = UDim2.new(1, -16, 0, 18) hdr.Position = UDim2.new(0, 8, 0, 86) hdr.BackgroundTransparency = 1 hdr.Text = "areas:" hdr.TextColor3 = Color3.fromRGB(190, 190, 190) hdr.TextXAlignment = Enum.TextXAlignment.Left hdr.Font = Enum.Font.SourceSans hdr.TextSize = 13 hdr.Parent = frame local y = 106 for _, a in ipairs(AREAS) do local btn = Instance.new("TextButton") btn.Size = UDim2.new(1, -16, 0, 22) btn.Position = UDim2.new(0, 8, 0, y) btn.BorderSizePixel = 0 btn.TextXAlignment = Enum.TextXAlignment.Left btn.Font = Enum.Font.SourceSans btn.TextSize = 12 btn.Parent = frame local function refresh() if a.Rebirth then btn.Text = ("zone %d (rebirth 1)"):format(a.Zone) else btn.Text = ("zone %d"):format(a.Zone) end if a.Enabled then btn.BackgroundColor3 = Color3.fromRGB(55, 130, 55) btn.TextColor3 = Color3.fromRGB(220, 220, 220) else btn.BackgroundColor3 = Color3.fromRGB(45, 45, 45) btn.TextColor3 = Color3.fromRGB(130, 130, 130) end end refresh() btn.MouseButton1Click:Connect(function() a.Enabled = not a.Enabled refresh() end) y = y + 24 end toggle.MouseButton1Click:Connect(function() if CFG.Running then stop() toggle.Text = "off" else start() toggle.Text = "on" end end)