ServerHop
Key Required VerifiedUniversal

ServerHop

Universal Scriptvxstyvxsty 43.6K views 1.3K executesUpdated May 18, 2025
0.0/ 5(25 votes)
0250% Positive
Lua Script•68 lines (2145 chars)
local IGNORE_FILE = "ServerHop.txt"
local HOUR = 3600

local Module = {}

local HttpService, TeleportService = game:GetService"HttpService", game:GetService"TeleportService"

local function GET()
    if not isfile(IGNORE_FILE) then return {} end
    local list = {}
    local now = os.time()
    for _, line in next, readfile(IGNORE_FILE):split("\n") do
        local pmo, ts = line:match("([^|]+)|?(%d*)")
        ts = tonumber(ts) or 0
        if now - ts < HOUR then list[pmo] = ts end
    end
    return list
end

local function Update(List)
    local sybau = {}
    for ts, pmo in next, List do
        table.insert(sybau, ts .. "|" .. pmo)
    end
    writefile(IGNORE_FILE, table.concat(sybau, "\n"))
end

local IgnoredServers = GET()

function Module:GetServers(Sort)
    Sort = Sort or { ping = true, fps = false, asc = false }
    
    local cursor = ""
    while true do
        local success, result = pcall(function()
            return HttpService:JSONDecode(game:HttpGet(`https://games.roblox.com/v1/games/{game.PlaceId}/servers/Public?limit=100&sortOrder={(Sort.asc and "Asc" or "Desc")}&excludeFullGames=true&cursor={cursor}`))
        end)
        
        if not success or not result or not result.data then error("server error (not success or no result or no data)") end

        local ServersList = result.data

        table.sort(ServersList, function(a, b)
            if Sort.ping and Sort.fps then
                return a.ping == b.ping and a.fps > b.fps or a.ping < b.ping
            elseif Sort.ping then
                return a.ping < b.ping
            elseif Sort.fps then
                return a.fps > b.fps
            end
        end)

        for _, Server in next, ServersList do
            if not IgnoredServers[Server.id] then
                IgnoredServers[Server.id] = os.time()
                Update(IgnoredServers)

                return TeleportService:TeleportToPlaceInstance(game.PlaceId, Server.id, game:GetService("Players").LocalPlayer)
            end
        end

        assert(result.nextPageCursor, "No server found.")

        cursor = result.nextPageCursor
    end
end

return Module

Features & Information

Optimized & Customizable universal server hop! This script lets you choose the server you wanna server hop to, For example: Highest FPS, Lowest Ping, Lowest Players, ... I don't think I will be updating this any time soon, Feel free to fork it or remake or use publicly.
#serverhop#free#optimized

Community Comments (12)

ZERETETZERETETMay 18, 2025

we already have like a million of serverhop scripts. why do we need another one 🥀

Replying to @ZERETET
leilaineleilaineJan 28, 2026

@ZERETET theres a serverhop inside the game?

Replying to @leilaine
ZERETETZERETETJan 29, 2026

@leilaine sometimes there isnt?

Replying to @ZERETET
leilaineleilaineFeb 1, 2026

@ZERETET no i mean, if oyu know a script that have inside the server or with language... server idk

vxstyvxstyMay 18, 2025

@WEPRE_productions funsies

debug_coloneldebug_colonelMay 18, 2025

the only thing i like here is how bro names the variables like WW Fr

people be making anything

wjGQiwhUsbUsi9wjGQiwhUsbUsi9May 31, 2025

Bro prolly skidded this from iyr

notfynnnnotfynnnJun 8, 2025

W SCRIPT

WERTXWERTXSep 15, 2025

Maybe W script i think

v0idluav0idluaDec 3, 2025

21 ahh dislikes🥀

Replying to @v0idlua
vxstyvxstyDec 7, 2025

@PlayerZN botted

More Scripts for Universal Scripts