# EQuestSystemQuality

`EQuestSystemQuality` belongs to the QuestSystem runtime module.

Adipiscing excepteur excepteur consequat irure sint ea exercitation fugiat ex sed enim cillum incididunt. Sit fugiat cillum lorem dolore incididunt ipsum elit fugiat in in. Irure aute reprehenderit labore nostrud sint fugiat magna exercitation et. Labore occaecat pariatur magna aute minim veniam nulla ea aliquip ullamco tempor commodo et elit. Minim veniam cillum voluptate quis ea quis irure nisi.

## Declaration

```cpp
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
class QUEST_SYSTEM_API UMyComponent : public UActorComponent
{
    GENERATED_BODY()

public:
    UMyComponent();

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
    float UpdateInterval = 0.1f;

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Settings")
    bool bAutoActivate = true;

    UFUNCTION(BlueprintCallable, Category = "QuestSystem")
    void SetConfiguration(const FMyConfig& Config);

protected:
    virtual void BeginPlay() override;
    virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;

private:
    FMyConfig CurrentConfig;
    float TimeSinceLastUpdate = 0.0f;
};
```

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

```
Blueprint Setup:
1. Open your Actor Blueprint
2. Add Component > search "My Plugin Component"
3. In the Details panel, set:
   - Update Interval: 0.1
   - Auto Activate: true
   - Max Instances: 50
4. Connect the OnStateChanged event to your handler
5. Compile and Save the Blueprint
```