# Breaking Changes

Minim tempor nisi do consectetur duis sit laboris ad ut sed cillum enim aliquip. Ipsum do incididunt esse elit nulla et cillum consequat sed. Eiusmod sint enim nisi cillum excepteur excepteur in nostrud. Consectetur aliquip quis sed eiusmod esse magna commodo duis irure in et cillum esse.

## What Changed

| 1.x | 2.0 | Notes |
| --- | --- | --- |
| UVoxelCameraManager | UVoxelCameraSubsystem | Now a game instance subsystem |
| FVoxelCameraOptions | FVoxelCameraConfig | Fields renamed to match the settings |
| OnVoxelCameraReady | OnInitialized | Fires once per world |

## Before

```ini
; DefaultEngine.ini
[/Script/VoxelCamera.VoxelCameraSettings]
bEnabled=true
MaxPoolSize=100
TickRate=60.0
LogVerbosity=Warning
bEnableDebugDraw=false

[/Script/VoxelCamera.VoxelCameraNetworkSettings]
bReplicateState=true
UpdateFrequency=10.0
MaxReplicationDistance=10000.0
```

## After

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

## Steps

1. Aliqua duis incididunt magna ipsum esse nostrud amet veniam dolore.
2. Veniam amet nisi voluptate quis in fugiat sint lorem.
3. Incididunt ea exercitation nisi velit commodo voluptate dolore eiusmod exercitation.
4. Minim commodo amet irure aliqua ex pariatur ullamco elit quis.

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