// Name: Generate Quasar Hub Roblox Script // Description: Outputs a Roblox Lua script that boosts when on a player’s head, increases jump power, and pulls you to the ball in Ultimate Football. // Author: brebbiaanthony-sudo // GitHub: brebbiaanthony-sudo import "@johnlindquist/kit" const lua = `local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "Quasar Hub", LoadingTitle = "Quasar Hub", LoadingSubtitle = "Best Upcoming Hub", ConfigurationSaving = { Enabled = false }, KeySystem = true, KeySettings = { Title = "Quasar Key", Subtitle = "Enter Key", Note = "Key is only given out by OWNER", FileName = "BestHubKey", SaveKey = true, GrabKeyFromSite = false, Key = {"BestHub"} } }) --// Services/Locals local Players = game:GetService("Players") local RS = game:GetService("RunService") local UIS = game:GetService("UserInputService") local lp = Players.LocalPlayer local char = lp.Character or lp.CharacterAdded:Wait() local function getChar() if not lp.Character or not lp.Character.Parent then lp.CharacterAdded:Wait() end return lp.Character end local function getHRP() local c = getChar() return c and c:FindFirstChild("HumanoidRootPart") end local function getHumanoid() local c = getChar() return c and c:FindFirstChildOfClass("Humanoid") end --// Tabs local MainTab = Window:CreateTab("Main", 4483362458) local EmoteTab = Window:CreateTab("Emotes", 4483362458) local SettingsTab = Window:CreateTab("Settings", 4483362458) --//////////////////////////////////////////////// --// STATES --//////////////////////////////////////////////// local BoostEnabled = false local JumpEnabled = false local PullEnabled = false local BoostPower = 50 local JumpPower = 100 local PullStrength = 50 local PullKey = "E" -- Caches/defaults local defaultJumpPower = 50 local usingJumpPower = true task.defer(function() local hum = getHumanoid() if hum then if hum:FindFirstChild("UseJumpPower") ~= nil then usingJumpPower = hum.UseJumpPower end if hum:FindFirstChild("JumpPower") ~= nil then defaultJumpPower = hum.JumpPower end end end) --//////////////////////////////////////////////// --// HELPERS --//////////////////////////////////////////////// local function enumKeyCodeFromString(s) if typeof(s) == "EnumItem" and s.EnumType == Enum.KeyCode then return s end if typeof(s) == "string" then return Enum.KeyCode[s] or Enum.KeyCode[s:upper()] or nil end return nil end local function isOnPlayersHead() local hrp = getHRP() local c = getChar() if not hrp or not c then return false end local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Exclude params.FilterDescendantsInstances = {c} local origin = hrp.Position local direction = Vector3.new(0, -5, 0) local result = workspace:Raycast(origin, direction, params) if result and result.Instance then local inst = result.Instance local parent = inst.Parent if inst.Name == "Head" and parent and parent:FindFirstChildOfClass("Humanoid") and parent ~= c then return true end end return false end local function findBall() -- Try common ball names in Ultimate Football-type experiences local candidates = {} for _, d in ipairs(workspace:GetDescendants()) do if d:IsA("BasePart") then local n = d.Name:lower() if n == "ball" or n == "football" or n == "ufball" then table.insert(candidates, d) end end end -- Return nearest candidate to player local hrp = getHRP() if #candidates == 0 or not hrp then return nil end table.sort(candidates, function(a, b) return (a.Position - hrp.Position).Magnitude < (b.Position - hrp.Position).Magnitude end) return candidates[1] end --//////////////////////////////////////////////// --// MAIN TAB UI (with logic) --//////////////////////////////////////////////// MainTab:CreateToggle({ Name = "Boost (On Head)", CurrentValue = false, Callback = function(v) BoostEnabled = v end }) MainTab:CreateSlider({ Name = "Boost Power", Range = {0, 300}, Increment = 5, CurrentValue = BoostPower, Callback = function(v) BoostPower = v end }) MainTab:CreateToggle({ Name = "Jump Boost", CurrentValue = false, Callback = function(v) JumpEnabled = v local hum = getHumanoid() if hum then if hum:FindFirstChild("UseJumpPower") ~= nil then hum.UseJumpPower = true end if JumpEnabled then hum.JumpPower = JumpPower else hum.JumpPower = defaultJumpPower end end end }) MainTab:CreateSlider({ Name = "Jump Power", Range = {0, 300}, Increment = 5, CurrentValue = JumpPower, Callback = function(v) JumpPower = v if JumpEnabled then local hum = getHumanoid() if hum then if hum:FindFirstChild("UseJumpPower") ~= nil then hum.UseJumpPower = true end hum.JumpPower = JumpPower end end end }) MainTab:CreateToggle({ Name = "Pull to Ball", CurrentValue = false, Callback = function(v) PullEnabled = v end }) MainTab:CreateSlider({ Name = "Pull Strength", Range = {0, 300}, Increment = 5, CurrentValue = PullStrength, Callback = function(v) PullStrength = v end }) MainTab:CreateKeybind({ Name = "Pull Keybind", CurrentKeybind = PullKey, HoldToInteract = false, Callback = function(key) if typeof(key) == "EnumItem" and key.EnumType == Enum.KeyCode then PullKey = key.Name elseif typeof(key) == "string" then PullKey = key end end }) --//////////////////////////////////////////////// --// EMOTES TAB --//////////////////////////////////////////////// local Emotes = { Bop = "103538719480738", ["Hackers Delight"] = "6797919579", ["Bloc Boy Shoot"] = "80055417516516", ["Take The L"] = "115257168348469", Worm = "140480027661558" } local function PlayEmote(id) if id == "" then return end local anim = Instance.new("Animation") anim.AnimationId = "rbxassetid://" .. id local c = getChar() if not c then return end local hum = c:FindFirstChildOfClass("Humanoid") if not hum then return end local track = hum:LoadAnimation(anim) track:Play() end for name, id in pairs(Emotes) do EmoteTab:CreateButton({ Name = name, Callback = function() PlayEmote(id) end }) end --//////////////////////////////////////////////// --// SETTINGS TAB --//////////////////////////////////////////////// SettingsTab:CreateParagraph({ Title = "BestHub", Content = "UI framework loaded with mechanics: Boost on head, Jump boost, Pull to ball." }) SettingsTab:CreateButton({ Name = "Reset Settings", Callback = function() BoostEnabled = false JumpEnabled = false PullEnabled = false BoostPower = 50 JumpPower = 100 PullStrength = 50 local hum = getHumanoid() if hum then if hum:FindFirstChild("UseJumpPower") ~= nil then hum.UseJumpPower = usingJumpPower end if hum:FindFirstChild("JumpPower") ~= nil then hum.JumpPower = defaultJumpPower end end end }) --//////////////////////////////////////////////// --// RUNTIME LOOPS --//////////////////////////////////////////////// local pulling = false local lastBoost = 0 UIS.InputBegan:Connect(function(input, gp) if gp then return end local key = enumKeyCodeFromString(PullKey) if PullEnabled and key and input.KeyCode == key then pulling = not pulling -- toggle end end) UIS.InputEnded:Connect(function(input, gp) -- If you want hold behavior instead, uncomment below and set HoldToInteract=true in UI -- local key = enumKeyCodeFromString(PullKey) -- if key and input.KeyCode == key then -- pulling = false -- end end) RS.RenderStepped:Connect(function(dt) -- Keep jump power synced if toggled if JumpEnabled then local hum = getHumanoid() if hum then if hum:FindFirstChild("UseJumpPower") ~= nil then hum.UseJumpPower = true end if hum.JumpPower ~= JumpPower then hum.JumpPower = JumpPower end end end -- Boost when on another player's head if BoostEnabled and (time() - lastBoost) > 0.5 then if isOnPlayersHead() then local hrp = getHRP() if hrp then -- Add an impulse upward and slightly forward local forward = hrp.CFrame.LookVector * (BoostPower * 0.5) local upward = Vector3.new(0, BoostPower, 0) hrp.AssemblyLinearVelocity = hrp.AssemblyLinearVelocity + forward + upward lastBoost = time() end end end -- Pull to the ball if PullEnabled and pulling then local hrp = getHRP() local ball = findBall() if hrp and ball then local dir = (ball.Position - hrp.Position) local mag = dir.Magnitude if mag > 2 then local unit = dir / mag -- Nudge velocity toward ball hrp.AssemblyLinearVelocity = hrp.AssemblyLinearVelocity + (unit * PullStrength) end end end end) -- Character reset handling lp.CharacterAdded:Connect(function(c) char = c task.defer(function() local hum = getHumanoid() if hum then if hum:FindFirstChild("UseJumpPower") ~= nil then usingJumpPower = hum.UseJumpPower end if hum:FindFirstChild("JumpPower") ~= nil then defaultJumpPower = hum.JumpPower end if JumpEnabled then if hum:FindFirstChild("UseJumpPower") ~= nil then hum.UseJumpPower = true end hum.JumpPower = JumpPower end end end) end) ` await copy(lua) await editor(lua) await notify("Roblox Lua script generated and copied to clipboard.")// Name: Roblox Lua: Quasar Hub Enhanced Generator // Description: Generates an enhanced Roblox Lua Rayfield script with boost/jump/pull, fling, magnetize, accessories/clothing, and fast flag link. // Author: brebbiaanthony-sudo // GitHub: brebbiaanthony-sudo import "@johnlindquist/kit" const lua: string = `local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))() local Window = Rayfield:CreateWindow({ Name = "Quasar Hub", LoadingTitle = "Quasar Hub", LoadingSubtitle = "Best Upcoming Hub", ConfigurationSaving = { Enabled = false }, KeySystem = true, KeySettings = { Title = "Quasar Key", Subtitle = "Enter Key", Note = "Key is only given out by OWNER", FileName = "BestHubKey", SaveKey = true, GrabKeyFromSite = false, Key = {"BestHub"} } }) --// Services / Locals (cached for performance and readability) local Players = game:GetService("Players") local RS = game:GetService("RunService") local UIS = game:GetService("UserInputService") local lp = Players.LocalPlayer local workspace = game:GetService("Workspace") local char = lp.Character or lp.CharacterAdded:Wait() -- Safe getters to handle respawns and nil references local function getChar() local c = lp.Character if not c or not c.Parent then lp.CharacterAdded:Wait() c = lp.Character end return c end local function getHRP() local c = getChar() return c and c:FindFirstChild("HumanoidRootPart") or nil end local function getHumanoid() local c = getChar() return c and c:FindFirstChildOfClass("Humanoid") or nil end -- Utility: Get a reasonable hand position (R15/R6 compatible) local function getHandPosition() local c = getChar() if not c then return nil end local rightHand = c:FindFirstChild("RightHand") or c:FindFirstChild("Right Arm") if rightHand and rightHand:IsA("BasePart") then return rightHand.Position end local hrp = c:FindFirstChild("HumanoidRootPart") return hrp and (hrp.Position + hrp.CFrame.LookVector * 2) or nil end -- Tabs local MainTab = Window:CreateTab("Main", 4483362458) local EmoteTab = Window:CreateTab("Emotes", 4483362458) local AccessoriesTab = Window:CreateTab("Accessories", 4483362458) local ClothingTab = Window:CreateTab("Clothing", 4483362458) local FastFlagsTab = Window:CreateTab("Fast Flags", 4483362458) local SettingsTab = Window:CreateTab("Settings", 4483362458) --//////////////////////////////////////////////// --// STATES --//////////////////////////////////////////////// local BoostEnabled = false local JumpEnabled = false local PullEnabled = false local BoostPower = 50 local JumpPower = 100 local PullStrength = 50 local PullKey = "E" -- New: Fling feature (on-head fling) local FlingEnabled = false local FlingPower = 50 -- 0..100 local FlingDelayEnabled = false local FlingDelaySec = 0.75 -- seconds to remain on-head before fling triggers -- New: Magnetize-to-ball (range-based with visual orb) local MagnetizeEnabled = false local MagnetizeRange = 20 -- studs -- Accessory & Clothing placeholders local AccessoryIDs = {"", "", "", "", ""} -- 5 slots, leave empty for user local ShirtID = "" -- leave blank; set to an asset id string without "rbxassetid://" local PantsID = "" -- leave blank; set to an asset id string without "rbxassetid://" -- Fast Flag injector link (leave blank; user can set) local FastFlagURL = "" -- e.g., "https://example.com/fast-flag-injector" -- Cache humanoid jump defaults local defaultJumpPower = 50 local usingJumpPower = true task.defer(function() local hum = getHumanoid() if hum then if hum:FindFirstChild("UseJumpPower") ~= nil then usingJumpPower = hum.UseJumpPower end if hum:FindFirstChild("JumpPower") ~= nil then defaultJumpPower = hum.JumpPower end end end) --//////////////////////////////////////////////// --// HELPERS --//////////////////////////////////////////////// -- Convert string/"EnumItem" to Enum.KeyCode safely local function enumKeyCodeFromString(s) if typeof(s) == "EnumItem" and s.EnumType == Enum.KeyCode then return s end if typeof(s) == "string" then return Enum.KeyCode[s] or Enum.KeyCode[s:upper()] or nil end return nil end -- Detect if the player is currently on another player's head (raycast down from HRP) local function isOnPlayersHead() local hrp = getHRP() local c = getChar() if not hrp or not c then return false end local params = RaycastParams.new() params.FilterType = Enum.RaycastFilterType.Exclude params.FilterDescendantsInstances = {c} local origin = hrp.Position local direction = Vector3.new(0, -5, 0) local result = workspace:Raycast(origin, direction, params) if result and result.Instance then local inst = result.Instance local parent = inst.Parent if inst.Name == "Head" and parent and parent:FindFirstChildOfClass("Humanoid") and parent ~= c then return true end end return false end -- Find a "ball" part (closest to player) using common names for Ultimate Football local function findBall() local candidates = {} for _, d in ipairs(workspace:GetDescendants()) do if d:IsA("BasePart") then local n = d.Name:lower() if n == "ball" or n == "football" or n == "ufball" then table.insert(candidates, d) end end end local hrp = getHRP() if #candidates == 0 or not hrp then return nil end table.sort(candidates, function(a, b) return (a.Position - hrp.Position).Magnitude < (b.Position - hrp.Position).Magnitude end) return candidates[1] end -- Visual orb to show magnetize range (created/destroyed on toggle) local orbPart = nil local function ensureOrb() if orbPart and orbPart.Parent then return orbPart end local p = Instance.new("Part") p.Name = "Quasar_Magnetize_Orb" p.Shape = Enum.PartType.Ball p.Material = Enum.Material.ForceField p.Color = Color3.fromRGB(0, 170, 255) p.Transparency = 0.7 p.Anchored = true p.CanCollide = false p.CanQuery = false p.CanTouch = false p.Size = Vector3.new(MagnetizeRange * 2, MagnetizeRange * 2, MagnetizeRange * 2) p.Parent = workspace orbPart = p return orbPart end local function removeOrb() if orbPart then pcall(function() orbPart:Destroy() end) orbPart = nil end end local function updateOrb() if not MagnetizeEnabled then removeOrb() return end local p = ensureOrb() local hrp = getHRP() if p and hrp then p.Size = Vector3.new(MagnetizeRange * 2, MagnetizeRange * 2, MagnetizeRange * 2) p.CFrame = CFrame.new(hrp.Position) end end -- Fling impulse when on someone’s head local function doFling() local hrp = getHRP() if not hrp then return end -- Strong lateral + upward impulse; add angular velocity for the "fling" feel local lateral = (hrp.CFrame.RightVector * (FlingPower * 2)) + (hrp.CFrame.LookVector * (FlingPower * 1.5)) local upward = Vector3.new(0, math.max(20, FlingPower), 0) -- Apply linear velocity impulse hrp.AssemblyLinearVelocity = hrp.AssemblyLinearVelocity + lateral + upward -- Safe angular fling local currentAngVel = hrp.AssemblyAngularVelocity if typeof(currentAngVel) == "Vector3" then hrp.AssemblyAngularVelocity = currentAngVel + Vector3.new(math.random(-2, 2), FlingPower * 0.5, math.random(-2, 2)) end end -- Accessory equip helper (safe, leaves placeholders functional if IDs are empty) local function equipAccessoryById(id) if not id or id == "" then return end local ok, objs = pcall(function() return game:GetObjects("rbxassetid://" .. tostring(id)) end) if not ok or not objs or #objs == 0 then warn("[Quasar] Failed to load accessory with id:", id) return end local hum = getHumanoid() if not hum then return end local accessory = nil -- Find an Accessory in returned objects for _, obj in ipairs(objs) do if obj:IsA("Accessory") then accessory = obj break elseif obj:IsA("Model") then accessory = obj:FindFirstChildOfClass("Accessory") if accessory then break end end end if accessory then accessory.Parent = workspace pcall(function() hum:AddAccessory(accessory) end) else warn("[Quasar] No Accessory found in asset:", id) end end -- Clothing helpers local function applyShirt(id) if not id or id == "" then return end local c = getChar() if not c then return end pcall(function() local existing = c:FindFirstChildOfClass("Shirt") if existing then existing:Destroy() end local s = Instance.new("Shirt") s.ShirtTemplate = "rbxassetid://" .. tostring(id) s.Parent = c end) end local function applyPants(id) if not id or id == "" then return end local c = getChar() if not c then return end pcall(function() local existing = c:FindFirstChildOfClass("Pants") if existing then existing:Destroy() end local p = Instance.new("Pants") p.PantsTemplate = "rbxassetid://" .. tostring(id) p.Parent = c end) end local function clearClothing() local c = getChar() if not c then return end pcall(function() local s = c:FindFirstChildOfClass("Shirt") local p = c:FindFirstChildOfClass("Pants") if s then s:Destroy() end if p then p:Destroy() end end) end --//////////////////////////////////////////////// --// MAIN TAB UI (with logic) --//////////////////////////////////////////////// MainTab:CreateToggle({ Name = "Boost (On Head)", CurrentValue = false, Callback = function(v) BoostEnabled = v end }) MainTab:CreateSlider({ Name = "Boost Power", Range = {0, 300}, Increment = 5, CurrentValue = BoostPower, Callback = function(v) BoostPower = v end }) MainTab:CreateToggle({ Name = "Jump Boost", CurrentValue = false, Callback = function(v) JumpEnabled = v local hum = getHumanoid() if hum then if hum:FindFirstChild("UseJumpPower") ~= nil then hum.UseJumpPower = true end if JumpEnabled then hum.JumpPower = JumpPower else hum.JumpPower = defaultJumpPower end end end }) MainTab:CreateSlider({ Name = "Jump Power", Range = {0, 300}, Increment = 5, CurrentValue = JumpPower, Callback = function(v) JumpPower = v if JumpEnabled then local hum = getHumanoid() if hum then if hum:FindFirstChild("UseJumpPower") ~= nil then hum.UseJumpPower = true end hum.JumpPower = JumpPower end end end }) MainTab:CreateToggle({ Name = "Pull to Ball", CurrentValue = false, Callback = function(v) PullEnabled = v end }) MainTab:CreateSlider({ Name = "Pull Strength", Range = {0, 300}, Increment = 5, CurrentValue = PullStrength, Callback = function(v) PullStrength = v end }) MainTab:CreateKeybind({ Name = "Pull Keybind", CurrentKeybind = PullKey, HoldToInteract = false, Callback = function(key) if typeof(key) == "EnumItem" and key.EnumType == Enum.KeyCode then PullKey = key.Name elseif typeof(key) == "string" then PullKey = key end end }) -- New: Fling Controls MainTab:CreateToggle({ Name = "Fling (On Head)", CurrentValue = false, Callback = function(v) FlingEnabled = v end }) MainTab:CreateSlider({ Name = "Fling Power", Range = {0, 100}, Increment = 5, CurrentValue = FlingPower, Callback = function(v) FlingPower = v end }) MainTab:CreateToggle({ Name = "Fling Delay Enabled", CurrentValue = false, Callback = function(v) FlingDelayEnabled = v end }) MainTab:CreateSlider({ Name = "Fling Delay (sec)", Range = {0, 5}, Increment = 0.1, CurrentValue = FlingDelaySec, Callback = function(v) FlingDelaySec = v end }) -- New: Magnetize-to-ball Controls MainTab:CreateToggle({ Name = "Magnetize Ball to Hands", CurrentValue = false, Callback = function(v) MagnetizeEnabled = v if not v then removeOrb() else updateOrb() end end }) MainTab:CreateSlider({ Name = "Magnetize Range", Range = {5, 100}, Increment = 1, CurrentValue = MagnetizeRange, Callback = function(v) MagnetizeRange = v updateOrb() end }) --//////////////////////////////////////////////// --// EMOTES TAB --//////////////////////////////////////////////// local Emotes = { Bop = "103538719480738", ["Hackers Delight"] = "6797919579", ["Bloc Boy Shoot"] = "80055417516516", ["Take The L"] = "115257168348469", Worm = "140480027661558" } local function PlayEmote(id) if id == "" then return end local ok, anim = pcall(function() local a = Instance.new("Animation") a.AnimationId = "rbxassetid://" .. id return a end) if not ok or not anim then return end local c = getChar() if not c then return end local hum = c:FindFirstChildOfClass("Humanoid") if not hum then return end pcall(function() local track = hum:LoadAnimation(anim) track:Play() end) end for name, id in pairs(Emotes) do EmoteTab:CreateButton({ Name = name, Callback = function() PlayEmote(id) end }) end --//////////////////////////////////////////////// --// ACCESSORIES TAB (placeholders + functional equip if IDs filled) --//////////////////////////////////////////////// AccessoriesTab:CreateParagraph({ Title = "Accessory Slots", Content = "Set AccessoryIDs in the script. Use the buttons below to equip/clear. Slots are blank by default." }) for i = 1, 5 do AccessoriesTab:CreateButton({ Name = ("Equip Accessory Slot %d (ID: %s)"):format(i, AccessoryIDs[i] ~= "" and AccessoryIDs[i] or "blank"), Callback = function() equipAccessoryById(AccessoryIDs[i]) end }) AccessoriesTab:CreateButton({ Name = ("Clear Accessory Slot %d ID"):format(i), Callback = function() AccessoryIDs[i] = "" end }) end --//////////////////////////////////////////////// --// CLOTHING TAB (placeholders + functional if IDs filled) --//////////////////////////////////////////////// ClothingTab:CreateParagraph({ Title = "Clothing", Content = "Set ShirtID and PantsID in the script. Apply/Clear using the buttons." }) ClothingTab:CreateButton({ Name = ("Apply Shirt (ID: %s)"):format(ShirtID ~= "" and ShirtID or "blank"), Callback = function() applyShirt(ShirtID) end }) ClothingTab:CreateButton({ Name = ("Apply Pants (ID: %s)"):format(PantsID ~= "" and PantsID or "blank"), Callback = function() applyPants(PantsID) end }) ClothingTab:CreateButton({ Name = "Clear Clothing", Callback = function() clearClothing() end }) --//////////////////////////////////////////////// --// FAST FLAGS TAB --//////////////////////////////////////////////// FastFlagsTab:CreateParagraph({ Title = "Fast Flag Injector", Content = "Click the button to open a Fast Flag Injector. This link is blank by default. Set FastFlagURL in the script." }) FastFlagsTab:CreateButton({ Name = "Open Fast Flag Injector", Callback = function() if FastFlagURL == "" then warn("[Quasar] Set FastFlagURL in the script before using this button.") -- Try to hint with clipboard if available if typeof(setclipboard) == "function" then setclipboard("Set FastFlagURL in script") end return end -- Attempt to open URL or copy to clipboard (depends on executor capabilities) local opened = false if typeof(syn) == "table" and syn and syn.request then -- Some executors may not support opening URLs directly. As a fallback, copy it. end if typeof(setclipboard) == "function" then setclipboard(FastFlagURL) opened = true end if not opened then print("[Quasar] FastFlagURL:", FastFlagURL) end end }) --//////////////////////////////////////////////// --// SETTINGS TAB --//////////////////////////////////////////////// SettingsTab:CreateParagraph({ Title = "BestHub", Content = "Mechanics: Boost on head, Jump boost, Pull to ball, Fling on head, Magnetize-to-ball, Accessories, Clothing, Fast Flags." }) SettingsTab:CreateButton({ Name = "Reset Settings", Callback = function() BoostEnabled = false JumpEnabled = false PullEnabled = false FlingEnabled = false FlingDelayEnabled = false MagnetizeEnabled = false BoostPower = 50 JumpPower = 100 PullStrength = 50 FlingPower = 50 FlingDelaySec = 0.75 MagnetizeRange = 20 removeOrb() local hum = getHumanoid() if hum then if hum:FindFirstChild("UseJumpPower") ~= nil then hum.UseJumpPower = usingJumpPower end if hum:FindFirstChild("JumpPower") ~= nil then hum.JumpPower = defaultJumpPower end end end }) --//////////////////////////////////////////////// --// RUNTIME LOOPS --//////////////////////////////////////////////// local pulling = false local lastBoost = 0 local wasOnHead = false local onHeadSince = 0 local hasFlungThisHead = false UIS.InputBegan:Connect(function(input, gp) if gp then return end local key = enumKeyCodeFromString(PullKey) if PullEnabled and key and input.KeyCode == key then pulling = not pulling -- toggle pulling on key press end end) RS.RenderStepped:Connect(function(dt) -- Keep jump power synced if toggled if JumpEnabled then local hum = getHumanoid() if hum then if hum:FindFirstChild("UseJumpPower") ~= nil then hum.UseJumpPower = true end if hum.JumpPower ~= JumpPower then hum.JumpPower = JumpPower end end end -- Boost when on another player's head (light cooldown) local nowOnHead = isOnPlayersHead() if BoostEnabled and (time() - lastBoost) > 0.5 and nowOnHead then local hrp = getHRP() if hrp then local forward = hrp.CFrame.LookVector * (BoostPower * 0.5) local upward = Vector3.new(0, BoostPower, 0) hrp.AssemblyLinearVelocity = hrp.AssemblyLinearVelocity + forward + upward lastBoost = time() end end -- Fling logic (only once per "on-head session", with optional delay) if nowOnHead then if not wasOnHead then onHeadSince = time() hasFlungThisHead = false end if FlingEnabled and not hasFlungThisHead then local waited = (time() - onHeadSince) local allow = (not FlingDelayEnabled) or (waited >= FlingDelaySec) if allow then doFling() hasFlungThisHead = true end end else -- Reset session tracking onHeadSince = 0 hasFlungThisHead = false end wasOnHead = nowOnHead -- Pull to the ball (nudges velocity toward the ball while active) if PullEnabled and pulling then local hrp = getHRP() local ball = findBall() if hrp and ball then local dir = (ball.Position - hrp.Position) local mag = dir.Magnitude if mag > 2 then local unit = dir / mag hrp.AssemblyLinearVelocity = hrp.AssemblyLinearVelocity + (unit * PullStrength) end end end -- Magnetize ball to hands (within range). More aggressive than Pull; attempts to "stick". if MagnetizeEnabled then updateOrb() local hrp = getHRP() local ball = findBall() if hrp and ball then local handPos = getHandPosition() or hrp.Position local d = (ball.Position - handPos).Magnitude if d <= MagnetizeRange then -- Strongly bias ball toward hand position using velocity, without hard-setting CFrame local toHand = (handPos - ball.Position) local m = math.max(toHand.Magnitude, 0.01) local unit = toHand / m -- Scale with distance so closer = gentler, farther = stronger pull local strength = math.clamp((PullStrength * 2) + (100 * (m / MagnetizeRange)), 20, 350) local newVel = ball.AssemblyLinearVelocity + (unit * strength) -- Small smoothing to reduce jitter ball.AssemblyLinearVelocity = newVel end end end end) -- Character reset handling (reapply settings safely) lp.CharacterAdded:Connect(function(c) char = c task.defer(function() local hum = getHumanoid() if hum then if hum:FindFirstChild("UseJumpPower") ~= nil then usingJumpPower = hum.UseJumpPower end if hum:FindFirstChild("JumpPower") ~= nil then defaultJumpPower = hum.JumpPower end if JumpEnabled then if hum:FindFirstChild("UseJumpPower") ~= nil then hum.UseJumpPower = true end hum.JumpPower = JumpPower end end if not MagnetizeEnabled then removeOrb() else updateOrb() end end) end) ` try { await copy(lua) await editor({ value: lua, language: "lua", onInit: async () => { setName("Quasar Hub Enhanced (Lua)") setDescription("Review and edit the generated Roblox Lua Rayfield script.") }, } as any) await notify("Roblox Lua script generated and copied to clipboard.") } catch (error: any) { console.warn("Failed to open editor or copy to clipboard:", error?.message || error) await div(md("Lua generated, but an error occurred. Open logs for details.")) }