How to integrate Ballistics FX

Before we begin, you should probably be aware that the included projectile supports any particle and sound effect to be unique based on what it hit, see the How To Add New Surface Types tutorial for more info about it.

 

This tutorial was made with the approval from the maker of Ballistics FX.
We both were getting questions about how to integrate it, so in order to make things more convenient, we agreed that it would be a good idea to have a tutorial like this.
The two packs are still separate products on their own, this tutorial simply shows how to integrate one into the other, it does not mean that other assets cannot be used.

With that said, let’s begin…

 

1. Create a new FPS Game Starter Kit project

2. Create a new Ballistics FX project

3. Locate the DefaultEngine.ini file of both projects (Config folder)

This part can be a bit tricky for newcomers, but basically what you wanna do is copy only the missing collisions, missing surfaces and missing settings from the FX DefaultEngine.ini file into the FPS DefaultEngine.ini file. Because if you simply replace one with the other it will overwrite all existing settings.

bfx_inifile

 

4. Open the FX project, let it compile shaders, once it’s done, right click on the folder and migrate it into the Content folder of the FPS project

bfx_migrate  bfx_contentfolder

 

5. Now close the FX project and open the FPS project, it should look like this now

bfx_migrationcomplete

 

Preparation

6. Open BP_WeaponBase (FPS_Game/Blueprints/Weapons/Base/) and add a new bool, call it “UseCubitProjectile” or something along those lines.
bfx_variableweapon

7. Open CubitUniProjectile (BallisticsFX/FXSpawnerBlueprints/Projectiles/) and add a new float (exposed on spawn, editable, default value 0.1) and call it “Damage”
bfx_variableprojectile

 

Implementation

8. Open BP_WeaponBase (FPS_Game/Blueprints/Weapons/Base/) and in the projectile spawn graph, for both FPS and TPS add this logic to the end of it

bfx_weaponbaseprojectilespawn
NOTE: If you can’t find this, just follow the Fire custom event on the main Event Graph inside WeaponBase, near the end you will see the 2 highlighted collapsed graphs (FPS and TPS projectile spawns), inside those swap out the class as shown in the picture above.

This is all you need to do on the weapon base, it will now give a checkbox to all weapon child classes to spawn the BallisticsFX projectile.

bfx_howtoenable

 

Projectiles modification

9. Let’s start with the easy part, open BP_ProjectileBase (FPS_Game/Blueprints/Weapons/Base/) and connect all new surfaces into the fail-safe node, this is just so that the default projectile doesn’t break when hitting any of the new surface types that have been added with the DefaultEngine.ini file

bfx_defaultprojectilefix

 

10. Now to the Ballistics FX projectile, open CubitUniProjectile (BallisticsFX/FXSpawnerBlueprints/Projectiles/), locate and modify both damage nodes to look like this

bfx_cubitprojectiledamage

bfx_cubitprojectiledamage2

What this will do is it will make the projectile deal the amount of damage that you set from weapon child classes, so that you can make snipers deal more damage, but pistols less damage, etc. The apply point damage is replacing the radial one in the first screenshot for headshots and other critical hit logic.

 

Grenade

11. Open BP_CharacterBase (FPS_Game/Blueprints/) and replace the old grenade spawn actor with the new one

bfx_grenadecharacterbase

 

12. Open Grenade_Thrown and Grenade_Launched (BallisticsFX/FXSpawnerBlueprints/Projectiles/) and lower their damage output

bfx_grenadehealth

 

13. Still on the grenade, change its collision to look like this

bfx_grenadecollision

 

Enemies

14. Not much to add here, just double check the collisions and add the new flesh material to them (on capsule and mesh components). The idea here is that you only need to change the Flesh Physical Material, and the Object type to enemy.

bfx_aicollisionandmaterialNOTE: If you plan to use the AI toolkit in this combination, double check EQS in the settings and set the enemies collision like this too.

 

15. Open both Canister blueprints (BallisticsVFX\FXProps\) and lower their damage threshold values. It would work even without this, but would require a lot more bullets.
bfx_canister

 

 

That’s it!

bfx_done