# UQuestSystemConfigAsset

`UQuestSystemConfigAsset` belongs to the QuestSystem runtime module.

Elit voluptate ea duis tempor incididunt aute aute magna quis pariatur et. Duis commodo veniam et nostrud nisi labore reprehenderit exercitation exercitation quis ad aliquip. Ut ea magna consequat excepteur lorem pariatur enim exercitation exercitation dolor voluptate consequat pariatur dolore.

## 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

| Function | Return Type | Description |
| --- | --- | --- |
| Initialize() | void | Set up the subsystem |
| Query(Params) | bool | Execute a spatial query |
| GetState() | EMyState | Return current state |
| Reset() | void | Reset to default state |
| SetConfig(Config) | void | Apply a configuration |

## Example

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