A build is your game’s server, uploaded to Simpl. The simplest way to make one is a ZIP file of your Linux server. If you already make a Docker image instead, see Use a Docker image.

What goes in the ZIP

Everything your Linux server needs to run: the program that starts it and all its files. Export or package your server for Linux the way your engine does it, then zip the folder.

The executable

The executable is the file inside the ZIP that starts your server, such as Linux/GameServer.sh. You name it when you upload. Simpl runs it when a server starts. Your server can’t choose its own port. Simpl gives it one when it starts, in SIMPL_PORT_GAME. If your engine takes the port as a command-line option, either:
  • use the simpl-server.sh starter script the dashboard offers for Godot, Unity and Unreal, which passes the port for you, or
  • add the port to your launch arguments with a placeholder (see Launch arguments).

Uploading

With the dashboard

  1. Open your project’s Builds tab and click Upload build.
  2. Choose your ZIP file as the Server ZIP.
  3. Pick your Engine. This only changes the setup tips you see.
  4. Set Executable to the file that starts your server.
  5. Give it a Build name, such as 0.1.0. This name is how you pick the build later.
  6. Click Upload build.

With the API

This takes two requests. First ask for an upload link, using your server key:
The answer has an upload_url, a one-time link, and an expires_at time. Send your ZIP to that link before it expires:
ports and launch_args are optional.

Ports

Your project decides the ports your server uses, not the upload. Set them on the Environment tab, in the Ports section. A new project starts with one UDP port named game. To use TCP, or to turn on TLS for a browser game, change the port there. See Ports and environment and Browser games (wss://). The dashboard upload form has no port settings. With the API, ports on the build only matters for a port name your project does not list. If you leave it out, the build gets one UDP port named game.

Environment variables

Environment variables are named values your server can read when it starts. Besides the port and address variables in Ports and environment, Simpl sets: SIMPL_API_URL and SIMPL_SERVER_TOKEN are also set. They are only needed if you use the plugin. Never print the token.

Launch arguments

Launch arguments are extra words added to the command that starts your server, such as -log. There are two kinds, and Simpl adds them in this order: Both are lists, with one argument per item. One item with spaces in it is refused, because Simpl can’t tell where one argument ends and the next begins. Simpl replaces these placeholders in every argument before your server starts: For example, "launch_args": ["-port={{PORT}}", "-log"] passes the game port to an engine that reads a -port= option.

Build statuses

After the upload, Simpl prepares your build. Its status tells you where it is:

Version tags

The name you give a build is its version_tag. You use it to pick the build when you start a server or set up a queue. If you upload two builds with the same name, the newest one is used.

Docker images

To use a Docker image instead of a ZIP, see Use a Docker image.

Private images

For an image in a private registry, see Private images.