The TMC Gaming Platform - The Modding Community

MIT licensed, open source Early stage

Open-source Godot addons for multiplayer games

Dot is a set of open-source Godot addons for accounts, dedicated servers, moderation, parties and voice. Games built on it run in a browser tab from a link, and their servers show up in our server browser.

  • Godot 4.7 or newer
  • Plays in a browser tab
  • Dedicated servers

Early stage. Every addon has its own test suite and passes it, but few players have used any of this yet. Expect rough edges.

project.godot dot-server
Your game
game-arenagame-hungariomg-prop-hunt
The Dot addons
dot-authdot-serverdot-partydot-moderationdot-voicedot-net
The Modding Community
Play centerServer browserContent packsWorkshop
How it fits together

Your game on top, Dot in the middle, the site underneath

Three layers. Pick one to see what it does and what you still write yourself.

The Dot addons

More than 60 addons you take one at a time. Only dot-core is a hard dependency. The rest are found at run time, so a game carries the ones it uses and nothing else.

  • Accounts, avatars and sign-in.
  • A dedicated server framework with query, deploy and security tools.
  • Parties, matchmaking, friends, text chat and voice chat.
  • Moderation, replays, leaderboards and achievements.

Select a layer to read about it.

What sets it apart

What is different here

Each of these is in the code today. Where one is only partly proven, the card says so.

One client, browser or desktop

dot-server-deploy exports the same client shell for a browser and for Linux, Windows and macOS. A server listens on WebSocket for browsers and ENet for desktop clients in the same match. The browser export is tested in headless Chromium only, and no desktop build has been published yet.

Games arrive as signed packs

A game is a content pack, signed with RSA and checked by dot-cloud before it is mounted. The client shell is the same build for every game, so a new game needs no new client download.

Servers never learn who you are

A game server gets a key derived for that one server, not your account id. Two server owners cannot compare logs to follow one player across the platform. dot-user and the site use the same derivation.

One avatar, every game

An avatar is a small document a server can check, stored on the site. It follows you onto a game server over a documented, open protocol, so your look is not rebuilt for each game.

Members can publish a game

Any signed-in member can create a game or minigame, with a page, categories, permissions and a development stage from In Development to Released. The site and a game owner can both require review before a release reaches players.

Listed, with live counts

dot-server-query answers A2S, the query most server trackers already speak, and a richer protocol of its own that also works over WebSocket. A server that reports to the site is listed in the server browser with its players online.

Many games, one platform

One set of addons and one account serve many games and minigames. Each game gets its own page on the site, and your sign-in, avatar and friends carry across.

Anyone can run a server

A community server for any Dot game is one tool away. See the steps.

Boards and stats for each game

A game declares its own leaderboards: what is ranked (a time, a score, points or a penalty), its unit, and a scope such as map, track or style that becomes the filters on the page. The game server keeps the stats and reports them to the site, so the numbers come from the server, not from the player. A server's boards show on its own page, and a server the game's owner has approved also feeds the game's own leaderboard. Player statistics such as kills or top speed are reported the same way.
The addons

Take only the parts you need

A selection from the more than 60 addons, each in its own repository. Filter by what you are building, or search by name.

36 shown

Press Play

From a link to a running match

What happens after someone clicks Play on a server or a game page. Step through it.

Step 1 of 5

A link

Play on a server page, a game page or the play center opens a launch dialog over the page you are on. If you are signed in, the game learns who you are from a short code, not a token, so you do not sign in a second time.

On the site: the play center and the web player.

Run your own server

Host a game in six steps

Anyone can run a community server for any Dot game. You need a terminal and either Linux or Docker. dot-server-deploy does the rest.

  1. 1

    Get the tool

    Clone dot-server-deploy, the launcher for Dot game servers.

    git clone https://github.com/modcommunity/dot-server-deploy
    cd dot-server-deploy
  2. 2

    Run the setup

    Run the setup script once. It prepares the server and its config.

    ./setup.sh
  3. 3

    Start a game

    Name the game to start. With Docker, docker compose up -d does the same.

    ./server --games arena
    # or, with Docker
    docker compose up -d
  4. 4

    Answer the questions

    The full setup asks about ten questions about your server, then writes the config.

    ./setup.sh --full
  5. 5

    List it on the site

    On the site, open the add-server page, choose the game and enter the address and ports. When the server starts, it proves to the site that it answers at that address (enrollment), gets its own credential and writes its own listing.

  6. 6

    Tune it

    Change settings, maps and mods in cfg/content.yml and content packs in cfg/packs.yml, then restart.

    cfg/content.yml
    cfg/packs.yml
Dot Workbench

Edit the game while it runs

dot-workbench is a live editor for a running game. Change a profile and the game picks it up without a restart.

In-game panel

Open a panel inside the running game and adjust values as you play.

Local web page

A page on your own machine. It is off by default and guarded by a token file, so only you can use it.

JSON API

The same profile editing as plain JSON, for scripts and tools.
ExampleTuning a monster while the game runs
Kind: npcApplied live
  • crawler
  • leaper
  • spitter

Leaper

5 settings, 2 differ from default

Saves to: Server runtime layer (live, replicated)

An illustration drawn for this page, not a screenshot. The field names and starting values come from the leaper profile in game-zombie-zone. The real panel and page may look different.

It edits profiles. Scenes and code are still changed in the Godot editor.

Goals

What we are aiming for

These are aims, not a checklist. The platform is at an early stage, and the roadmap shows how far along each part is.

  1. 1

    Stock Godot, not a fork

    A game that wants none of this stays a normal Godot project. We add addons and one open protocol, and you take only the parts you need.

  2. 2

    Open, so anyone can run it

    The addons are MIT licensed and the backend protocol is open. We run one instance, and anyone can run their own.

  3. 3

    Community servers that are easy to start

    Starting a dedicated server should take one command, and a server that reports to the site shows up in the server browser.

  4. 4

    One account across games

    Your sign-in, avatar, friends and parties follow you from game to game, while a game server only ever sees a key made for it.

  5. 5

    Reachable from a link

    A game should start from a link, in a browser tab or on desktop, with both kinds of player in the same match. Phones are an aim, not something built.

  6. 6

    Members publish their own games

    Any member can put a game or minigame on the site with its own page, and the site and the game owner can both require review.

  7. 7

    A reason to arrive

    The platform is empty so far, and Zee's Games is changing that by bringing over game modes people loved on older games: surf and bunny hop, Prop Hunt, DeathRun, Hide and Seek and Murder Mystery. Most of them are not finished.

  8. 8

    Developers sell and ship their own content

    Developers will be able to sell items to players through this website, and to ship their own content and avatars on the platform. This is not available yet. Games already reach players as signed packs and members can subscribe to packs in the Workshop, but selling and developer avatars are not built.

Built on it

Projects built on it

The first project on the platform, and the one that shows what it is for.

Zee's Games

MIT

Real games and minigames, MIT licensed and built on the Dot addons, made by the person who builds the platform.

Its goals, from its own goals page

  1. 1 Show what the platform can do. The games demonstrate movement, combat, vehicles, NPCs, physics, leaderboards, parties, matchmaking and dedicated servers, built from the same open Dot addons any project can use.
  2. 2 Be worth playing. A demo is no excuse for a boring game, so each one gets its own maps, modes and polish.
  3. 3 Focus on community servers. Anyone should be able to start a server running one or more of these games with the Dot Server Deploy repository.
  4. 4 Your server, your rules. A server owner can change the configuration of the game and of every addon it uses, then list the server and the game on the platform.
  5. 5 Join from anywhere. Players join a listed server from the web browser, the desktop app or a phone, and everybody plays on the same servers.
  6. 6 One server, many games. A server runs several games and switches between them while players stay connected, the way Garry's Mod and Counter-Strike community servers change map.
  7. 7 Content arrives on its own. When the game or map changes, players download what they need from the platform CDN.
  8. 8 Free and open source. Every game, map pack and addon is open source on GitHub. Most games are not finished, and they were made with Claude Code, which the author says openly.

How this ties into the platform goals

Where a goal of the games matches one of the aims above, and where it does not.

  • Show what the platform can do, and be worth playing. Matches "A reason to arrive". The games are the reason: ported classics such as surf and bunny hop, Prop Hunt and DeathRun.
  • Community servers, each with its own rules. Matches "Community servers that are easy to start" and "Open, so anyone can run it". Same aim, seen from the games.
  • Join from the browser, the desktop app or a phone. Matches "Reachable from a link" for browser and desktop. It differs on phones: the platform lists them as an aim and nothing is built.
  • Free and open source. Matches "Open, so anyone can run it". The licence covers the addons and the games; the site backend and the desktop app have their own.

Two of its goals have no platform counterpart: one server running many games, and content that arrives on its own. They describe the games, not the aims of the platform.

The games live in the zees-games GitHub organisation. Most of them are not finished.

MIT licensed, open source

Read it. Fork it. Ship it.

The Dot addons and the games on this page each carry an MIT LICENSE file in their own repository. You can use them in a commercial game, change them and redistribute them. Keep the copyright notice and you are done.

Read how it works

Every addon is a small repository with its own docs and test suite.

Fork what you need

Take one addon or all of them. Only dot-core is a hard dependency.

Run your own server

Start a dedicated server with dot-server-deploy using one command, and choose whether it talks to our backend or your own.

The licence covers the Dot addons and the Zee's Games repositories. The site backend and the desktop app are separate projects with their own licences.

Read the source on GitHub

Try it, or read the code first

Open the play center to join a game, browse live servers, or read the docs and clone an addon.