This section is for developers who want to run Space Range on their own infrastructure or connect their own software to a live exercise. Space Range speaks ordinary Message Queuing Telemetry Transport (MQTT), so you can host the broker yourself and write a terminal in any language that has an MQTT client.

Two facts shape everything on this path:

  • Studio is the server. Studio runs the simulation and is the only source of truth. It connects to the broker as a normal MQTT client.
  • The broker is a relay. The broker never decrypts, parses, or routes by content. It only moves bytes between Studio and the clients. Any standard MQTT broker works.

What this path covers

Running Your Own MQTT Broker MQTT Protocol Reference Building a Custom Operator Terminal

Running your own MQTT broker

Host the message broker yourself instead of using the public mqtt.zendir.io server. This page lists exactly what the broker must support, what it does not need, and gives a working configuration for a local broker plus the Studio settings that point at it.

MQTT protocol reference

The complete wire contract: the topic namespace, both encryption layers, and the packet formats a client must parse. Read this before writing any client code.

Building a custom operator terminal

The minimal, language-neutral recipe for a compatible client: which topics to subscribe and publish to, how to decode downlink and encode uplink, and the command and request catalogs you can drive.


Minimum Requirements

  • You can host and run a scenario in Studio. If not, start with Hosting a Space Range.
  • You are comfortable with MQTT publish and subscribe and with reading binary payloads.

Key Learnings

  • Broker role: Understand why a vanilla MQTT broker is sufficient and that no server-side logic is required.
  • Topic contract: Learn the full Zendir/SpaceRange/<GAME>/... namespace and which topics each client role uses.
  • Encryption: Implement the XOR transport layer and the Caesar downlink layer in your own code.
  • Clients: Build a terminal that decodes telemetry and commands a spacecraft without the bundled Operator UI.