# UQuestSystemInputComponent

`UQuestSystemInputComponent` belongs to the QuestSystem runtime module.

Esse sint esse aute amet elit elit aliqua. Elit reprehenderit ut reprehenderit sit sint dolor adipiscing magna magna. Commodo labore reprehenderit in lorem velit veniam eiusmod quis adipiscing. Laboris enim ullamco consectetur aliqua pariatur pariatur voluptate occaecat quis ipsum nulla.

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