Last active
June 5, 2026 22:53
-
-
Save q687239-lang/c84a7a05ae8d8c6a6fb9aad5ccc1a5c6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -- Astral Hub - Arsenal Edition (Rayfield, Nil‑Proof) | |
| -- Key: 12356 | |
| -- ===================== | |
| -- MANUAL KEY POPUP (BEFORE RAYFIELD) | |
| -- ===================== | |
| local correctKey = "12356" | |
| local keyAccepted = false | |
| local keyGui = Instance.new("ScreenGui") | |
| keyGui.Name = "KeySystem" | |
| keyGui.Parent = game.CoreGui | |
| local keyFrame = Instance.new("Frame") | |
| keyFrame.Size = UDim2.new(0, 280, 0, 140) | |
| keyFrame.Position = UDim2.new(0.5, -140, 0.5, -70) | |
| keyFrame.BackgroundColor3 = Color3.fromRGB(25, 25, 40) | |
| keyFrame.BorderSize = 0 | |
| keyFrame.Parent = keyGui | |
| local keyTitle = Instance.new("TextLabel") | |
| keyTitle.Size = UDim2.new(1, 0, 0, 40) | |
| keyTitle.Text = "✨ ASTRAL HUB ✨" | |
| keyTitle.TextColor3 = Color3.fromRGB(255, 255, 255) | |
| keyTitle.BackgroundColor3 = Color3.fromRGB(45, 45, 65) | |
| keyTitle.Font = Enum.Font.GothamBold | |
| keyTitle.TextSize = 20 | |
| keyTitle.BorderSize = 0 | |
| keyTitle.Parent = keyFrame | |
| local keyBox = Instance.new("TextBox") | |
| keyBox.Size = UDim2.new(0.7, 0, 0, 35) | |
| keyBox.Position = UDim2.new(0.15, 0, 0.45, 0) | |
| keyBox.PlaceholderText = "Enter Key" | |
| keyBox.BackgroundColor3 = Color3.fromRGB(35, 35, 55) | |
| keyBox.TextColor3 = Color3.fromRGB(255, 255, 255) | |
| keyBox.BorderSize = 0 | |
| keyBox.Parent = keyFrame | |
| local keyBtn = Instance.new("TextButton") | |
| keyBtn.Size = UDim2.new(0.4, 0, 0, 30) | |
| keyBtn.Position = UDim2.new(0.3, 0, 0.75, 0) | |
| keyBtn.Text = "Submit" | |
| keyBtn.BackgroundColor3 = Color3.fromRGB(80, 80, 120) | |
| keyBtn.TextColor3 = Color3.fromRGB(255, 255, 255) | |
| keyBtn.BorderSize = 0 | |
| keyBtn.Parent = keyFrame | |
| keyBtn.MouseButton1Click:Connect(function() | |
| if keyBox.Text == correctKey then | |
| keyAccepted = true | |
| keyGui:Destroy() | |
| else | |
| keyBox.Text = "" | |
| keyBox.PlaceholderText = "Wrong Key!" | |
| keyBox.BackgroundColor3 = Color3.fromRGB(100, 50, 50) | |
| task.wait(1) | |
| keyBox.BackgroundColor3 = Color3.fromRGB(35, 35, 55) | |
| keyBox.PlaceholderText = "Enter Key" | |
| end | |
| end) | |
| repeat task.wait() until keyAccepted | |
| -- ===================== | |
| -- LOAD RAYFIELD (MULTIPLE FALLBACKS) | |
| -- ===================== | |
| local Rayfield = nil | |
| local urls = { | |
| "https://raw.githubusercontent.com/SiriusSoftwareLtd/Rayfield/main/source.lua", | |
| "https://raw.githubusercontent.com/shlexware/Rayfield/main/source", | |
| "https://raw.githubusercontent.com/tomatotxt/code/refs/heads/main/rayfield" | |
| } | |
| for _, url in ipairs(urls) do | |
| local success, result = pcall(function() | |
| return loadstring(game:HttpGet(url))() | |
| end) | |
| if success and result then | |
| Rayfield = result | |
| print("✅ Rayfield loaded from:", url) | |
| break | |
| end | |
| task.wait(0.5) | |
| end | |
| if not Rayfield then | |
| -- Ultimate fallback: show error and stop | |
| local errGui = Instance.new("ScreenGui") | |
| errGui.Parent = game.CoreGui | |
| local errFrame = Instance.new("Frame") | |
| errFrame.Size = UDim2.new(0, 300, 0, 100) | |
| errFrame.Position = UDim2.new(0.5, -150, 0.5, -50) | |
| errFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 40) | |
| errFrame.Parent = errGui | |
| local errText = Instance.new("TextLabel") | |
| errText.Size = UDim2.new(1, 0, 1, 0) | |
| errText.Text = "Rayfield failed to load.\nRe‑execute or update executor." | |
| errText.TextColor3 = Color3.fromRGB(255, 255, 255) | |
| errText.TextWrapped = true | |
| errText.Parent = errFrame | |
| return | |
| end | |
| -- ===================== | |
| -- CREATE RAYFIELD WINDOW (NO BUILT‑IN KEY SYSTEM) | |
| -- ===================== | |
| local Window = Rayfield:CreateWindow({ | |
| Name = "✨ ASTRAL HUB ✨", | |
| LoadingTitle = "Astral Hub", | |
| LoadingSubtitle = "Arsenal Edition", | |
| KeySystem = false -- Key already checked manually | |
| }) | |
| -- Tabs | |
| local MainTab = Window:CreateTab("Main") | |
| local RageTab = Window:CreateTab("Rage Bot") | |
| local AimbotTab = Window:CreateTab("Aimbot") | |
| local NewTab = Window:CreateTab("🔥 New") | |
| local VisualTab = Window:CreateTab("Visuals") | |
| local MoveTab = Window:CreateTab("Movement") | |
| local MiscTab = Window:CreateTab("Misc") | |
| -- ===================== | |
| -- ALL FEATURES (PASTE YOUR WORKING FEATURE CODE HERE) | |
| -- ===================== | |
| -- [For brevity, I'll include the full feature code from your last working version] | |
| -- You've already confirmed this part works. I'll paste it below. | |
| local Players = game:GetService("Players") | |
| local RunService = game:GetService("RunService") | |
| local UserInputService = game:GetService("UserInputService") | |
| local VirtualInputManager = game:GetService("VirtualInputManager") | |
| local LocalPlayer = Players.LocalPlayer | |
| local Camera = workspace.CurrentCamera | |
| -- Variables | |
| local rageEnabled = false | |
| local autoShoot = false | |
| local shootDelay = 0.05 | |
| local triggerBot = false | |
| local aimbotEnabled = false | |
| local aimbotFOV = 200 | |
| local aimbotTeamCheck = false | |
| local aimbotPart = "Head" | |
| local aimbotSmoothing = 0.3 | |
| local silentAim = false | |
| local noRecoil = false | |
| local instantReload = false | |
| local hitboxExtender = false | |
| local autoParry = false | |
| local noclipEnabled = false | |
| local speedEnabled = false | |
| local currentSpeed = 50 | |
| local bhopEnabled = false | |
| local lastJump = 0 | |
| local flyEnabled = false | |
| local flySpeed = 50 | |
| local flyBV = nil | |
| local flyConn = nil | |
| local espEnabled = false | |
| local espHighlights = {} | |
| local espRainbow = false | |
| local rainbow = 0 | |
| local godMode = false | |
| local invisible = false | |
| local invisCache = {} | |
| -- Helpers | |
| local function getChar() return LocalPlayer.Character end | |
| local function getHum() | |
| local c = getChar() | |
| return c and c:FindFirstChildOfClass("Humanoid") | |
| end | |
| local function getHRP() | |
| local c = getChar() | |
| return c and c:FindFirstChild("HumanoidRootPart") | |
| end | |
| local function notify(msg) | |
| print("[Astral Hub] " .. msg) | |
| end | |
| -- Anti Kick | |
| pcall(function() | |
| local mt = getrawmetatable(game) | |
| if mt then | |
| local old = mt.__namecall | |
| setreadonly(mt, false) | |
| mt.__namecall = newcclosure(function(self, ...) | |
| if getnamecallmethod() == "Kick" and self == LocalPlayer then return end | |
| return old(self, ...) | |
| end) | |
| setreadonly(mt, true) | |
| end | |
| end) | |
| -- Shoot | |
| local function shoot() | |
| pcall(function() | |
| VirtualInputManager:SendMouseButtonEvent(Enum.UserInputType.MouseButton1, Vector2.new(500,500), true) | |
| task.wait(0.02) | |
| VirtualInputManager:SendMouseButtonEvent(Enum.UserInputType.MouseButton1, Vector2.new(500,500), false) | |
| end) | |
| pcall(function() | |
| local size = Camera.ViewportSize | |
| VirtualInputManager:SendTouchEvent(true, size.X-100, size.Y-100, 0, game) | |
| task.wait(0.02) | |
| VirtualInputManager:SendTouchEvent(false, size.X-100, size.Y-100, 0, game) | |
| end) | |
| end | |
| -- No Recoil enhancement | |
| local originalCFrame = nil | |
| local function enhancedShoot() | |
| originalCFrame = Camera.CFrame | |
| shoot() | |
| if noRecoil then | |
| task.spawn(function() | |
| task.wait(0.02) | |
| if Camera then Camera.CFrame = originalCFrame end | |
| end) | |
| end | |
| end | |
| -- Auto Shoot loop | |
| task.spawn(function() | |
| while true do | |
| if rageEnabled and autoShoot then | |
| enhancedShoot() | |
| task.wait(shootDelay) | |
| end | |
| task.wait() | |
| end | |
| end) | |
| -- Trigger Bot | |
| local function getTargetAtCrosshair() | |
| local closest, closestDist = nil, 50 | |
| local center = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) | |
| for _, p in ipairs(Players:GetPlayers()) do | |
| if p ~= LocalPlayer and p.Character then | |
| local hum = p.Character:FindFirstChildOfClass("Humanoid") | |
| if hum and hum.Health > 0 then | |
| local part = p.Character:FindFirstChild("Head") or p.Character:FindFirstChild("HumanoidRootPart") | |
| if part then | |
| local pos, onScreen = Camera:WorldToViewportPoint(part.Position) | |
| if onScreen then | |
| local dist = (Vector2.new(pos.X, pos.Y) - center).Magnitude | |
| if dist < closestDist then | |
| closestDist, closest = dist, p | |
| end | |
| end | |
| end | |
| end | |
| end | |
| end | |
| return closest, closestDist | |
| end | |
| task.spawn(function() | |
| while true do | |
| if rageEnabled and triggerBot then | |
| local target, dist = getTargetAtCrosshair() | |
| if target and dist < 30 then enhancedShoot() end | |
| task.wait(0.05) | |
| end | |
| task.wait() | |
| end | |
| end) | |
| -- Aimbot target selection | |
| local function isSameTeam(p) | |
| return LocalPlayer.Team and p.Team and LocalPlayer.Team == p.Team | |
| end | |
| local currentAimbotTarget = nil | |
| local function getBestTarget() | |
| local best, bestScore = nil, aimbotFOV | |
| local center = Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2) | |
| for _, p in ipairs(Players:GetPlayers()) do | |
| if p == LocalPlayer then continue end | |
| if aimbotTeamCheck and isSameTeam(p) then continue end | |
| local char = p.Character | |
| if not char then continue end | |
| local hum = char:FindFirstChildOfClass("Humanoid") | |
| if not hum or hum.Health <= 0 then continue end | |
| local part = char:FindFirstChild(aimbotPart) or char:FindFirstChild("HumanoidRootPart") | |
| if not part then continue end | |
| local pos, onScreen = Camera:WorldToViewportPoint(part.Position) | |
| if onScreen then | |
| local dist = (Vector2.new(pos.X, pos.Y) - center).Magnitude | |
| if dist < bestScore then | |
| bestScore, best = dist, p | |
| end | |
| end | |
| end | |
| return best | |
| end | |
| -- Smooth aimbot | |
| RunService.RenderStepped:Connect(function() | |
| if aimbotEnabled then | |
| local target = getBestTarget() | |
| if target ~= currentAimbotTarget then currentAimbotTarget = target end | |
| if currentAimbotTarget and currentAimbotTarget.Character then | |
| local part = currentAimbotTarget.Character:FindFirstChild(aimbotPart) or currentAimbotTarget.Character:FindFirstChild("HumanoidRootPart") | |
| if part then | |
| local targetCF = CFrame.new(Camera.CFrame.Position, part.Position) | |
| Camera.CFrame = Camera.CFrame:Lerp(targetCF, aimbotSmoothing) | |
| end | |
| else | |
| currentAimbotTarget = nil | |
| end | |
| end | |
| end) | |
| -- Silent Aim | |
| local function silentAimShoot() | |
| if not silentAim then return end | |
| local target = getBestTarget() | |
| if target and target.Character then | |
| local part = target.Character:FindFirstChild(aimbotPart) or target.Character:FindFirstChild("HumanoidRootPart") | |
| if part then | |
| local original = Camera.CFrame | |
| Camera.CFrame = CFrame.new(original.Position, part.Position) | |
| enhancedShoot() | |
| Camera.CFrame = original | |
| end | |
| end | |
| end | |
| task.spawn(function() | |
| while true do | |
| if silentAim then | |
| silentAimShoot() | |
| task.wait(0.05) | |
| end | |
| task.wait() | |
| end | |
| end) | |
| -- Speed Hack | |
| task.spawn(function() | |
| while true do | |
| if speedEnabled then | |
| local hum = getHum() | |
| if hum then hum.WalkSpeed = currentSpeed end | |
| end | |
| task.wait(0.1) | |
| end | |
| end) | |
| -- Bunny Hop | |
| UserInputService.JumpRequest:Connect(function() | |
| if bhopEnabled then | |
| local hum = getHum() | |
| if hum then hum:ChangeState(Enum.HumanoidStateType.Jumping) end | |
| end | |
| end) | |
| task.spawn(function() | |
| while true do | |
| if bhopEnabled then | |
| local hum = getHum() | |
| if hum and hum:GetState() == Enum.HumanoidStateType.Landed and tick() - lastJump > 0.2 then | |
| lastJump = tick() | |
| hum:ChangeState(Enum.HumanoidStateType.Jumping) | |
| end | |
| end | |
| task.wait(0.05) | |
| end | |
| end) | |
| -- Fly | |
| local function disableFly() | |
| flyEnabled = false | |
| if flyBV then flyBV:Destroy() end | |
| if flyConn then flyConn:Disconnect() end | |
| local hum = getHum() | |
| if hum then hum.PlatformStand = false end | |
| end | |
| local function enableFly() | |
| disableFly() | |
| local hrp = getHRP() | |
| local hum = getHum() | |
| if not hrp or not hum then return end | |
| flyEnabled = true | |
| hum.PlatformStand = true | |
| flyBV = Instance.new("BodyVelocity") | |
| flyBV.MaxForce = Vector3.new(1e6,1e6,1e6) | |
| flyBV.Parent = hrp | |
| flyConn = RunService.Heartbeat:Connect(function() | |
| if not flyEnabled then return end | |
| local hrp2 = getHRP() | |
| local hum2 = getHum() | |
| if not hrp2 or not hum2 then return end | |
| local dir = hum2.MoveDirection | |
| if dir.Magnitude > 0.1 then | |
| local cf = Camera.CFrame | |
| local move = (cf.LookVector * dir.Z + cf.RightVector * dir.X + cf.UpVector * dir.Y).Unit | |
| flyBV.Velocity = move * flySpeed | |
| else | |
| flyBV.Velocity = Vector3.zero | |
| end | |
| end) | |
| notify("Fly ON") | |
| end | |
| -- God Mode | |
| task.spawn(function() | |
| while true do | |
| if godMode then | |
| local hum = getHum() | |
| if hum then | |
| hum.MaxHealth = 9e9 | |
| hum.Health = 9e9 | |
| end | |
| end | |
| task.wait(0.1) | |
| end | |
| end) | |
| -- Invisible | |
| local function makeInvisible() | |
| local char = getChar() | |
| if not char then return end | |
| invisCache = {} | |
| for _, v in ipairs(char:GetDescendants()) do | |
| pcall(function() | |
| if v:IsA("BasePart") and v.Name ~= "HumanoidRootPart" then | |
| invisCache[v] = v.Transparency | |
| v.Transparency = 1 | |
| end | |
| end) | |
| end | |
| invisible = true | |
| notify("Invisible ON") | |
| end | |
| local function makeVisible() | |
| for v, t in pairs(invisCache) do pcall(function() v.Transparency = t end) end | |
| invisCache = {} | |
| invisible = false | |
| notify("Invisible OFF") | |
| end | |
| -- Reset character | |
| local function resetChar() | |
| local hum = getHum() | |
| if hum then hum.Health = 0 end | |
| notify("Character Reset") | |
| end | |
| -- Noclip | |
| local function applyNoclip() | |
| if not noclipEnabled then return end | |
| local char = LocalPlayer.Character | |
| if not char then return end | |
| for _, part in ipairs(char:GetDescendants()) do | |
| if part:IsA("BasePart") then | |
| part.CanCollide = false | |
| end | |
| end | |
| end | |
| local function toggleNoclip(state) | |
| noclipEnabled = state | |
| if state then | |
| applyNoclip() | |
| RunService.Stepped:Connect(function() | |
| if noclipEnabled then applyNoclip() end | |
| end) | |
| notify("Noclip ON") | |
| else | |
| local char = LocalPlayer.Character | |
| if char then | |
| for _, part in ipairs(char:GetDescendants()) do | |
| if part:IsA("BasePart") then | |
| part.CanCollide = true | |
| end | |
| end | |
| end | |
| notify("Noclip OFF") | |
| end | |
| end | |
| -- Instant Reload | |
| task.spawn(function() | |
| while true do | |
| if instantReload then | |
| local char = LocalPlayer.Character | |
| if char then | |
| local tool = char:FindFirstChildWhichIsA("Tool") | |
| if tool then | |
| for _, v in pairs(tool:GetDescendants()) do | |
| if v:IsA("NumberValue") and (v.Name:lower():find("ammo") or v.Name:lower():find("current")) then | |
| local maxAmmo = tool:FindFirstChild("MaxAmmo") or tool:FindFirstChild("MaxAmmoValue") | |
| if maxAmmo and maxAmmo:IsA("NumberValue") then | |
| v.Value = maxAmmo.Value | |
| else | |
| v.Value = 30 | |
| end | |
| end | |
| end | |
| end | |
| end | |
| task.wait(0.2) | |
| end | |
| task.wait() | |
| end | |
| end) | |
| -- Hitbox Extender | |
| task.spawn(function() | |
| while true do | |
| if hitboxExtender then | |
| for _, p in ipairs(Players:GetPlayers()) do | |
| if p ~= LocalPlayer and p.Character then | |
| local hrp = p.Character:FindFirstChild("HumanoidRootPart") | |
| if hrp then hrp.Size = Vector3.new(8,8,8) end | |
| local head = p.Character:FindFirstChild("Head") | |
| if head then head.Size = Vector3.new(4,4,4) end | |
| end | |
| end | |
| task.wait(0.3) | |
| end | |
| task.wait() | |
| end | |
| end) | |
| -- Auto Parry | |
| task.spawn(function() | |
| while true do | |
| if autoParry then | |
| local hrp = getHRP() | |
| if hrp then | |
| for _, p in ipairs(Players:GetPlayers()) do | |
| if p ~= LocalPlayer and p.Character then | |
| local targetHrp = p.Character:FindFirstChild("HumanoidRootPart") | |
| if targetHrp and (targetHrp.Position - hrp.Position).Magnitude < 10 then | |
| pcall(function() | |
| VirtualInputManager:SendKeyEvent(true, "F", false, game) | |
| task.wait(0.1) | |
| VirtualInputManager:SendKeyEvent(false, "F", false, game) | |
| end) | |
| break | |
| end | |
| end | |
| end | |
| end | |
| task.wait(0.15) | |
| end | |
| task.wait() | |
| end | |
| end) | |
| -- ESP | |
| local function createESP(p) | |
| if p == LocalPlayer or espHighlights[p.Name] then return end | |
| local h = Instance.new("Highlight") | |
| h.FillColor = Color3.fromRGB(255,50,50) | |
| h.FillTransparency = 0.5 | |
| if p.Character then | |
| h.Adornee = p.Character | |
| h.Parent = p.Character | |
| end | |
| espHighlights[p.Name] = h | |
| end | |
| local function removeESP(p) | |
| if espHighlights[p.Name] then | |
| espHighlights[p.Name]:Destroy() | |
| espHighlights[p.Name] = nil | |
| end | |
| end | |
| local function toggleESP(state) | |
| espEnabled = state | |
| if state then | |
| for _, p in pairs(Players:GetPlayers()) do createESP(p) end | |
| else | |
| for _, p in pairs(Players:GetPlayers()) do removeESP(p) end | |
| end | |
| notify(state and "ESP ON" or "ESP OFF") | |
| end | |
| Players.PlayerAdded:Connect(function(p) | |
| if espEnabled then task.wait(0.1) createESP(p) end | |
| end) | |
| Players.PlayerRemoving:Connect(function(p) removeESP(p) end) | |
| -- Rainbow ESP | |
| task.spawn(function() | |
| while true do | |
| if espRainbow and espEnabled then | |
| rainbow = (rainbow + 0.01) % 1 | |
| local color = Color3.fromHSV(rainbow, 1, 1) | |
| for _, h in pairs(espHighlights) do | |
| if h then h.FillColor = color end | |
| end | |
| end | |
| task.wait(0.05) | |
| end | |
| end) | |
| -- Respawn Handler | |
| LocalPlayer.CharacterAdded:Connect(function() | |
| task.wait(0.5) | |
| if speedEnabled then | |
| local hum = getHum() | |
| if hum then hum.WalkSpeed = currentSpeed end | |
| end | |
| if flyEnabled then enableFly() end | |
| if godMode then | |
| local hum = getHum() | |
| if hum then hum.MaxHealth, hum.Health = 9e9, 9e9 end | |
| end | |
| if noclipEnabled then applyNoclip() end | |
| if invisible then makeInvisible() end | |
| end) | |
| -- ===================== | |
| -- UI BUILDING | |
| -- ===================== | |
| MainTab:CreateSection("Astral Controls") | |
| MainTab:CreateButton({Name = "Make Invisible", Callback = makeInvisible}) | |
| MainTab:CreateButton({Name = "Make Visible", Callback = makeVisible}) | |
| MainTab:CreateButton({Name = "Reset Character", Callback = resetChar}) | |
| MainTab:CreateButton({Name = "Anti-Kick Active", Callback = function() notify("Anti-Kick ON") end}) | |
| RageTab:CreateSection("Rage Bot") | |
| RageTab:CreateToggle({Name = "Master Rage", CurrentValue = false, Callback = function(v) rageEnabled = v end}) | |
| RageTab:CreateToggle({Name = "Auto Shoot", CurrentValue = false, Callback = function(v) autoShoot = v end}) | |
| RageTab:CreateSlider({Name = "Shoot Delay", Range = {0.02,0.2}, Increment = 0.01, CurrentValue = 0.05, Callback = function(v) shootDelay = v end}) | |
| RageTab:CreateToggle({Name = "Trigger Bot", CurrentValue = false, Callback = function(v) triggerBot = v end}) | |
| AimbotTab:CreateSection("Aimbot") | |
| AimbotTab:CreateToggle({Name = "Enable Aimbot", CurrentValue = false, Callback = function(v) aimbotEnabled = v end}) | |
| AimbotTab:CreateToggle({Name = "Team Check", CurrentValue = false, Callback = function(v) aimbotTeamCheck = v end}) | |
| AimbotTab:CreateDropdown({Name = "Aim Part", Options = {"Head","HumanoidRootPart"}, CurrentOpt |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment