Get SpatialOS



C# worker SDK

The C# worker SDK allows anyone to write a worker in C# to connect to a SpatialOS simulated world. Like any other worker, a C# worker can subscribe to information for a part of a simulated world, visualize it, and perform some computation on behalf of the simulated world.

The SDK provides an API that allows you to connect to a simulated world, and send and receive component updates. Unlike the Unity3D integration, it does not come with any extra libraries, and in general provides a lower level API. However, it gives you more flexibility, and can be used to build other integrations on top.

A typical C# worker makes use of both the core API defined in the Improbable.Worker namespace, and C# generated code based on the user-specified simulated world schema.

The SDK also includes methods to load and save snapshots of the entire simulation from and to a file. This lets you write tools to perform offline transformations of the simulation state, or to programmatically create the starting point of a simulation. This functionality is documented in the C# worker SDK docs.


The C# worker SDK assumes that you have the 64-bit version of Mono installed on your machine, and that it is on your system path. This should include both mono the runtime, and xbuild. The SpatialOS deployment clusters have version or newer installed and on PATH, including the 64-bit version. This is the environment managed workers will run in.

Note that the macOS version of Mono is distributed as a universal binary, which requires --arch=64 to be passed to the command line when launching your worker.


This assumes you have completed the setup guide (Windows / macOS / Linux) already.

You can install mono using the installation guides: (Windows / macOS / Linux).

On Windows, Mono is required only for the generated build scripts.

On macOS, the C# worker SDK works with the latest Mono.

Was this page helpful?

Thanks for letting us know!

Thanks for your feedback

Need more help? Ask on the forums