A physical table with digital character sheets
Players keep sheets on a phone or laptop and share rolls into party chat. The live starter can react to those roll messages while minis and terrain remain center stage.
For builders, streamers, and wonderfully overbuilt tables
Tavern Scribe turns campaign moments into signals your room, stream, or automation can react to. Fire signed webhooks for the full event catalog, or start with our public ESP32 project and make a shared natural 20 light the room before the cheer dies down.
Open-source PlatformIO firmware, a documented SignalR client, captive-portal setup, reconnect handling, and relay effects for natural 20s and natural 1s.

Keep the table you love
Use as much or as little Tavern Scribe as fits the group. The signal can begin with a character page, character-sheet roll, party chat, a VTT map, or a session event while the actual adventure stays around minis, paper, and friends.
Players keep sheets on a phone or laptop and share rolls into party chat. The live starter can react to those roll messages while minis and terrain remain center stage.
Put maps, tokens, dice, and chat on the shared screen. Webhooks can turn captured campaign events into lighting, sound, notifications, or a completely custom service.
Translate crits, kills, session state, and published story artifacts into OBS overlays, soundboard cues, clip markers, or audience-facing effects.
The technical primitives
Tavern Scribe captures the meaning once, then gives builders a durable automation path and a low-latency table path. Pick the transport that matches the job.
01 · Capture
A shared roll, kill, level-up, loot claim, map-zone trigger, session transition, recap, or newspaper becomes a named campaign event.
02 · Record
The event spine gives that moment an id, type, timestamp, campaign context, and event-specific data.
03A · Stable rail
Filtered JSON delivery to a public HTTPS endpoint, with test sends, retries, delivery history, and replay.
03B · Live starter
The public ESP32 example joins party chat and reacts to shared natural-20 and natural-1 roll messages with minimal delay.
Webhooks · available now
Add a public HTTPS endpoint in Campaign Settings, select only the moments your rig needs, reveal the signing secret once, and send a test before game night. Tavern Scribe signs every body with HMAC-SHA256 and keeps the delivery trail visible.
{
"id": "evt_…",
"type": "dice.natural_20",
"createdAt": "2026-08-25T…Z",
"apiVersion": "2026-08-01",
"campaign": { "id": "…", "name": "The Amber Court" },
"session": { "id": "…" },
"actor": { "characterId": "…" },
"data": {
"name": "Elyra Dawnwhisper",
"expression": "1d20+7",
"total": 27
}
}Current webhook catalog

A player shares a roll. Party chat sees the result. The table device hears the same message and fires its effect.
Live SignalR starter · public on GitHub
The public loji-gaming/tavern-scribe-live-embeded repository is a working PlatformIO example, not a mockup. It handles Wi-Fi setup, the SignalR JSON handshake, campaign room registration, keepalive, reconnects, dice-message parsing, and two non-blocking relay effects.
What would your table do?
The primitives stay plain so the result can get strange. Make one lamp blink, orchestrate a streaming rig, or give a model castle opinions about the party's choices.
Gold for a crit. Red for a natural 1. A crypt zone dims the room and wakes the fog.
Land a sting on the killing blow, ring a bell on level-up, or change the soundscape as a scene turns.
Drive overlays, scene changes, clip markers, chat posts, or a custom audience interaction from named events.
The starter rig
The reference project targets an ESP32 and two relay outputs. These are ordinary search links, not affiliate recommendations.
Mains voltage is not a cantrip. Keep relay projects low-voltage — 12V LEDs are plenty dramatic — unless you are qualified for wall-power work.
Questions before initiative
Roll for tinkering
Start with one shared roll and one light. The same foundation can grow into the automation, prop, or production system your campaign deserves.
Building something unusual? Show us in Discord. The stranger the prop, the better.