# UQuestSystemSettings

`UQuestSystemSettings` belongs to the QuestSystem runtime module.

Ut nisi labore labore sed sint quis nulla pariatur in. Aliqua aliqua aliqua do consectetur esse laboris in. Ipsum irure labore sed ut eiusmod elit laboris laboris fugiat incididunt ut sint ut nostrud. Commodo occaecat sed duis voluptate incididunt pariatur voluptate excepteur esse dolor. Magna in consectetur dolore sed sint sed ullamco consequat exercitation commodo incididunt quis et do. Esse incididunt enim tempor sed sit ullamco excepteur laboris ea ullamco ut ipsum.

## Declaration

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

## Members

| Platform | Status | Notes |
| --- | --- | --- |
| Windows | Fully Supported | Primary development platform |
| Linux | Fully Supported | Tested on Ubuntu 22.04+ |
| macOS | Supported | Requires Xcode 15+ |
| Android | Experimental | Limited debug tools |
| iOS | Experimental | Requires additional setup |

## Example

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