Reference for Blueprint assets under Content/ObjectiveWaypointSystem/. Property names, enum values, and class defaults were read from the FAB project (v1.8) via Unreal MCP.
flowchart TB
Character["ThirdPersonCharacter<br/>ObjectiveActor · ObjectiveLocation<br/>FindPathToActor() · FindPathToLocation()"]
Component["BP_WaypointComponent<br/>NavFilterClass · TickTime · NavMode ENavMode · MaxNumberOfMeshes · MeshDistance · bEnableWaypoint<br/>FindPathToActor() · FindPathToLocation() · SetEnableWaypoint() · GetGoalActor()"]
WaypointActor["BP_WaypointActor<br/>GoalLocation Vector · UpdateLocationAndRotation()"]
ObjectiveActor["BP_ObjectiveActor<br/>SphereComponent · MaterialBillboard"]
Interface["«Interface» BPI_Waypoint<br/>AddWaypointSplineComponent() · RemoveSplineMeshes()"]
Character -->|owns| Component
Character -->|targets| ObjectiveActor
Character -.->|implements| Interface
Component -->|spawns Spawn mode| WaypointActor
Component -->|spline hooks| Interface
Stored on BP_WaypointComponent → Nav Mode. Controls how the path is drawn after a successful nav query.
| Value | Behaviour |
|---|
| Spawn | Spawn BP_WaypointActor instances along the path at Mesh Distance intervals (up to Max Number Of Meshes). |
| SplineMesh | Build SplineMesh segments along the path using the pawn’s Spline Component and BPI_Waypoint hooks. |
Default: Spawn.
Actor component — add to your player Character or Pawn. Parent class: Actor Component.
| Component | Variable | Purpose |
|---|
| Spline Component | SplineComp | Internal spline used for path sampling and spline mesh mode |
| Property | Type | Default | Description |
|---|
| Nav Filter Class | Navigation Query Filter | None | Restrict pathfinding to selected nav class |
| Tick Time | Float | 0 | Auto re-path every N seconds when > 0 |
| Nav Mode | ENavMode | Spawn | Spawn markers vs spline mesh trail |
| Max Number Of Meshes | Integer | 60 | Spawn mode cap (0 = uncapped, not recommended) |
| Mesh Distance | Float | 250 | World units between spawned markers |
| Draw Debug Strings | Boolean | false | Debug labels on spawned actors |
| Enable Waypoint | Boolean | true | Master visibility / processing toggle |
| Goal Actor | Actor | — | Runtime target set during pathfinding |
| Goal Location | Vector | — | Runtime target location |
| Spawned Meshes | Array of BP_WaypointActor | — | Active marker pool |
| Added Spline Mesh Components | Array of Spline Mesh | — | Active spline segments |
| Event / function | Parameters | Description |
|---|
| Find Path to Actor | Actor, Spline Component | Start pathfinding to a world actor. Stores Goal Actor and routes through Internal_StartPathFinding. |
| Find Path to Location | Vector location, Spline Component | Start pathfinding to a world position. Clears actor goal and uses Goal Location. |
| Set Enable Waypoint | Boolean | Enable or disable waypoint rendering and updates |
| Is Waypoint Enabled | — (returns Boolean) | Read Enable Waypoint state |
| Get Goal Actor | — (returns Actor) | Returns current Goal Actor reference |
| Function | Purpose |
|---|
| Internal_StartPathFinding | Branch: valid Goal Actor → actor path, else → location path |
| Internal_StartFindingPathToActor | Query nav path to actor; start timer if Tick Time > 0 |
| Internal_StartFindingPathToLocation | Query nav path to vector location |
| Internal_PathFinding_SpawnMode | Spawn / reposition BP_WaypointActor along path points |
| Internal_PathFinding_SplineMode | Create or update spline mesh segments |
| Internal_TryStartTimer | Schedule repeating path refresh from Tick Time |
| Internal_RemoveSplineMeshes | Clean up spline mesh components |
| GetSpawnLocAndRot | Compute spawn transform along nav segment |
| ClearOutCachedActors | Destroy pooled waypoint actors |
| UpdateLocationOfCachedActors | Move existing markers when target shifts |
| RefreshCachedActors | Reconcile spawn pool size with path length |
Spawned marker actor for Spawn navigation mode. Uses SM_Waypoint_Arrow and M_Waypoint by default. Rotates to match surface normal (v1.8).
| Property | Type | Purpose |
|---|
| Goal Location | Vector | Target point this marker indicates |
| Function | Purpose |
|---|
| Update Location And Rotation | Snap marker to path point with surface-aligned rotation |
Placed in the level as a visible quest objective. Used by the demo ThirdPersonCharacter when no explicit Objective Actor is set.
| Component | Purpose |
|---|
| Sphere Component | Overlap / selection volume |
| Material Billboard | T_Objective billboard sprite |
| Scene | Root transform |
Blueprint interface implemented by pawns that use SplineMesh navigation mode.
| Function | Description |
|---|
| Add Waypoint Spline Component | Register a spline mesh segment on the pawn |
| Remove Spline Meshes | Clear all spline mesh segments from the pawn |
ThirdPersonCharacter implements this interface and forwards calls from BP_WaypointComponent.
Reference character under ThirdPersonBP/Blueprints/. Not required for migration — study it for wiring patterns.
| Variable | Purpose |
|---|
| Objective Actor | Current quest target; falls back to first BP_ObjectiveActor in level |
| Objective Location | World location for location-based pathfinding (minimap) |
| Player HUD | Reference to WBP_PlayerHUD |
| bIsFindingPathToActor | Tracks whether last query targeted an actor vs location |
| Function | Description |
|---|
| Find Path to Actor | Validates objective, sets bIsFindingPathToActor, calls component Find Path to Actor, toggles HUD objective visibility |
| Find Path to Location | Uses Objective Location, calls component Find Path to Location, opens tick gate for continuous updates |
| Position Objective Marker | Projects objective to screen space for HUD |
| Add New Spline Component / Add Waypoint Spline Component | BPI_Waypoint implementation |
| Finish Pathfinding | Cleanup when path completes or is cancelled |
| Function | Description |
|---|
| Toggle Objective Visibility | Show/hide objective billboard on HUD |
| Get Minimap Widget | Returns embedded WBP_MinimapWidget |
| Function | Description |
|---|
| Minimap Clicked / On Minimap Clicked | Convert click to world location → trigger location pathfinding |
| Minimap Location To World Location | UV → world coordinate conversion |
| Update Map Material | Refresh render target material |
| Item | Location |
|---|
| Content root | Content/ObjectiveWaypointSystem/ |
| Demo map | Map/Overview |
| Migrate target | Blueprints/BP_WaypointComponent |
| Waypoint mesh | Meshes/SM_Waypoint_Arrow |
| Waypoint material | Materials/M_Waypoint |
| Nav mode enum | Blueprints/Misc/ENavMode |
| Example pawn | ThirdPersonBP/Blueprints/ThirdPersonCharacter |
Quick tuning starting points for BP_WaypointComponent class defaults:
| Preset | Settings | Best for |
|---|
| Dense trail | Mesh Distance 150, Max Number Of Meshes 80 | Short indoor levels |
| Performance | Mesh Distance 400, Max Number Of Meshes 30 | Open worlds |
| Auto refresh | Tick Time 0.5 | Moving targets |
| Spline highlight | Nav Mode SplineMesh + pawn implements BPI_Waypoint | Continuous ground trail |
| Debug layout | Draw Debug Strings true | Tuning spawn spacing |