# Ballistic Surfaces - Ricochet

**Ricochet** feature is extremely similar to the penetration feature. First, let's disable the penetration, but enable ricochet on our cube object.

![Ricochet settings enabled.](https://2062757973-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MaImivuu1fX5yKbO7hR%2F-MaKhBg6JrJQi1pVPSfs%2F-MaKhWDOkFWepxKXimbK%2Fimage.png?alt=media\&token=bb2b1275-e901-4d94-b75b-aca12be72d4e)

The same principles apply as the penetration settings. The ricocheting bullet will lose it's kinetic energy based on the **Energy Consumption**. However, unlike penetration, the bullet will lose the energy only once, when it hits the object. So object's thickness play no role in here. Now, let's move our cube in X axis by 2 units, so it's position will be 2,2,10. Then rotate the cube on Y axis by 45 degrees so it's rotation will be 0,45,0. If you take a shot now, you will see the bullet ricocheting off the surface.

![Bullet ray ricocheting off the surface of the cube.](https://2062757973-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MaImivuu1fX5yKbO7hR%2F-MaKhBg6JrJQi1pVPSfs%2F-MaKiioFqjhkTGjL6RX_%2Fimage.png?alt=media\&token=6bd270f5-b4a3-4c72-91c0-9bda5ed5dc33)

By changing **Deflection Angles** to a range between **10-20**, we will get randomly deflecting bullet rays after ricocheting off the surface.

![Rays ricocheting off the surface, some of them even hit the ground.](https://2062757973-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MaImivuu1fX5yKbO7hR%2F-MaKhBg6JrJQi1pVPSfs%2F-MaKj-0WcZC9wiQtI-ln%2Fimage.png?alt=media\&token=b20cb9c0-715b-4ddb-93a6-e0f37b307c5e)

By playing with the values, you can create a penetrable/ricochet-able surface of your liking. You can take a look at the presets included to learn how to simulate some common surfaces.

{% hint style="warning" %}
If you want to use both penetration and ricochet at the same time on the same object, you should know that the system always favors penetration over ricochet. So a bullet ray hitting a surface, will first check if the object will have **BallisticSurface.cs** script on it. If so, it will **FIRST** check whether the penetration is enabled or not, and whether the current energy values allow penetrating the object. If that fails, **ONLY THEN** the ricochet settings are checked.
{% endhint %}
