Moony Hub
Key Required

Moony Hub

Epic Egg Hunt 2026ApollodahackerApollodahacker 671 views 237 executesUpdated Feb 3, 2026
Unrated
00
Lua Script•313 lines (9033 chars)
-- 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 ✔️")

Features & Information

tp to victory area and vip area egg esp normal and vip egg slider for vip aswell and hunt next egg KEY IS MOONY
#Hunt

Community Comments (0)

No comments yet for this script.