
Key Required
Moony Hub
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
Community Comments (0)
No comments yet for this script.
