Multiplayer Everything

Developer SDK

One small file in your release, multiplayereverything.json, and your mod installs from the launcher. Your mod doesn't change. You can also skip the file: the add-a-mod form asks the same questions and we write the file from your answers. Free for everyone.

How it works

  1. 1Write the fileFill in the form below, or write it by hand.
  2. 2Check it hereThe same rules the launcher uses, run in your browser.
  3. 3Put it on your releaseAs its own file, next to your zip. We read it when we approve your mod.

Make your file

Fill in what you know. The file on the right follows as you type, and you can also edit it by hand. Changing a field rewrites the file.

owner/name, the one the release is in.

Lowercase letters, digits and dashes. It must match your mod's id on this site.

Leave it empty for a game that isn't on Steam: players choose the game's folder, and the launcher starts its program.

Inside the game's folder. We add the game folder in front for you.

A file or folder inside your release's zip, or the name of the single file.

Put it on your release

  1. Publish a release on GitHub under your own repository, with the version in the tag, such as v1.2.0, and one file with the mod, such as LabCoop-1.2.0.zip.
  2. Attach multiplayereverything.json to the same release as its own file, next to your zip, not inside it.
  3. Add your mod on the developer hub. When we approve it, we read the file, pin that release and its checksums, and offer the mod in the launcher.

A new version is a new review. Nothing reaches players on its own.

Attach it automatically

Keep the file in your repository. This workflow adds it to every release you publish.

name: Attach the launcher file
on:
  release:
    types: [published]
permissions:
  contents: write
jobs:
  attach:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: gh release upload "${{ github.event.release.tag_name }}" multiplayereverything.json --clobber
        env:
          GH_TOKEN: ${{ github.token }}

A Flash game

For a Flash game the file says what the game is, and the launcher does the rest. It downloads your game file from the release and checks it. It makes the same buttons every Flash game in the launcher has: Play online, rooms for up to your player count, host and join by IP, and an offline button. Then it starts Ruffle Together with your game file and key map. You never write a command line.

{
  "format": 1,
  "repo": "someone/lab-flash",
  "flash": {
    "game": "Lab Flash",
    "file": "LabFlash_coop.swf",
    "keys": "lab-flash.keys",
    "maxPlayers": 3,
    "offline": { "local": true },
    "ruffle": "1.0.3.7"
  }
}

What we check