Operations

Going live

Turn a character into a live streamer that reads viewer comments and answers them out loud — with you in control of every word.

Read this before anything else: IAMX does not broadcast the video. There is no "Go Live" button and no place to paste a stream key. IAMX does three things — it collects viewer comments, gives you a console to moderate them, and makes your character answer them aloud. Getting the picture onto TikTok, YouTube, Twitch or Kick is done the same way any streamer does it: with OBS (or any encoder) capturing the window your character is rendered in.

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 shut it up 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

PieceJobWho provides it
Comment bridgeWatches the live chat on the platform and forwards each comment to IAMXIAMX ships one for TikTok; any other platform is a small script
QueueHolds comments in order, one being answered at a timeIAMX
Operator consolePromote, skip, ban, hand-write answers, muteIAMX — the page below
The characterAnswers out loud in its own voiceIAMX
RendererDraws the character — Unreal window, browser page, or cloud MetaHumanYou choose
EncoderCaptures the renderer and pushes it to the platformOBS, on your machine

The operator console

Livestream operator console showing the LIVE status bar, mute and emergency controls, the make-NPC-say bar, queue management panel and conversation feed
The console, with the character selector top-right. Everything on the page applies to the selected character.

The status bar

IndicatorMeaning
LIVE / FROZENWhether new comments are being accepted. Frozen means arriving comments are discarded, not held.
WS / POLLGreen WS means the console is getting instant updates. POLL 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 / SPEAKINGWhat the character is doing right now. If this indicator is missing entirely, no renderer is connected and nothing will ever be answered.
Queued / TotalComments waiting, and rows currently loaded in the feed.

The controls that matter when things go wrong

ButtonKeyWhat it does
MUTESpaceStops the character mid-sentence. The queue is kept.
EMERGENCYEscStops it and throws away every waiting comment. The panic button.
PAUSE NEW MESSAGESFCloses the door while you talk over the stream yourself. Press again to resume.
CLEAR QUEUESkips everything waiting, without interrupting the current answer.
SPEAK NOWThe unstick button. Forces the oldest waiting comment to be answered, and revives anything that got stuck half-answered.
Learn two keys before you go live: Space to mute and Esc for the emergency stop. Also useful: pressing 19 promotes that numbered comment straight to the front of the queue, so you can pick a good question out of a fast-moving chat without reaching for the mouse.

Making it say exactly what you want

Two controls bypass the AI completely and put your words in the character's mouth:

Queue management

The left panel is the running order. Each card shows its position, who asked, from which platform, and how long ago. Per comment you can:

ActionUse it when
Move UpA good question is buried behind twenty greetings.
SkipNot worth answering, but keep it in the record.
✍️ Custom ReplyYou want to answer this one in your own words.
RequeueYou skipped something you shouldn't have.
DeleteRemove it from the feed.
BanStop this person contributing at all. You are asked for a reason.

The Conversation Feed on the right is the running record of everything said, by viewers and by the character.

Where comments come from

TikTok — ready to run

A bridge ships with IAMX. It watches a TikTok live room and forwards every chat message. You need the broadcaster's handle, an IAMX API key and the character's ID.

cd tools/tiktok_capture
npm install
node index.js @broadcaster_handle

Put your key and character ID in config.json (or set 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.

The bridge only forwards chat. Gifts are logged but not spoken, and joins and likes are ignored — otherwise the character would spend the whole stream thanking people instead of talking.
If the bridge printsIt means
401The API key is wrong or has been revoked.
404The character ID is wrong, or belongs to another workspace.
429 / 403The spam filter rejected that comment, or that viewer is banned. Normal in bursts.
connection failureThe 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: read a message, POST it with the platform name, the username and the text. Run one bridge per platform and they all feed the same queue.

Want visitors on your own website to talk to a shared live character instead? That is the public live page, and it needs to be switched on for the character — ask support to enable it.

The spam filter

The 🛡 Spam Filter tab decides who gets through. It applies to your whole workspace, not just one character.

RuleDefaultNotes
Rate limit5 messages / 10 secondsCatches floods.
Repeated messagessame text 3× / 60 secondsCatches copy-paste spam.
Contains URLonCatches link spam — and also anyone innocently sharing a link.
ALL CAPSoffOnly fires on messages longer than eight characters.
Banned wordsemptyOne per line, matched anywhere in the message.
Every rule results in an immediate permanent ban, not a warning. With the URL rule on, one viewer pasting a YouTube link is banned for the rest of the stream. For a friendly public broadcast, consider turning the URL rule off and relying on the rate limit. Bans are listed under 🚫 Banned and can be lifted with one click.

Going live, in order

The step people miss is number three. Read it twice.

  1. Check the character can speak. Open its Language & Voice tab and press Preview. Every word the character says on stream — including your sponsor reads — is produced by that voice setting.
  2. Open the console and select the character. Confirm the bar reads LIVE and the WS dot is green.
  3. 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 block is on the character's Publish tab), or open the character's live page in a browser. 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.
  4. Send a test comment. Use the 🧪 Test Message tab. Watch it move NEXT → 🎤 ANSWERING → ✓ and listen for the answer in your renderer. If that works, everything works.
  5. Set the spam filter for the audience you expect, and save.
  6. Start the comment bridge once the broadcaster is actually live. Watch for the connected message and the first arriving comments.
  7. Start your broadcast in OBS. Capture the Unreal window or the browser tab showing the character, add your audio, and go live on the platform as usual.
  8. Operate the show. Promote good questions with 19, skip the noise, hand-write the answers that matter, and keep Space under your thumb.
After the stream, the ⚙ Danger Zone tab clears the history for that character. Worth doing if you have changed the character's persona since the last show, so old context doesn't colour the new one.

When something goes wrong

What you seeWhat it actually isFix
One comment stuck on 🎤 ANSWERING, queue frozen behind itThe renderer that took the comment crashed or lost its connection and never reported backPress SPEAK NOW. It revives the stuck comment and pushes the queue along.
Queued climbs, nothing is ever answeredNo renderer is connected — the tell is that the NPC: indicator is missingStart 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 emptyIntake is frozen (frozen comments are discarded), or the viewers are being auto-bannedPress F to resume intake; check the 🚫 Banned tab and loosen the spam rules.
The character answers everything twiceTwo renderers are connected to the same character — usually a forgotten playground tab in another windowClose the stray tab. Only one renderer per character during a show.
Everything vanished mid-streamSomeone pressed EMERGENCY or CLEAR QUEUESwitch the queue filter to ⏭ skipped to confirm what happened.
The character starts reading comments on its own during a podcastPodcast mode lost its on-air stateSee Podcast mode — press Stop on the podcast page.
Every answer your character gives on stream counts against your monthly allowance, and a busy chat generates a lot of them. Before a long broadcast, check Plan & Quota — and be aware that a character running a real-time voice model consumes the allowance several times faster than a normal one.

Where to go next

Two characters, one show

Podcast mode →

Watch the numbers

Sessions & analytics →

Pick a renderer

Faces & publishing →