Sending

Voice chat for your Owlbear Rodeo table - no app switching required!

Sending is an Owlbear Rodeo extension that adds secure real-time voice chat, a GM music channel, and troubleshooting text chat directly inside your favourite virtual tabletop. Click the Join Call button, talk to your party, and stay focused on the game.


Key Benefits

🗣️ Built-in voice chat - talk with your players without leaving Owlbear Rodeo or juggling a separate app

👍 Minimal setup required - all players who are present are automatically added to the voice chat waiting room, all they need to do is click Join Call

🤝 Peer-to-peer connections - audio flows directly between players, keeping latency low and your conversations private, with fallback to a secure relay service if peer-to-peer is blocked

🎵 GM music channel - route background music or ambient sound from any audio source on your computer into the call

💬 Text chat - a lightweight troubleshooting chat with @mentions and notifications, right in the popover

🔬 Slimline mode - minimize the popover to a compact strip of avatars so it never covers your map

🔉 Per-player volume controls - raise or lower the music channel and each player's voice independently, or cut your own speakers whenever you need silence

Auto-rejoin - if your browser reloads, Sending automatically brings you back into the call


How It Works

Sending uses WebRTC, the same technology behind Discord, Google Meet, and other modern voice apps. The difference is that Sending connects every player directly to every other player (a "mesh" network) rather than routing everything through a central server.

What this means for you:

⚠️ The only time audio passes through a server is if you explicitly configure a TURN relay, for players behind restrictive firewalls or VPNs that prevent peer-to-peer discovery (see the TURN Server section below).


Getting Started

1. Install The Extension

Copy the Sending manifest URL:

https://sending-btvl.onrender.com/manifest.json

Then head to your Owlbear Rodeo RoomExtrasExtensions+ (Add Custom Extension), paste the URL, and confirm:

2. Enable **Sending** In Your Room

While still within the Extensions Manager popover, make sure Sending is toggled on for this Room:

You should see the Sending icon appear in the top-left extension Action tray.

3. **Grant permissions**

OBR will ask you to allow microphone access and audio autoplay. Accept both; Sending needs the microphone to transmit your voice, and needs autoplay to let you hear other players.


Working with Under-18s (Safeguarding) - GM-only

Sending has a special Safeguarding mode (under-18s) that forces all members into a silent 'waiting room' whenever the GM is not present. This can be found in the GM's Settings page, just below the faders and the mic selector, and this setting persists between sessions:

If Safeguarding mode is enabled, all player mics are muted (and cannot be unmuted) and text chat is disabled (and cannot be requested):

Whenever the GM is absent, anyone who was already joined to the call or has just joined to the call will see their own mic mute button activated and unavailable to them, and will see a warning message on-screen:

And as soon as the GM (re)joins the call, another notification message is seen, and the players' own mic mute button becomes available to them once again:

Joining a Call

  1. By default, Sending will open its own popover whenever the Room is reloaded, but if it's not currenly open just click on its icon
  2. In the popover, click Join Call in the upper-right corner
  1. Your browser will ask for microphone permission if it has not been granted before. Click Allow
  2. Once connected, you will see your avatar get a green ring in its player card, and the join button will change to Leave Call

When you are connected, two buttons appear to the left of the Join/Leave button:


The Player Grid

The main area of the popover is a two-column grid showing every player in the room. Each player card who isn't you will display:

  1. Avatar circle - shows the player's colour and initials (or a token image if the GM has assigned one)
  2. Volume slider - drag left or right to adjust that player's volume relative to others. A gain readout appears on the avatar while you drag
  3. Player name - shown below the avatar, with "(you)" next to your own

Avatar Ring Colours

The border around each player's avatar tells you their status at a glance:

Ring Meaning
Green ring with glow Connected and talking
Green border (no glow) Connected and quiet
Red border Muted (either self-muted or muted by the GM)
No border Not in the call

Below the player cards you will also see a Music card and a Settings card, described in the sections that follow:


GM-only Controls

If you are the GM (Game Master), you have extra powers on each player card:

⚠️ If you see any player cards showing the TURN icon, you may want to monitor their combined bandwidth costs on the TURN server - configuring the server and checking its costs are both explained in the TURN Server section below.

Call Duration

The GM also sees an elapsed time display in the header, showing how long the current call has lasted, in HH:MM:SS format.


Music Channel

The Music card in the player grid lets the GM stream a secondary audio source into the call from their device - typically background music, ambient soundscapes, or sound effects from a separate application like https://kenku-fm.

How to Use (GM)

  1. Open the Settings panel and select a music device with the Music Input dropdown. ⚠️ This can be any audio input that your operating system recognises - for example, a virtual audio cable (recommended), a stereo mix, or a loopback device from your music player
  1. Press the Settings Back button to return to the player grid, and click the Start button on the Music card. (The Start button is greyed out until you select a device.), and everyone will hear any audio that is already streaming from the Music Input source
  1. To stop the music, click the Stop button on the Music card, and everyone will hear the music cease

Note that as GM you can Start the Music channel and then independently alter how loud it is for you with the card's volume slider, and can also mute the Music in your own mix with the card's small speaker button, without affecting your players.

How It Looks

Player Controls

Players (non-GMs) see a Connect button on the Music card if music is not yet playing or if their connection to the Music channel has been interrupted. Clicking it sends a request to the GM's device to reconnect, or to start the music if it is currently stopped. Once music is playing, players can adjust the music volume or mute/unmute it for their own mix.


Text Messaging

Sending includes a lightweight text chat at the bottom of the popover, intended for troubleshooting (eg. "I can't hear you, can you hear me?", "Your mic is cutting out") rather than as a primary chat system.

Key Features

>

When the GM has chat disabled, everyone's input field is greyed out with a "Chat is disabled" placeholder, serving as a reminder that chat is turned off. Players can request chat to be enabled - helpful if they drop off the voice call and can't reconnect!


Slimline Mode

When you are already in a call and have your mix set just as you like it, if you want to reclaim screen space, click the minimize Minimize button (a small circle in the top-right corner of the header) to enter slimline mode. Slimline mode replaces the full popover with a compact strip of avatar circles. The popover resizes to fit only the avatars, so it takes up much less space on your screen, and it rescales automatically so that if you can fit the minumum useful avatar size, you can display the different Slimline modes.

Three Layouts

Click the layout button (it shows the icon and the name of the next layout mode) to cycle between:

Your layout preference is saved and will persist across sessions.

Interactions in Slimline Mode

The Music avatar is always visible in slimline mode, even when music is stopped, so it stays in a consistent position.


Settings Panel

Click the Settings card (the cog icon at the end of the player grid) to open the full settings panel. Click Back to return to the player grid.

What You Will Find

For all players:

GM-only controls (inside the collapsible "Voice and Text Chat Options" section):


TURN Server (Optional)

Most of the time, Sending connects players directly using STUN (a lightweight protocol for discovering your public IP address). This works on most home and mobile networks at no cost.

However, some players may be behind corporate firewalls, symmetric NATs, VPNs, or other restrictive network configurations that block direct peer-to-peer connections. In these cases, you can configure a TURN server to relay audio traffic with the same encryption and privacy as STUN connections.

⚠️ When You Might Need TURN

  • A player simply cannot connect to others, even after retrying
  • The Diagnostic Log shows ICE connection failures
  • The player is on a corporate or university network with strict firewall rules

Why Not Use TURN All The Time?

Because the server is handling all the voice data that is being passed between the relayed members, there is a cost charged for the data transferred. This is usually very small, much less than one GBP/USD/EUR per Gigabyte, and for voice-only chats it is usually negligible, but a worst-cast scenario would be 8 players all relayed through TURN:

Parameter Value
Maximum voice bitrate 192kbps (duplex)
Music channel for all players fixed 192kbps
Total bandwidth ~12Mb per ssecond
~5.4GB per hour
Typical cost per GB £0.40 or $0.40 or €0.40
Cost per hour £2.16 or $2.16 or €2.16

⚠️ Of course, fewer players and/or lower voice bitrate will reduce these figures accordingly. Some TURN services offer a free quota, eg. 20GB/month.

Configuration

In the Settings panel, expand the TURN Server section. Enter:

These values are shared with all players in the room automatically via OBR room metadata, so if they fail to negotiate a direct STUN connection, their device will automatically fallback to the configured TURN relay.

Test Button

Click "Test connection to server" to verify that your TURN server is reachable and can allocate a relay. The result will show either "Relay OK" (green) or an error message (red).

Cost Estimator

Due to the costs associated with running a TURN relay, we have included the ability to keep track of how many chat members must use TURN, and what your ongoing cost estimate is. Immediately below th eTURN Server header you can enter your 'Cost per GB' of data, using the currency symbol field and entering the cost per Gigabyte quoted to you in your TURN subscription.

The TURN Server header shows live statistics:

⚠️this also shows a tooltip containing the most recent TURN bitrate (in kbps) when you hover your mouse over it

This helps you keep an eye on relay costs for a hosted TURN service. If you want to zero the cumulative record of bandwidth used to date, you can click on the Reset bandwidth counter button and you will see "Reset OK" (green), and the GB value and estimated cost values in the Turn Server header will also go to zero.


Diagnostic Log (GM only)

A collapsible record of the last 200 lines of connection events, errors, and state changes. Useful for troubleshooting connectivity but not saved at session close. Includes a "Copy log" button, to allow you to paste the ocntents into a support conversation.


Troubleshooting

"My microphone is not working"

"I cannot hear other players"

"There is echo or feedback"

"A player cannot connect at all"

"The extension is not appearing"

Support

Discord is the main OBR community hub and the place to find help and answers - you can join it through this invite link: https://discord.gg/u5RYMkV98s and then search for "Sending - integrated secure voice chat" to find the conversation about this extension, or just open a new bug report in the ❓ | #extension-help channel.


Privacy Features

Sending is designed with privacy in mind:


Icon Credits

Icon Description Author Licence
Crown coin (TURN relay indicator) Shows that a player's connection is being relayed through a TURN server Lorc via game-icons.net CC BY 3.0
Lightning bolt (STUN direct indicator) Shows that a player has a direct peer-to-peer connection via STUN Inline SVG --

All other icons (microphone, speaker, music note, cog, chevrons, layout dots, etc.) are original inline SVG components.