AI & Navigation

Navigation in PAYDAY 3 has three parts:

Actor Purpose

NavMeshBoundsVolume

Generates the navigation mesh that AI move on.

SBZRoomVolume

Tells AI where a room is.

SBZRoomConnectorVolumes

Connects the rooms together.

Navigation generation

Use the NavMeshBoundsVolume to generate navigation for AI. This volume can be generous. Typically, a single volume covers the entire playable space with some extra margin.

You can use the Brush tools to reshape the volume, or use multiple volumes, for example when you need nav mesh to go between different locations.

Press P in the editor viewport to show the navigation. It appears as a green glow above the surfaces where navigation exists.

Nav modifier

You can use NavModifier components or volumes to change or add nav for certain areas.

Nav modifiers are used to change whether an area is navigable or not during the heist, typically on movable objects such as doors or cars so AI do not walk inside the meshes.

Use Area Class to specify what the area is replaced with, and Area Class to Replace to filter which area class gets replaced with the Area Class you set.

Use NavMesh_Default to add nav mesh, or NavMesh_Null to subtract it.

Rooms

SBZRoomVolume is the main way AI understand how to move through a heist.

Each SBZRoomVolume should encompass an entire room up to the edges of the walls, and may intersect meshes or the edges of other room volumes.

Large areas, indoors or outdoors, can be split into multiple room volumes. Each room should be about the distance at which you want cops to engage the player.

As an example, Road Rage splits the bridge into 8 room volumes that cover the entire playable space. Each room volume is one half of the road, with a scale of about 40 for the length.

For stealth, rooms are also used to determine the security level: Public, Private, or Secure.

SBZRoomConnectorVolumes

SBZRoomConnectorVolume signifies where two room volumes connect. AI use these to understand how to get from one room to the other.

Place the volume at the point where two room volumes meet, then assign each room volume to the Room A and Room B variables. Use the Gate variable to specify a door or fence in the way that cops would open.