# UQuestSystemSubsystem

`UQuestSystemSubsystem` belongs to the QuestSystem runtime module.

Do voluptate esse ipsum enim nostrud ea sit voluptate et. Adipiscing aliquip nostrud aliquip ut nisi velit dolor nisi aute nostrud tempor ex in eiusmod. Labore consequat esse labore pariatur ullamco aliqua dolor ad.

## Declaration

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

bool FQuestSystemBasicTest::RunTest(const FString& Parameters)
{
    UQuestSystemSubsystem* Subsystem = NewObject<UQuestSystemSubsystem>();
    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
#include "QuestSystem.h"
#include "Engine/World.h"

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

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