Skip to content

Flow Hello

Tobias Vorwachs edited this page Oct 26, 2026 · 1 revision

Part of the Plugin data protocol. Packet: Packet-mumcord-hello.

Flow: hello and capability discovery

Lets two Mumcord clients find out that the other one runs Mumcord and which features it supports. Every feature-gated flow starts here.

sequenceDiagram
    participant A as Client A (joins)
    participant S as Mumble server
    participant B as Client B (already there)
    A->>S: connect, sync finished
    S-->>B: UserState (A joined)
    A->>S: plugin data mumcord.hello (to everyone)
    S-->>B: relayed hello
    B->>S: plugin data mumcord.hello (one answer, direct to A)
    S-->>A: relayed hello
    Note over A,B: Both now know the other runs Mumcord and which features it has
Loading

Steps

  1. When the connection finished syncing, client A sends one mumcord.hello to everyone on the server (every session listed in receiverSessions).
  2. Everyone who joins later gets one hello, once per stay.
  3. A client that receives a hello from someone it has not greeted yet answers once, to that person only. Two clients that connect at the same moment therefore still learn about each other, and there is no ping-pong: a hello from someone already greeted gets no answer.
  4. The receiver stores the sender's feature list. Other flows look it up before sending feature-gated packets.

Limits and errors

  • Hellos from unknown sessions or from the own session are ignored.
  • app must be "mumcord", v at least 1; otherwise the message is dropped.
  • At most 16 features of 1 to 32 characters (a-z, 0-9, -, .) are kept; invalid ones are skipped.
  • A client without a hello (an official Mumble client, or a bot that never sent one) is treated as having no Mumcord features and receives no feature-gated packets.
  • Hellos are tiny and rare; they stay far below the server rate limit.

Packets used

Packet-mumcord-hello

Clone this wiki locally