SRLOLHubv1
Key RequiredUniversal

SRLOLHubv1

Universal Scriptretrokiddv2retrokiddv2 439 views 1.6K executesUpdated Feb 3, 2026
Unrated
00
Lua Script•291 lines (16821 chars)
-- =========================================================
--   ✨ SRLOLHub: THE FINAL PERFECT EDITION ✨
-- =========================================================

local lp = game.Players.LocalPlayer
local mouse = lp:GetMouse()
local ts = game:GetService("TeleportService")
local uis = game:GetService("UserInputService")
local runService = game:GetService("RunService")
local lighting = game:GetService("Lighting")
local camera = workspace.CurrentCamera

-- --- [Translation] ---
local i18n = {
    ["English"] = {
        title="SRLOLHub", move="Movement", visual="Visuals", tool="Tools", fps="Combat", anti="Anti/Server", hub="GUI Hub", lang="Language",
        speed="WalkSpeed", jump="JumpPower", infJ="Inf Jump", noclip="Noclip", fly="Run Fly", rtp="Random TP",
        fp="First Person", tp="Third Person", esp="ESP Glow", xray="X-Ray", day="Always Day", flood="Flood Map",
        btool="Get Build Tool", tptool="Get TP Tool", ladder="Spawn Ladder", cdel="Click Delete",
        aim="Auto Aimbot", assist="Auto Assist",
        anchor="Anti-Bring", rejoin="Rejoin", shop="Server Hop", exit="Exit GUI?", yes="YES", no="NO",
        exec="Execute Script", bsize="Build Size (X,Y,Z)"
    },
    ["日本語"] = {
        title="SRLOLHub", move="移動", visual="視覚/環境", tool="ツール", fps="FPS", anti="Anti/鯖", hub="GUIハブ", lang="言語",
        speed="移動速度", jump="ジャンプ力", infJ="無限ジャンプ", noclip="壁抜け", fly="Fly実行", rtp="ランダムTP",
        fp="1人称視点", tp="3人称視点", esp="ESP発光", xray="壁透視", day="真昼固定", flood="マップ水没",
        btool="Build Tool取得", tptool="TP Tool取得", ladder="ハシゴ生成", cdel="クリック消去",
        aim="自動エイム", assist="自動アシスト",
        anchor="位置固定", rejoin="再参加", shop="鯖ホップ", exit="GUIを消去しますか?", yes="はい", no="いいえ",
        exec="スクリプト実行", bsize="ビルドサイズ (X,Y,Z)"
    },
    ["Español"] = {
        title="SRLOLHub", move="Movimiento", visual="Visual", tool="Herramientas", fps="Combate", anti="Anti/Serv", hub="Hub GUI", lang="Idioma",
        speed="Velocidad", jump="Salto", infJ="Salto Inf", noclip="Sin Colisión", fly="Volar", rtp="TP Aleatorio",
        fp="1ª Persona", tp="3ª Persona", esp="Brillo ESP", xray="Rayos X", day="Siempre Día", flood="Inundar",
        btool="Herram. Const", tptool="Herram. TP", ladder="Escalera", cdel="Click Borrar",
        aim="Auto Aimbot", assist="Auto Asist",
        anchor="Anclar", rejoin="Reunirse", shop="Saltar Serv", exit="¿Cerrar GUI?", yes="SÍ", no="NO",
        exec="Ejecutar Script", bsize="Tamaño (X,Y,Z)"
    },
    ["한국어"] = {
        title="SRLOLHub", move="이동", visual="시각/환경", tool="도구", fps="전투", anti="안티/서버", hub="GUI 허브", lang="언어",
        speed="이동 속도", jump="점프력", infJ="무한 점프", noclip="노클립", fly="플라이 실행", rtp="랜덤 TP",
        fp="1인칭", tp="3인칭", esp="ESP 발광", xray="엑스레이", day="항상 낮", flood="맵 침수",
        btool="빌드 도구", tptool="TP 도구", ladder="사다리 생성", cdel="클릭 삭제",
        aim="자동 에임", assist="자동 어시스트",
        anchor="위치 고정", rejoin="재접속", shop="서버 홉", exit="GUI를 종료하시겠습니까?", yes="예", no="아니오",
        exec="스크립트 실행", bsize="빌드 크기 (X,Y,Z)"
    },
    ["中文"] = {
        title="SRLOLHub", move="移動", visual="視覚", tool="工具", fps="自瞄", anti="反制", hub="脚本庫", lang="語言",
        speed="移動速度", jump="跳躍力", infJ="無限跳躍", noclip="穿牆", fly="飛行模式", rtp="隨機傳送",
        fp="第一人稱", tp="第三人稱", esp="透視發光", xray="透視", day="鎖定白天", flood="地圖淹没",
        btool="獲得建築工具", tptool="獲得傳送工具", ladder="生成梯子", cdel="點擊删除",
        aim="自動自瞄", assist="自動輔助",
        anchor="位置固定", rejoin="重新連接", shop="換服", exit="确定退出吗?", yes="是", no="否",
        exec="執行腳本", bsize="建筑尺寸 (X,Y,Z)"
    }
}

local currentLang = "English"
local elements = {} -- Manage all objects to be translated
local buildSize = Vector3.new(4,1,4)

-- --- [GUI] ---
local ScreenGui = Instance.new("ScreenGui", game:GetService("CoreGui"))
ScreenGui.Name = "SRLOLHub"

local MainFrame = Instance.new("Frame", ScreenGui)
MainFrame.Size = UDim2.new(0, 520, 0, 420)
MainFrame.Position = UDim2.new(0.5, -260, 0.5, -210)
MainFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 12)
MainFrame.Active = true
MainFrame.Draggable = true

local TopBar = Instance.new("Frame", MainFrame)
TopBar.Size = UDim2.new(1, 0, 0, 30)
TopBar.BackgroundColor3 = Color3.fromRGB(30, 30, 40)

local TitleLabel = Instance.new("TextLabel", TopBar)
TitleLabel.Size = UDim2.new(1, -100, 1, 0)
TitleLabel.Position = UDim2.new(0, 10, 0, 0)
TitleLabel.TextColor3 = Color3.new(1, 1, 1)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Font = Enum.Font.SourceSansBold
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left

local SideBar = Instance.new("Frame", MainFrame)
SideBar.Size = UDim2.new(0, 130, 1, -30)
SideBar.Position = UDim2.new(0, 0, 0, 30)
SideBar.BackgroundColor3 = Color3.fromRGB(22, 22, 22)
Instance.new("UIListLayout", SideBar)

local TabContainer = Instance.new("Frame", MainFrame)
TabContainer.Size = UDim2.new(1, -130, 1, -30)
TabContainer.Position = UDim2.new(0, 130, 0, 30)
TabContainer.BackgroundTransparency = 1

-- --- [Translation] ---
local function UpdateUI()
    local d = i18n[currentLang]
    TitleLabel.Text = d.title
    for obj, info in pairs(elements) do
        if obj.Parent then
            local baseText = d[info.key] or info.key
            if info.isToggle then
                local stateText = obj.BackgroundColor3 == Color3.fromRGB(30, 80, 30) and "ON" or "OFF"
                obj.Text = baseText .. ": " .. stateText
            elseif obj:IsA("TextBox") then
                obj.PlaceholderText = baseText
            else
                obj.Text = baseText
            end
        end
    end
end

local function RegisterElement(obj, key, isToggle)
    elements[obj] = {key = key, isToggle = isToggle}
end

-- --- [UI] ---
local function CreateTab(id, i18nKey)
    local frame = Instance.new("ScrollingFrame", TabContainer)
    frame.Size = UDim2.new(1, 0, 1, 0)
    frame.BackgroundTransparency = 1
    frame.Visible = false
    frame.CanvasSize = UDim2.new(0, 0, 6, 0)
    frame.ScrollBarThickness = 2
    Instance.new("UIListLayout", frame).HorizontalAlignment = Enum.HorizontalAlignment.Center
    frame.UIListLayout.Padding = UDim.new(0, 8)
    
    local btn = Instance.new("TextButton", SideBar)
    btn.Size = UDim2.new(1, 0, 0, 40)
    btn.BackgroundColor3 = Color3.fromRGB(28, 28, 28)
    btn.TextColor3 = Color3.new(1, 1, 1)
    btn.Font = Enum.Font.SourceSansBold
    RegisterElement(btn, i18nKey, false)
    
    btn.MouseButton1Click:Connect(function()
        for _, t in pairs(TabContainer:GetChildren()) do if t:IsA("ScrollingFrame") then t.Visible = false end end
        for _, b in pairs(SideBar:GetChildren()) do if b:IsA("TextButton") then b.BackgroundColor3 = Color3.fromRGB(28, 28, 28) end end
        frame.Visible = true
        btn.BackgroundColor3 = Color3.fromRGB(90, 40, 180)
    end)
    return frame
end

local function AddButton(parent, i18nKey, color, callback)
    local btn = Instance.new("TextButton", parent)
    btn.Size = UDim2.new(0.9, 0, 0, 35)
    btn.BackgroundColor3 = color
    btn.TextColor3 = Color3.new(1, 1, 1)
    btn.Font = Enum.Font.SourceSansBold
    RegisterElement(btn, i18nKey, false)
    btn.MouseButton1Click:Connect(callback)
    return btn
end

local function AddToggle(parent, i18nKey, callback)
    local enabled = false
    local btn = AddButton(parent, i18nKey, Color3.fromRGB(80, 30, 30), function() end)
    elements[btn].isToggle = true
    btn.MouseButton1Click:Connect(function()
        enabled = not enabled
        btn.BackgroundColor3 = enabled and Color3.fromRGB(30, 80, 30) or Color3.fromRGB(80, 30, 30)
        btn.Text = i18n[currentLang][i18nKey] .. (enabled and ": ON" or ": OFF")
        callback(enabled)
    end)
    return btn
end

-- --- [Tab] ---
local moveT = CreateTab("Move", "move")
local visualT = CreateTab("Visual", "visual")
local toolT = CreateTab("Tool", "tool")
local fpsT = CreateTab("FPS", "fps")
local antiT = CreateTab("Anti", "anti")
local hubT = CreateTab("Hub", "hub")
local langT = CreateTab("Lang", "lang")

-- --- [Function] ---

-- 1. Movement
AddToggle(moveT, "speed", function(s) _G.wsLoop = s task.spawn(function() while _G.wsLoop do if lp.Character then lp.Character.Humanoid.WalkSpeed = _G.ws or 16 end task.wait() end end) end)
local wsIn = Instance.new("TextBox", moveT); wsIn.Size = UDim2.new(0.9,0,0,30); wsIn.BackgroundColor3=Color3.fromRGB(30,30,30); wsIn.TextColor3=Color3.new(1,1,1); RegisterElement(wsIn, "speed", false)
wsIn.FocusLost:Connect(function() _G.ws = tonumber(wsIn.Text) end)

AddToggle(moveT, "jump", function(s) _G.jpLoop = s task.spawn(function() while _G.jpLoop do if lp.Character then lp.Character.Humanoid.UseJumpPower=true lp.Character.Humanoid.JumpPower=_G.jp or 50 lp.Character.Humanoid.JumpHeight=_G.jp or 7.2 end task.wait() end end) end)
local jpIn = Instance.new("TextBox", moveT); jpIn.Size = UDim2.new(0.9,0,0,30); jpIn.BackgroundColor3=Color3.fromRGB(30,30,30); jpIn.TextColor3=Color3.new(1,1,1); RegisterElement(jpIn, "jump", false)
jpIn.FocusLost:Connect(function() _G.jp = tonumber(jpIn.Text) end)

AddToggle(moveT, "infJ", function(s) _G.infJ = s end)
uis.JumpRequest:Connect(function() if _G.infJ then lp.Character:FindFirstChildOfClass("Humanoid"):ChangeState(3) end end)
AddToggle(moveT, "noclip", function(s) _G.noclip = s end)
runService.Stepped:Connect(function() if _G.noclip and lp.Character then for _,v in pairs(lp.Character:GetDescendants()) do if v:IsA("BasePart") then v.CanCollide = false end end end end)
AddButton(moveT, "fly", Color3.fromRGB(0,100,100), function() loadstring(game:HttpGet("https://raw.githubusercontent.com/adenalinabon-pixel/Fly-gui/refs/heads/main/The%20fly%20gui%20script"))() end)
AddButton(moveT, "rtp", Color3.fromRGB(70,80,120), function() local p=game.Players:GetPlayers() local t=p[math.random(1,#p)] if t and t.Character then lp.Character:MoveTo(t.Character.HumanoidRootPart.Position) end end)

-- 2. Visuals
AddButton(visualT, "fp", Color3.fromRGB(50,50,50), function() lp.CameraMode = Enum.CameraMode.LockFirstPerson end)
AddButton(visualT, "tp", Color3.fromRGB(50,50,50), function() lp.CameraMode = Enum.CameraMode.Classic lp.CameraMaxZoomDistance = 128 end)
AddToggle(visualT, "esp", function(s) 
    _G.esp = s 
    if not s then for _,p in pairs(game.Players:GetPlayers()) do if p.Character and p.Character:FindFirstChild("Highlight") then p.Character.Highlight:Destroy() end end end
    task.spawn(function() while _G.esp do for _,p in pairs(game.Players:GetPlayers()) do if p~=lp and p.Character and not p.Character:FindFirstChild("Highlight") then Instance.new("Highlight", p.Character) end end task.wait(1) end end) 
end)
AddToggle(visualT, "xray", function(s) for _,v in pairs(workspace:GetDescendants()) do if v:IsA("BasePart") and not v:IsDescendantOf(lp.Character) then v.Transparency = s and 0.5 or 0 end end end)
AddToggle(visualT, "day", function(s) lighting.ClockTime = s and 12 or 14 end)
AddToggle(visualT, "flood", function(s) 
    if s then workspace.Terrain:FillBlock(CFrame.new(0,0,0), Vector3.new(2048, 60, 2048), Enum.Material.Water)
    else workspace.Terrain:FillBlock(CFrame.new(0,0,0), Vector3.new(2048, 60, 2048), Enum.Material.Air) end
end)

-- 3. Tools
AddButton(toolT, "btool", Color3.fromRGB(0,120,120), function() 
    local t=Instance.new("Tool",lp.Backpack) t.Name="Build" t.RequiresHandle=false 
    t.Activated:Connect(function() local p=Instance.new("Part",workspace) p.Size=buildSize p.Anchored=true p.Position=mouse.Hit.p+Vector3.new(0, buildSize.Y/2, 0) end) 
end)
local bsIn = Instance.new("TextBox", toolT); bsIn.Size = UDim2.new(0.9,0,0,30); bsIn.BackgroundColor3=Color3.fromRGB(30,30,30); bsIn.TextColor3=Color3.new(1,1,1); RegisterElement(bsIn, "bsize", false)
bsIn.FocusLost:Connect(function() local s = bsIn.Text:split(",") if #s == 3 then buildSize = Vector3.new(tonumber(s[1]), tonumber(s[2]), tonumber(s[3])) end end)
AddButton(toolT, "tptool", Color3.fromRGB(80,80,120), function() local t=Instance.new("Tool",lp.Backpack) t.Name="TP" t.RequiresHandle=false t.Activated:Connect(function() lp.Character:MoveTo(mouse.Hit.p) end) end)
AddButton(toolT, "ladder", Color3.fromRGB(100,70,20), function() local s=lp.Character.HumanoidRootPart.CFrame*CFrame.new(0,-3,-3) for i=1,15 do local p=Instance.new("Part",workspace) p.Size=Vector3.new(4,0.5,1) p.Anchored=true p.CFrame=s*CFrame.new(0,i*1.2,0) end end)
AddToggle(toolT, "cdel", function(s) _G.cDel=s end)
mouse.Button1Down:Connect(function() if _G.cDel and mouse.Target and mouse.Target.Name~="BasePlate" then mouse.Target:Destroy() end end)

-- 4. Combat (FPS)
local ab, aa = false, false
AddToggle(fpsT, "aim", function(s) ab=s aa=false end)
AddToggle(fpsT, "assist", function(s) aa=s ab=false end)
runService:BindToRenderStep("AimLock", 201, function()
    if ab or aa then
        local target, dist = nil, math.huge
        for _,p in pairs(game.Players:GetPlayers()) do
            if p~=lp and p.Character and p.Character:FindFirstChild("Head") and p.Character.Humanoid.Health>0 then
                local pos,os = camera:WorldToViewportPoint(p.Character.Head.Position)
                if os and (Vector2.new(pos.X,pos.Y)-Vector2.new(mouse.X,mouse.Y)).Magnitude < dist then 
                    dist=(Vector2.new(pos.X,pos.Y)-Vector2.new(mouse.X,mouse.Y)).Magnitude target=p 
                end
            end
        end
        if target then
            local tCF = CFrame.new(camera.CFrame.Position, target.Character.Head.Position)
            camera.CFrame = ab and tCF or camera.CFrame:Lerp(tCF, 0.2)
        end
    end
end)

-- 5. Hub & Executor
AddButton(hubT, "Infinite Yield", Color3.fromRGB(0,80,160), function() loadstring(game:HttpGet('https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source'))() end)
AddButton(hubT, "c00lgui Reborn", Color3.fromRGB(120,0,0), function() loadstring(game:HttpGet("https://pastebin.com/raw/kxuNSVD3"))() end)
local exB = Instance.new("TextBox", hubT); exB.Size = UDim2.new(0.9, 0, 0, 100); exB.MultiLine = true; exB.BackgroundColor3 = Color3.fromRGB(30,30,30); exB.TextColor3 = Color3.new(1,1,1); exB.ClearTextOnFocus = false; RegisterElement(exB, "exec", false)
AddButton(hubT, "exec", Color3.fromRGB(0,120,0), function() loadstring(exB.Text)() end)

-- 6. Anti/Server
AddButton(antiT, "anchor", Color3.fromRGB(120,30,30), function() if lp.Character then lp.Character.HumanoidRootPart.Anchored = not lp.Character.HumanoidRootPart.Anchored end end)
AddButton(antiT, "rejoin", Color3.fromRGB(50,50,50), function() ts:TeleportToPlaceInstance(game.PlaceId, game.JobId, lp) end)
AddButton(antiT, "shop", Color3.fromRGB(60,60,100), function()
    local s = game:GetService("HttpService"):JSONDecode(game:HttpGet("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?limit=100")).data
    for _,v in pairs(s) do if v.id ~= game.JobId and v.playing < v.maxPlayers then ts:TeleportToPlaceInstance(game.PlaceId, v.id, lp) break end end
end)

-- 7. Language
for langName, _ in pairs(i18n) do
    local b = Instance.new("TextButton", langT)
    b.Size = UDim2.new(0.9, 0, 0, 35)
    b.Text = langName
    b.BackgroundColor3 = Color3.fromRGB(40,40,50)
    b.TextColor3 = Color3.new(1,1,1)
    b.Font = Enum.Font.SourceSansBold
    b.MouseButton1Click:Connect(function() currentLang = langName UpdateUI() end)
end

-- --- [End] ---
local function Exit()
    local cfm = Instance.new("Frame", ScreenGui); cfm.Size = UDim2.new(0,200,0,100); cfm.Position = UDim2.new(0.5,-100,0.5,-50); cfm.BackgroundColor3 = Color3.new(0,0,0)
    local t = Instance.new("TextLabel", cfm); t.Size = UDim2.new(1,0,0.6,0); t.TextColor3 = Color3.new(1,1,1); RegisterElement(t, "exit", false)
    local y = Instance.new("TextButton", cfm); y.Size = UDim2.new(0.5,0,0.4,0); y.Position = UDim2.new(0,0,0.6,0); RegisterElement(y, "yes", false); y.MouseButton1Click:Connect(function() ScreenGui:Destroy() end)
    local n = Instance.new("TextButton", cfm); n.Size = UDim2.new(0.5,0,0.4,0); n.Position = UDim2.new(0.5,0,0.6,0); RegisterElement(n, "no", false); n.MouseButton1Click:Connect(function() cfm:Destroy() end)
    UpdateUI()
end

local MinB = Instance.new("TextButton", TopBar); MinB.Size=UDim2.new(0,30,0,30); MinB.Position=UDim2.new(1,-90,0,0); MinB.Text="-"; MinB.MouseButton1Click:Connect(function() MainFrame.Size=UDim2.new(0,520,0,30); SideBar.Visible=false; TabContainer.Visible=false end)
local MaxB = Instance.new("TextButton", TopBar); MaxB.Size=UDim2.new(0,30,0,30); MaxB.Position=UDim2.new(1,-60,0,0); MaxB.Text="□"; MaxB.MouseButton1Click:Connect(function() MainFrame.Size=UDim2.new(0,520,0,420); SideBar.Visible=true; TabContainer.Visible=true end)
local ExtB = Instance.new("TextButton", TopBar); ExtB.Size=UDim2.new(0,30,0,30); ExtB.Position=UDim2.new(1,-30,0,0); ExtB.Text="X"; ExtB.BackgroundColor3=Color3.new(0.6,0,0); ExtB.MouseButton1Click:Connect(Exit)

-- reset
currentLang = "English"
UpdateUI()
moveT.Visible = true

Features & Information

TranslationFunction(I'm a client, but I think it's pretty good) 1.English 2.Castellano(Spanish) 3.日本語(Japanese) 4.한국어(Korean) 5.中文(Chinese) Function 1.Move 2. Visual 3.tool 4.FPS 5.anti 6.gui 7.Translation

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts