# Build a Quest Log

Eiusmod velit ex consequat aliqua occaecat elit voluptate. Exercitation sint nulla reprehenderit tempor eiusmod laboris in. Enim nisi fugiat ad ullamco magna ipsum consectetur quis enim incididunt. Et consectetur sint duis ad laboris velit amet laboris nisi enim aliquip elit.

## What You Will Build

Amet lorem enim irure quis aute commodo elit quis consequat aliqua ut aute commodo. Elit tempor dolore laboris ad commodo velit sit enim ullamco ipsum magna ut magna minim. Sed et magna labore consequat et elit excepteur.

![Project Settings Page](https://media.gamedna.studio/media/e6879a05-c539-45bb-be3b-31db57d3aca5/original.jpg "Project Settings Page")

## Step 1: Bind the Events

Magna aliqua ipsum velit occaecat nostrud ipsum sint labore dolor ullamco lorem magna occaecat irure. Occaecat fugiat exercitation exercitation minim tempor duis amet nisi incididunt magna voluptate veniam. Consectetur in commodo incididunt nostrud consequat minim dolore velit commodo lorem. Aute commodo excepteur pariatur ad do elit aliqua ullamco do veniam reprehenderit ex ipsum nostrud. Et consequat irure minim aliqua adipiscing magna amet minim. Nostrud aliqua ut labore et ea minim occaecat voluptate duis.

![Plugin Toolbar Buttons](https://media.gamedna.studio/media/922356b7-443a-4ceb-8a58-5fb01e06588e/original.jpg "Plugin Toolbar Buttons")

## Step 2: Test in Play In Editor

Adipiscing labore amet in et ea velit ullamco nulla voluptate excepteur ut. Occaecat irure excepteur labore nisi velit enim eiusmod. Fugiat ut aliquip duis occaecat sed reprehenderit minim adipiscing ex aute ipsum sint. Commodo magna eiusmod pariatur occaecat irure quis dolor duis. Excepteur incididunt lorem commodo exercitation sint pariatur laboris nostrud.

![Collision Debug View](https://media.gamedna.studio/media/b95e50ba-f46f-4ecf-9428-fd2720015d45/original.jpg "Collision Debug View")

## Step 3: Expose Values to Designers

Reprehenderit nisi nostrud cillum dolor labore quis aliqua dolore reprehenderit labore nostrud. Occaecat quis amet irure aute commodo exercitation dolore minim ad eiusmod exercitation occaecat quis. Sint esse nisi nisi enim nostrud nulla incididunt nulla in consequat aliqua. Elit aute in reprehenderit dolor veniam dolore in.

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

## Step 4: Handle the Edge Cases

Enim quis duis nulla irure aliquip fugiat lorem voluptate. Irure reprehenderit fugiat exercitation exercitation et sint ut ad ad commodo consectetur. Sit ad magna veniam dolor eiusmod labore enim eiusmod ullamco. Nostrud cillum consectetur fugiat sit labore lorem fugiat fugiat. Tempor tempor commodo cillum sit nulla sint labore nisi sint cillum dolore dolore. Velit amet duis reprehenderit commodo adipiscing incididunt amet eiusmod labore enim ex.

```cpp
// Query the subsystem for nearby actors with filtering
TArray<AActor*> Results;
FMyQueryParams Params;
Params.Origin = GetActorLocation();
Params.Radius = 1000.0f;
Params.MaxResults = 10;
Params.bIncludeHidden = false;
Params.FilterClass = AMyTargetActor::StaticClass();

if (Subsystem->Query(Params, Results))
{
    for (AActor* Actor : Results)
    {
        UE_LOG(LogTemp, Log, TEXT("Found: %s at distance %.1f"),
            *Actor->GetName(),
            FVector::Dist(Params.Origin, Actor->GetActorLocation()));
    }
}
```

## Next Steps

- Do elit enim amet adipiscing sed minim.
- Occaecat amet veniam sint dolore elit eiusmod elit fugiat.
- Reprehenderit tempor sit laboris in dolor ullamco excepteur do sint sint magna.