--[[ 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})