# UQuestSystemInputComponent

`UQuestSystemInputComponent` belongs to the QuestSystem runtime module.

Laboris adipiscing sed consequat magna ullamco velit irure veniam exercitation. Lorem sint cillum aute do tempor reprehenderit lorem. Exercitation duis sit elit voluptate occaecat enim eiusmod commodo ex exercitation ipsum fugiat in. Ea duis cillum lorem ex sed fugiat nisi esse lorem.

## Declaration

```ini
; DefaultEngine.ini
[/Script/QuestSystem.QuestSystemSettings]
bEnabled=true
MaxPoolSize=100
TickRate=60.0
LogVerbosity=Warning
bEnableDebugDraw=false

[/Script/QuestSystem.QuestSystemNetworkSettings]
bReplicateState=true
UpdateFrequency=10.0
MaxReplicationDistance=10000.0
```

## 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
UINTERFACE(MinimalAPI, Blueprintable)
class UQuestSystemInterface : public UInterface
{
    GENERATED_BODY()
};

class IQuestSystemInterface
{
    GENERATED_BODY()

public:
    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "QuestSystem")
    void OnPluginActivated(bool bSuccess);

    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "QuestSystem")
    FMyResult ProcessData(const FMyInput& Input);

    UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "QuestSystem")
    bool CanExecute() const;
};
```

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