Table of Contents
Emoji Wall
The emoji_wall module provides a browser-based overlay for OBS that displays floating emojis and custom emotes from chat as animated particles. It supports all Unicode emoji characters (including ZWJ sequences, skin tone modifiers, and flag sequences) as well as any custom emotes configured in your Owncast instance.
This is a built-in module that ships with Owlbot and is enabled by default.
Quick Start
When Owlbot starts, it logs the overlay URL with a unique token:
Emoji wall overlay URL: https://stream.logal.dev/owlbot/emoji_wall/srQPcfouonD5r26K-mwOElNVZtjTHyV5gi4Dv7Y_CWs
- Copy the URL from the startup log and add it to OBS as a Browser Source.
- Set the browser source dimensions to match your canvas size (e.g. 1920x1080).
- When viewers send messages containing emojis or custom emotes in chat, they appear as floating animations on the overlay.
Web UI
The module serves an overlay page at /owlbot/emoji_wall/<token>/ designed for use as an OBS browser source. The page connects to the bot via Server-Sent Events and renders incoming emojis and emotes as animated floating elements.
Configuration
Configure the overlay behavior in config.yaml under modules.emoji_wall:
modules:
emoji_wall:
# Minimum emoji size in pixels.
# Default: 20
min_size: 20
# Maximum emoji size in pixels.
# Default: 60
max_size: 60
# Minimum animation duration in seconds.
# Default: 3
min_duration: 3
# Maximum animation duration in seconds.
# Default: 10
max_duration: 10
# Maximum number of emojis on screen at once.
# Default: 50
max_count: 50
# Direction emojis travel. Named presets: up, up-right, right,
# down-right, down, down-left, left, up-left, random.
# Also accepts a degree value (0-359, where 0 is up, clockwise).
# Default: "up"
direction: "up"
# Maximum rotation angle in degrees. Each emoji gets a random
# rotation between -max_rotation and +max_rotation.
# Set to 0 to disable rotation.
# Default: 25
max_rotation: 25
Token
The overlay token is auto-generated on first run and stored in config.yaml. You can also set a custom token manually:
modules:
emoji_wall:
token: "your-custom-token-here"
The token prevents casual discovery of your overlay URL. Anyone with the token can connect to the emoji wall SSE endpoint, but the data transmitted (emojis from public chat) is not sensitive.
Query Parameter Overrides
All configuration options can be overridden via query parameters on the overlay URL. This lets you create multiple overlays with different settings without modifying config.yaml:
https://stream.logal.dev/owlbot/emoji_wall/srQPcfouonD5r26K-mwOElNVZtjTHyV5gi4Dv7Y_CWs?direction=random&max_count=100&min_size=30&max_size=80
Direction Values
The direction setting controls which way emojis travel:
| Value | Direction |
|---|---|
up |
Emojis rise from bottom to top (default) |
up-right |
Emojis travel diagonally upward-right |
right |
Emojis travel left to right |
down-right |
Emojis travel diagonally downward-right |
down |
Emojis fall from top to bottom |
down-left |
Emojis travel diagonally downward-left |
left |
Emojis travel right to left |
up-left |
Emojis travel diagonally upward-left |
random |
Each emoji gets a random direction |
0-359 |
Numeric degree value (0=up, 90=right, 180=down, 270=left) |
Examples
# Falling confetti effect
modules:
emoji_wall:
direction: down
min_size: 15
max_size: 30
min_duration: 2
max_duration: 5
max_rotation: 360
# Large dramatic emojis
modules:
emoji_wall:
direction: random
min_size: 50
max_size: 100
min_duration: 5
max_duration: 15
max_count: 20
Built-in Modules
Creating New Modules