BounceVelocity is a custom body mover, it functions similarly to a BodyVelocity with the addition of being able to bounce/reflect on contact with another surface and custom physics/momentum
Examples
local bounceVelocity = require(6513174577)
local velocity = bounceVelocity.new(script.Parent)
velocity.Velocity = Vector3.new(20, 20, 20)
local bounceVelocity = require(6513174577)
local velocity = bounceVelocity.new(script.Parent)
velocity.LoseMomentumOvertime = true
velocity.AffectedByGravity = true
velocity.MomentumDeceleration = Vector3.new(1, 1, 1)
wait(5)
velocity.Velocity = Vector3.new(20, 20, 0)
also works with a character
local bounceVelocity = require(game.ReplicatedStorage.BounceVelocity)
local _, size = script.Parent:GetBoundingBox()
local velocity = bounceVelocity.new(script.Parent.HumanoidRootPart)
velocity.CollisionSize = size
velocity.IgnoreList = {script.Parent}
velocity.LoseMomentumOvertime = true
velocity.AffectedByGravity = true
velocity.MomentumDeceleration = Vector3.new(1, 1, 1)
wait(5)
velocity.Velocity = Vector3.new(20, 20, 0)
Installation
you can get the module here, or alternatively use require(6513174577)
in your scripts
the source code and be viewed here
the documentation can be viewed here here