Skip to content

Choosing a Service

Andrei Fedorov edited this page Nov 10, 2026 · 3 revisions

The service carries the call. A world runs one at a time; the GM picks it in Modular A/V's settings (Voice and video service) or in Plan your modules.

P2P LiveKit Jitsi
Server None LiveKit Cloud (free tier) or your own Your own Jitsi Meet
Table size Up to about 6 players Any size What your server handles
What you set Nothing Address, API key and secret Address, app id and secret
GM online for players to join No Yes Yes
Players see each other's IP Yes, unless everything goes through TURN No No
A GM's block is enforced by Everyone else's browser The server, through the player's token Everyone else's browser

How the call travels

With P2P every browser sends its voice and camera to each of the others. With LiveKit or Jitsi every browser sends once, to the server, which passes it on.

%%{init: {"htmlLabels": false, "flowchart": {"htmlLabels": false}}}%%
flowchart LR
  subgraph p2p["P2P: four players, six links"]
    direction LR
    a1((A)) <--> b1((B))
    a1 <--> c1((C))
    a1 <--> d1((D))
    b1 <--> c1
    b1 <--> d1
    c1 <--> d1
  end

  subgraph server["LiveKit or Jitsi: four players, four links"]
    direction LR
    s[Server]
    a2((A)) <--> s
    b2((B)) <--> s
    c2((C)) <--> s
    d2((D)) <--> s
  end
Loading

That is why P2P gets heavy past about six players: each one more adds a link to everybody, and every browser encodes and uploads its camera once per other player.

Which one?

  • Small table, nothing to run: P2P. Each browser sends to each of the others, so calls get heavy past a few players.
  • Larger tables, or the best quality: LiveKit. LiveKit Cloud has a free tier; you can also run your own server.
  • You already run Jitsi Meet: Jitsi. Your server needs a few settings it doesn't have by default; see the Jitsi page.

meet.jit.si and 8x8's Jitsi as a Service aren't supported, nor is Tavern's Patreon LiveKit server (you never get its key and secret).

Switching later

Plan your modules switches the service for the world: it keeps the old one on until the new one is installed, so calls keep working.

Clone this wiki locally