Description
Changelog
Reviews (0)

Real-time multiplayer chat for Godot 4 games — without running your own chat servers.

You create a studio account, drop in one node, and your players can talk in isolated rooms. Rooms and chat history are completely separated by app_id, so different games never see each other. Players connect with short-lived JWTs that you mint on your own game server.

No infrastructure to maintain. Just chat.

Free tier limits:

  • 20 concurrent connections
  • 2 rooms
  • 500 messages per day
  • 20 messages of history returned on join

Higher limits are available on paid plans.

This addon does not host chat itself. The live API is https://aponteplace.io. Create a studio account at https://bgdchat.com to get an app_id and a server secret.

Important: Do not put an sk_live_ secret in a shipped game. Mint player tokens on a trusted game server. The Godot client only stores the player JWT and talks to the WebSocket.

Install

  1. Copy addons/bdg_chat into your project.
  2. Project → Project Settings → Plugins → enable BDG Chat.
  3. Add a BDGChatClient node, or open addons/bdg_chat/example/chat_demo.tscn.

In a game

$Chat.app_id = "app_xxxxxxxx"
$Chat.player_token = player_jwt_from_your_game_server
$Chat.connect_to_chat()

# Wait for the connected signal
await $Chat.connected

$Chat.join("lobby")
$Chat.send_chat("hello")

Exports

  • ws_url (default wss://aponteplace.io/ws)
  • app_id
  • player_token

Methods

  • connect_to_chat()
  • join(room)
  • send_chat(text)
  • leave()
  • close()
  • is_socket_open()

Signals

  • connected
  • disconnected(code, reason)
  • joined(room, user_id, display_name, users_online)
  • chat_received(text, display_name, user_id, ts, room)
  • user_joined(user_id, display_name)
  • user_left(user_id, display_name)
  • error_received(code, message)
  • raw_event(payload)

The client sends a ping every 25 seconds. Minting player tokens (server only). BDGPlayerTokens.mint() POSTs to https://aponteplace.io/apps/{app_id}/player-tokens with Authorization: Bearer sk_live_... Use this from a trusted server or a private tool — never from a released client.

Protocol

  • Game server: POST /apps/{app_id}/player-tokens with the studio secret.
  • Client connects to: wss://aponteplace.io/ws
  • Join: { "type":"join", "room":"lobby", "app_id":"app_xxx", "token": PLAYER_JWT }
  • Chat: { "type":"chat", "text":"hello" }
  • Events: joined, chat, user_joined, user_left, error

Requirements

  • Godot 4.7 or newer
  • A BDG Chat studio account and app_id
  • A player token minted by your game server

The live API and product are from XStreamIO.

License: MIT

Copyright (c) 2026 XStreamIO / Misael Aponte

Site: https://bgdchat.com

API: https://aponteplace.io

Company: https://xstreamio.com

Changelog for version V1.0.0-alpha

No changelog provided for this version.

Reviews

BDG Chat has no reviews yet.

Login to write a review.

Consider supporting the creators!

If you enjoyed this asset consider supporting its creator. Follow the link below.