Talo logoDocsChangelogGitHub

Multiplayer made simple

TL;DR

Talo provides a simple multiplayer toolkit designed specifically for indie games. Build real-time features like chat systems, friends lists, parties and messaging with just a few lines of code using our Godot plugin or Unity package.

Everything runs on the Talo Socket - a secure WebSocket connection that handles authentication, message validation and real-time delivery. With Talo, there's no need to manage your own infrastructure or build networking systems.

Design philosophy

Talo's multiplayer features are designed for lightweight, asynchronous interactions between players - not as a full-scale real-time multiplayer engine.

WebSocket-based
WebSockets use TCP (not UDP) - this means slightly higher latency, but the tradeoff is simplicity - no complex networking code, no server hosting, no NAT traversal.

Perfect for:

  • Chat systems and player messaging
  • Friends lists and social features
  • Turn-based or asynchronous gameplay
  • Lobby systems and matchmaking
  • ".io" style games
  • Cross-player notifications and events

Not ideal for:
Fast-paced shooters, fighting games or anything requiring frame-perfect synchronization.

Strategic optimization:
You can work around TCP limitations by simulating more on the client-side and sending discrete state updates rather than continuously streaming updates. Instead of sending position every frame, send direction changes and simulate the movement.

Built on the Talo Socket

The Talo Socket is a secure WebSocket connection that provides real-time, bidirectional communication between your game and Talo.

Security built-in

The socket uses two-tier authentication to ensure only verified players can connect. Socket tickets identify your game, while player tokens authenticate individual players. All messages are validated against a robust schema and invalid messages get rejected automatically.

Automatic management

If you're using the Godot plugin or Unity package, the Talo Socket runs automatically in the background. Opening connections, automatic reconnection and player identification are all handled for you. You don't need to manage WebSocket connections or debug authentication flows.

Track who's online with presence

Player presence automatically tracks when players are online or offline. You can check the dashboard to see how many players are currently in your game or query presence data to build social features.

Custom statuses

Beyond basic online/offline tracking, you can set custom statuses to show what players are actually doing:

  • "In a match"
  • "In lobby"
  • Any activity that makes sense for your game

Real-time updates

Presence updates are delivered in real-time through the Talo Socket. When friends come online, go offline or change their activity, your game gets notified instantly. No polling, no manual checking - just subscribe to presence events and update your UI automatically.

Use this to build activity feeds, online friend counters or matchmaking systems that show available players. Player presence integrates perfectly with channels and relationships to create rich social experiences.

Create communication spaces with channels

Channels let you create topic-based communication spaces where players can send and receive messages. Channels are perfect for in-game chat, guild systems, game lobbies or any scenario where groups of players need to communicate.

How channels work

Players can subscribe to multiple channels. When someone sends a message to that channel, all subscribed players receive it instantly. Players can create channels, join existing channels and send messages.

Owner-based management

Each channel can have an owner (typically the player who created it) with full control:

  • Update channel settings and properties
  • Delete channels when no longer needed
  • Transfer ownership to another player

This authoritative model makes channels perfect for guild leaders, party hosts, or lobby managers.

Custom properties

Channels support custom properties to store metadata like game mode (e.g. "captureTheFlag", "deathmatch"), skill level requirements, region preferences or map selection. You can also update channel props on-the-fly so that they're always up to date.

Private channels

Create invite-only private channels for teams, direct messages or exclusive groups. Private channels won't appear in public listings and players can only join when invited by the owner.

Temporary membership

For temporary game sessions, enable the temporary membership option. Once enabled, players automatically leave the channel when they go offline. Alternatively, auto cleanup mode deletes the channel when the owner or last member leaves - perfect for game lobbies.

Channel storage

Channel storage provides a shared data pool for all members. Store values like shared guild gold, lobby settings or team progress. All members can read and update shared data, with automatic real-time notifications when values change.

Build social features with relationships

Player Relationships make it easy to build friends lists, follower systems and player-to-player messaging. Talo handles setting up communication between players, persistent connections and message notifications automatically.

Flexible pub/sub model

Relationships work through a subscription-based system. When Player A subscribes to Player B and the subscription is confirmed, Player A receives all broadcast messages that Player B sends. These subscriptions persist across sessions, so you can query them like any other game data.

Unidirectional and bidirectional

Talo's Player Relationships are designed to be flexible. It supports two relationship types:

  • Unidirectional: Works like following someone on Twitter - great for when the subscribed-to player does not need to know about their subscribers
  • Bidirectional: Works like traditional friend lists where both players must accept - perfect for co-op games where a mutual connection is required

Real-time broadcasting

Once connected, players can broadcast messages to all their subscribers in real-time. Share status updates, high scores, rare item finds or any custom game event. Broadcasts accept any data that can be converted to a string - send plain text, JSON-encoded objects or custom formats that fit your needs.

Event notifications

The Talo Socket delivers instant notifications for all relationship events: requests received, requests confirmed, requests cancelled, relationships ended and messages received. Your game can respond immediately with UI updates or trigger gameplay events based on friend activity.

Both the Godot plugin and Unity package include a complete friends list demo showing the full flow: searching for players, creating subscriptions, accepting requests, displaying online status using presence and broadcasting messages between friends.

How it all works together

Here's a hypothetical example showing how these features can be combined together in a co-op dungeon crawler:

  1. Build your network: Alice and Bob become friends using Player Relationships. They establish and confirm a bidirectional subscription and can now broadcast messages to each other.
  2. See who's available: Alice sees Bob's presence status is "Looking for party" while other friends show "In dungeon" or "In lobby".
  3. Form a party: Alice creates a private channel and invites Bob and Charlie. Alice uses channel storage to set the target dungeon and difficulty - everyone sees these values update in real-time.
  4. Enter the dungeon: All three update their presence to "In dungeon" and start playing. The channel stays active for coordination.
  5. Broadcast achievements: Bob finds a legendary item and broadcasts it to all their friends through relationships - even those not in the dungeon get notified.

No server setup, no WebSocket code, no networking debugging. Everything just works!

Get started

Grab the Godot plugin or Unity package, create an account + API key and start building with just a few lines of code.

Player Presence

Track who's online and display custom statuses like "In lobby" or "In game".

Channels

Build chat systems, lobbies and guild spaces with real-time messaging and shared storage. A chat demo is included to get you started.

Player Relationships

Create friends lists and follower systems with request flows and real-time broadcasting. A friends list demo is included showing the complete flow.

Frequently asked questions

1.Do I need to manage my own servers?

No. The Talo Socket handles all networking, authentication, message validation and real-time delivery automatically. You don't need to set up to manage any of your own infrastructure.

2.How does authentication work with the Talo Socket?

The socket uses two-tier authentication: socket tickets identify your game, while player tokens authenticate individual players. All messages are validated automatically and invalid messages get rejected.

3.What's the difference between channels and player relationships?

Channels are for group communication - perfect for chat rooms, lobbies and guilds. Player relationships are for direct player-to-player connections - ideal for friends lists and follower systems. Use channels for many-to-many communication and relationships for one-to-one or broadcast messaging.

4.Can I use Talo multiplayer for real-time gameplay?

It depends on your game type. Talo works well for turn-based games, asynchronous multiplayer, .io style games and lobby coordination. For fast-paced action requiring very low latency, you'll want UDP-based solutions. The strategic approach is to send state changes rather than continuous position updates.

5.How do I set up player presence?

Player presence tracks automatically when players connect to the Talo Socket. You can set custom statuses like "In lobby" or "In match" and subscribe to presence updates to see when friends come online or change their status.

6.Can I store data in channels?

Yes. Channel storage provides a shared data pool for all members. Store values like lobby settings, team scores or guild resources. All members can read and update shared data with automatic real-time notifications when values change.

7.Are there demos available?

Yes. The Godot plugin and Unity package both include working demos: a chat demo for channels and a complete friends list demo for player relationships showing the full flow from searching to messaging.

8.Do I need to write WebSocket code?

No. If you're using the Godot plugin or Unity package, the Talo Socket runs automatically in the background. Talo handles connections, reconnections and authentication.

Get started for free