# voxelcamera.Stats

`voxelcamera.Stats` belongs to the VoxelCamera runtime module.

Minim eiusmod lorem commodo consectetur nulla aute nostrud esse consectetur sit ad consectetur. Elit elit elit voluptate occaecat nostrud sit duis labore reprehenderit dolor. Sint dolor cillum aute commodo do reprehenderit aliqua cillum pariatur incididunt dolore dolore sit. Ipsum tempor ut in ea dolore tempor adipiscing ad incididunt reprehenderit aute consequat.

## Declaration

```cpp
// Unit test example
IMPLEMENT_SIMPLE_AUTOMATION_TEST(
    FVoxelCameraBasicTest,
    "VoxelCamera.Core.BasicFunctionality",
    EAutomationTestFlags::ApplicationContextMask | EAutomationTestFlags::ProductFilter
)

bool FVoxelCameraBasicTest::RunTest(const FString& Parameters)
{
    UVoxelCameraSubsystem* Subsystem = NewObject<UVoxelCameraSubsystem>();
    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

| 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
// 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(LogVoxelCamera, Log, TEXT("Configuration loaded: PoolSize=%d, TickRate=%.2f"),
        Settings.MaxPoolSize, Settings.TickRate);
}
```

> **Important:** When using network replication, ensure all clients have the same plugin version installed to avoid desync issues.