Run it
Copy the script and paste it into your executor.
success, Rayfield = (()
(:())()
)
success Rayfield
()
Players = :()
RunService = :()
Workspace = :()
LocalPlayer = Players.LocalPlayer
WallhopEnabled =
WallCheckDistance =
FlickAngle =
WallhopSpeed =
isFlicking =
(hrp, character)
origin = hrp.Position
directions = {
hrp.CFrame.LookVector,
-hrp.CFrame.LookVector,
hrp.CFrame.RightVector,
-hrp.CFrame.RightVector
}
_, dir (directions)
ray = Ray.(origin, dir * WallCheckDistance)
hit, pos = Workspace:(ray, {character})
hit hit.CanCollide
()
isFlicking
isFlicking =
character = LocalPlayer.Character
character
hrp = character:()
humanoid = character:()
hrp humanoid
humanoid:(.HumanoidStateType.Jumping)
currentPos = hrp.Position
currentOrientation = hrp.Orientation
hrp.CFrame = .(currentPos) * .(, .(currentOrientation.Y + FlickAngle), )
.()
forwardDir = hrp.CFrame.LookVector
hrp.AssemblyLinearVelocity = .(forwardDir.X * WallhopSpeed, , forwardDir.Z * WallhopSpeed)
.()
isFlicking =
RunService.Heartbeat:(()
WallhopEnabled
character = LocalPlayer.Character
character
hrp = character:()
humanoid = character:()
hrp humanoid
humanoid:() == .HumanoidStateType.Freefall humanoid.FloorMaterial == .Material.Air
(hrp, character)
()
)
Window = Rayfield:({
Name = ,
LoadingTitle = ,
LoadingSubtitle = ,
ConfigurationSaving = { Enabled = },
KeySystem = ,
})
Tab = Window:(, )
Tab:({
Name = ,
CurrentValue = ,
Callback = (Value)
WallhopEnabled = Value
,
})
Tab:({
Name = ,
Range = {, },
Increment = ,
CurrentValue = ,
Callback = (Value)
WallCheckDistance = Value
,
})
Tab:({
Name = ,
Range = {, },
Increment = ,
CurrentValue = ,
Callback = (Value)
WallhopSpeed = Value
,
})
Tab:({
Name = ,
Range = {, },
Increment = ,
CurrentValue = ,
Callback = (Value)
FlickAngle = Value
,
})
()Loads code from the internet. It downloads more code when it runs (loadstring + HttpGet), which can change after it was posted. From: sirius.menu.
pretty basic ngl

Universal