Skip to content

Packet mumcord screen

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

Part of the Plugin data protocol. Flows: Flow-Screen-Share, Flow-Direct-Connection.

Packet mumcord.screen

Purpose. Agrees who shares a screen and who watches it. The media itself never travels as plugin data; it goes over a direct connection.

dataID mumcord.screen
Encoding JSON object
Version sent / accepted 1 / 1 and higher
Sent to Mumcord users in the own channel who announced screen-share
Defined in crates/engine/src/screen_share/signal.rs

Message types

t Fields Meaning
share live, paused, sound (booleans) The sender's share: live or not, paused, with sound.
watch none The sender wants to watch the receiver's share.
accept none The receiver may watch the sender's share now.
full none The sender's share already has 8 viewers.
unwatch none The sender stopped watching the receiver's share.
viewers list (sessions, at most 8) Everyone watching the sender's share. Must be checked against the people in the channel.

Examples

{"v":1,"t":"share","live":true,"paused":false,"sound":true}
{"v":1,"t":"watch"}
{"v":1,"t":"viewers","list":[15,23]}

Version and limits

  • At most 8 viewers per sharer (MAX_VIEWERS); the ninth gets full.
  • Unknown fields are ignored.

The media stream (not plugin data)

After accept, the viewer opens a stream of kind 2 over the direct connection. The frame format (20-byte header, VP9 video, Opus audio) is documented in Flow-Direct-Connection.

Privacy

Reveals that someone shares their screen and who watches. The picture and sound are only sent to accepted viewers over the encrypted direct connection.

Used in

Flow-Screen-Share, announced via Packet-mumcord-hello.

Clone this wiki locally