Structure of a SpatialOS project
This page goes through the files and directories that a SpatialOS project contains.
Examples of all configuration files can be found in the Blank Project repository.
Specifies the basic details of a project, including its name, and the SpatialOS version the project uses.
For more information about this file see project definition specification page.
A launch config file. You can have multiple launch config files in a project, and specify which
one you want to use when you deploy using
spatial local launch or
spatial cloud launch.
spatial local launch defaults to using the file with the name
spatial cloud launch,
you need to specify a file to use.
A project needs at least one launch config file.
For more information about these config files, including the file format, see the Launch config file page.
If you are using Git, you will have a
.gitignore file in the root of your project. For more information about this file,
see the GitHub help on ignoring files.
For files that we recommend that SpatialOS projects ignore, see the
For details on writing a schema, see the schema documentation.
This directory contains the code for the workers used by your simulated world. Its contents will depend on the types of workers you decide to use in your project.
The code for any worker types you build should be placed in a directory with the same name as the worker type,
This directory must contain a
spatialos.<worker_type>.worker.json file, which tells SpatialOS how to build, launch,
and interact with the worker. The label you use as the
worker_type will be used to identify this worker elsewhere
in your project (for example, in the launch configuration file).
For details on the file format, see the Configuring a worker section.
As an example for the above, the code for any Unity workers you build should be placed in a dedicated directory, for
workers/unity. For the structure of the directory, see the
Unity worker structure.
Contains files generated by
spatial worker build.