Skip to main content

Quick Start

This gets a drone navigating your level in a few minutes. It assumes a level with some static geometry to fly around.

A drone chasing the player through a level

1. Installation

If installing from the Fab marketplace, all you need to do is to open the Epic Games launcher, go to your library and add this product to your project. Alternatively, the AI Drone comes with its own Unreal project. You can either use it directly, or migrate this project to yours — Unreal makes that a one-step operation:

In the drone project's Content Browser, right-click the Content folder, choose Migrate… and select your project's Content folder.

2. Place the Nav Manager

Drag BP_DroneNavManager into your level. There should be exactly one per level — it owns the navigation graph. Create a DataAsset of class DroneNavData and assign it to the DroneNavManager in the properties panel – this will host the generated navigation data.

3. Place one or more Nav Volumes

Drag BP_DroneNavVolume into the level and size its GenerationBounds box (via the Box Extent) to cover the airspace the drone may use; move/rotate the actor to position it. The volume fills that region with candidate nodes. It should be smaller than the level.

You can place several volumes — the manager aggregates them all into one graph. Set density per volume with GridSpacing (smaller = denser): use big, sparse volumes over open areas and smaller, denser ones near complex geometry. Different densities can abut — the graph stitches across them. There's no config asset to assign; tuning is inline on each volume.

A BP_DroneNavVolume in a level, its GenerationBounds box covering the play space

4. Check drone collision & clearance

The included BP_AIDrone is already transparent to the navigation trace channel, so out of the box there's nothing to fix here. What does matter is sizing: keep the manager's TraceRadius and the volume's NodeClearanceRadius matched to your drone's collision-sphere radius (sphere radius + ~25–30 buffer). If you build a custom pawn or resize the sphere, read Drone Collision Setup.

5. Bake the graph

Open the BakeDroneNav editor widget (in the 'Editor' folder – right-click it → Run Editor Utility Widget) and press Bake Navigation. This builds the graph from your volumes and writes it into a data asset so it loads instantly at runtime.

Right-click the BakeDroneNav widget and choose Run Editor Utility Widget

Watch the output log — the bake prints node/connection counts and warns if any nodes end up isolated.

tip

Re-bake whenever you change level geometry or volume placement. The bake reflects editor-time collision.

Large or dense levels

The bake runs in a single Blueprint pass, which has a built-in iteration limit (default 1,000,000). If the log warns that the bake may exceed it — or you see a "Runaway loop detected" error — raise the limit: Project Settings → Engine → General Settings → Maximum Loop Iteration Count (or search Project Settings for "Maximum Loop Iteration Count") and set it to 10,000,000 or higher, then re-bake. See Troubleshooting.

The BakeDroneNav widget — Bake Drone Nav and Show / Hide Nav Graph

6. Verify the graph

In the BakeDroneNav widget (or on the manager) press Show Nav Graph. You'll see the baked graph drawn in the viewport: green = connected nodes, red = isolated, blue = connections. Press Hide Nav Graph to clear it.

If you see lots of red, jump to Troubleshooting.

7. Add the drone

Drop BP_AIDrone into the level. It comes with its own AI controller (BP_AIDroneController) that runs the behavior tree, the movement component, facing, rotor audio, and banking already wired. Just assign a SkeletalMesh or StaticMesh of your choice, or use one of the included example drones.

8. (Optional) Give it a patrol route

Add a BP_PatrolPath, shape its spline, then select your BP_AIDrone and set its PatrolPath property to that path. With no target in sight, the drone patrols the spline; when it senses the player, it chases. See Patrol.

9. Play

Press Play. The drone patrols (if you set a path) and chases when it detects the player.

To watch the exact route it computes, enable DrawCalculatedPath? on the manager — see Debugging Tools.

Shortcut: copy a working setup from the example map

Instead of placing each actor from scratch, you can copy the already-configured ones out of the M_DroneNav_Test example map (it's in your project after Step 1) and paste them into your level:

  1. Manager — drop a fresh BP_DroneNavManager into your level and assign it a DroneNavData asset (one per level).
  2. Volumes — copy one or all BP_DroneNavVolume actors over, then resize/position them over your airspace and tweak GridSpacing per volume (see Step 3).
  3. Drone — copy the BP_AIDrone over (controller, movement, audio and banking come pre-wired).
  4. Patrol path — copy the BP_PatrolPath over, reshape its spline to your level, then select the drone and set its PatrolPath property to that copied path.
  5. Bake — run Bake Navigation (see Step 5), then press Play.