Run it
Copy the script and paste it into your executor.
screenGui = .()
screenGui.Parent = .Players.LocalPlayer:()
screenGui.ResetOnSpawn =
UserInputService = :()
Players = :()
Workspace = :()
RunService = :()
player = Players.LocalPlayer
mouse = player:()
frame = .()
frame.Parent = screenGui
frame.BackgroundColor3 = .(, , )
frame.Size = .(, , , )
frame.Position = .(, -, , -)
frame.Active =
frame.ClipsDescendants =
dragging
dragInput
dragStart
startPosition
(input)
delta = input.Position - dragStart
frame.Position = .(startPosition.X.Scale, startPosition.X.Offset + delta.X, startPosition.Y.Scale, startPosition.Y.Offset + delta.Y)
frame.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dragging =
dragStart = input.Position
startPosition = frame.Position
input.Changed:(()
input.UserInputState == .UserInputState.End
dragging =
)
)
frame.InputChanged:((input)
input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch
dragInput = input
)
UserInputService.InputChanged:((input)
input == dragInput dragging
(input)
)
frameWidth = frame.Size.X.Offset
buttonWidth =
totalButtonWidth = buttonWidth *
totalSpacing = frameWidth - totalButtonWidth
spacing = totalSpacing /
onButtonX = spacing
additionButtonX = spacing + buttonWidth + spacing
offButtonX = spacing + buttonWidth + spacing + buttonWidth + spacing
onButton = .()
onButton.Parent = frame
onButton.BackgroundColor3 = .(, , )
onButton.Size = .(, buttonWidth, , )
onButton.Position = .(, onButtonX, , )
onButton.Text =
onButton.TextScaled =
additionButton = .()
additionButton.Parent = frame
additionButton.BackgroundColor3 = .(, , )
additionButton.Size = .(, buttonWidth, , )
additionButton.Position = .(, additionButtonX, , )
additionButton.Text =
additionButton.TextScaled =
additionToggle =
additionalFrame =
jumpButtonInAddition =
offButton = .()
offButton.Parent = frame
offButton.BackgroundColor3 = .(, , )
offButton.Size = .(, buttonWidth, , )
offButton.Position = .(, offButtonX, , )
offButton.Text =
offButton.TextScaled =
destroyButton = .()
destroyButton.Parent = frame
destroyButton.BackgroundColor3 = .(, , )
destroyButton.Size = .(, , , )
destroyButton.Position = .(, , , )
destroyButton.Text =
destroyButton.TextScaled =
autoButton = .()
autoButton.Parent = frame
autoButton.BackgroundColor3 = .(, , )
autoButton.Size = .(, , , )
autoButton.Position = .(, , , )
autoButton.Text =
autoButton.TextScaled =
autoToggle =
autoJumpButton = .()
autoJumpButton.Parent = frame
autoJumpButton.BackgroundColor3 = .(, , )
autoJumpButton.Size = .(, , , )
autoJumpButton.Position = .(, , , )
autoJumpButton.Text =
autoJumpButton.TextScaled =
autoJumpToggle =
downforceButton = .()
downforceButton.Parent = frame
downforceButton.BackgroundColor3 = .(, , )
downforceButton.Size = .(, , , )
downforceButton.Position = .(, , , )
downforceButton.Text =
downforceButton.TextScaled =
downforceToggle =
sliderLabel = .()
sliderLabel.Parent = frame
sliderLabel.BackgroundTransparency =
sliderLabel.Size = .(, , , )
sliderLabel.Position = .(, , , )
sliderLabel.Text =
sliderLabel.TextColor3 = .(, , )
sliderLabel.TextSize =
sliderLabel.Font = .Font.SourceSans
sliderBackground = .()
sliderBackground.Parent = frame
sliderBackground.BackgroundColor3 = .(, , )
sliderBackground.Size = .(, , , )
sliderBackground.Position = .(, , , )
sliderBackground.BorderSizePixel =
sliderButton = .()
sliderButton.Parent = sliderBackground
sliderButton.BackgroundColor3 = .(, , )
sliderButton.Size = .(, , , )
sliderButton.Position = .(, -, , -)
sliderButton.Text =
sliderButton.BorderSizePixel =
flickSpeed =
sliderActive =
sliderButton.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
sliderActive =
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
sliderActive =
)
(input)
absoluteX = sliderBackground.AbsolutePosition.X
absoluteWidth = sliderBackground.AbsoluteSize.X
inputX = input.Position.X
scale = .((inputX - absoluteX) / absoluteWidth, , )
flickSpeed = + (scale * )
sliderButton.Position = .(scale, -, , -)
sliderLabel.Text = .(, flickSpeed)
UserInputService.InputChanged:((input)
sliderActive (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
(input)
)
downforceValue =
dfSliderActive =
dfSliderLabel = .()
dfSliderLabel.Parent = frame
dfSliderLabel.BackgroundTransparency =
dfSliderLabel.Size = .(, , , )
dfSliderLabel.Position = .(, , , )
dfSliderLabel.Text =
dfSliderLabel.TextColor3 = .(, , )
dfSliderLabel.TextSize =
dfSliderLabel.Font = .Font.SourceSans
dfSliderBackground = .()
dfSliderBackground.Parent = frame
dfSliderBackground.BackgroundColor3 = .(, , )
dfSliderBackground.Size = .(, , , )
dfSliderBackground.Position = .(, , , )
dfSliderBackground.BorderSizePixel =
dfSliderButton = .()
dfSliderButton.Parent = dfSliderBackground
dfSliderButton.BackgroundColor3 = .(, , )
dfSliderButton.Size = .(, , , )
dfSliderButton.Position = .(, -, , -)
dfSliderButton.Text =
dfSliderButton.BorderSizePixel =
dfSliderButton.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dfSliderActive =
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
dfSliderActive =
)
(input)
absoluteX = dfSliderBackground.AbsolutePosition.X
absoluteWidth = dfSliderBackground.AbsoluteSize.X
inputX = input.Position.X
scale = .((inputX - absoluteX) / absoluteWidth, , )
downforceValue = scale
dfSliderButton.Position = .(scale, -, , -)
dfSliderLabel.Text = .(, downforceValue)
UserInputService.InputChanged:((input)
dfSliderActive (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
(input)
)
flickAngleDegrees =
angleSliderActive =
angleSliderLabel = .()
angleSliderLabel.Parent = frame
angleSliderLabel.BackgroundTransparency =
angleSliderLabel.Size = .(, , , )
angleSliderLabel.Position = .(, , , )
angleSliderLabel.Text =
angleSliderLabel.TextColor3 = .(, , )
angleSliderLabel.TextSize =
angleSliderLabel.Font = .Font.SourceSans
angleSliderBackground = .()
angleSliderBackground.Parent = frame
angleSliderBackground.BackgroundColor3 = .(, , )
angleSliderBackground.Size = .(, , , )
angleSliderBackground.Position = .(, , , )
angleSliderBackground.BorderSizePixel =
angleSliderButton = .()
angleSliderButton.Parent = angleSliderBackground
angleSliderButton.BackgroundColor3 = .(, , )
angleSliderButton.Size = .(, , , )
angleSliderButton.Position = .(/, -, , -)
angleSliderButton.Text =
angleSliderButton.BorderSizePixel =
angleSliderButton.InputBegan:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
angleSliderActive =
)
UserInputService.InputEnded:((input)
input.UserInputType == .UserInputType.MouseButton1 input.UserInputType == .UserInputType.Touch
angleSliderActive =
)
(input)
absoluteX = angleSliderBackground.AbsolutePosition.X
absoluteWidth = angleSliderBackground.AbsoluteSize.X
inputX = input.Position.X
scale = .((inputX - absoluteX) / absoluteWidth, , )
flickAngleDegrees = .(scale * )
angleSliderButton.Position = .(scale, -, , -)
angleSliderLabel.Text = .(, flickAngleDegrees)
UserInputService.InputChanged:((input)
angleSliderActive (input.UserInputType == .UserInputType.MouseMovement input.UserInputType == .UserInputType.Touch)
(input)
)
statusLabel = .()
statusLabel.Parent = frame
statusLabel.BackgroundColor3 = .(, , )
statusLabel.Size = .(, , , )
statusLabel.Position = .(, , , -)
statusLabel.Text =
statusLabel.TextColor3 = .(, , )
statusLabel.TextScaled =
plusButton = .()
plusButton.Parent = frame
plusButton.BackgroundColor3 = .(, , )
plusButton.Size = .(, , , )
plusButton.Position = .(, -, , -)
plusButton.Text =
plusButton.TextColor3 = .(, , )
plusButton.TextScaled =
plusButtonToggle =
plusFrame =
selectButtonInPlusFrame =
selectModeActive =
colorListLabelInPlusFrame =
mouseClickConnection =
selectedBrickColor =
wallhopToggle =
InfiniteJumpEnabled =
raycastParams = RaycastParams.()
raycastParams.FilterType = .RaycastFilterType.Blacklist
jumpConnection =
autoJumpConnection =
wallTouchJumpConnection =
alignConnection =
()
character = player.Character
character
humanoidRootPart = character:()
humanoidRootPart
raycastParams.FilterDescendantsInstances = {character}
detectionDistance =
closestHit =
minDistance = detectionDistance +
hrpCF = humanoidRootPart.CFrame
(instance)
instance
model = instance:()
model model:()
i = ,
angle = .(i * )
direction = (hrpCF * .(, angle, )).LookVector
ray = Workspace:(humanoidRootPart.Position, direction * detectionDistance, raycastParams)
ray ray.Instance (ray.Instance) ray.Distance < minDistance
minDistance = ray.Distance
closestHit = ray
blockCastSize = .(, , )
blockCastOffset = .(, -, -)
blockCastOriginCF = hrpCF * blockCastOffset
blockCastDirection = hrpCF.LookVector
blockCastDistance =
blockResult = Workspace:(blockCastOriginCF, blockCastSize, blockCastDirection * blockCastDistance, raycastParams)
blockResult blockResult.Instance (blockResult.Instance) blockResult.Distance < minDistance
minDistance = blockResult.Distance
closestHit = blockResult
closestHit
()
wallhopToggle
character = player.Character
rootPart = character character:()
rootPart
wallRayResult = ()
wallRayResult
wallNormal = wallRayResult.Normal
targetLookDirection = -.(wallNormal.X, , wallNormal.Z).Unit
targetLookDirection.Magnitude >
rootPart.CFrame = .(rootPart.Position, rootPart.Position + targetLookDirection)
()
(wallRayResult, jumpType)
jumpType ~= InfiniteJumpEnabled
character = player.Character
humanoid = character character:()
rootPart = character character:()
camera = Workspace.CurrentCamera
(humanoid rootPart camera humanoid:() ~= .HumanoidStateType.Dead wallRayResult)
jumpType ~=
InfiniteJumpEnabled =
maxInfluenceAngleRight = .()
maxInfluenceAngleLeft = .(-)
wallNormal = wallRayResult.Normal
baseDirectionAwayFromWall = .(wallNormal.X, , wallNormal.Z).Unit
baseDirectionAwayFromWall.Magnitude <
dirToHit = (wallRayResult.Position - rootPart.Position) * .(,,)
baseDirectionAwayFromWall = -dirToHit.Unit
baseDirectionAwayFromWall.Magnitude <
baseDirectionAwayFromWall = -rootPart.CFrame.LookVector * .(, , )
baseDirectionAwayFromWall.Magnitude > baseDirectionAwayFromWall = baseDirectionAwayFromWall.Unit
baseDirectionAwayFromWall.Magnitude < baseDirectionAwayFromWall = .(,,)
baseDirectionAwayFromWall = .(baseDirectionAwayFromWall.X, , baseDirectionAwayFromWall.Z).Unit
baseDirectionAwayFromWall.Magnitude < baseDirectionAwayFromWall = .(,,)
cameraLook = camera.CFrame.LookVector
horizontalCameraLook = .(cameraLook.X, , cameraLook.Z).Unit
horizontalCameraLook.Magnitude < horizontalCameraLook = baseDirectionAwayFromWall
dot = .(baseDirectionAwayFromWall:(horizontalCameraLook), -, )
angleBetween = .(dot)
cross = baseDirectionAwayFromWall:(horizontalCameraLook)
rotationSign = -.(cross.Y)
rotationSign == angleBetween =
actualInfluenceAngle
rotationSign ==
actualInfluenceAngle = .(angleBetween, maxInfluenceAngleRight)
rotationSign == -
actualInfluenceAngle = .(angleBetween, maxInfluenceAngleLeft)
actualInfluenceAngle =
adjustmentRotation = .(, actualInfluenceAngle * rotationSign, )
initialTargetLookDirection = adjustmentRotation * baseDirectionAwayFromWall
rootPart.CFrame = .(rootPart.Position, rootPart.Position + initialTargetLookDirection)
RunService.Heartbeat:()
humanoid humanoid:() ~= .HumanoidStateType.Dead
humanoid:(.HumanoidStateType.Jumping)
downforceToggle
.(()
RunService.Heartbeat:()
rootPart rootPart.Velocity.Y >
rootPart.AssemblyLinearVelocity = .(rootPart.AssemblyLinearVelocity.X, rootPart.AssemblyLinearVelocity.Y * downforceValue, rootPart.AssemblyLinearVelocity.Z)
)
flickAngleDegrees >
originalCamCF = camera.CFrame
flickAngle = .(flickAngleDegrees)
dynamicSign = (.() > ) -
flickCF = originalCamCF * .(, flickAngle * dynamicSign, )
t = , , flickSpeed
camera.CFrame = originalCamCF:(flickCF, t)
RunService.Heartbeat:()
jumpType ~=
.()
InfiniteJumpEnabled =
()
wallRayResult = ()
wallRayResult
(wallRayResult, )
()
onButton.MouseButton1Click:(()
statusLabel.Text =
statusLabel.TextColor3 = .(, , )
wallhopToggle =
)
offButton.MouseButton1Click:(()
statusLabel.Text =
statusLabel.TextColor3 = .(, , )
wallhopToggle =
)
additionButton.MouseButton1Click:(()
additionToggle = additionToggle
additionToggle
additionalFrame
additionButton.BackgroundColor3 = .(, , )
additionalFrame = .()
additionalFrame.Name =
additionalFrame.Parent = frame
additionalFrame.BackgroundColor3 = .(, , )
additionalFrame.Size = .(, , , )
additionalFrame.Position = .(, , , )
additionalFrame.Active = ; additionalFrame.Draggable = ; additionalFrame.BorderSizePixel =
jumpButtonInAddition = .()
jumpButtonInAddition.Name = ; jumpButtonInAddition.Parent = additionalFrame
jumpButtonInAddition.BackgroundColor3 = .(, , )
jumpButtonInAddition.Size = .(, , , )
jumpButtonInAddition.Position = .(, , , )
jumpButtonInAddition.Text = ; jumpButtonInAddition.TextColor3 = .(,,)
jumpButtonInAddition.TextScaled = ; jumpButtonInAddition.Active =
jumpButtonInAddition.MouseButton1Click:(performFaceWallJump)
additionalFrame
additionButton.BackgroundColor3 = .(, , )
additionalFrame:(); additionalFrame = ; jumpButtonInAddition =
)
autoButton.MouseButton1Click:(()
desiredState = autoToggle
desiredState ==
selectedBrickColor
autoToggle =
autoButton.BackgroundColor3 = .(, , )
()
autoToggle =
autoButton.BackgroundColor3 = .(, , )
()
currentStatusText = statusLabel.Text
currentStatusColor = statusLabel.TextColor3
statusLabel.Text =
statusLabel.TextColor3 = .(,,)
.()
statusLabel.Text = currentStatusText
statusLabel.TextColor3 = currentStatusColor
autoToggle =
autoButton.BackgroundColor3 = .(, , )
()
)
autoJumpButton.MouseButton1Click:(()
autoJumpToggle = autoJumpToggle
autoJumpToggle
autoJumpButton.BackgroundColor3 = .(, , )
()
autoJumpButton.BackgroundColor3 = .(, , )
()
)
downforceButton.MouseButton1Click:(()
downforceToggle = downforceToggle
downforceToggle
downforceButton.BackgroundColor3 = .(, , )
()
downforceButton.BackgroundColor3 = .(, , )
()
)
plusButton.MouseButton1Click:(()
plusButtonToggle = plusButtonToggle
plusButtonToggle
plusButton.BackgroundColor3 = .(, , )
plusFrame
()
plusFrame = .()
plusFrame.Name = ; plusFrame.Parent = frame
plusFrame.BackgroundColor3 = .(, , )
plusFrame.Size = .(, , , ); plusFrame.Position = .(, -, , )
plusFrame.Active = ; plusFrame.Draggable = ; plusFrame.BorderSizePixel =
plusFrame.Visible =
selectButtonInPlusFrame = .()
selectButtonInPlusFrame.Name = ; selectButtonInPlusFrame.Parent = plusFrame
selectButtonInPlusFrame.BackgroundColor3 = .(, , )
selectButtonInPlusFrame.Size = .(, , , ); selectButtonInPlusFrame.Position = .(, , , )
selectButtonInPlusFrame.Text = ; selectButtonInPlusFrame.TextScaled = ; selectButtonInPlusFrame.TextColor3 = .(, , )
colorListLabelInPlusFrame = .()
colorListLabelInPlusFrame.Name = ; colorListLabelInPlusFrame.Parent = plusFrame
colorListLabelInPlusFrame.BackgroundColor3 = .(, , ); colorListLabelInPlusFrame.BackgroundTransparency =
colorListLabelInPlusFrame.Size = .(, , , ); colorListLabelInPlusFrame.Position = .(, , , )
colorListLabelInPlusFrame.Text = ; colorListLabelInPlusFrame.TextColor3 = .(, , )
colorListLabelInPlusFrame.TextScaled = ; colorListLabelInPlusFrame.BorderSizePixel = ; colorListLabelInPlusFrame.BorderColor3 = .(,,)
selectButtonInPlusFrame.MouseButton1Click:(()
selectModeActive = selectModeActive
selectModeActive
selectButtonInPlusFrame.BackgroundColor3 = .(, , )
colorListLabelInPlusFrame.Text =
()
mouseClickConnection mouseClickConnection:(); mouseClickConnection =
mouseClickConnection = mouse.Button1Down:(()
target = mouse.Target
target target:()
part = target
bColor = part.BrickColor
colorValue = part.Color
selectedBrickColor = bColor
(, selectedBrickColor.Name)
colorListLabelInPlusFrame.Text = .. bColor.Name
colorListLabelInPlusFrame.TextColor3 = colorValue
(, part.Name, , bColor.Name)
()
)
selectButtonInPlusFrame.BackgroundColor3 = .(, , )
()
mouseClickConnection mouseClickConnection:(); mouseClickConnection =
)
()
plusFrame.Visible =
plusButton.BackgroundColor3 = .(, , )
plusFrame
()
plusFrame.Visible =
selectModeActive
selectModeActive =
selectButtonInPlusFrame selectButtonInPlusFrame.BackgroundColor3 = .(, , )
mouseClickConnection mouseClickConnection:(); mouseClickConnection =
)
autoJumpConnection = RunService.Heartbeat:((deltaTime)
autoToggle
selectedBrickColor
wallhopToggle
character = player.Character
humanoid = character character:()
(humanoid humanoid:() ~= .HumanoidStateType.Dead)
wallRayResult = ()
wallRayResult wallRayResult.Instance
hitPart = wallRayResult.Instance
hitPart:() hitPart.BrickColor == selectedBrickColor
(wallRayResult, )
)
wallTouchJumpConnection = RunService.Heartbeat:(()
autoJumpToggle
character = player.Character
humanoid = character character:()
(humanoid humanoid:() ~= .HumanoidStateType.Dead)
wallRayResult = ()
wallRayResult wallRayResult.Instance
humanoid.Jump =
)
alignConnection = UserInputService.InputBegan:((input, gameProcessed)
gameProcessed
input.KeyCode == .KeyCode.LeftControl
()
)
destroyButton.MouseButton1Click:(()
jumpConnection jumpConnection:(); jumpConnection =
autoJumpConnection autoJumpConnection:(); autoJumpConnection =
wallTouchJumpConnection wallTouchJumpConnection:(); wallTouchJumpConnection =
mouseClickConnection mouseClickConnection:(); mouseClickConnection =
alignConnection alignConnection:(); alignConnection =
additionalFrame additionalFrame.Parent additionalFrame:()
plusFrame plusFrame.Parent plusFrame:()
wallhopToggle = ; autoToggle = ; autoJumpToggle = ; downforceToggle = ; plusButtonToggle = ; additionToggle = ; selectModeActive =
selectedBrickColor =
screenGui screenGui.Parent screenGui:()
additionalFrame = ; jumpButtonInAddition = ;
plusFrame = ; selectButtonInPlusFrame = ; colorListLabelInPlusFrame = ;
plusButton = ; frame = ; screenGui = ; mouseClickConnection = ; autoJumpConnection = ; wallTouchJumpConnection = ; alignConnection =
()
)
jumpConnection = UserInputService.JumpRequest:(()
wallhopToggle
wallRayResult = ()
wallRayResult
(wallRayResult, )
)
Wall Hop Auto Auto Jump Downforce Flick Speed Slider Downforce Slider Flick Angle Slider