NavCompass Documentation (Public)

🧭 NavCompass Quick Start Guide

🚀 Getting Started

  1. Launch your Unreal Engine project.

  2. Go to Edit → Plugins.

  3. Search for Nav Compass Pro.

  4. Click Enable.

  5. Restart the editor when prompted.

PluginEnable

➕ Adding a Lever Actor to the "Objectives" Layer

To display an indicator on the compass, register your actor using the UNavCompassSubsystem::AddTrackedActorToLayer function.

Obj_1

Function Parameters:

Parameter

Description

LayerName

Unique name for the compass layer (e.g., "Objectives").

Actor

The actor to track with a directional indicator.

ConfigAsset

Set to DA_NC_Objectives to override the default behavior of this layer.

IndicatorClassWidget

Set to W_VerticalIndicator to define the UI widget used as the indicator.

Example Result:

Hide400

đŸŽ¯ Adding the Same Actor to an "Interaction" Layer

To show a close-range interaction indicator:

  1. After adding the actor to the "Objectives" layer,

  2. Call AddTrackedActorToLayer again with the following:

Inter1

Setting

Value

Layer Name

"InteractionLayer"

HideIconIfPlayerCloserThan

0

HideIconIfPlayerFartherThan

400

This makes the interaction indicator visible only when the player is near.

InteractionLayer

đŸ•šī¸ Interaction Behavior

BP_LeverCustom contains the hover/unhover and interaction logic.

📁 Find it at:
Plugins/NavCompassPro/Content/Demo_01/Blueprints/BP_LeverCustom

InteractHoverUnhover

🔧 NavCompassSubsystem – Core Functions

Function

Description

AddTrackedActorToLayer

Adds an actor to a compass layer. Creates the layer if it doesn't exist.

GetLayer / GetAllLayers

Retrieves a specific or all compass layers.

RemoveLayer / GlobalRemoveAllLayers

Removes one or all layers.

GlobalRemoveTrackedActorFromAllLayers

Removes a specific actor from all layers.

GlobalRemoveAllTrackedActors

Removes all tracked actors from all layers.

GlobalRemoveAllActorsWithTag

Removes actors with a specific tag.

LockOnActorGlobal / RemoveLockFromActorGlobal

Globally lock/unlock an actor.

IsActorLockedGlobal

Checks if an actor is locked in any layer.

GlobalGetLockedActors / GlobalGetAllTrackedActors

Collects all locked or tracked actors.

ClearAllLocksGlobal

Unlocks all actors in all layers.

GlobalHideAllIndicators / GlobalRevealAllIndicators

Toggle visibility of all indicators.

HideLayerByName / RevealLayerByName

Show or hide a specific layer.

RevealAllHiddenLayers

Reveals all previously hidden layers.

AreGlobalIndicatorsHidden

Checks if all indicators are currently hidden.

GetHiddenLayerNames

Returns a list of hidden layer names.

GlobalShowAllIndicatorsAndResetFilter

Shows all indicators and removes tag filters.

GlobalShowIndicatorsByTags / GlobalHideIndicatorsByTags

Show/hide based on tag filters.

GlobalShowOnlyIndicatorsByTags

Exclusively show only matching tag indicators.

GlobalShowIndicatorsInRange

Show indicators based on player distance.


📚 UNavCompassLayer Overview

A UNavCompassLayer manages directional indicator widgets for a specific group of actors. Each layer handles visibility, filtering, and widget updates.


➕ Actor Tracking

Function

Description

AddTrackedActor(...)

Adds or updates a tracked actor. Creates a widget if needed.

RemoveTrackedActor(AActor*)

Removes a tracked actor and its widget.

RemoveAllTrackedActors()

Clears all tracked actors from this layer.

RemoveAllTrackedActorsWithTag(FName)

Removes all actors with a specific tag.

GetAllTrackedActors(...)

Returns all tracked actors.

GetAllTrackedActorsWithTag(...)

Returns actors filtered by tag.

GetNumberOfTrackedActors()

Returns the total count of tracked actors.

IsActorTracked(...)

Checks if the actor is tracked in this layer.

GetIndicatorWidgetForActor(...)

Gets the associated indicator widget for an actor.


đŸ‘ī¸ Visibility Control

Function

Description

HideAllIndicatorsOnThisLayer()

Hides all indicators.

RevealAllIndicatorsOnThisLayer()

Unhides all indicators.

AreLayerIndicatorsHidden()

Returns current visibility state.

SetIndicatorVisibilityByActor(...)

Toggle visibility for a specific actor.

SetIndicatorVisibilityByWidget(...)

Toggle visibility for a specific widget.

ShowAllIndicatorsAndResetFilter()

Clears all filters and reveals indicators.

ShowMaxIndicators(int32 Max)

Shows only the closest N indicators.

ShowIndicatorsInRange(...)

Filter visibility based on distance.


đŸˇī¸ Tag Filtering

Function

Description

ShowOnlyIndicatorsWithTags(...)

Shows only matching tags, hides all others.

ShowIndicatorsByTags(...)

Shows any indicators with the specified tags.

HideIndicatorsByTags(...)

Hides indicators with matching tags.


🔐 Lock Management

Function

Description

LockOnTrackedActor(...)

Locks a specific actor (optional unlock others).

RemoveLockFromTrackedActor(...)

Unlocks a specific actor.

ClearAllLocks()

Unlocks all actors in this layer.

IsActorLocked(...)

Checks if an actor is currently locked.

GetLockedActors(...)

Returns a list of locked actors in the layer.