--[[ QuaRobloxBotClient v1.1 UI: Rayfield --]] local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local HttpService = game:GetService("HttpService") local TextChatService = game:GetService("TextChatService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local activeWS = nil local isConnected = false local targetURL = "ht" .. "tps://127." .. "0.0.1:8000/" -- something? local function parseWebSocketURL(rawUrl) local url = tostring(rawUrl):gsub("%s+", "") url = url:gsub("^https?://", "ws://") if not url:match("^ws://") and not url:match("^wss://") then url = "ws://" .. url end if url:sub(-1) == "/" then url = url:sub(1, -2) end return url end -- window!? local Window = Rayfield:CreateWindow({ Name = "Qua Roblox Bot Client", LoadingTitle = "Qua Roblox Bot Client", LoadingSubtitle = "by PyNoob CaSP Software AKA t3m7kidd", ConfigurationSaving = { Enabled = false }, KeySystem = false, RayfieldFolder = "QuaEngineData" }) local ConnectionTab = Window:CreateTab("Connection", 4483362458) local ControlsTab = Window:CreateTab("Movement", 4483345998) local StatusParagraph = ConnectionTab:CreateParagraph({ Title = "Server Status", Content = "🔴 Disconnected" }) -- CHATINGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG local chatHooked = false local function setupChatHook() if chatHooked then return end chatHooked = true local function sendChatToServer(speaker, message) if activeWS and isConnected then pcall(function() activeWS:Send(HttpService:JSONEncode({ event = "newChatMessage", user = tostring(speaker), text = tostring(message) })) end) end end if TextChatService and TextChatService.ChatVersion == Enum.ChatVersion.TextChatService then TextChatService.MessageReceived:Connect(function(msg) if msg.TextSource then sendChatToServer(msg.TextSource.Name, msg.Text) end end) else local chatEvents = ReplicatedStorage:FindFirstChild("DefaultChatSystemChatEvents") if chatEvents and chatEvents:FindFirstChild("OnMessageDoneFiltering") then chatEvents.OnMessageDoneFiltering.OnClientEvent:Connect(function(data) sendChatToServer(data.FromSpeaker, data.Message) end) end end end -- connection local function connectToServer() if activeWS then pcall(function() activeWS:Close() end) activeWS = nil end local wsUrl = parseWebSocketURL(targetURL) Rayfield:Notify({ Title = "Connecting...", Content = "Target: " .. wsUrl, Duration = 2 }) local success, ws = pcall(function() return WebSocket.connect(wsUrl) end) if success and ws then activeWS = ws isConnected = true getgenv().QuaConnected = true StatusParagraph:Set({ Title = "Server Status", Content = "🟢 Connected (" .. wsUrl .. ")" }) Rayfield:Notify({ Title = "Connected!", Content = "Qua Engine Ready", Duration = 3 }) setupChatHook() ws.OnMessage:Connect(function(raw_data) local ok, data = pcall(function() return HttpService:JSONDecode(raw_data) end) if not ok or type(data) ~= "table" then return end local character = LocalPlayer.Character local hrp = character and character:FindFirstChild("HumanoidRootPart") local humanoid = character and character:FindFirstChildOfClass("Humanoid") if data.action == "jump" and humanoid then for i = 1, (data.count or 1) do humanoid:ChangeState(Enum.HumanoidStateType.Jumping) task.wait(0.2) end elseif data.action == "move" and hrp then local studs = data.studs or 10 local dir = data.dir local lookVector = hrp.CFrame.LookVector local rightVector = hrp.CFrame.RightVector if dir == "forward" then hrp.CFrame = hrp.CFrame + (lookVector * studs) elseif dir == "backward" then hrp.CFrame = hrp.CFrame - (lookVector * studs) elseif dir == "right" then hrp.CFrame = hrp.CFrame + (rightVector * studs) elseif dir == "left" then hrp.CFrame = hrp.CFrame - (rightVector * studs) end elseif data.action == "print" then Rayfield:Notify({ Title = "Qua Output", Content = tostring(data.text), Duration = 4 }) end end) ws.OnClose:Connect(function() isConnected = false activeWS = nil getgenv().QuaConnected = false StatusParagraph:Set({ Title = "Server Status", Content = "🔴 Connection Lost" }) end) else isConnected = false getgenv().QuaConnected = false StatusParagraph:Set({ Title = "Server Status", Content = "❌ Failed to connect" }) Rayfield:Notify({ Title = "Error", Content = "Could not connect to " .. wsUrl, Duration = 4 }) end end -- connection ConnectionTab:CreateInput({ Name = "Server Address", PlaceholderText = "https://127.0.0.1:8000/", RemoveTextOnFocusLost = false, Callback = function(Text) targetURL = Text end, }) ConnectionTab:CreateButton({ Name = "Connect", Callback = function() connectToServer() end, }) ConnectionTab:CreateButton({ Name = "Disconnect", Callback = function() if activeWS then activeWS:Close() activeWS = nil isConnected = false getgenv().QuaConnected = false StatusParagraph:Set({Title = "Server Status", Content = "🔴 Disconnected"}) end end, }) -- movement ControlsTab:CreateSlider({ Name = "WalkSpeed Override", Range = {16, 300}, Increment = 1, Suffix = " studs/s", CurrentValue = 16, Callback = function(Value) local char = LocalPlayer.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then hum.WalkSpeed = Value end end, }) ControlsTab:CreateSlider({ Name = "JumpPower Override", Range = {50, 600}, Increment = 5, Suffix = " power", CurrentValue = 50, Callback = function(Value) local char = LocalPlayer.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then hum.UseJumpPower = true hum.JumpPower = Value end end, }) ControlsTab:CreateButton({ Name = "Reset Speed & Jump", Callback = function() local char = LocalPlayer.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then hum.WalkSpeed = 16 hum.JumpPower = 50 end Rayfield:Notify({ Title = "Reset", Content = "Default Movement Restored", Duration = 2 }) end, }) ControlsTab:CreateButton({ Name = "Force Jump", Callback = function() local char = LocalPlayer.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end end, }) ControlsTab:CreateButton({ Name = "Reset Character", Callback = function() local char = LocalPlayer.Character local hum = char and char:FindFirstChildOfClass("Humanoid") if hum then hum.Health = 0 end end, })