Improbable Icon


SpatialOS Requests




I have two requests and I’m unsure if either are in the works so please forgive me if they are.

First is related to: Need ability to replace Improbable Launcher with our own custom C# launcher I’m aware that the EULA states that games must be launched via Steam or the Improbable launcher, however I am curious if there are plans to expose the API so we can use a custom launcher akin to the post mentioned above. We’d also like to have our own “personalized” launcher with stubs for news, account creation, verification, etc. Allow logging in to accounts and enabling communication through our portal in a system akin to messenger and the such before even diving into the game world. Is this in the works, or even possible?

Second is, and I admit I haven’t played with Steam much and I’m curious if it will be possible, since the focus of SpatialOS is to allow massive worlds, I’m curious if there are plans to allow us, developers, the ability to list and/or have multiple worlds displayed to players before they enter any given world? Such as multiple shards listed for a player to select to enter, think the realm selection for World of Warcraft, Everquest or any modern-day MMORPG. We’d like to have different rule sets for different worlds (PVE with selective PVP –or PVP full time – Role Playing enforced - etc) and thus we’d need the ability to list the different worlds and thus this question.

Thank you for time!
Keep up the amazing work!


Since I’m not an Improbable employee I cannot help you with the first question but regarding your second question:

It is possible to run multiple deployments at the same time, even in differing zones (so you can have an EU and a US shard). These deployments won’t share any data unless you use a separate datastore behind them such as Playfab or Firebase but I get the feeling that it actually intended.

If I remember correctly it would even be possible to retrieve a list of deployments in-game and switch to another deployment but I am not certain whether that is already implemented or in the pipeline. Someone from Improbable may be able to comment on that.


Greetings too @Dizenth!

For your first question I can refer for at least a partial answer to the following post that discusses the existing authentication pipeline (for which you already have the basics by referring to Improbable and Steam as providers).

There is also another reply I wrote yesterday to another developer about the kind-of “personalised” launcher with stubs that you ask about: that is actually already possible and @draconigra who already gave you a first response has given a code-snippet for that (link in the referenced post):

For the second question @draconigra is fully to the point: the multiple deployments in different clusters are already available to you (US & EU for the moment but others will be available further down the line). There is an API for querying the running deployments for your project. This is not explicitly documented at the moment but, in the case of the language Worker SDKs (C++, C# and Java), it is indirectly spoken about in the documentation and you should be able to access the necessary functions from the header / class files for the worker::Locator class (it is the same for all three languages). The function you are looking for is worker::Locator::GetDeploymentListAsync() which can be found in the include/improbable/worker.h header-file in the case of C++.

You can then use the result of this querying, supplemented with your own logic, to show a list to your user of the deployments / shards that they can connect too and pass the name of the chosen deployment when calling the worker::Locator::ConnectAsync() function (same name in all three language SDKs). This querying is also available to your user even if they are already connected to one of the deployments.

Don’t hesitate if you have any further questions about these topics. We’ll be happy to answer them for you and clarify any points that you require.

Best regards,



Thank you so much draconigra and Duco for the reply :slight_smile: I’ve smacked myself in the forehead multiple times reading your post as I read that C++ page regarding the connection to SpatialOS but seamlessly forgotten it already! My deepest apologies.

Learning a new SDK this large is always an ever evolving task.

Thank you again for the reply. It is much appreciated and very helpful!