#### [Board](https://docs.dev.board.fun/unity/api/index.html "index")

### [Board.Save](https://docs.dev.board.fun/unity/api/Board.Save.html "Board\.Save"). [BoardSaveGameManager](https://docs.dev.board.fun/unity/api/BoardSaveGameManager.html "Board\.Save\.BoardSaveGameManager")

## BoardSaveGameManager.UpdateSaveGame(string, byte\[\], BoardSaveGameMetadataChange) Method

Updates an existing saved game with new payload and metadata.

```
public static System.Threading.Tasks.Task<Board.Save.BoardSaveGameMetadata> UpdateSaveGame(string saveId, byte[] payload, Board.Save.BoardSaveGameMetadataChange metadataChange);
```

#### Parameters

`saveId` [System.String](https://learn.microsoft.com/en-us/dotnet/api/system.string "System\.String")

The unique identifier for the save game to update.

`payload` [System.Byte](https://learn.microsoft.com/en-us/dotnet/api/system.byte "System\.Byte") [\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array "System\.Array")

The new save game payload (serialized game state).

`metadataChange` [BoardSaveGameMetadataChange](https://docs.dev.board.fun/unity/api/BoardSaveGameMetadataChange.html "Board\.Save\.BoardSaveGameMetadataChange")

The new metadata for the save game (required).

#### Returns

[System.Threading.Tasks.Task<](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 "System\.Threading\.Tasks\.Task\`1") [BoardSaveGameMetadata](https://docs.dev.board.fun/unity/api/BoardSaveGameMetadata.html "Board\.Save\.BoardSaveGameMetadata") [>](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 "System\.Threading\.Tasks\.Task\`1")

The task object representing the asynchronous operation, returning the updated metadata.

#### Exceptions

[System.ArgumentNullException](https://learn.microsoft.com/en-us/dotnet/api/system.argumentnullexception "System\.ArgumentNullException")

[saveId](https://docs.dev.board.fun/unity/api/BoardSaveGameManager.UpdateSaveGame(string,byte[],BoardSaveGameMetadataChange).md#Board.Save.BoardSaveGameManager.UpdateSaveGame(string,byte[],Board.Save.BoardSaveGameMetadataChange).saveId "Board\.Save\.BoardSaveGameManager\.UpdateSaveGame\(string, byte\[\], Board\.Save\.BoardSaveGameMetadataChange\)\.saveId"), [payload](https://docs.dev.board.fun/unity/api/BoardSaveGameManager.UpdateSaveGame(string,byte[],BoardSaveGameMetadataChange).md#Board.Save.BoardSaveGameManager.UpdateSaveGame(string,byte[],Board.Save.BoardSaveGameMetadataChange).payload "Board\.Save\.BoardSaveGameManager\.UpdateSaveGame\(string, byte\[\], Board\.Save\.BoardSaveGameMetadataChange\)\.payload"), or [metadataChange](https://docs.dev.board.fun/unity/api/BoardSaveGameManager.UpdateSaveGame(string,byte[],BoardSaveGameMetadataChange).md#Board.Save.BoardSaveGameManager.UpdateSaveGame(string,byte[],Board.Save.BoardSaveGameMetadataChange).metadataChange "Board\.Save\.BoardSaveGameManager\.UpdateSaveGame\(string, byte\[\], Board\.Save\.BoardSaveGameMetadataChange\)\.metadataChange") is `null`.
