Transactions and Persisting Changes
As you and your teammates work in a live session, the Editor applies transactions on top of your local Project content in a kind of virtual sandbox. Your Project files on disk are not actually modified at all as long as you remain in the session. The Multi-User Editing system takes care of keeping track of your changes, and shows you in the Unreal Editor the result of applying those transactions to your Project content.
At any time, any session participant can choose to persist the session changes: to take all the modifications made in the current session, and apply those changes back to their local files on disk. If you began your session while connected to a Source Control provider, you can also optionally check in those same changes in a new changelist or revision.
If you leave a session without persisting changes, the Editor automatically reverts back to the state your Project was in before you started or joined the session. It hot-reloads all the Assets in your Project that you modified while in the session, discarding the session modifications. Although you no longer see your session changes after you leave the session, you don't lose the transactions entirely.Each session still retains the record of all its transactions, even when all its users have left. If you re-join the same session later, the Multi-User Editing system re-applies all those same transactions in your Editor.
The server retains each session until the user who created the session expressly deletes it, or until the server itself is shut down. Therefore, a crash or disconnection for any individual client, or even for all clients, never results in losing modifications. Users can simply reconnect to the server and pick up where they left off.
The server also protects itself against losing information due to unexpected shutdowns by saving its session records to disk.
- If the server shuts down abnormally, then the next time you restart that server it will immediately restore all the sessions it had open at the state they were in when it shut down.
- If you shut down the server cleanly, it deletes all open sessions. However, if you've chosen to have the server save your new session, you'll be able to restore it later. See the next section for details.
Saving and Restoring Sessions
If you know before you create a new session that you might want to pick up that session where you leave off at a later date, you can have the Multi-User Editing server keep a named record of your session's transactions.
To save a record of your session, check the Save Session As box in the Create a Session window when you create your new session. Its name will be set by default to match the name you put in the Session Name box, but you can override this if you need a different value.
After you delete your session from the server, or you shut down your server cleanly, you'll no longer see your original session listed in the Session Browser window, so you'll be unable to connect to it until you restore it.
To restore a session, open the Create a Session window as you would to start a new session from scratch. But, this time, check the Session to Restore box, and choose the name of the session you want to restore from the list.
Remember that when you restore a session, just like when you join an existing session, your Project content on disk must match the state that the Project content was in at the time the session was originally created.
The server saves session records in
Engine/Programs/UnrealMultiUserServer/Saved/Concert under your Unreal Engine installation folder. If you want to completely delete a saved session so that it can never be restored, delete its folder from this location.