Run it
Copy the script and paste it into your executor.
(.ZeroGBounceController) == .ZeroGBounceController.Unload
(()
.ZeroGBounceController.()
)
Players = :()
UserInputService = :()
RunService = :()
Camera = .CurrentCamera
player = Players.LocalPlayer
player
SIZE =
SPEED_MULTIPLIER =
BOUNCE_FORCE =
CHAOS_SPIN =
GRAV =
ATTRACTION_FORCE =
ATTRACTION_INTERVAL =
Controller = {}
Controller.Enabled =
Controller.Connections = {}
Controller.CharConnections = {}
Controller.OriginalGravity = .Gravity
Controller.OriginalCameraSubject = Camera.CameraSubject
Controller.OriginalCollisions = {}
.ZeroGBounceController = Controller
Controller.()
Controller.Enabled
Controller.Enabled =
_,c (Controller.Connections)
(() c:() )
_,c (Controller.CharConnections)
(() c:() )
Controller.Connections = {}
Controller.CharConnections = {}
.Gravity = Controller.OriginalGravity
(()
Camera.CameraSubject = Controller.OriginalCameraSubject
)
part,state (Controller.OriginalCollisions)
part part.Parent
(()
part.CanCollide = state
)
Controller.OriginalCollisions = {}
player.Character
hum = player.Character:()
hum
(()
hum.PlatformStand =
)
.ZeroGBounceController =
(character)
Controller.Enabled
humanoid = character:()
ball = character:()
.Gravity = GRAV
_,v (character:())
v:()
Controller.OriginalCollisions[v] ==
Controller.OriginalCollisions[v] = v.CanCollide
v.CanCollide =
ball.Shape = .PartType.Ball
ball.Size = .(SIZE,SIZE,SIZE)
ball.CanCollide =
humanoid.PlatformStand =
ball.CustomPhysicalProperties = PhysicalProperties.(,,,,)
ball.Velocity = .(
.(-,),
.(-,),
.(-,)
)
Camera.CameraSubject = ball
Controller.CharConnections.StateChanged
Controller.CharConnections.StateChanged:()
Controller.CharConnections.StateChanged =
humanoid.StateChanged:(()
Controller.Enabled
humanoid.PlatformStand =
)
lastAttract =
Controller.Connections.Render
Controller.Connections.Render:()
Controller.Connections.Render =
RunService.RenderStepped:((delta)
Controller.Enabled
UserInputService:()
UserInputService:(.KeyCode.W)
ball.Velocity += Camera.CFrame.LookVector * SPEED_MULTIPLIER * delta
UserInputService:(.KeyCode.S)
ball.Velocity -= Camera.CFrame.LookVector * SPEED_MULTIPLIER * delta
UserInputService:(.KeyCode.A)
ball.Velocity -= Camera.CFrame.RightVector * SPEED_MULTIPLIER * delta
UserInputService:(.KeyCode.D)
ball.Velocity += Camera.CFrame.RightVector * SPEED_MULTIPLIER * delta
ball.RotVelocity += .(
.(-CHAOS_SPIN,CHAOS_SPIN),
.(-CHAOS_SPIN,CHAOS_SPIN),
.(-CHAOS_SPIN,CHAOS_SPIN)
) * delta
lastAttract += delta
lastAttract >= ATTRACTION_INTERVAL
lastAttract =
nearestRoot =
nearestDist = .huge
_,other (Players:())
other ~= player other.Character
root = other.Character:()
hum = other.Character:()
root hum hum.Health >
dist = (root.Position - ball.Position).Magnitude
dist < nearestDist
nearestDist = dist
nearestRoot = root
nearestRoot
direction = (nearestRoot.Position - ball.Position).Unit
ball.Velocity += direction * ATTRACTION_FORCE
)
Controller.Connections.Jump
Controller.Connections.Jump:()
Controller.Connections.Jump =
UserInputService.JumpRequest:(()
Controller.Enabled
ball.Velocity += Camera.CFrame.LookVector * BOUNCE_FORCE
)
Controller.CharConnections.CharacterAdded =
player.CharacterAdded:((char)
.()
(char)
)
player.Character
(player.Character)
Controller.Connections.UnloadKey =
UserInputService.InputBegan:((input,gpe)
gpe
input.KeyCode == .KeyCode.M
Controller.()
)Makes you bounce around like a ball, also has settings to make you get pulled to someone, unload key M. Doesn't fully unload and leaves you with a permanently higher height, similar to hipheight, but it can't be removed.

Universal