Improbable Icon


Realtime modding inside SpatialOS?


Hi, I have a question.
I am an indie Game Designer and Unity prototyper, but I have never done multiplayer so I’m maybe saying nonsense there.

Is it possible to create a moddable game on spatial OS and Unity ?
For example, you can mod singleplayer unity games by using lua (via Moonsharp fo example) and accessing C# methods.
This allows players to create new content and even new gameplay.

If we imagine there is no 3D assets, textures or sound in the mod but just lua and an other text file for data (ex: which already existing material to use + a list of voxel data to draw the shape of the object + lua)
Would it be possible for a player to create his mod inside SpatialOS ? Modifying lua code that is loaded by the component of an entity ?
The player would be creating his mod directly inside the game.

Or is it impossible because players can’t modify the schema used to define entities and also can’t modify workers ?

Or am I completely saying nonsense ?



Hello @david.birge.cotte,

What you are referring to as a moddable game is certainly something that can already be done to some extend even though not all the features that you would like to have are available yet. For example dynamic schema’s are not something that we support (it has been / is discussed in some ways although no decisions have been made and it is not on our current roadmap).

The scripting, particulary Moonsharp as you mention it, has already been somewhat discussed & referenced.

Feel free to continue the discussion there or here as we are always keen on keeping the thoughts and perspectives flowing.

Best regards,


I think the best thing to do is try and do a proof of concept (when I’ll find the time to do it…).
I’ll keep you updated on what’s working and what’s not working.



That sounds like a plan to me. :smile:

Really don’t hesitate to reach out if you encounter any issues or face design questions you are not sure about. The community and Improbable engineers are always happy to give input!