local Config = {
MaxStore = 3600,
CheckInterval = 2500,
TeleportInterval = 1000,
}
local HttpService = game:GetService("HttpService")
local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
if not Player then
Players:GetPropertyChangedSignal("LocalPlayer"):Wait()
Player = Players.LocalPlayer
end
getgenv().ServerHop = function()
local PlaceId = game.PlaceId
local JobId = game.JobId
local RootFolder = "ServerHop"
local StorageFile = `{RootFolder}/{tostring(PlaceId)}.json`
local Data = {
Start = tick(),
Jobs = {},
}
if not isfolder(RootFolder) then
makefolder(RootFolder)
end
if isfile(StorageFile) then
local NewData = HttpService:JSONDecode(readfile(StorageFile))
if tick() - NewData.Start < Config.MaxStore then
Data = NewData
end
end
if not table.find(Data.Jobs, JobId) then
table.insert(Data.Jobs, JobId)
end
writefile(StorageFile, HttpService:JSONEncode(Data))
local Servers = {}
local Cursor = ""
while Cursor and #Servers <= 0 and task.wait(Config.CheckInterval / 1000) do
local Request = request or HttpService.RequestAsync
local RequestSuccess, Response = pcall(Request, {
Url = `https://games.roblox.com/v1/games/{PlaceId}/servers/Public?sortOrder=Desc&limit=100&excludeFullGames=true&cursor{Cursor}`,
Method = "GET",
})
if not RequestSuccess then
continue
end
local DecodeSuccess, Body = pcall(HttpService.JSONDecode, HttpService, Response.Body)
if not DecodeSuccess or not Body or not Body.data then
continue
end
task.spawn(function()
for _, Server in pairs(Body.data) do
if
typeof(Server) ~= "table"
or not Server.id
or not tonumber(Server.playing)
or not tonumber(Server.maxPlayers)
then
continue
end
if Server.playing < Server.maxPlayers and not table.find(Data.Jobs, Server.id) then
table.insert(Servers, 1, Server.id)
end
end
end)
if Body.nextPageCursor then
Cursor = Body.nextPageCursor
end
end
while #Servers > 0 and task.wait(Config.TeleportInterval / 1000) do
local Server = Servers[math.random(1, #Servers)]
TeleportService:TeleportToPlaceInstance(PlaceId, Server, Player)
end
end
Comments
No comments yet
Be the first to share your thoughts!