Turn-Based Multiplayer API & Authoritative Server
for Unity, Godot and other Engines

TurnKit is an authoritative game server for turn-based games that enforces turns, hides player data, and prevents cheating. Your game logic stays on the client, works with Unity, Godot, or any engine.

Game Client
TurnKit Relay
Signed Match Result
Overview

Why TurnKit?

TurnKit is purpose-built for turn-based games: faster to ship, harder to cheat, and cheaper to run than alternatives. See how TurnKit compares to other options.

Works with Unity
Works with Godot
Works with any engine
REST + WebSocket API
Turn Relay

Built for the hard parts of
turn-based multiplayer.

The parts that take weeks to get right, TurnKit handles them out of the box.

Turn Enforcement

Prevent players from acting out of turn. Server-side turn validation means no client-side tricks can bypass it.

Round robinFree (no enforced order)
🔄

Reconnects

TurnKit automatically reconnects dropped connections and replays missed moves so matches stay smooth.

Hand Hiding

Server-side data masking with managed lists for hidden hands, decks, and other private state.

Signed Match Results

A cryptographically signed result is generated automatically at match end for rewards, leaderboards, or your own webhooks.

Player Voting

Clients validate moves in the background and vote pass/fail. The server applies consensus so honest players can reject invalid moves.

Validate move before continuingGame does not wait for votes, handle when they comeOff
On vote fail
End matchSkip turn
How It Works in Code

Simple API. Match players, send moves, validate turns, and handle cheating without writing server side game logic.

// Find a match
await Relay.MatchWithAnyone("player1", ExampleConfig.Slug);

// Send a move as a Json
Relay.SendJson(moveData);
// Optionally use server lists for hand hiding
var myHand = Relay.GetMyLists(ExampleConfig.Tag.hand).First();
myHand.Move(SelectorType.ALL).To(revealedList);
myHand.Spawn("aceDiamonds");
Relay.EndMyTurn();

// Validate & vote
Relay.OnMoveMade += (message) =>
{
    bool isValid = IsMoveValid(message);
    Relay.Vote(message.moveNumber, isValid);
    // Configurable: Server can wait for consensus before the next turn (SYNC)
    // or allow moves to flow while validating in the background (ASYNC).
};

// 5. React if cheating is detected
Relay.OnVoteFailed += () => EndGame("Invalid move detected");

See full Unity examples. → Tic Tac Toe, Rock Paper Scissors games in under 100 lines.

Try the Live Tic-Tac-Toe Demo (Next.js + React)

Pricing

Free to start.

No credit card needed to start. First 20 concurrent players are free for all modules. Relay pricing:

Dev
$0
20 concurrent players
Indie
$4.99/mo
40 concurrent players
Studio
$9.99/mo
80 concurrent players
Pro
$19.99/mo
160 concurrent players
Scale
$39.99/mo
320 concurrent players
Enterprise
$79.99/mo
640 concurrent players
Leaderboards uses the same simple structure: First 20 CCU free, then $1.99/mo for 40 CCU, and up. See full pricing
Burst protection included. If your game spikes past its limit, TurnKit automatically grants 24 hours of unlimited capacity once per month.
Modules

Use only what you need.

Start with Relay or Leaderboards today, then add more TurnKit modules as your game grows.

Relay
Available
Leaderboards
Available
Advanced Matchmaking
Coming Soon
PlayerStore
Coming Soon

Not locked in. Each module is optional. Use your own systems and connect via webhooks, or adopt TurnKit modules gradually as your game grows.

Contact

TurnKit is operated by Nenad Nikolic. For support, billing, or legal requests, email:support@turnkit.devMail: Svetosavska 107v/17, Kikinda, Serbia

TurnKit - Turn-Based Multiplayer Backend for Unity & Godot