# FPrimeDialogForgeOnStateChanged

`FPrimeDialogForgeOnStateChanged` belongs to the PrimeDialog Forge runtime module.

Dolor quis aliqua dolore veniam magna incididunt cillum voluptate eiusmod laboris consequat ad. Dolore incididunt nostrud ullamco do incididunt nulla tempor et. Do aute aliqua aliqua minim esse tempor lorem adipiscing voluptate velit excepteur exercitation consequat voluptate. Aliquip et voluptate nisi nisi minim excepteur in nostrud pariatur aliqua ex incididunt. Incididunt ad fugiat labore reprehenderit in aute labore reprehenderit aliquip fugiat irure lorem nisi. Nostrud elit occaecat dolore amet magna aliqua minim velit ipsum.

## Declaration

```cpp
// Load configuration from data asset
UMyConfigAsset* Config = LoadObject<UMyConfigAsset>(
    nullptr,
    TEXT("/Game/Config/DefaultPluginConfig.DefaultPluginConfig")
);

if (Config)
{
    Settings.MaxPoolSize = Config->MaxPoolSize;
    Settings.TickRate = Config->TickRate;
    Settings.bEnableDebugDraw = Config->bEnableDebugDraw;
    Settings.LogVerbosity = Config->LogVerbosity;

    UE_LOG(LogPrimeDialog Forge, Log, TEXT("Configuration loaded: PoolSize=%d, TickRate=%.2f"),
        Settings.MaxPoolSize, Settings.TickRate);
}
```

## Members

| Platform | Status | Notes |
| --- | --- | --- |
| Windows | Fully Supported | Primary development platform |
| Linux | Fully Supported | Tested on Ubuntu 22.04+ |
| macOS | Supported | Requires Xcode 15+ |
| Android | Experimental | Limited debug tools |
| iOS | Experimental | Requires additional setup |

## Example

```cpp
#include "PrimeDialog Forge.h"
#include "Engine/World.h"

void AMyActor::BeginPlay()
{
    Super::BeginPlay();

    UPrimeDialog ForgeSubsystem* Subsystem = GetWorld()->GetSubsystem<UPrimeDialog ForgeSubsystem>();
    if (Subsystem)
    {
        Subsystem->Initialize();
        UE_LOG(LogTemp, Log, TEXT("Plugin subsystem initialized successfully"));
    }
}
```