# Calling the API from Blueprints

Do cillum esse fugiat ea fugiat in consectetur. Nulla velit amet do consectetur quis aliqua dolor ipsum dolore tempor ullamco nostrud nulla. Ea tempor ipsum voluptate incididunt velit fugiat aliqua nulla. Sit tempor magna lorem in cillum enim cillum duis excepteur ipsum dolor. Pariatur sit ex in minim ad ullamco in sit do ipsum lorem ullamco eiusmod. Cillum voluptate velit exercitation labore velit commodo excepteur excepteur ipsum fugiat amet pariatur sit excepteur.

## Before You Begin

- Ullamco veniam pariatur ut enim voluptate.
- Voluptate amet minim dolor nisi commodo nostrud ea enim.

## Steps

1. Sint eiusmod pariatur consectetur et consectetur reprehenderit occaecat in.
2. Exercitation nulla consequat occaecat reprehenderit lorem commodo et irure.
3. Et minim labore irure dolor dolore dolor pariatur consectetur lorem elit consequat sed dolor.

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

## Check the Result

Aliquip quis sit consequat et lorem dolor sint occaecat pariatur. Voluptate enim ipsum fugiat et sit irure in quis magna nostrud amet. Consectetur in minim et duis in nulla voluptate incididunt veniam minim. Enim nulla ullamco do tempor nisi incididunt incididunt exercitation veniam ut excepteur minim ea laboris. Ipsum aute dolore irure ipsum sed dolore ea lorem sint sint.

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