Advertisement
timmie140

Moon hopper

Nov 23rd, 2024 (edited)
363
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.77 KB | None | 0 0
  1. -- Randomized and Obfuscated Moon Phase Tracker Script
  2.  
  3. -- Randomized URLs (Webhooks and Avatar Image)
  4. local QuantumGiraffeLink = "https://th.bing.com/th/id/R.c8eea53cea7132df531f07d27d541f09?rik=4FwTPQTN8obs5A&riu=http%3a%2f%2fgetwallpapers.com%2fwallpaper%2ffull%2f9%2f9%2fb%2f673317.jpg&ehk=21fsGX060wduMQtI2bnDy2tN6s%2fgXHzNlPZmstcHSqc%3d&risl=&pid=ImgRaw&r=0"
  5. local FullBlenderHook = "https://discord.com/api/webhooks/1310662332531081247/UGoQYX7J812bpahYyeKtclEi_ZDG0-ZYdY9gFQicQsIE9W2zDNJcO17fJjxzTCCDjUdn"
  6. local PickleCactusHook = "https://discord.com/api/webhooks/1291821412188819516/d5kzcxW1RI9dSiXBmlwEiduyJalAjSFREm8lu0viDOospXitP5QQyTIAu8g3m0jWaAkk"
  7.  
  8. -- Services and Game Variables
  9. local TelekineticJump = game:GetService("TeleportService") -- Handles server teleporting
  10. local SugarHTTP = game:GetService("HttpService")           -- Handles HTTP requests
  11. local CheeseFriends = game:GetService("Players")          -- Player service
  12. local CloudyLight = game:GetService("Lighting")           -- Access to Sky for moon phase
  13. local FerretRecords = "BananaServers.txt"                 -- File to save visited servers
  14. local LastButterPhase = nil                                -- Tracks the last moon phase sent
  15. local MelonHubID = game.PlaceId                            -- Current game's Place ID
  16. local MaxSnailLogs = 50                                    -- Max servers to store in visited logs
  17. local PineappleCheckType = 2                               -- Determines moon phase check type
  18.  
  19. -- Moon Phases (Mapped Random Names)
  20. local RubberMoons = {
  21.     ["1"] = {Icon = "🌔", TextureId = "http://www.roblox.com/asset/?id=9709149680"},
  22.     ["2"] = {Icon = "🌓", TextureId = "http://www.roblox.com/asset/?id=9709150086"},
  23.     ["3"] = {Icon = "🌒", TextureId = "http://www.roblox.com/asset/?id=9709139597"},
  24.     ["4"] = {Icon = "🌑", TextureId = "http://www.roblox.com/asset/?id=9709135895"},
  25.     ["5"] = {Icon = "🌘", TextureId = "http://www.roblox.com/asset/?id=9709150401"},
  26.     ["6"] = {Icon = "🌗", TextureId = "http://www.roblox.com/asset/?id=9709143733"},
  27.     ["7"] = {Icon = "🌖", TextureId = "http://www.roblox.com/asset/?id=9709149052"},
  28.     ["8"] = {Icon = "🌕", TextureId = "http://www.roblox.com/asset/?id=9709149431"}  -- Full Moon
  29. }
  30.  
  31. -- Reads visited servers from a file
  32. local function JuggleLemons()
  33.     local MangoLog = {}
  34.     if isfile(FerretRecords) then
  35.         for ID in string.gmatch(readfile(FerretRecords), "[^\n]+") do
  36.             MangoLog[ID] = true
  37.         end
  38.     else
  39.         writefile(FerretRecords, "")
  40.     end
  41.     return MangoLog
  42. end
  43.  
  44. -- Saves a new server ID to the file
  45. local function CactusDance(ServerID)
  46.     local MangoLog = JuggleLemons()
  47.     MangoLog[ServerID] = true
  48.    
  49.     local SlimyList = {}
  50.     for ID in pairs(MangoLog) do
  51.         table.insert(SlimyList, ID)
  52.     end
  53.  
  54.     if #SlimyList > MaxSnailLogs then
  55.         table.remove(SlimyList, 1) -- Prevent file bloating
  56.     end
  57.     writefile(FerretRecords, table.concat(SlimyList, "\n"))
  58. end
  59.  
  60. -- Detects the current moon phase
  61. local function PineconeWatcher()
  62.     local SkyObject = CloudyLight:FindFirstChild("Sky")
  63.     if SkyObject then
  64.         for Phase, Data in pairs(RubberMoons) do
  65.             if SkyObject.MoonTextureId == Data.TextureId then
  66.                 return tonumber(Phase), Data.Icon
  67.             end
  68.         end
  69.     end
  70.     return nil
  71. end
  72.  
  73. -- Sends a webhook with moon phase info
  74. local function JellyfishSignal(Phase, PlayerCount, ServerLink, IsFullMoon)
  75.     local MoonInfo = RubberMoons[tostring(Phase)] or { Icon = "💡" }
  76.     local SpatulaURL = IsFullMoon and FullBlenderHook or PickleCactusHook
  77.    
  78.     local BubbleMessage = {
  79.         username = "Quantum Moon Tracker",
  80.         avatar_url = QuantumGiraffeLink,
  81.         embeds = {{
  82.             title = "Celestial Phase Update",
  83.             description = string.format("**Current Phase:** %s\n**Players Here:** %d", MoonInfo.Icon, PlayerCount),
  84.             color = IsFullMoon and 16711680 or 65280,
  85.             fields = {{
  86.                 name = "Teleport Link",
  87.                 value = string.format("[Join Server Here](%s)", ServerLink)
  88.             }}
  89.         }}
  90.     }
  91.  
  92.     pcall(function()
  93.         local ScrambledRequest = syn and syn.request or request
  94.         if ScrambledRequest then
  95.             ScrambledRequest({
  96.                 Url = SpatulaURL,
  97.                 Method = "POST",
  98.                 Headers = { ["Content-Type"] = "application/json" },
  99.                 Body = SugarHTTP:JSONEncode(BubbleMessage)
  100.             })
  101.         end
  102.     end)
  103. end
  104.  
  105. -- Generates a server link
  106. local function CrocodileLink(JobID)
  107.     return string.format("https://www.roblox.com/games/%d?serverId=%s", MelonHubID, JobID)
  108. end
  109.  
  110. -- Finds and hops to another server
  111. local function SpaghettiHop()
  112.     local VisitedLettuce = JuggleLemons()
  113.     local FoundNewServer = false
  114.  
  115.     local Success, LettuceServers = pcall(function()
  116.         return SugarHTTP:JSONDecode(game:HttpGet("https://games.roblox.com/v1/games/" .. MelonHubID .. "/servers/Public?sortOrder=Asc&limit=100"))
  117.     end)
  118.  
  119.     if Success and LettuceServers and LettuceServers.data then
  120.         for _, server in ipairs(LettuceServers.data) do
  121.             if not VisitedLettuce[server.id] and server.playing < server.maxPlayers then
  122.                 FoundNewServer = true
  123.                 CactusDance(server.id)
  124.                 local Phase, Icon = PineconeWatcher()
  125.                
  126.                 if (PineappleCheckType == 1 and Phase == 8) or (PineappleCheckType == 2 and (Phase == 7 or Phase == 8)) then
  127.                     local Deeplink = CrocodileLink(server.id)
  128.                     JellyfishSignal(Phase, #CheeseFriends:GetPlayers(), Deeplink, Phase == 8)
  129.                     TelekineticJump:TeleportToPlaceInstance(MelonHubID, server.id)
  130.                 end
  131.                 break
  132.             end
  133.         end
  134.     end
  135.  
  136.     if not FoundNewServer then
  137.         warn("No new servers found. Retrying current server.")
  138.         TelekineticJump:Teleport(MelonHubID)
  139.     end
  140. end
  141.  
  142. -- Handles teleport failures
  143. local function SpatulaRescue()
  144.     TelekineticJump.TeleportInitFailed:Connect(function(_, Result, Error)
  145.         if Result == Enum.TeleportResult.Failure then
  146.             warn("Teleport failed. Retrying...")
  147.             wait(2)
  148.             SpaghettiHop()
  149.         end
  150.     end)
  151. end
  152.  
  153. -- Main Execution
  154. local function BananaLaunch()
  155.     repeat wait() until game:IsLoaded()
  156.     wait(5)
  157. end
  158.  
  159. BananaLaunch()
  160. SpatulaRescue()
  161.  
  162. local Phase, Icon = PineconeWatcher()
  163. if Phase == 7 or Phase == 8 then
  164.     if Phase ~= LastButterPhase then
  165.         local Deeplink = CrocodileLink(game.JobId)
  166.         JellyfishSignal(Phase, #CheeseFriends:GetPlayers(), Deeplink, Phase == 8)
  167.         LastButterPhase = Phase
  168.     end
  169. else
  170.     SpaghettiHop()
  171. end
  172.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement