# How to exaggerate recoil when collision happens

Hi yall, asking for help once again.
In my project when two objects collide, to simulate the bounciness of the objects (and to make it more fun) the recoil of the objects is greatly exaggerated (say bouncing x3 back more than the force put into the collision). However I was only able to make it bounce equally as if assuming both objects are travelling at the same speed. An example is an object that is moving hits an idle object, and both bounces back the same amount. It’s not ‘realistic’ enough and I want the objects to recoil based on how much force was passed on or at the velocity the object was travelling in. And also for different angles of collision as well.

The bigger example shows an angle-specific collision, while the smaller example shows the velocity both objects are travelling at and the recoil they receive after collision.
Here is the code that makes the object always bounce back the direction of the other object:

``````local function OnCollide(o1,o2)
o1.Velocity = (o2.Position-o1.Position).Unit * 3
o2.Velocity = (o1.Position-o2.Position).Unit * 3
end
``````

Here is my attempted code of accurate passing velocity from objects:

``````local function OnCollide(o1,o2)
o1.Velocity += o2.Velocity*3
o2.Velocity += o1.Velocity*3
end
``````

I know nothing about physics laws and just simply going off my intuition on what looks right Any help is appreciated

If your objects are `BasePart`s then you could change their elasticity under CustomPhysicalProperties to make it bouncy.