-- Rayfield (Sirius loader) local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "Epic Egg Hunt 2026", Icon = 0, -- Icon in Topbar. Can use Lucide Icons (string) or Roblox Image (number). 0 to use no icon (default). LoadingTitle = "Loading Rayfield", LoadingSubtitle = "by Moonyξ€€", ShowText = "Rayfield", -- for mobile users to unhide rayfield, change if you'd like Theme = "Default", -- Check https://docs.sirius.menu/rayfield/configuration/themes ToggleUIKeybind = "R", -- The keybind to toggle the UI visibility (string like "K" or Enum.KeyCode) DisableRayfieldPrompts = false, DisableBuildWarnings = false, -- Prevents Rayfield from warning when the script has a version mismatch with the interface ConfigurationSaving = { Enabled = true, FolderName = nil, -- Create a custom folder for your hub/game FileName = "Big Hub" }, Discord = { Enabled = false, -- Prompt the user to join your Discord server if their executor supports it Invite = "noinvitelink", -- The Discord invite code, do not include discord.gg/. E.g. discord.gg/ ABCD would be ABCD RememberJoins = true -- Set this to false to make them join the discord every time they load it up }, KeySystem = true, -- Set this to true to use our key system KeySettings = { Title = "Key", Subtitle = "Key System", Note = "Contact sundrop0449 on dc to get key ", -- Use this to tell the user how to get a key FileName = "Key", -- It is recommended to use something unique as other scripts using Rayfield may overwrite your key file SaveKey = true, -- The user's key will be saved, but if you change the key, they will be unable to use your script GrabKeyFromSite = false, -- If this is true, set Key below to the RAW site you would like Rayfield to get the key from Key = {"Moony","Moonyξ€€"} -- List of keys that will be accepted by the system, can be RAW file links (pastebin, github etc) or simple strings ("hello","key22") } }) -- Notify user UI loaded Rayfield:Notify({ Title = "Success", Content = "Correct key entered! UI loaded.", Duration = 3 }) -------------------------------------------------- -- SERVICES & VARIABLES -------------------------------------------------- local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local Workspace = game:GetService("Workspace") local EggsFolder = Workspace:WaitForChild("Eggs", 15) if not EggsFolder then Rayfield:Notify({ Title = "Error", Content = "Eggs folder not found!", Duration = 5 }) return end -------------------------------------------------- -- HELPERS -------------------------------------------------- local function getHRP() local char = LocalPlayer.Character return char and char:FindFirstChild("HumanoidRootPart") end local function getBasePart(obj) if obj:IsA("BasePart") then return obj end for _, v in ipairs(obj:GetDescendants()) do if v:IsA("BasePart") then return v end end end local function isEggFound(egg) if not egg or not egg.Parent then return true end local bv = egg:FindFirstChild("Found") or egg:FindFirstChild("Collected") if bv and bv:IsA("BoolValue") and bv.Value then return true end if egg:GetAttribute("Found") == true then return true end if egg:GetAttribute("Collected") == true then return true end return false end -------------------------------------------------- -- CREATE TAB -------------------------------------------------- local Tab = Window:CreateTab("Egg Hunt", 4483362458) -------------------------------------------------- -- VICTORY TP SECTION -------------------------------------------------- Tab:CreateSection("Victory TP") Tab:CreateButton({ Name = "TP to Normal Victory Area πŸ†", Callback = function() local hrp = getHRP() if hrp then hrp.CFrame = CFrame.new(-477.84259, 2.56287694, 574.350708) end end }) Tab:CreateButton({ Name = "TP to V.I.P Victory Area πŸ†", Callback = function() local hrp = getHRP() if hrp then hrp.CFrame = CFrame.new(782.439636, 2.56287694, 2147.06421) end end }) -------------------------------------------------- -- NORMAL EGGS (1–100) -------------------------------------------------- Tab:CreateSection("Normal Eggs (1–100)") local normalIndex = 1 local normalESP = false local normalHighlights = {} local function clearNormalESP() for _, h in pairs(normalHighlights) do if h then h:Destroy() end end table.clear(normalHighlights) end local function updateNormalESP() clearNormalESP() if not normalESP then return end for i = 1, 100 do local egg = EggsFolder:FindFirstChild(tostring(i)) if egg and not isEggFound(egg) then local h = Instance.new("Highlight") h.FillColor = Color3.fromRGB(255, 255, 0) h.OutlineColor = Color3.fromRGB(255, 170, 0) h.FillTransparency = 0.4 h.Adornee = egg h.Parent = egg normalHighlights[i] = h end end end local function getNextNormalEgg() for i = normalIndex, 100 do local egg = EggsFolder:FindFirstChild(tostring(i)) if egg and not isEggFound(egg) then normalIndex = i + 1 return egg, i end end end Tab:CreateButton({ Name = "Hunt Next Egg πŸ₯š", Callback = function() local egg = getNextNormalEgg() local hrp = getHRP() if egg and hrp then local part = getBasePart(egg) if part then hrp.CFrame = part.CFrame * CFrame.new(0, 2, 0) task.wait(0.5) updateNormalESP() end end end }) Tab:CreateSlider({ Name = "Teleport to Egg", Range = {1, 100}, Increment = 1, Suffix = "Egg", CurrentValue = 1, Callback = function(v) local egg = EggsFolder:FindFirstChild(tostring(v)) local hrp = getHRP() if egg and hrp then local part = getBasePart(egg) if part then hrp.CFrame = part.CFrame * CFrame.new(0, 2, 0) end end end }) Tab:CreateToggle({ Name = "Egg ESP (1–100)", CurrentValue = false, Callback = function(v) normalESP = v updateNormalESP() end }) Tab:CreateButton({ Name = "Reset Normal Egg Counter", Callback = function() normalIndex = 1 updateNormalESP() end }) -------------------------------------------------- -- V.I.P EGGS (101–170) -------------------------------------------------- Tab:CreateSection("V.I.P Eggs (101–170)") local vipIndex = 101 local vipESP = false local vipHighlights = {} local function clearVipESP() for _, h in pairs(vipHighlights) do if h then h:Destroy() end end table.clear(vipHighlights) end local function updateVipESP() clearVipESP() if not vipESP then return end for i = 101, 170 do local egg = EggsFolder:FindFirstChild(tostring(i)) if egg and not isEggFound(egg) then local h = Instance.new("Highlight") h.FillColor = Color3.fromRGB(0, 255, 255) h.OutlineColor = Color3.fromRGB(0, 170, 255) h.FillTransparency = 0.4 h.Adornee = egg h.Parent = egg vipHighlights[i] = h end end end local function getNextVipEgg() for i = vipIndex, 170 do local egg = EggsFolder:FindFirstChild(tostring(i)) if egg and not isEggFound(egg) then vipIndex = i + 1 return egg, i end end end Tab:CreateButton({ Name = "Hunt Next V.I.P Egg πŸ’Ž", Callback = function() local egg = getNextVipEgg() local hrp = getHRP() if egg and hrp then local part = getBasePart(egg) if part then hrp.CFrame = part.CFrame * CFrame.new(0, 2, 0) task.wait(0.5) updateVipESP() end end end }) Tab:CreateSlider({ Name = "Teleport to V.I.P Egg", Range = {101, 170}, Increment = 1, Suffix = "Egg", CurrentValue = 101, Callback = function(v) local egg = EggsFolder:FindFirstChild(tostring(v)) local hrp = getHRP() if egg and hrp then local part = getBasePart(egg) if part then hrp.CFrame = part.CFrame * CFrame.new(0, 2, 0) end end end }) Tab:CreateToggle({ Name = "V.I.P Egg ESP (101–170)", CurrentValue = false, Callback = function(v) vipESP = v updateVipESP() end }) Tab:CreateButton({ Name = "Reset V.I.P Egg Counter", Callback = function() vipIndex = 101 updateVipESP() end }) Tab:CreateLabel("Normal + V.I.P Egg Hunter + Victory TP Ready βœ”οΈ")