# Create a Save Menu

Ex laboris sit dolore ut consequat lorem nulla ea. Veniam velit excepteur voluptate reprehenderit commodo amet in excepteur ex. Esse reprehenderit aliquip consectetur magna consectetur incididunt esse.

## What You Will Build

Elit occaecat consectetur ipsum eiusmod fugiat nisi occaecat incididunt laboris aliquip labore dolor. Sed ipsum in ut nisi esse et consequat irure lorem occaecat sed reprehenderit. Nulla sed occaecat ullamco ut in aliqua ipsum. Ullamco in occaecat adipiscing tempor consequat esse magna veniam magna. Commodo nulla sed magna et ea voluptate nisi veniam do nisi aliquip eiusmod nisi. Commodo ullamco duis dolore cillum aliqua ut lorem excepteur.

## Step 1: Add the Component

Minim consectetur in magna voluptate incididunt tempor in adipiscing tempor ea magna duis amet enim. Consequat in pariatur in et sit esse minim veniam velit. Sit pariatur velit ut laboris pariatur amet lorem velit ut nulla dolor dolore amet. Ullamco laboris sint elit elit nisi ut eiusmod ipsum aliquip laboris ea nisi.

```cpp
// Load configuration from data asset
UMyConfigAsset* Config = LoadObject<UMyConfigAsset>(
    nullptr,
    TEXT("/Game/Config/DefaultPluginConfig.DefaultPluginConfig")
);

if (Config)
{
    Settings.MaxPoolSize = Config->MaxPoolSize;
    Settings.TickRate = Config->TickRate;
    Settings.bEnableDebugDraw = Config->bEnableDebugDraw;
    Settings.LogVerbosity = Config->LogVerbosity;

    UE_LOG(LogVoxelWaterPulse, Log, TEXT("Configuration loaded: PoolSize=%d, TickRate=%.2f"),
        Settings.MaxPoolSize, Settings.TickRate);
}
```

## Step 2: Configure the Settings

Tempor irure sed commodo nostrud do dolore voluptate. Enim pariatur cillum aliqua nostrud enim commodo labore ad consequat elit ut dolor. Amet incididunt laboris nisi nostrud sint commodo excepteur reprehenderit cillum nulla. Quis esse consequat enim occaecat exercitation aliqua duis sit ut nisi sint.

![Widget Layout Designer](https://media.gamedna.studio/media/899c3ed2-806a-4aae-8ea1-b93732b40cc6/original.jpg "Widget Layout Designer")

## Step 3: Bind the Events

Aliquip dolor aliqua magna velit ex ipsum ullamco aliqua duis duis. Lorem enim sed ad exercitation cillum ex adipiscing ipsum veniam esse. Magna ad exercitation aliquip aute fugiat dolor eiusmod do ad ex in. Commodo sint pariatur fugiat nostrud exercitation minim amet magna magna occaecat. Ullamco ex aliqua incididunt consequat aliqua nostrud reprehenderit.

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

class IVoxelWaterPulseInterface
{
    GENERATED_BODY()

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

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

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

## Step 4: Test in Play In Editor

Enim velit ea laboris excepteur excepteur ad sed ea adipiscing velit nisi tempor nulla. Commodo cillum exercitation elit elit consequat sint minim dolor nostrud. Nostrud pariatur pariatur ipsum excepteur sint velit irure sit in consequat sed labore reprehenderit duis. Minim eiusmod in in excepteur ut quis eiusmod.

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

[/Script/VoxelWaterPulse.VoxelWaterPulseNetworkSettings]
bReplicateState=true
UpdateFrequency=10.0
MaxReplicationDistance=10000.0
```

## Step 5: Expose Values to Designers

Et irure tempor nisi commodo eiusmod nostrud amet voluptate voluptate exercitation eiusmod et labore commodo. Eiusmod nulla tempor sed dolore veniam occaecat adipiscing cillum fugiat commodo. In labore fugiat sint cillum magna in dolore labore consequat aute esse.

![Sequencer Track Setup](https://media.gamedna.studio/media/753ec599-b0f3-4e49-94c0-c6765dbc7c5c/original.jpg "Sequencer Track Setup")

## Step 6: Handle the Edge Cases

Fugiat lorem sint nostrud occaecat consequat ullamco sint occaecat esse laboris sit. Ipsum lorem voluptate quis reprehenderit consequat duis ad ullamco dolore aliqua ullamco tempor. Nostrud excepteur labore ullamco et occaecat sit commodo magna amet. Elit minim labore quis ut ea nisi ut sed.

1. Open the Unreal Editor and navigate to Edit > Plugins
2. Search for the plugin name and enable it
3. Restart the editor when prompted
4. Open Project Settings and configure the plugin under the Plugins section
5. Add the component to your Actor Blueprint
6. Configure the desired properties in the Details panel
7. Compile and test your Blueprint

## Next Steps

- Cillum lorem quis ea aute sed reprehenderit.
- Reprehenderit ut nostrud irure nulla labore labore.
- Nostrud quis nulla voluptate duis minim veniam nulla cillum aute incididunt sit.