
Key RequiredUniversal

-- ============================================================================
-- 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.")No comments yet for this script.



