XS Hub
Key RequiredUniversal

XS Hub

Universal ScriptXS_HubXS_Hub 677 views 818 executesUpdated Nov 21, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•451 lines (17918 chars)
--[[
    XS HUB V2.5 ULTRA — FIXED VERSION (Rayfield Load Issue Solved)
    By Primee Alex | November 21, 2025 | 100% Working + Backup
]]

-- BACKUP LOADSTRING (kalau sirius.menu down, auto fallback ke GitHub)
local success, Rayfield = pcall(function()
    return loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
end)
if not success or not Rayfield then
    Rayfield = loadstring(game:HttpGet('https://raw.githubusercontent.com/SiriusSoftwareLtd/Rayfield/main/source'))()
    print("Using GitHub backup for Rayfield")
end

local Window = Rayfield:CreateWindow({
   Name = "XS Hub V3.0",
   LoadingTitle = "XS Hub V3.0",
   LoadingSubtitle = "by Primee Alex, King_Daffa (Update!)",
   ConfigurationSaving = {Enabled = true, FolderName = "XSHubConfig"},
   Discord = {Enabled = true, Invite = "(There isn't any yet)"},
   KeySystem = false,
   ToggleUIKeybind = "K"  -- Tekan K buat toggle UI kalau gak muncul
})

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Camera = workspace.CurrentCamera
local Stats = game:GetService("Stats")
local joinLeaveNotif = true

Rayfield:Notify({Title="XS Hub V2.5", Content="Loaded successfully! (Fixed Version)", Duration=5, Image=6031075938})

-- Auto load Infinite Yield
task.spawn(function()
    loadstring(game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source"))()
end)

-- TARGET SYSTEM
local TargetedPlayer = nil
local DragConnection = nil
local HeadSitAlign = nil

local function GetPlayer(name)
    if not name or name == "" then return end
    name = name:lower()
    for _, v in Players:GetPlayers() do
        if v.Name:lower():find(name) or (v.DisplayName and v.DisplayName:lower():find(name)) then
            return v
        end
    end
end

local function GetRoot(plr)
    return plr.Character and plr.Character:FindFirstChild("HumanoidRootPart")
end

-- FLING / DOGGY / DRAG / HEADSIT FUNCTIONS
local function FlingTarget()
    if TargetedPlayer and GetRoot(TargetedPlayer) then
        local root = GetRoot(LocalPlayer)
        local bav = Instance.new("BodyAngularVelocity", root)
        bav.MaxTorque = Vector3.new(0, math.huge, 0)
        bav.P = 100000
        bav.AngularVelocity = Vector3.new(0, 9e9, 0)
        task.wait(0.35)
        bav:Destroy()
    end
end

local function DoggyTarget()
    if TargetedPlayer and GetRoot(TargetedPlayer) then
        GetRoot(LocalPlayer).CFrame = GetRoot(TargetedPlayer).CFrame * CFrame.new(0, -2.5, 0) * CFrame.Angles(math.rad(90), 0, 0)
    end
end

local function UnDoggy()
    if GetRoot(LocalPlayer) then
        GetRoot(LocalPlayer).CFrame = GetRoot(LocalPlayer).CFrame * CFrame.Angles(math.rad(-90), 0, 0) + Vector3.new(0, 6, 0)
    end
end

local function DragTarget()
    if TargetedPlayer and GetRoot(TargetedPlayer) then
        if DragConnection then DragConnection:Disconnect() end
        local bp = Instance.new("BodyPosition", GetRoot(TargetedPlayer))
        bp.MaxForce = Vector3.new(40000,40000,40000)
        bp.P = 15000
        DragConnection = RunService.Heartbeat:Connect(function()
            if bp and bp.Parent and GetRoot(LocalPlayer) then
                bp.Position = GetRoot(LocalPlayer).Position
            end
        end)
    end
end

local function UnDrag()
    if DragConnection then DragConnection:Disconnect(); DragConnection = nil end
    if TargetedPlayer and GetRoot(TargetedPlayer) then
        for _, v in GetRoot(TargetedPlayer):GetChildren() do
            if v:IsA("BodyPosition") then v:Destroy() end
        end
    end
end

local function HeadSitTarget()
    if not TargetedPlayer or not TargetedPlayer.Character or not TargetedPlayer.Character:FindFirstChild("Head") then return end
    if HeadSitAlign then HeadSitAlign:Destroy() end
    local att1 = Instance.new("Attachment", GetRoot(LocalPlayer))
    local att2 = Instance.new("Attachment", TargetedPlayer.Character.Head)
    local ap = Instance.new("AlignPosition", GetRoot(LocalPlayer))
    ap.Attachment0 = att1
    ap.Attachment1 = att2
    ap.MaxForce = 50000
    ap.Responsiveness = 200
    HeadSitAlign = ap
end

local function UnHeadSit()
    if HeadSitAlign then HeadSitAlign:Destroy(); HeadSitAlign = nil end
end

local function TeleportToTarget()
    if TargetedPlayer and GetRoot(TargetedPlayer) then
        GetRoot(LocalPlayer).CFrame = GetRoot(TargetedPlayer).CFrame + Vector3.new(0,5,0)
    end
end

local function SpectateTarget()
    if TargetedPlayer then Camera.CameraSubject = TargetedPlayer.Character end
end

local function StopSpectate()
    Camera.CameraSubject = LocalPlayer.Character
end

-- TABS
local HomeTab   = Window:CreateTab("Home", 6031075938)
local PlayerTab = Window:CreateTab("Player", 6031075938)
local BrookTab  = Window:CreateTab("Brookhaven", 4483362458)
local UniTab    = Window:CreateTab("Universal", 6034509993)
local GameTab   = Window:CreateTab("Supported Games (Bug)", 6031229952)
local ServerTab = Window:CreateTab("Server", 4483362458)
local CreditTab =
Window:CreateTab("Credit")

-- HOME TAB
HomeTab:CreateLabel("Executor: "..(identifyexecutor and identifyexecutor() or "Unknown"))
HomeTab:CreateLabel("Name: "..LocalPlayer.DisplayName.." (@"..LocalPlayer.Name..")")
local age = LocalPlayer.AccountAge
local years = math.floor(age/365)
local days = age % 365
HomeTab:CreateLabel("Account Age: "..years.." years, "..days.." days")
HomeTab:CreateLabel("User ID: "..LocalPlayer.UserId)
HomeTab:CreateLabel("Discord: (There isn't any yet)")

HomeTab:CreateButton({
    Name = "Destroy UI (Bug)",
    Callback = function()
        Rayfield:Notify({Title="Goodbye", Content="Closing...", Duration=5})
        task.wait(3)
        Window:Destroy()
    end
})

-- PLAYER TAB (FULL FEATURES + FIXED ESP)
PlayerTab:CreateInput({
    Name = "Target Player",
    PlaceholderText = "Enter name",
    Callback = function(text)
        TargetedPlayer = GetPlayer(text)
        if TargetedPlayer then
            Rayfield:Notify({Title="Target Locked", Content=TargetedPlayer.DisplayName, Duration=5})
        else
            Rayfield:Notify({Title="Error", Content="Player not found!", Duration=3})
        end
    end
})

-- WalkSpeed & JumpPower
PlayerTab:CreateSlider({
    Name = "WalkSpeed (1-999)",
    Range = {1, 999},
    Increment = 1,
    CurrentValue = 16,
    Callback = function(Value)
        if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
            LocalPlayer.Character.Humanoid.WalkSpeed = Value
        end
    end
})

PlayerTab:CreateButton({
    Name = "Reset WalkSpeed (16)",
    Callback = function()
        if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
            LocalPlayer.Character.Humanoid.WalkSpeed = 16
        end
    end
})

PlayerTab:CreateSlider({
    Name = "JumpPower (1-999)",
    Range = {1, 999},
    Increment = 1,
    CurrentValue = 50,
    Callback = function(Value)
        if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
            LocalPlayer.Character.Humanoid.JumpPower = Value
        end
    end
})

PlayerTab:CreateButton({
    Name = "Reset JumpPower (50)",
    Callback = function()
        if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
            LocalPlayer.Character.Humanoid.JumpPower = 50
        end
    end
})

-- FIXED Infinite Jump (no double connect)
local InfJumpEnabled = false
local InfJumpConnection
PlayerTab:CreateToggle({
    Name = "Infinite Jump (On/Off)",
    CurrentValue = false,
    Callback = function(State)
        InfJumpEnabled = State
        if InfJumpEnabled then
            InfJumpConnection = UserInputService.JumpRequest:Connect(function()
                if LocalPlayer.Character and LocalPlayer.Character:FindFirstChild("Humanoid") then
                    LocalPlayer.Character.Humanoid:ChangeState("Jumping")
                end
            end)
            Rayfield:Notify({Title="Infinite Jump", Content="Activated!", Duration=3})
        else
            if InfJumpConnection then
                InfJumpConnection:Disconnect()
                InfJumpConnection = nil
            end
            Rayfield:Notify({Title="Infinite Jump", Content="Deactivated!", Duration=3})
        end
    end
})

-- FIXED ESP (Box + Tracer + Name) — Per-player drawing objects
local ESP_ENABLED = false
local ESP_OBJECTS = {}  -- Store per player

local function CreateESP(plr)
    if plr == LocalPlayer or ESP_OBJECTS[plr] then return end
    ESP_OBJECTS[plr] = {
        Box = Drawing.new("Square"),
        Tracer = Drawing.new("Line"),
        Name = Drawing.new("Text")
    }
    local esp = ESP_OBJECTS[plr]
    esp.Box.Visible = false
    esp.Box.Color = Color3.fromRGB(255, 0, 0)
    esp.Box.Thickness = 2
    esp.Box.Filled = false
    esp.Tracer.Visible = false
    esp.Tracer.Color = Color3.fromRGB(0, 255, 255)
    esp.Tracer.Thickness = 2
    esp.Name.Visible = false
    esp.Name.Color = Color3.fromRGB(255, 255, 255)
    esp.Name.Size = 16
    esp.Name.Center = true
    esp.Name.Outline = true
    esp.Name.Font = 2

    local connection
    connection = RunService.RenderStepped:Connect(function()
        if not ESP_ENABLED or not plr.Character or not plr.Character:FindFirstChild("HumanoidRootPart") or not plr.Character:FindFirstChild("Head") or not plr.Character:FindFirstChild("Humanoid") or plr.Character.Humanoid.Health <= 0 then
            esp.Box.Visible = false
            esp.Tracer.Visible = false
            esp.Name.Visible = false
            return
        end

        local root = plr.Character.HumanoidRootPart
        local pos, onScreen = Camera:WorldToViewportPoint(root.Position)
        local headPos = Camera:WorldToViewportPoint(plr.Character.Head.Position + Vector3.new(0, 1, 0))
        local legPos = Camera:WorldToViewportPoint(root.Position - Vector3.new(0, 3, 0))

        if onScreen then
            local size = Vector2.new(2200 / pos.Z, headPos.Y - legPos.Y)
            esp.Box.Size = size
            esp.Box.Position = Vector2.new(pos.X - size.X / 2, pos.Y - size.Y / 2)
            esp.Box.Visible = true

            esp.Tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y)
            esp.Tracer.To = Vector2.new(pos.X, pos.Y + size.Y / 2)
            esp.Tracer.Visible = true

            esp.Name.Text = plr.DisplayName .. " (@" .. plr.Name .. ")"
            esp.Name.Position = Vector2.new(pos.X, headPos.Y - 20)
            esp.Name.Visible = true
        else
            esp.Box.Visible = false
            esp.Tracer.Visible = false
            esp.Name.Visible = false
        end
    end)

    ESP_OBJECTS[plr].Connection = connection
    plr.CharacterAdded:Connect(function()
        task.wait(1)
        CreateESP(plr)
    end)
end

PlayerTab:CreateToggle({
    Name = "ESP (Box + Tracer + Name) {All Player}",
    CurrentValue = false,
    Callback = function(State)
        ESP_ENABLED = State
        if State then
            for _, plr in Players:GetPlayers() do
                if plr ~= LocalPlayer then
                    CreateESP(plr)
                end
            end
            Players.PlayerAdded:Connect(function(plr)
                if plr ~= LocalPlayer then
                    plr.CharacterAdded:Wait()
                    CreateESP(plr)
                end
            end)
            Rayfield:Notify({Title="ESP", Content="Activated! (Box + Tracer + Name)", Duration=4})
        else
            for plr, esp in pairs(ESP_OBJECTS) do
                if esp.Connection then esp.Connection:Disconnect() end
                if esp.Box then esp.Box:Remove() end
                if esp.Tracer then esp.Tracer:Remove() end
                if esp.Name then esp.Name:Remove() end
            end
            ESP_OBJECTS = {}
            Rayfield:Notify({Title="ESP", Content="Deactivated!", Duration=3})
        end
    end
})

-- Target Buttons
PlayerTab:CreateButton({Name = "Fling Target", Callback = FlingTarget})
PlayerTab:CreateButton({Name = "Doggy Target", Callback = DoggyTarget})
PlayerTab:CreateButton({Name = "UnDoggy", Callback = UnDoggy})
PlayerTab:CreateButton({Name = "Drag Target", Callback = DragTarget})
PlayerTab:CreateButton({Name = "Stop Drag", Callback = UnDrag})
PlayerTab:CreateButton({Name = "HeadSit Target", Callback = HeadSitTarget})
PlayerTab:CreateButton({Name = "Stop HeadSit", Callback = UnHeadSit})
PlayerTab:CreateButton({Name = "Teleport to Target", Callback = TeleportToTarget})
PlayerTab:CreateButton({Name = "Spectate Target", Callback = SpectateTarget})
PlayerTab:CreateButton({Name = "Stop Spectate", Callback = StopSpectate})

-- BROOKHAVEN TAB
BrookTab:CreateButton({Name="Coquette Hub", Callback=function() loadstring(game:HttpGet("https://scriptblox.com/script/Brookhaven-RP-Coquette-Hub-41921"))() end})
BrookTab:CreateButton({Name="JG Hub", Callback=function() loadstring(game:HttpGet("https://rscripts.net/script/jg-hub-brookhaven-UDaT"))() end})
BrookTab:CreateButton({Name="Tiger X Hub", Callback=function() loadstring(game:HttpGet("https://rscripts.net/script/tiger-x-hub-brookhaven-UDaT"))() end})
BrookTab:CreateButton({Name="Rael Hub (OP)", Callback=function()
loadstring("\108\111\97\100\115\116\114\105\110\103\40\103\97\109\101\58\72\116\116\112\71\101\116\40\34\104\116\116\112\115\58\47\47\103\105\116\104\117\98\46\99\111\109\47\99\111\110\116\97\116\101\115\116\101\56\47\79\97\79\97\79\97\79\97\45\69\98\69\98\69\98\69\98\47\114\97\119\47\114\101\102\115\47\104\101\97\100\115\47\109\97\105\110\47\82\97\101\108\72\117\98\79\98\102\46\116\120\116\34\41\41\40\41")() end})

-- UNIVERSAL TAB
UniTab:CreateButton({Name="Infinite Yield (Auto-Execute)", Callback=function() loadstring(game:HttpGet("https://raw.githubusercontent.com/EdgeIY/infiniteyield/master/source"))() end})
UniTab:CreateButton({Name="Noclip GUI", Callback=function() loadstring(game:HttpGet("https://rawscripts.net/raw/Universal-Script-NOCLIP-GUI-43727"))() end})
UniTab:CreateButton({Name="Fly GUI V3", Callback=function() loadstring(game:HttpGet("https://raw.githubusercontent.com/XNEOFF/FlyGuiV3/main/FlyGuiV3.txt"))() end})
UniTab:CreateButton({Name="Shiftlock Mobile/PC",Callback=function() loadstring(game:HttpGet("https://scriptblox.com/raw/Universal-Script-Mobile-Shiftlock-12348"))() end})
UniTab:CreateButton({Name="Delta Keyboard",     Callback=function() loadstring(game:HttpGet("https://rawscripts.net/raw/Universal-Script-Delta-Keyboard-51393"))() end})
UniTab:CreateButton({Name="Invisible FE",       Callback=function() loadstring(game:HttpGet("https://rawscripts.net/raw/Universal-Script-fe-invisible-OPEN-SOURCE-53560"))() end})
UniTab:CreateButton({Name="Click Teleport Tool", Callback=function()
    local tool = Instance.new("Tool")
    tool.RequiresHandle = false
    tool.Name = "Click Teleport"
    tool.Activated:Connect(function()
        local mouse = LocalPlayer:GetMouse()
        if LocalPlayer.Character and GetRoot(LocalPlayer) then
            GetRoot(LocalPlayer).CFrame = CFrame.new(mouse.Hit.p + Vector3.new(0,4,0))
        end
    end)
    tool.Parent = LocalPlayer:WaitForChild("Backpack")
end})

-- SUPPORTED GAMES TAB
GameTab:CreateButton({Name="Arsenal - Dark Hub", Callback=function() loadstring(game:HttpGet("https://raw.githubusercontent.com/Rain-Network/DarkHub/master/Arsenal"))() end})
GameTab:CreateButton({Name="Blox Fruits - Mukuro Hub", Callback=function() loadstring(game:HttpGet("https://raw.githubusercontent.com/xshaded/Mukuro-Hub/main/BloxFruits.lua"))() end})
GameTab:CreateButton({Name="Da Hood - Vhub", Callback=function() loadstring(game:HttpGet("https://raw.githubusercontent.com/VortexHubV2/VortexHub/main/DaHood.lua"))() end})

-- SERVER TAB
local plrLabel = ServerTab:CreateLabel("Players: "..#Players:GetPlayers().."/"..Players.MaxPlayers)
task.spawn(function()
    while task.wait(1) do
        plrLabel:Set("Players: "..#Players:GetPlayers().."/"..Players.MaxPlayers)
    end
end)

pcall(function() ServerTab:CreateLabel("Map: "..MarketplaceService:GetProductInfo(game.PlaceId).Name) end)
ServerTab:CreateLabel("Place ID: "..game.PlaceId)

local pingLabel = ServerTab:CreateLabel("Ping: Calculating...")
task.spawn(function()
    while task.wait(1) do
        pingLabel:Set("Ping: "..math.floor(Stats.Network.ServerStatsItem["Data Ping"]:GetValue()).." ms")
    end
end)

local fpsLabel = ServerTab:CreateLabel("FPS: Calculating...")
task.spawn(function()
    local RunService = game:GetService("RunService")
    local last = tick()
    local frame = 0
    RunService.Heartbeat:Connect(function()
        frame += 1
        if tick() - last >= 1 then
            fpsLabel:Set("FPS: "..math.floor(frame / (tick() - last)))
            frame = 0; last = tick()
        end
    end)
end)

ServerTab:CreateToggle({
    Name="Join/Leave Notif",
    CurrentValue=true,
    Callback=function(Value)
        joinLeaveNotif = Value
    end
})

Players.PlayerAdded:Connect(function(plr)
    if plr ~= LocalPlayer and joinLeaveNotif then
        Rayfield:Notify({Title="Joined", Content=plr.DisplayName.." joined!", Duration=5})
    end
end)

Players.PlayerRemoving:Connect(function(plr)
    if plr ~= LocalPlayer and joinLeaveNotif then
        Rayfield:Notify({Title="Left", Content=plr.DisplayName.." left!", Duration=5})
    end
end)

ServerTab:CreateButton({Name="Leave Server", Callback=function() game:Shutdown() end})
ServerTab:CreateButton({Name="Reset Character", Callback=function() if LocalPlayer.Character then LocalPlayer.Character:BreakJoints() end end})

-- CREDIT
CreditTab:CreateParagraph({Title="", Content="OwnXDev: Alex"})
CreditTab:CreateParagraph({Title="", Content="Dev: Daffa"})

-- FINAL NOTIF
Rayfield:Notify({Title="XS Hub V3.0", Content="Ready! Press K to toggle if hidden. All features loaded!", Duration=10, Image=6031075938})

Features & Information

--UPDATE, 21-11/25-- XS Hub v3.0 Keyless 100% work Credit: 1.Owner/Developer:Alex 2.Developer:Daffa Country:Made By Indonesia

Community Comments (1)

XS_HubXS_HubNov 21, 2025

Reply to my comment, For request and Bug Report

More Scripts for Universal Scripts