Terminal Ballistics

Xor - Code Plugins - May 23, 2023

A robust, easy to use system for ballistic simulation. Includes bullet penetration, complex drag, and more.

  • Supported Platforms
  • Supported Engine Versions
    5.0 - 5.2
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.

With Terminal Ballistics, you can easily simulate bullets and projectiles in your projects, from launch to impact and beyond.

The aim of this plugin is to allow anyone to integrate complex and realistic ballistics into their project, regardless of skill level. From simple to use blueprint nodes to in depth functions, there's something for everyone, beginner or expert.

Choose from a set of built-in calibrated bullets or create your own using a simple to use data asset driven system with plenty of options to choose from.


Within ballistics, the often complex study of what happens when a projectile collides with something is called "Terminal Ballistics". As such it should come as no surprise that bullet penetration is at the forefront of this plugin. A must have

 in this era of gaming where immersion and realism are the name of the game, bullet penetration is not always done well and can be difficult to pull off. With the goal of making it both realistic and easy to use, Terminal Ballistics takes a material

 science based approach, using the unique material properties of each surface to determine the likelihood of penetration, material failure, and energy loss. Using this system, projectiles can have complex collisions, penetrations, and ricochets with actors, meshes, and anything that has collision, with little setup required. This means all you have to do is assign a physical material to your mesh and call it a day. No number crunching or arbitrary bullet resistance properties required.


What comes up, must come down

During flight, the forces experienced by each projectile are accurately simulated to a customizable degree of complexity, from basic drag calculations, to the inclusion of wind forces, all the way up to complex 3D drag and wind simulation taking into account the temperature, humidity, and even air pressure of your project's environment.

The aerodynamic performance of each bullet is based off of real world data, and even the smallest details matter.

Simulate hundreds of bullets at a time

With a unique multithreaded system spawning zero actors or components, you don't need to worry about simulating thousands of actors at once, spawning components or actors, replicating them, and destroying them. All of that is taken care of for you, with minimal impact on the game thread, and none of the overhead that comes with the actor/component based approach for projectiles.

In fact, if you were so inclined you could even use this system to simulate individual pieces of grenade shrapnel for those situations where you really want to pepper the environment with deadly shards of metal.

Do it your way

With a substantial number of settings to play around with, you can customize this plugin in a multitude of ways. From the aforementioned drag complexities, to the tick rate of the simulation, lifetime of projectiles, material properties, collision channel and more, you are bound to find just the right configuration for your project.

Links: Wiki | Example Project

Technical Details


  •  In-flight projectile simulation and drag computation with customizable levels of complexity
  •  Per-surface bullet penetration and ricochet calculations
  •  Multi-threaded simulation framework, removing almost all work from the game thread
  • None of the overhead that comes with actors or components
  • Blueprint exposure of most functionality
  • Simple to use out of the box
  • Incorporates mathematics from a variety of fields including material science, ballistics, aerodynamics, fluid dynamics, and impact mechanics
  • Written in C++ with performance in mind
  • Data-Driven bullet/projectiles and materials
  • Fully customizable bullets and projectiles
  • Advanced versions of many core functions

Code Modules:

  • TerminalBallistics (Runtime)

Number of Blueprints: 0

Number of C++ Classes: 13

Network Replicated: Yes

Supported Development Platforms: Win64, Win32

Supported Target Build Platforms: Win64, Win32

Documentation: https://github.com/ErikHedberg/Terminal-Ballistics-Example-Project/wiki

Example Project: https://github.com/ErikHedberg/Terminal-Ballistics-Example-Project/wiki/Example-Project-Links