# UPrimeDialogForgeNetworkComponent

`UPrimeDialogForgeNetworkComponent` belongs to the PrimeDialog Forge runtime module.

Sed reprehenderit excepteur laboris ad nostrud veniam fugiat eiusmod reprehenderit occaecat nulla esse. Magna minim incididunt cillum amet ullamco fugiat occaecat. Adipiscing nostrud ullamco ipsum minim occaecat dolore ullamco elit cillum sint commodo voluptate enim dolor. Labore dolor esse duis tempor exercitation minim irure do esse occaecat. Pariatur consectetur ut lorem incididunt magna veniam velit ea fugiat ut adipiscing ad minim.

## Declaration

```cpp
// Unit test example
IMPLEMENT_SIMPLE_AUTOMATION_TEST(
    FPrimeDialog ForgeBasicTest,
    "PrimeDialog Forge.Core.BasicFunctionality",
    EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::ProductFilter
)

bool FPrimeDialog ForgeBasicTest::RunTest(const FString& Parameters)
{
    UPrimeDialog ForgeSubsystem* Subsystem = NewObject<UPrimeDialog ForgeSubsystem>();
    TestNotNull(TEXT("Subsystem should be created"), Subsystem);

    Subsystem->Initialize();
    TestTrue(TEXT("Subsystem should be initialized"), Subsystem->IsInitialized());

    FMyQueryParams Params;
    Params.Radius = 500.0f;
    TestTrue(TEXT("Query params should be valid"), Params.IsValid());

    return true;
}
```

## Members

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| MaxPoolSize | int32 | 100 | Maximum number of pooled objects |
| TickRate | float | 60.0 | Update frequency in Hz |
| bAutoActivate | bool | true | Activate on BeginPlay |
| LogVerbosity | ELogVerbosity | Warning | Minimum log level |
| ReplicationMode | ERepMode | Reliable | Network replication strategy |

## Example

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

> **Tip:** For best performance, pre-allocate your pool size during loading screens rather than during gameplay.