Try SpatialOS

Sites

Menu

Urgent restart

You need to set up a worker flag callback before you can follow these steps.

Run all commands from the project root folder.

Follow these steps if:

  • the deployment is unresponsive
  • any node has gone down
  1. Stop players from joining the game.

    If you’re distributing your game with Steam, remove the Steam tag by running the following command:

    spatial project deployment tags delete <deployment_name> <tag_name>
    

    If you’re using your own authentication provider, you’ll need to set up your own way of stopping players from joining the game.

  2. Create a worker flag to let players know that you’re going to stop the game:

    1. In the Console, open the deployment and go to the Worker flags tab.
    2. From the drop-down list, select the worker type that you registered the callback for, and add a worker flag with the same name as you used when setting up the callback.
    3. Set the flag’s value. This is handled by the callback you set up above. For example, you could set the value to be a message to display to players.
    4. Click Submit. This sends the flag update to the worker.
  3. Let your community know that you’re going to stop the game.

  4. Stop the game:

    spatial project deployment delete <deployment_name>
    
  5. Download the latest snapshot:

    spatial project history snapshot download <deployment_name> latest <snapshot_file>
    

    where snapshot_file is the file name you want to give the snapshot.

  6. There may be elements of the game world that you want to edit or remove before restarting, such as battle debris or timestamps. To do this, you’ll probably need to convert the snapshot into a text file:

    spatial project history snapshot convert --input=<snapshot_file> --output=<text_file> --input-format=binary --output-format=text
    

    When you’ve finished editing the file, convert it back:

    spatial project history snapshot convert --input=<text_file> --output=<snapshot_file> --input-format=text --output-format=binary
    
  7. From your project folder, run a cloud deployment using the snapshot:

    spatial cloud launch <assembly_name> <launch_config> <deployment_name> --tags=<comma-separated list of tags> --snapshot=<snapshot_file>
    

    If you’re using a tag (such as a Steam tag) to control access to the game, don’t include this in the list of tags - you don’t want players to be able to connect until you’ve validated the deployment.

  8. Validate the deployment from the Console.

    1. On the Advanced tab, confirm that all nodes are healthy: nodes healthy
    2. In the World view, check you have the right number of different types of worker: workers healthy

    It’s also a good idea to run an end-to-end connection test (either manually or automatically) in which a client connects to the game and performs an action (for example, jumps and shoots a wall down). We don’t provide anything out-of-the-box for automating these steps, so get in touch if you’d like help with this.

  9. If you’re using a tag (such as a Steam tag) to control access to the game, add this tag so that players can join the game again:

    spatial project deployment tags add <deployment_name> <tag_name>
    
  10. Let your community know they can join the game again.

Was this page helpful?

Thanks for letting us know!

Thanks for your feedback

Need more help? Ask on the forums