Run it
Copy the script and paste it into your executor.
horizontalPlaneMask = .(, , )
verticalOffset = .(, , )
(inputVelocity)
horizontalVelocity = inputVelocity * horizontalPlaneMask
speed = horizontalVelocity.Magnitude
speed >
horizontalVelocity = / speed * horizontalVelocity
verticalOffset + horizontalVelocity
UserInputService = :()
Workspace = :()
Players = :()
RunService = :()
UserInputService = :()
GuiService = :()
StarterGui = :()
PostSimulation = RunService.PostSimulation
PreRender = RunService.PreRender
Heartbeat = RunService.Heartbeat
LocalPlayer = Players.LocalPlayer
Mouse = LocalPlayer:()
random = .random
Instance_new = .new
Cframe_new = .new
Vector3_New = .new
TouchEnabled = UserInputService.TouchEnabled
IsFlagFalse =
IsFlagTrue =
MiscValue =
Threshold =
SomeNilValue =
character =
someTable = {}
someCounter =
anotherTable = {}
YetAnotherTable = {}
playerCharacter = LocalPlayer.Character
playerCharacter
playerCharacter = LocalPlayer.Character:().Position
guiElements = {}
isForwardPressed =
isLeftPressed =
isBackPressed =
isRightPressed =
walkspeed =
jumppower =
gravity = -
jumpHeight =
groundY =
groundCheckCounter =
jumpThreshold =
groundOffset =
minFallY = -
groundClampY = -
mouseSensitivity = .(, )
zoomSensitivity =
zoomMin =
zoomMax =
zoomCurrent =
isRightMouseDown =
touchInput =
rightMouseStartPos =
camera =
viewAngles = .(, )
zoomDistance =
cameraObject =
isTouching =
isJumping =
LocalPlayer.Character
character = LocalPlayer.Character
()
resetEvent = .(, LocalPlayer)
resetEvent.Event:(()
i, v (someTable)
v:()
guiElements.ScreenGui_1
guiElements.ScreenGui_1:()
fhatholder
fhatholder:()
replicatesignal IsFlagTrue
(LocalPlayer.ConnectDiedSignalBackend)
MiscValue
MiscValue.CameraType = .CameraType.Custom
resetEvent:()
)
StarterGui:(, resetEvent)
partFolder = (, Workspace)
partFolder.Name = (, )
mainPart = (, partFolder)
mainPart.Size = (, , )
mainPart.Transparency =
mainPart.Anchored =
mainPart.Position = character:().Position
mainPart.CanCollide =
verticalVelocity =
currentPosition = mainPart.Position
rayParams = RaycastParams.()
rayParams.FilterType = .RaycastFilterType.Blacklist
rayParams.FilterDescendantsInstances = {
character,
fhatfolder
}
rayParams.CollisionGroup =
mainPart.Position = currentPosition
()
mainPart
basePos = mainPart.CFrame.Position + (, -, )
MiscValue.CFrame = .(basePos - (.(, .(viewAngles.X), ) * .(.(viewAngles.Y), , )).LookVector * zoomDistance, basePos)
()
MiscValue.CameraType ~= .CameraType.Scriptable
MiscValue.CameraType = .CameraType.Scriptable
()
focusedBox = UserInputService:()
focusedBox ==
focusedBox = GuiService:()
focusedBox =
focusedBox
UserInputService.InputBegan:((inputObject)
()
inputObject.UserInputType == .UserInputType.MouseButton2
isTouching =
cameraObject = inputObject.Position
)
UserInputService.InputChanged:((inputObject)
()
isTouching inputObject.UserInputType == .UserInputType.MouseMovement
Delta = inputObject.Position - cameraObject
viewAngles = viewAngles + .(-Delta.X, -Delta.Y) * mouseSensitivity
viewAngles = .(viewAngles.X % , .(viewAngles.Y, -, ))
cameraObject = inputObject.Position
)
UserInputService.InputEnded:((inputObject)
inputObject.UserInputType == .UserInputType.MouseButton2
isTouching =
)
UserInputService.InputChanged:((inputObject)
()
inputObject.UserInputType == .UserInputType.MouseWheel
zoomDistance = .(zoomDistance - inputObject.Position.Z * zoomSensitivity, zoomMin, zoomMax)
)
UserInputService.TouchStarted:((touchInputObject, gameProcessed)
gameProcessed () touchInputObject.UserInputState ~= .UserInputState.Begin
touchInputObject.UserInputType == .UserInputType.Touch
touchInput = touchInputObject
)
UserInputService.TouchMoved:((touchInputObject, gameProcessed)
gameProcessed ()
touchInputObject == touchInput touchInputObject.UserInputType == .UserInputType.Touch
delta = touchInputObject.Delta
viewAngles = viewAngles + .(-delta.X, -delta.Y) * mouseSensitivity
viewAngles = .(viewAngles.X % , .(viewAngles.Y, -, ))
)
UserInputService.TouchEnded:((touchInputObject)
touchInputObject == touchInput
touchInput =
)
()
currentCamera = Workspace.CurrentCamera
currentCamera
MiscValue = currentCamera
()
.(someTable, MiscValue:():(setScriptableCamera))
.(someTable, RunService.RenderStepped:(updateCameraView))
(hatAccessory)
hatAccessory:()
hatPart = hatAccessory.Handle hatAccessory:()
hatAccessory hatPart
hatIndex = someCounter
hatPart.AssemblyLinearVelocity = (hatPart.AssemblyLinearVelocity)
.(someTable, Heartbeat:(()
hatAccessory hatPart
connection:()
hatPart.ReceiveAge ==
hatPart.AssemblyLinearVelocity = (hatPart.AssemblyLinearVelocity)
hatPart.AssemblyAngularVelocity = (, , )
YetAnotherTable[#YetAnotherTable - hatIndex]
hatPart.CFrame = YetAnotherTable[#YetAnotherTable - hatIndex].CFrame + (, , .(.() * ) * )
hatPart.CFrame = mainPart.CFrame + (, , .(.() * ) * )
))
(newCharacter)
character = newCharacter
character
someCounter =
anotherTable = {}
rootPart = character:(, )
isTrackingCharacter = character
targetCFrame =
isTrackingCharacter rootPart
isTrackingCharacter =
rootPart.AssemblyAngularVelocity = (, , )
rootPart.AssemblyLinearVelocity = (, , )
targetCFrame = mainPart.CFrame - (, , )
.(()
isTrackingCharacter
rootPart.AssemblyAngularVelocity = (, , )
rootPart.AssemblyLinearVelocity = (, , )
rootPart.CFrame = targetCFrame
.()
)
IsFlagFalse =
replicatesignal IsFlagTrue
(LocalPlayer.ConnectDiedSignalBackend)
.(Players.RespawnTime + )
(character:().ServerBreakJoints)
.()
character:():()
i, v (character:())
v:()
.(anotherTable, v)
i, v (anotherTable)
someCounter = i -
(v)
isTrackingCharacter =
IsFlagFalse =
isTrackingCharacter = replicatesignal
isTrackingCharacter
isTrackingCharacter = IsFlagTrue
isTrackingCharacter
isTrackingCharacter =
targetCFrame = newCharacter.ChildRemoved
targetCFrame = targetCFrame:((r0_4)
r0_4:()
isTrackingCharacter:()
(LocalPlayer.ConnectDiedSignalBackend)
)
isTrackingCharacter = targetCFrame
.(()
.(someTable, PreRender:(()
LocalPlayer.SimulationRadius =
))
.(someTable, PostSimulation:(()
mainPart.CFrame = (mainPart.Position)
(playerCharacter - mainPart.Position).magnitude >
newPart = .(, partFolder)
newPart.Anchored =
newPart.Size = .(, , )
newPart.CFrame = .(playerCharacter, mainPart.Position)
newPart.CanCollide =
newPart.Transparency =
playerCharacter = mainPart.Position
.(YetAnotherTable, newPart)
YetAnotherTable[#YetAnotherTable - ]
YetAnotherTable[#YetAnotherTable - ]:()
.(YetAnotherTable, #YetAnotherTable - )
))
)
.(someTable, :().Heartbeat:((dt)
raycastResult = :(mainPart.Position, .(, -, ), rayParams)
isOnGround = raycastResult ~=
isOnGround
.(mainPart.Position.Y - groundY) <
groundCheckCounter = groundCheckCounter +
jumpThreshold <= groundCheckCounter
isOnGround =
groundCheckCounter =
groundY = mainPart.Position.Y
raycastResult mainPart.Position.Y <= minFallY
raycastResult = {
Position = .(mainPart.Position.X, groundClampY, MainPart.Position.Z),
}
isOnGround =
lookVector = MiscValue.CFrame.LookVector
rightVector = MiscValue.CFrame.RightVector
moveForwardVector = .(lookVector.X, , lookVector.Z).Unit
moveRightVector = .(rightVector.X, , rightVector.Z).Unit
movementDirection = .zero
UserInputService:(.KeyCode.W) isForwardPressed
movementDirection = movementDirection + moveForwardVector
UserInputService:(.KeyCode.S) isBackPressed
movementDirection = movementDirection - moveForwardVector
UserInputService:(.KeyCode.D) isRightPressed
movementDirection = movementDirection + moveRightVector
UserInputService:(.KeyCode.A) isLeftPressed
movementDirection = movementDirection - moveRightVector
movementDirection.Magnitude >
movementDirection = movementDirection.Unit
speed = walkspeed
isOnGround
speed = speed *
UserInputService:(.KeyCode.Space) isOnGround
verticalVelocity = jumppower
isOnGround =
groundCheckCounter =
verticalVelocity = verticalVelocity + gravity * dt
currentPosition = currentPosition + .(, verticalVelocity * dt, )
isOnGround raycastResult verticalVelocity <=
minY = raycastResult.Position.Y + groundOffset
currentPosition.Y < minY
currentPosition = .(currentPosition.X, minY, currentPosition.Z)
verticalVelocity =
currentPosition = currentPosition + movementDirection * speed * dt
mainPart.Position = currentPosition
))
.(()
TouchEnabled
guiElements.ScreenGui_1 = .(, :().LocalPlayer:())
guiElements.ScreenGui_1.SafeAreaCompatibility = .SafeAreaCompatibility.None
guiElements.ScreenGui_1.IgnoreGuiInset =
guiElements.ScreenGui_1.ScreenInsets = .ScreenInsets.None
guiElements.ScreenGui_1.ZIndexBehavior = .ZIndexBehavior.Sibling
guiElements.ScreenGui_1.ResetOnSpawn =
guiElements.Frame_2 = .(, guiElements.ScreenGui_1)
guiElements.Frame_2.BorderSizePixel =
guiElements.Frame_2.BackgroundColor3 = .(, , )
guiElements.Frame_2.Size = .(, , , )
guiElements.Frame_2.BackgroundTransparency =
guiElements.W_3 = .(, guiElements.Frame_2)
guiElements.W_3.TextWrapped =
guiElements.W_3.BorderSizePixel =
guiElements.W_3.TextScaled =
guiElements.W_3.BackgroundColor3 = .(, , )
guiElements.W_3.BackgroundTransparency =
guiElements.W_3.Size = .(, , , )
guiElements.W_3.Text =
guiElements.W_3.Name =
guiElements.W_3.Position = .(, , , )
guiElements.UICorner_4 = .(, guiElements.W_3)
guiElements.UICorner_4.CornerRadius = .(, )
guiElements.A_5 = .(, guiElements.Frame_2)
guiElements.A_5.TextWrapped =
guiElements.A_5.BorderSizePixel =
guiElements.A_5.TextScaled =
guiElements.A_5.BackgroundColor3 = .(, , )
guiElements.A_5.BackgroundTransparency =
guiElements.A_5.Size = .(, , , )
guiElements.A_5.Text =
guiElements.A_5.Name =
guiElements.A_5.Position = .(, , , )
guiElements.UICorner_6 = .(, guiElements.A_5)
guiElements.UICorner_6.CornerRadius = .(, )
guiElements.D_7 = .(, guiElements.Frame_2)
guiElements.D_7.TextWrapped =
guiElements.D_7.BorderSizePixel =
guiElements.D_7.TextScaled =
guiElements.D_7.BackgroundColor3 = .(, , )
guiElements.D_7.BackgroundTransparency =
guiElements.D_7.Size = .(, , , )
guiElements.D_7.Text =
guiElements.D_7.Name =
guiElements.D_7.Position = .(, , , )
guiElements.UICorner_8 = .(, guiElements.D_7)
guiElements.UICorner_8.CornerRadius = .(, )
guiElements.S_9 = .(, guiElements.Frame_2)
guiElements.S_9.TextWrapped =
guiElements.S_9.BorderSizePixel =
guiElements.S_9.TextScaled =
guiElements.S_9.BackgroundColor3 = .(, , )
guiElements.S_9.BackgroundTransparency =
guiElements.S_9.Size = .(, , , )
guiElements.S_9.Text =
guiElements.S_9.Name =
guiElements.S_9.Position = .(, , , )
guiElements.UICorner_a = .(, guiElements.S_9)
guiElements.UICorner_a.CornerRadius = .(, )
guiElements.Jump_b = .(, guiElements.Frame_2)
guiElements.Jump_b.TextWrapped =
guiElements.Jump_b.BorderSizePixel =
guiElements.Jump_b.TextScaled =
guiElements.Jump_b.BackgroundColor3 = .(, , )
guiElements.Jump_b.BackgroundTransparency =
guiElements.Jump_b.Size = .(, , , )
guiElements.Jump_b.Text =
guiElements.Jump_b.Name =
guiElements.Jump_b.Position = .(, , , )
guiElements.UICorner_c = .(, guiElements.Jump_b)
guiElements.UICorner_c.CornerRadius = .(, )
guiElements.UIAspectRatioConstraint_d = .(, guiElements.Frame_2)
guiElements.UIAspectRatioConstraint_d.AspectRatio =
guiElements.W_3.MouseButton1Down:(()
isForwardPressed =
)
guiElements.W_3.MouseButton1Up:(()
isForwardPressed =
)
guiElements.A_5.MouseButton1Down:(()
isLeftPressed =
)
guiElements.A_5.MouseButton1Up:(()
isLeftPressed =
)
guiElements.D_7.MouseButton1Down:(()
isRightPressed =
)
guiElements.D_7.MouseButton1Up:(()
isRightPressed =
)
guiElements.S_9.MouseButton1Down:(()
isBackPressed =
)
guiElements.S_9.MouseButton1Up:(()
isBackPressed =
)
guiElements.Jump_b.MouseButton1Click:(()
verticalVelocity = jumppower
)
guiElements.ScreenGui_1,
)
()
(character)
.(someTable, LocalPlayer.CharacterAdded:(onCharacterAdded))
StarterGui:(, {
Title = ;
Text = ;
Duration = ;
})so basically, its just impatricks hat snake script but i decompiled it so u can change anything about it from the speed to the height (zenith decompiler was used for this) DO NOT ZOOM OUT OR IN (it breaks ur camera)

Universal