> For the complete documentation index, see [llms.txt](https://dante-3.gitbook.io/dante-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dante-3.gitbook.io/dante-docs/indicator-system-plugin/indicator-subsystem/common-patterns.md).

# Common Patterns

### Checking if a world actor has an indicator

```cpp
if (IndicatorSub->IsIndicatorActiveForActor(EnemyActor))
{
    // Already tracked
}
```

### Temporarily hiding all indicators

```cpp
// Disable all active descriptors
for (const TPair<AActor*, UIndicatorDescriptor*>& Pair : IndicatorSub->GetRegisteredIndicatorsMap())
{
    Pair.Value->SetDesiredVisibility(false);
}
```

### Removing a specific actor's indicator programmatically

```cpp
// Remove from the subsystem (stops rendering)
IndicatorSub->RemoveIndicatorForActor(TargetActor);

// If you want to fully clean up and also remove from the component:
if (UIndicatorManagerComponent* IMC = UIndicatorManagerComponent::GetComponent(TargetActor))
{
    UIndicatorDescriptor* Desc = IndicatorSub->FindIndicatorDescriptorByActor(TargetActor);
    if (Desc) IMC->RemoveIndicator(Desc);
}
IndicatorSub->RemoveIndicatorForActor(TargetActor);
```

### Iterating all active indicators (C++)

```cpp
for (const TPair<AActor*, UIndicatorDescriptor*>& Pair : IndicatorSub->GetRegisteredIndicatorsMap())
{
    AActor* Actor = Pair.Key;
    UIndicatorDescriptor* Desc = Pair.Value;
    // ...
}
```

***
