-- ============================================================================ -- UNIVERSAL MULTI-GAME WALLHOP (With Speed Control + Rayfield) -- ============================================================================ local success, Rayfield = pcall(function() return loadstring(game:HttpGet('https://sirius.menu/rayfield'))() end) if not success or not Rayfield then warn("Failed to load Rayfield UI library.") return end local Players = game:GetService("Players") local RunService = game:GetService("RunService") local Workspace = game:GetService("Workspace") local LocalPlayer = Players.LocalPlayer -- Configuration States local WallhopEnabled = false local WallCheckDistance = 1.8 local FlickAngle = 90 local WallhopSpeed = 35 -- Speed boost multiplier for outward launch local isFlicking = false -- Universal Wall Detection Check local function IsTouchingWall(hrp, character) local origin = hrp.Position local directions = { hrp.CFrame.LookVector, -hrp.CFrame.LookVector, hrp.CFrame.RightVector, -hrp.CFrame.RightVector } for _, dir in ipairs(directions) do local ray = Ray.new(origin, dir * WallCheckDistance) local hit, pos = Workspace:FindPartOnRayWithIgnoreList(ray, {character}) if hit and hit.CanCollide then return true end end return false end -- Universal Body-Flick Execution with Adjustable Speed local function ExecuteWallhop() if isFlicking then return end isFlicking = true local character = LocalPlayer.Character if character then local hrp = character:FindFirstChild("HumanoidRootPart") local humanoid = character:FindFirstChildOfClass("Humanoid") if hrp and humanoid then humanoid:ChangeState(Enum.HumanoidStateType.Jumping) local currentPos = hrp.Position local currentOrientation = hrp.Orientation hrp.CFrame = CFrame.new(currentPos) * CFrame.Angles(0, math.rad(currentOrientation.Y + FlickAngle), 0) task.wait(0.05) -- Combines outward momentum direction with your customizable WallhopSpeed local forwardDir = hrp.CFrame.LookVector hrp.AssemblyLinearVelocity = Vector3.new(forwardDir.X * WallhopSpeed, 45, forwardDir.Z * WallhopSpeed) end end task.wait(0.2) isFlicking = false end -- Universal Heartbeat Monitor for Mobile Air-State RunService.Heartbeat:Connect(function() if not WallhopEnabled then return end local character = LocalPlayer.Character if not character then return end local hrp = character:FindFirstChild("HumanoidRootPart") local humanoid = character:FindFirstChildOfClass("Humanoid") if hrp and humanoid then if humanoid:GetState() == Enum.HumanoidStateType.Freefall or humanoid.FloorMaterial == Enum.Material.Air then if IsTouchingWall(hrp, character) then ExecuteWallhop() end end end end) -- Rayfield UI Integration local Window = Rayfield:CreateWindow({ Name = "Universal Wallhop Hub (Speed Edition)", LoadingTitle = "Loading Systems...", LoadingSubtitle = "by Chief", ConfigurationSaving = { Enabled = false }, KeySystem = false, }) local Tab = Window:CreateTab("Movement", 4483362458) Tab:CreateToggle({ Name = "Enable Universal Wallhop", CurrentValue = false, Callback = function(Value) WallhopEnabled = Value end, }) Tab:CreateSlider({ Name = "Wall Check Distance", Range = {1.0, 3.0}, Increment = 0.1, CurrentValue = 1.8, Callback = function(Value) WallCheckDistance = Value end, }) Tab:CreateSlider({ Name = "Wallhop Speed", Range = {10, 80}, Increment = 5, CurrentValue = 35, Callback = function(Value) WallhopSpeed = Value end, }) Tab:CreateSlider({ Name = "Flick Angle", Range = {45, 180}, Increment = 5, CurrentValue = 90, Callback = function(Value) FlickAngle = Value end, }) print("[Chief] Wallhop speed control successfully added.")