Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Rayfield = nil
- local success, lib = pcall(function()
- return loadstring(game:HttpGet("https://sirius.menu/rayfield"))()
- end)
- if success and lib then
- Rayfield = lib
- else
- warn("Failed to load Rayfield UI. Check connection or the library link.")
- return
- end
- -- =====================================
- -- Services & Globals
- -- =====================================
- local Players = game:GetService("Players")
- local RunService = game:GetService("RunService")
- local UserInputService = game:GetService("UserInputService")
- local TweenService = game:GetService("TweenService")
- local LocalPlayer = Players.LocalPlayer
- local Character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
- local Humanoid = Character:WaitForChild("Humanoid")
- getgenv().UniversalSettings = getgenv().UniversalSettings or {
- WalkSpeed = 16,
- JumpPower = 50,
- FlySpeed = 50,
- ESPEnabled = false,
- ChamsEnabled = false,
- NametagsEnabled = true,
- AntiAFK = true,
- FlyEnabled = false,
- }
- local Settings = getgenv().UniversalSettings
- local Highlights = {}
- local NametagHolder = {}
- -- =====================================
- -- UI Window
- -- =====================================
- local Window = Rayfield:CreateWindow({
- Name = "🌐 Clints Hub",
- LoadingTitle = "Loading Clints Hub...",
- LoadingSubtitle = "Rayfield UI",
- ConfigurationSaving = {
- Enabled = true,
- FolderName = "UniversalHubConfig",
- FileName = "RayfieldUniversal"
- },
- Discord = {
- Enabled = false
- },
- KeySystem = false
- })
- -- Tabs
- local mainTab = Window:CreateTab("Main", 4483345998)
- local playerTab = Window:CreateTab("Player", 4483345998)
- local visualsTab = Window:CreateTab("Visuals", 6023426915)
- local utilitiesTab = Window:CreateTab("Utilities", 4670953385)
- local settingsTab = Window:CreateTab("Settings", 6034818375)
- -- =====================================
- -- Main Tab
- -- =====================================
- mainTab:CreateButton({
- Name = "Reset Character",
- Callback = function()
- LocalPlayer:LoadCharacter()
- end
- })
- mainTab:CreateButton({
- Name = "Center Camera on Character",
- Callback = function()
- if Character and Character:FindFirstChild("HumanoidRootPart") then
- workspace.CurrentCamera.CFrame = Character.HumanoidRootPart.CFrame * CFrame.new(0, 5, -10)
- end
- end
- })
- mainTab:CreateButton({
- Name = "Copy Player List",
- Callback = function()
- local names = {}
- for _, p in pairs(Players:GetPlayers()) do
- table.insert(names, p.Name)
- end
- pcall(function() setclipboard(table.concat(names, ", ")) end)
- Rayfield:Notify({Title = "Copied", Content = "Player list copied to clipboard."})
- end
- })
- -- =====================================
- -- Player Tab
- -- =====================================
- playerTab:CreateSlider({
- Name = "WalkSpeed",
- Range = {8, 300},
- Increment = 1,
- Suffix = "studs/s",
- CurrentValue = Settings.WalkSpeed,
- Callback = function(Value)
- Settings.WalkSpeed = Value
- if Humanoid then Humanoid.WalkSpeed = Value end
- end
- })
- playerTab:CreateSlider({
- Name = "JumpPower",
- Range = {10, 300},
- Increment = 1,
- Suffix = "power",
- CurrentValue = Settings.JumpPower,
- Callback = function(Value)
- Settings.JumpPower = Value
- if Humanoid then Humanoid.JumpPower = Value end
- end
- })
- -- ✈️ Fly Toggle
- playerTab:CreateToggle({
- Name = "Enable Fly",
- CurrentValue = Settings.FlyEnabled,
- Callback = function(state)
- Settings.FlyEnabled = state
- local root = Character:FindFirstChild("HumanoidRootPart")
- if not root then return end
- if state then
- local bv = Instance.new("BodyVelocity")
- bv.Name = "FlyBV"
- bv.MaxForce = Vector3.new(1e5, 1e5, 1e5)
- bv.Parent = root
- local bg = Instance.new("BodyGyro")
- bg.Name = "FlyBG"
- bg.MaxTorque = Vector3.new(4e5, 4e5, 4e5)
- bg.CFrame = root.CFrame
- bg.Parent = root
- local flySpeed = Settings.FlySpeed
- local moveDir = Vector3.new()
- local keys = {W=false,S=false,A=false,D=false,Space=false,Shift=false}
- local function update()
- local cam = workspace.CurrentCamera
- local dir = Vector3.new()
- if keys.W then dir = dir + cam.CFrame.LookVector end
- if keys.S then dir = dir - cam.CFrame.LookVector end
- if keys.A then dir = dir - cam.CFrame.RightVector end
- if keys.D then dir = dir + cam.CFrame.RightVector end
- if keys.Space then dir = dir + Vector3.new(0,1,0) end
- if keys.Shift then dir = dir - Vector3.new(0,1,0) end
- if dir.Magnitude > 0 then
- bv.Velocity = dir.Unit * flySpeed
- bg.CFrame = CFrame.new(root.Position, root.Position + cam.CFrame.LookVector)
- else
- bv.Velocity = Vector3.new()
- end
- end
- local inputBegan = UserInputService.InputBegan:Connect(function(input, gpe)
- if gpe then return end
- if input.KeyCode == Enum.KeyCode.W then keys.W = true end
- if input.KeyCode == Enum.KeyCode.S then keys.S = true end
- if input.KeyCode == Enum.KeyCode.A then keys.A = true end
- if input.KeyCode == Enum.KeyCode.D then keys.D = true end
- if input.KeyCode == Enum.KeyCode.Space then keys.Space = true end
- if input.KeyCode == Enum.KeyCode.LeftShift then keys.Shift = true end
- end)
- local inputEnded = UserInputService.InputEnded:Connect(function(input)
- if input.KeyCode == Enum.KeyCode.W then keys.W = false end
- if input.KeyCode == Enum.KeyCode.S then keys.S = false end
- if input.KeyCode == Enum.KeyCode.A then keys.A = false end
- if input.KeyCode == Enum.KeyCode.D then keys.D = false end
- if input.KeyCode == Enum.KeyCode.Space then keys.Space = false end
- if input.KeyCode == Enum.KeyCode.LeftShift then keys.Shift = false end
- end)
- local step = RunService.RenderStepped:Connect(update)
- Settings._FlyCleanup = function()
- inputBegan:Disconnect()
- inputEnded:Disconnect()
- step:Disconnect()
- bv:Destroy()
- bg:Destroy()
- end
- else
- if Settings._FlyCleanup then
- Settings._FlyCleanup()
- Settings._FlyCleanup = nil
- end
- end
- end
- })
- playerTab:CreateInput({
- Name = "Teleport to Player",
- PlaceholderText = "Player Name",
- RemoveTextAfterFocusLost = true,
- Callback = function(val)
- local target = Players:FindFirstChild(val)
- if target and target.Character and target.Character:FindFirstChild("HumanoidRootPart") then
- Character:WaitForChild("HumanoidRootPart").CFrame = target.Character.HumanoidRootPart.CFrame + Vector3.new(0,3,0)
- else
- Rayfield:Notify({Title="Teleport Failed", Content="Player not found or no HRP."})
- end
- end
- })
- playerTab:CreateButton({
- Name = "Teleport to Mouse",
- Callback = function()
- local mouse = LocalPlayer:GetMouse()
- if mouse and mouse.Hit then
- Character:WaitForChild("HumanoidRootPart").CFrame = mouse.Hit + Vector3.new(0,3,0)
- end
- end
- })
- -- =====================================
- -- Visuals Tab
- -- =====================================
- local function createHighlight(char, color)
- if not char or Highlights[char] then return end
- local h = Instance.new("Highlight")
- h.Name = "ESPHighlight"
- h.Adornee = char
- h.FillColor = color or Color3.fromHSV(tick()%10/10,1,1)
- h.FillTransparency = 0.5
- h.OutlineTransparency = 0.4
- h.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
- h.Parent = game:GetService("CoreGui")
- Highlights[char] = h
- end
- local function removeHighlight(char)
- if Highlights[char] then
- Highlights[char]:Destroy()
- Highlights[char] = nil
- end
- end
- visualsTab:CreateToggle({
- Name = "ESP",
- CurrentValue = Settings.ESPEnabled,
- Callback = function(state)
- Settings.ESPEnabled = state
- if not state then
- for c,_ in pairs(Highlights) do removeHighlight(c) end
- else
- for _,p in pairs(Players:GetPlayers()) do
- if p ~= LocalPlayer and p.Character then createHighlight(p.Character) end
- end
- end
- end
- })
- visualsTab:CreateToggle({
- Name = "Chams",
- CurrentValue = Settings.ChamsEnabled,
- Callback = function(state)
- Settings.ChamsEnabled = state
- for _, p in pairs(Players:GetPlayers()) do
- if p ~= LocalPlayer and p.Character then
- for _, part in pairs(p.Character:GetDescendants()) do
- if part:IsA("BasePart") then
- if state then
- if not part:FindFirstChild("Cham") then
- local box = Instance.new("SelectionBox")
- box.Name = "Cham"
- box.Adornee = part
- box.Parent = part
- end
- else
- if part:FindFirstChild("Cham") then
- part.Cham:Destroy()
- end
- end
- end
- end
- end
- end
- end
- })
- visualsTab:CreateToggle({
- Name = "Nametags",
- CurrentValue = Settings.NametagsEnabled,
- Callback = function(state)
- Settings.NametagsEnabled = state
- if not state then
- for _, gui in pairs(NametagHolder) do
- if gui then gui:Destroy() end
- end
- NametagHolder = {}
- end
- end
- })
- -- =====================================
- -- Utilities Tab
- -- =====================================
- utilitiesTab:CreateToggle({
- Name = "Anti-AFK",
- CurrentValue = Settings.AntiAFK,
- Callback = function(state)
- Settings.AntiAFK = state
- if state then
- getgenv().AntiAFKConnection = game:GetService("UserInputService").Idled:Connect(function()
- game:GetService("VirtualUser"):ClickButton2(Vector2.new())
- end)
- else
- if getgenv().AntiAFKConnection then
- getgenv().AntiAFKConnection:Disconnect()
- getgenv().AntiAFKConnection = nil
- end
- end
- end
- })
- utilitiesTab:CreateButton({
- Name = "Get Nearest Player",
- Callback = function()
- local root = Character:FindFirstChild("HumanoidRootPart")
- if not root then return end
- local nearest, dist = nil, math.huge
- for _, p in pairs(Players:GetPlayers()) do
- if p ~= LocalPlayer and p.Character and p.Character:FindFirstChild("HumanoidRootPart") then
- local d = (p.Character.HumanoidRootPart.Position - root.Position).Magnitude
- if d < dist then
- nearest = p
- dist = d
- end
- end
- end
- if nearest then
- Rayfield:Notify({Title="Nearest Player", Content=nearest.Name.." ("..math.floor(dist).." studs)"})
- else
- Rayfield:Notify({Title="Nearest Player", Content="No one nearby"})
- end
- end
- })
- -- =====================================
- -- Settings Tab
- -- =====================================
- settingsTab:CreateKeybind({
- Name = "Toggle UI",
- CurrentKeybind = Enum.KeyCode.RightShift,
- HoldToInteract = false,
- Callback = function()
- Rayfield:Toggle()
- end
- })
- settingsTab:CreateInput({
- Name = "Set Fly Speed",
- PlaceholderText = tostring(Settings.FlySpeed),
- RemoveTextAfterFocusLost = true,
- Callback = function(val)
- local n = tonumber(val)
- if n then Settings.FlySpeed = n end
- end
- })
- settingsTab:CreateButton({
- Name = "Unload Script",
- Callback = function()
- for c,_ in pairs(Highlights) do removeHighlight(c) end
- if getgenv().AntiAFKConnection then
- getgenv().AntiAFKConnection:Disconnect()
- getgenv().AntiAFKConnection = nil
- end
- Rayfield:Destroy()
- end
- })
- -- =====================================
- -- Nametags Runtime
- -- =====================================
- RunService.Heartbeat:Connect(function()
- for _, p in pairs(Players:GetPlayers()) do
- if p ~= LocalPlayer then
- if Settings.NametagsEnabled and p.Character and p.Character:FindFirstChild("Head") then
- if not NametagHolder[p] then
- local gui = Instance.new("BillboardGui")
- gui.Name = "Nametag"
- gui.Size = UDim2.new(0,150,0,50)
- gui.StudsOffset = Vector3.new(0,2.5,0)
- gui.AlwaysOnTop = true
- gui.MaxDistance = 1000
- local label = Instance.new("TextLabel", gui)
- label.Size = UDim2.new(1,0,1,0)
- label.BackgroundTransparency = 1
- label.Text = p.Name
- label.TextColor3 = Color3.fromRGB(255,255,255)
- label.Font = Enum.Font.SourceSansBold
- label.TextScaled = true
- label.TextStrokeTransparency = 0.6
- gui.Parent = p.Character.Head
- NametagHolder[p] = gui
- end
- else
- if NametagHolder[p] then
- NametagHolder[p]:Destroy()
- NametagHolder[p] = nil
- end
- end
- end
- end
- end)
- -- =====================================
- -- Keep WS/JP synced
- -- =====================================
- RunService.Heartbeat:Connect(function()
- if Humanoid then
- if Humanoid.WalkSpeed ~= Settings.WalkSpeed then
- Humanoid.WalkSpeed = Settings.WalkSpeed
- end
- if Humanoid.JumpPower ~= Settings.JumpPower then
- Humanoid.JumpPower = Settings.JumpPower
- end
- end
- end)
- Rayfield:Notify({Title="✅ Universal Hub", Content="Rayfield version loaded. RightShift to toggle UI."})
Advertisement
Add Comment
Please, Sign In to add comment