Chat Comics
Your chat becomes a live comic strip starring a cast of fuzzy little monsters. Every chatter gets their own, in their chat color, and it's the same one every time they show up. Only the monsters who are talking are in a panel, and two chatters going back and forth share one. Faces change with the mood: laughing at "lol", crying at "rip", jaw on the floor for "no way". Meanwhile… KAPOW!
This is the real overlay running with fake demo chat. On stream the background is transparent, so the strip sits over your game or camera.
How the story works
Panels
- A panel fits two monsters and two bubbles, and only monsters with something to say are in it. When there's room, a new message joins the newest panel. If not, a fresh panel slides in and the oldest one slides out.
- Panels come in different widths, and the gutters between them lean at different angles, so the strip looks like a real comic page.
- Every panel gets an ink-and-screentone manga background that fits the mood: speed lines for shouting, a sunburst for laughing, sparkles and bubbles for love, gloom lines for sad, a flaming aura for angry, a spiral for confused. Everyday chat gets a little scenery: a city skyline, a room, a street with power lines or a cloudy sky.
- When two chatters talk back and forth, they share a panel and turn to face each other. The @name at the start of a reply or mention is dropped, since the panel already shows who's talking.
- Captions like "Our story begins…", "Later…" and "Meanwhile, in chat…" appear when the story picks back up.
- When chat goes quiet, the strip falls away. It comes back with the next message.
Bubbles & faces
- ALL CAPS gets a jagged yellow shout bubble, a wide-open mouth and speed lines.
- Messages ending in … (or starting with "hmm") become thought clouds.
/meactions become narration boxes: "NeonWhiskers does a little victory dance".-
Faces follow the mood of the message: laughing, heart eyes, crying, angry, shocked, confused. Emotes
count too, so
KEKW,SadgeandPogChampall work. - No two monsters are alike: big round, tall, boxy or bell-shaped heads on small bodies, fur from smooth felt to shaggy, one, two or three eyes, horns, antennae, bunny or cat ears, fangs, party hats, tees, hoodies, sweaters, overalls, bow ties and scarves. Their fur is their chat name color. The streamer wears a crown. 👑
- Sometimes a chatter gets a panel to themselves with a prop: a TV with a game on, an arcade machine, pizza, a boombox, a campfire, a dog, a snowman, an easel, a rain cloud, a telescope and 31 in all. It usually fits what they said ("pizza", "lag", "gn", "happy birthday"…), and they actually use it: munching pizza, mashing a controller, playing fetch, strumming a guitar, painting, reading, lifting weights, holding an umbrella in the rain, roasting marshmallows, or nodding off while a sheep hops the fence. Some props can be used more than one way, so the same prop doesn't always play out the same.
- Monsters with arms act it out: waving while they talk, hands up when shocked, fists when angry, hands clasped for love, scratching their head when confused.
- When a mod deletes a message or bans someone, their bubble gets blacked out with a red REDACTED stamp.
Setup guide
Get it on stream
-
Add a Browser source
In OBS click + under Sources → Browser. Paste
https://comics.ixitxachitl.com/as the URL and set it to1920×1080. The background is transparent automatically. - Open the settings Right-click the source → Interact. Move your mouse over the overlay and click the yellow gear in the bottom-right corner.
- Connect your chat Under Chat sources, type your Twitch and/or Kick channel name. Add TikTok or YouTube too if you stream there (see below).
- Place the strip Under Comic strip, pick how many panels, how big they are, and which corner they sit in. You can also give the strip a title, like The {channel} Chronicles.
- Save & apply Press Save & apply and close the Interact window. Your settings are saved inside this browser source.
Chat sources
Twitch & Kick
Just type the channel name. Chat is read anonymously, so there's no login and no bot account needed. On Twitch, subs, resubs, gift subs, raids and bits each get their own splash panel.
TikTok
TikTok needs a bridge app running on your PC. If you use TikFinity, just type
1 in the TikTok box. Otherwise, paste your bridge's ws://… address.
YouTube
Paste your live stream's video ID or link, plus a YouTube Data API v3 key from the
Google Cloud Console. You can also give a bridge ws://… address instead.
Several platforms at once
Fill in as many as you like. A chatter's monster comes from their name, so someone with the same name on two platforms looks the same on both.
Tips
- A strip of 3–4 panels along the bottom works well at 1080p. For a sidebar, set the strip to 1 panel and make it tall.
- Busy chat? Messages land one at a time so each gets a moment on screen. In a very fast chat the oldest waiting messages are skipped so it never falls behind. Pace × speeds it up.
- Long messages shrink to fit. Text size sets the size they start at.
- Chat bots like Nightbot and StreamElements are hidden by default. Add more in the filter.
- BTTV, FFZ and 7TV emotes, badges and pronouns all show up.
Build a setup link
Settings in the URL
Every setting can also go in the URL, and it overrides what's saved. That's handy for running two copies with different setups, or for setting up without the Interact window. (The overlay's own Copy setup link button does the same thing.) Fill in what you need and paste the link into your browser source:
ytkey works as a URL parameter too.)
All settings
| Setting | URL parameter | Default | What it does |
|---|---|---|---|
| Chat sources | |||
| Twitch channel | channel | — | Read anonymously, no login needed. |
| Kick channel | kick | — | Read anonymously, no login needed. |
| TikTok bridge | tiktok | — | 1 uses TikFinity on this PC, or give a ws://… bridge address. |
| YouTube live | youtube | — | Live video ID or link (needs the API key), or a bridge address. |
| YouTube API key | ytkey | — | YouTube Data API v3 key from Google Cloud Console. |
| YouTube check every (s) | ytpoll | 6 | 2–60. Lower is snappier but uses the daily API quota faster. |
| Demo chat | demo | off | Fake chatters. Also runs on its own when no source is set. |
| Comic strip | |||
| Panels in the strip | panels | 3 | 1–8. |
| Panel width (px) | pw | 300 | 140–900. |
| Panel height (px) | ph | 300 | 140–900. Everything in the strip (monsters, text, outlines) scales with it. |
| Space between panels (px) | gap | 16 | 0–80. |
| Strip position | align | left | left, center or right. |
| Strip edge | vpos | bottom | bottom or top. |
| Distance from the side (px) | mx | 30 | How far the strip sits from the left or right edge. |
| Distance from the top/bottom (px) | my | 30 | How far the strip sits from the top or bottom edge. |
| Strip title | title | — | Shown above the strip. {channel} becomes your channel name. |
| Clear after a quiet spell (s) | idle | 60 | The strip falls away when chat goes quiet. 0 = never. |
| Story | |||
| Pace × | speed | 1 | 0.3–4. Higher = messages land faster. |
| Text size (px) | fs | 19 | 11–48, at the default 300px panel height; it scales with the panels. Long messages shrink to fit their panel. |
| "Meanwhile…" captions | captions | on | Narration boxes when the story starts or picks back up. |
| Props in solo panels | props | on | Sometimes a chatter gets a prop instead of a second chatter, so it looks like they're up to something. |
| Crown for the streamer | crown | on | The broadcaster's monster wears a crown. |
| Max message length | maxchars | 140 | 20–500 characters. |
| Show badges | badges | on | Twitch and Kick badges; owner / mod / member / sub / follower on YouTube and TikTok. |
| Show pronouns | pronouns | on | Twitch chatters who set them on pronouns.alejo.io. |
| BTTV / FFZ / 7TV emotes | extemotes | on | Third-party emotes in bubbles. |
| Splash panels for subs, gifts, raids & bits | events | on | Twitch only. |
| Filtering | |||
| Show !commands | cmds | off | Show messages that start with !. |
| Show first-time chatters | firsttime | off | Twitch flags these; spam bots usually show up this way. |
| Hide known bots | botlist | on | Uses the public TwitchInsights bot list. |
| Always hide these users | ignore | nightbot, streamelements, streamlabs, moobot, fossabot, wizebot | Comma or line separated. |
Switches take 1 (on) or 0 (off) in the URL.
For tinkerers
Custom integrations
Streamer.bot or your own scripts can add a line to the comic by calling this inside the browser source:
window.chatComics.say("name", "message", {
color: "#ff00aa",
platform: "twitch",
replyTo: "othername", // optional: drops a leading "@othername"
});
window.chatComics.clear() clears the strip.
Questions
I only see demo chatters
No chat source is set yet. Add your channel in the settings (or the URL) and they'll stop.
Can a chatter pick their monster?
Not yet. The look comes from their name, so it's always the same. Their fur matches their chat name color.
My settings disappeared
Settings live in that browser source's storage. If your setup can't save them, the panel will tell you — use a setup link from the builder above instead.
Can I run two copies?
Yes. Give each browser source its own setup link and the URL settings win.