Getting Started

Installing The Plugin

The first thing you will need to do when setting up your project is to download the plugin from the Fab Marketplace or via Git (Not Currently Available). Gunsmith only supports Unreal versions 5.6 and onwards so make sure that your engine version matches.

Note

Unreal 5.5 can be targeted if you are able to edit source. Add the following to NetworkPredictionWorldManager.h:

const FFixedTickState& GetFixedTickState() const { return FixedTickState; }

If downloading via Fab, add the plugin to your project via the Epic Games Launcher. Otherwise, copy the plugin to your projects Plugin folder and regenerate your project files.

Finally, enable the Gunsmith plugin from your Unreal Editor via the Edit->Plugins menu. Alternatively you can manually edit the projects UProject file.

YourProject.uproject
"Plugins":
[
  {
    "Name": "Gunsmith",
    "Enabled": true
  }
]

Setting Up Collision Layers

We also need to add a trace channel and preset for the rollback collision to use. As primitives will be moving around at a different rate to the simulation during rollback (sometimes many moves per frame), we need to ensure that the hit validation trace is not going to hit any unwanted simulation primitive.

In the editor, go to Edit->Project Settings->Collision and create a new Trace Channel. Name this ProjectileTrace and set it to Block by default as it is the trace channel that we will set all projectiles to use by default.

Caution

You will need to make sure that any collision presets that should not be hit by projectiles like triggers set this channel to ignore. If you would rather be safe, set ProjectileTrace to ignore by default and ensure all visible presets have ProjectileTrace set to block.

Now we need to make a collision preset in the section below. Create a new preset and call it ProjectileTarget. This is the preset that we will give to the rollback primitives. Set all trace types to Ignore except for the new ProjectileTrace layer which can be set to Block. This should also be QueryOnly and the ObjectType can be set to Pawn for now.

A projectile collision preset

Once these have been set up you can set up the Default Projectile Collision Channel in the Project Settings->Gunsmith Settings. This should be set to your new ProjectileTrace channel but can be overridden per projectile later if needed.