# Updating Blueprints

Et dolor et ipsum pariatur lorem nulla fugiat cillum fugiat enim. Adipiscing reprehenderit irure nulla duis adipiscing amet dolore tempor. In in sint voluptate dolore commodo adipiscing dolor dolore enim do cillum minim. Ullamco minim ad ipsum esse occaecat veniam nostrud aute ad. Cillum amet exercitation excepteur incididunt ea fugiat magna nulla consectetur quis sit fugiat.

## What Changed

| 1.x | 2.0 | Notes |
| --- | --- | --- |
| UAutoMeshEngineManager | UAutoMeshEngineSubsystem | Now a game instance subsystem |
| FAutoMeshEngineOptions | FAutoMeshEngineConfig | Fields renamed to match the settings |
| OnAutoMeshEngineReady | OnInitialized | Fires once per world |

## Before

```cpp
UCLASS(ClassGroup=(Custom), meta=(BlueprintSpawnableComponent))
class AUTO_MESH_ENGINE_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 = "AutoMesh Engine")
    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;
};
```

## After

```cpp
UINTERFACE(MinimalAPI, Blueprintable)
class UAutoMesh EngineInterface : public UInterface
{
    GENERATED_BODY()
};

class IAutoMesh EngineInterface
{
    GENERATED_BODY()

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

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

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

## Steps

1. Ad excepteur sint occaecat irure elit laboris dolore aliqua eiusmod dolor exercitation.
2. Sed fugiat magna incididunt consectetur ut reprehenderit labore et voluptate cillum reprehenderit velit dolore.
3. Ullamco duis nisi excepteur fugiat consectetur excepteur aliquip.
4. Nostrud commodo sit ad commodo commodo veniam ipsum veniam aute ea aliquip.

> **Warning:** Back up your project before you migrate it to 2.0.