# FPrimeDialogForgeSaveData

`FPrimeDialogForgeSaveData` belongs to the PrimeDialog Forge runtime module.

Dolor occaecat et enim esse elit excepteur nulla aliquip excepteur nisi amet sint ex do. Nulla esse lorem dolore consectetur quis consequat ea. Ad amet laboris consectetur veniam elit aute commodo amet ullamco elit nulla voluptate elit voluptate. Incididunt reprehenderit consectetur minim adipiscing adipiscing veniam commodo tempor.

## Declaration

```cpp
// Declare delegates for event-driven communication
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnStateChanged, EMyState, NewState);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnProgressUpdated, float, Progress, FString, Message);

UPROPERTY(BlueprintAssignable, Category = "Events")
FOnStateChanged OnStateChanged;

UPROPERTY(BlueprintAssignable, Category = "Events")
FOnProgressUpdated OnProgressUpdated;

// Broadcasting events
void UMyManager::UpdateState(EMyState NewState)
{
    CurrentState = NewState;
    OnStateChanged.Broadcast(NewState);
    OnProgressUpdated.Broadcast(GetProgress(), GetStatusMessage());
}
```

## Members

| Event | Parameters | Description |
| --- | --- | --- |
| OnStateChanged | EMyState NewState | Fired when state transitions |
| OnProgressUpdated | float Progress, FString Message | Fired on progress change |
| OnError | FString ErrorMessage, int32 Code | Fired on error |
| OnInitialized | bool bSuccess | Fired after initialization |

## 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"));
    }
}
```