> 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-descriptor/lifecycle-methods.md).

# Lifecycle Methods

### `UnregisterIndicator`

```cpp
UFUNCTION(BlueprintCallable, Category = "Indicator Descriptor")
void UnregisterIndicator();
```

Immediately removes this descriptor from `UIndicatorSubsystem`. Use this to destroy a manually created indicator from Blueprint or C++.

### `AutoRemoveWhenIndicatorComponentIsNull`

```cpp
bool GetAutoRemoveWhenIndicatorComponentIsNull() const;
void SetAutoRemoveWhenIndicatorComponentIsNull(bool CanAutomaticallyRemove);
bool CanAutomaticallyRemove() const;
```

When enabled, `SActorCanvas` will automatically call `UnregisterIndicator()` on the next render tick if `GetSceneComponent()` returns an invalid pointer. Useful for indicators tracking objects that can be destroyed at any time.

### Back-Pointer: `IndicatorManagerComponent`

```cpp
UIndicatorManagerComponent* GetIndicatorManagerComponent();
void SetIndicatorManagerComponent(UIndicatorManagerComponent* InManager); // called by AddIndicator()
```

The component that owns this descriptor. Set automatically by `UIndicatorManagerComponent::AddIndicator`. `UnregisterIndicator()` uses this pointer to clean up from the owning component.
