> For the complete documentation index, see [llms.txt](https://docs.coherence.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coherence.io/support/upgrading-unity-sdk/upgrade-2.1-greater-than-2.2.md).

# Upgrade 2.1 -> 2.2

## Breaking Changes

| API                                                                                                                                                                                                                                       | Change                                                                                                                                                                            |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `CloudRoomsService` async methods                                                                                                                                                                                                         | Now wait for throttling cooldown, instead of throwing `TooManyRequests`.                                                                                                          |
| <ul><li><code>IRoomsService.RemoveRoom</code></li><li><code>IRoomsService.UnlistRoom</code></li></ul>                                                                                                                                     | Takes `RoomData` instead of `UniqueId` and `Secret`. Affects `CloudRoomsService`, `ReplicationServerRoomsService`, and `CloudRoomsServiceCoroutineExtensions.WaitForRemoveRoom`   |
| <ul><li><code>LobbiesService.JoinLobby</code></li><li><code>LobbiesService.JoinLobbyAsync</code></li></ul>                                                                                                                                | `secret` param renamed to `password`                                                                                                                                              |
| `CreateLobbyOptions.Secret`                                                                                                                                                                                                               | Renamed to `CreateLobbyOptions.Password`                                                                                                                                          |
| `CoherenceSync.coherenceTag`                                                                                                                                                                                                              | Replaced with `CoherenceSync.CoherenceTag`                                                                                                                                        |
| <ul><li><code>CoherenceBridge.JoinRoom</code></li><li><code>CoherenceBridge.JoinWorld</code></li></ul>                                                                                                                                    | Use port supplied as argument, instead of the default one defined in `RuntimeSettings`.                                                                                           |
| `PrepareHeadlessBuild`                                                                                                                                                                                                                    | Renamed to `PrepareBuild`                                                                                                                                                         |
| `BuildHeadlessLinuxClientAsync`                                                                                                                                                                                                           | Renamed to `BuildAndUpload` + returns `Task`                                                                                                                                      |
| <ul><li><code>CoherenceInputSimulation.SetInputs</code></li><li><code>CoherenceInputSimulation.Simulate</code></li><li><code>CoherenceInputSimulation.Rollback</code></li><li><code>CoherenceInputSimulation.CreateState</code></li></ul> | <p>Accessibility from <code>protected</code> to <code>public</code>.</p><p></p><p>This allows external systems, such as replay tooling, to control input simulation directly.</p> |
| `OnValueSyncedAttribute.Callback`                                                                                                                                                                                                         | Replaced with `Member`                                                                                                                                                            |
| `CoherenceBridgeStore.TryGetBridge`                                                                                                                                                                                                       | sceneHandle param type `ulong` (was `int`)                                                                                                                                        |

## Setting variables on remote entities

Before 2.2, every frame, coherence overrode synced variables on remote entities with the last value it got from the network.

In 2.2, synced variables change only the frames where network updates are applied or need to be interpolated.

## `Coherence.Log/` renamed to `Coherence.Logging/`

The default `.gitignore` will discard this folder, so specially for Asset Store users it is important to avoid this altogether by renaming this assembly. When upgrading an installation from the Asset Store, please follow the [recommendations](/support/upgrading-unity-sdk.md#upgrading-asset-store-installations).
