AI live stream hosts
Run a virtual presenter that responds to selected viewer comments. The IAMX console manages the character's spoken replies while your broadcast software handles the stream.
That division of labour is the whole design. Your encoder already knows how to stream; what it cannot do is decide which of four hundred comments deserves an answer, keep the character from repeating itself, or silence it in half a second when it says something you'd rather it hadn't. That is what the operator console is for.
How the pieces fit
| Piece | Job | Who provides it |
|---|---|---|
| Comment bridge | Watches the live chat on the platform and forwards each comment to IAMX | IAMX has one for TikTok; any other platform is a small script |
| Queue | Holds comments in order, one being answered at a time | IAMX |
| Operator console | Promote, skip, ban, hand-write answers, mute | IAMX — Channels › Livestream in the studio's top bar |
| The character | Answers out loud in its own voice | IAMX |
| Renderer | Draws the character — an Unreal window, a browser page, or a cloud MetaHuman | You choose |
| Encoder | Captures the renderer and pushes it to the platform | OBS, on your machine |
The operator console
Open Channels › Livestream in the top bar. The page is titled Livestream Console. Choose the character in Select a character; everything on the page applies to the selected character.
The status bar
| Indicator | Meaning |
|---|---|
| LIVE / FROZEN | Whether new comments are being accepted. Frozen means arriving comments are discarded, not held. |
| WS / POLL | A green WS dot (tooltip “Realtime active (WS)”) means the console is getting instant updates. POLL (“Polling fallback”) means it fell back to refreshing every ten seconds — everything still works, it just feels laggier. Signing out and back in usually restores it. |
| NPC: IDLE / ANSWERING / SPEAKING | What the character is doing right now. If this indicator is missing entirely, no renderer is connected and nothing will ever be answered. |
| Queued / Total | Comments waiting, and rows currently loaded in the feed. |
The controls that matter when things go wrong
| Button | Key | What it does |
|---|---|---|
| MUTE | Space | Stops the character mid-sentence. The queue is kept. |
| EMERGENCY | Esc | Stops it and skips every waiting comment. The panic button. |
| PAUSE NEW MESSAGES | F | Closes the door while you talk over the stream yourself. The button then reads RESUME INTAKE; press it (or F) again to reopen. |
| CLEAR QUEUE | — | Skips everything waiting, without interrupting the current answer. |
| SPEAK NOW | — | The unstick button. Forces the oldest waiting comment to be answered, and revives anything that got stuck half-answered. |
Making it say exactly what you want
Two controls bypass the AI completely and put your words in the character's mouth:
- 📢 Make NPC say: — type a line and press SAY. The character speaks it verbatim in its own voice, after it finishes the sentence it is on. This is how sponsor reads, announcements and corrections are done.
- ✍️ Custom Reply on any comment — you write the answer, the character reads it, and the comment is marked as answered. Perfect for the question you want handled precisely.
Queue management
The Queue Management panel is the running order. Choose the order with FIFO (oldest first), LIFO (newest first) or Mixed, and filter by status. Each card shows its position, who asked, from which platform, and how long ago. Per comment you can:
| Action | Use it when |
|---|---|
| Move Up | A good question is buried behind twenty greetings. |
| Skip | Not worth answering, but keep it in the record. |
| ✍️ Custom Reply | You want to answer this one in your own words. |
| Requeue | You skipped something you shouldn't have. |
| Delete | Remove it from the feed. |
| Ban | Stop this person contributing at all. You are asked for a reason. |
The Conversation Feed is the running record of everything said, by viewers and by the character. The tabs below the console hold Queue (close), Users, 🚫 Banned, 🛡 Spam Filter, 🧪 Test Message and ⚙ Danger Zone.
Where comments come from
TikTok — ready to run
IAMX has a ready-made bridge for TikTok, a small Node.js program. It watches a TikTok live room and forwards every chat message. You need the broadcaster's handle, an API key from My workspace › API Keys and the character's ID from Channels › Publish. If you do not have a copy of the bridge, ask support.
cd tiktok_capture npm install node index.js @broadcaster_handle
Put your settings in config.json next to the program — gatewayUrl (https://iamxlive.com), apiKey and characterId — or set GATEWAY_URL, IAMX_API_KEY and CHARACTER_ID as environment variables. The bridge prints a running count of captured, sent, failed and filtered comments every thirty seconds, and exits by itself when the broadcast ends.
| If the bridge prints | It means |
|---|---|
401 | The API key is wrong or has been revoked. |
404 | The character ID is wrong, or belongs to another workspace. |
429 / 403 | The spam filter rejected that comment, or that viewer is banned. Normal in bursts. |
| connection failure | The broadcaster is not actually live yet. |
Anything else
Comment intake is a single authenticated endpoint, so a bridge for Twitch, YouTube, Kick, Discord or your own site is a short script. Send each message as JSON to POST https://iamxlive.com/api/livestream/message with the header Authorization: Bearer iamx_… and the fields characterId, platform (up to 40 characters), username (up to 120) and content (up to 2,000). Run one bridge per platform and they all feed the same queue.
The spam filter
The 🛡 Spam Filter tab decides who gets through. It applies to your whole workspace, not just one character, and is switched on with Spam filter enabled.
| Rule | Default | Notes |
|---|---|---|
| Rate limit (flood) | 5 messages / 10 seconds | Catches floods. |
| Repeated messages | same text 3× / 60 seconds | Catches copy-paste spam. |
| Contains URL → ban | on | Catches link spam — and also anyone innocently sharing a link. |
| ALL CAPS → ban | off | Only fires on messages longer than eight characters. |
| Banned words | empty | One word per line, matched anywhere in the message. |
Going live, in order
The step people miss is number three. Read it twice.
- Check the character can speak. In the character editor, open Language & voice › Language & Voice and press Preview selected voice and settings. Every word the character says on stream — including your sponsor reads — is produced by that voice setting.
- Open the console and select the character. Confirm the bar reads LIVE and the WS dot is green.
- Start the thing that renders the character. This is what actually answers comments. Either launch your Unreal build with cloud mode switched on (the settings are in the UE Plugin (Cloud Mode) card on the character's Channels › Publish tab), or open the character in a browser window — its embed page, or the live room for a Pixel Streaming character. Until a renderer is connected, comments pile up and nothing is ever answered. You will know it worked because NPC: IDLE appears in the status bar.
- Send a test comment. Use the 🧪 Test Message tab. Watch it move NEXT → ANSWERING → answered and listen for the answer in your renderer. If that works, everything works.
- Set the spam filter for the audience you expect, and save.
- Start the comment bridge once the broadcaster is actually live. Watch for the connected message and the first arriving comments.
- Start your broadcast in OBS. Capture the Unreal window or the browser window showing the character, add your audio, and go live on the platform as usual.
- Operate the show. Promote good questions with 1–9, skip the noise, hand-write the answers that matter, and keep Space under your thumb.
When something goes wrong
| What you see | What it actually is | Fix |
|---|---|---|
| One comment stuck on ANSWERING, queue frozen behind it | The renderer that took the comment crashed or lost its connection and never reported back | Press SPEAK NOW. It revives the stuck comment and pushes the queue along. |
| Queued climbs, nothing is ever answered | No renderer is connected — the tell is that the NPC: indicator is missing | Start the Unreal build or open the character's page. Check you are using the right character ID. |
| The bridge says "sent" but the queue stays empty | Intake is frozen (frozen comments are discarded), or the viewers are being auto-banned | Press F to resume intake; check the 🚫 Banned tab and loosen the spam rules. |
| The character answers everything twice | More than one renderer is connected to the same character — usually a forgotten browser tab in another window | Close the stray tab. Keep one renderer per character during a show. |
| Everything vanished mid-stream | Someone pressed EMERGENCY or CLEAR QUEUE | Switch the queue filter to skipped to confirm what happened. |
| The character starts reading comments on its own during a podcast | Podcast mode lost its on-air state | See Podcast mode — press Stop on the podcast page. |