
KeylessUniversal

-- =========================================================
-- ✨ 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 = trueNo comments yet for this script.



