Run a small supporting cast in one AI chat
Give each supporting character a goal for the current scene and a reason to speak. Keep a cast register beside the chat with the person's goal, voice, location and known facts. At the end of each reply, check who has spoken and whether your own character still has a decision to make. One AI portrays the cast from your manual register and ordinary OOC messages. The roles have no independent bots, rooms, group chat or private per-NPC memory. Check each reply's speakers and knowledge against your note. Start with the filled register, then follow how it changes as people arrive, speak and leave.
Updated by the tempteo editorial team

The writing examples below are invented. They illustrate the advice and are not recorded chat results.
On this page
Assign the cast before the argument begins
The ferry Bellweather is due to depart at 17:20. At 17:12, traveler Rowan reaches the departure desk carrying a parcel for the island archive. A freight trolley occupies the boarding lane. Captain Mira wants a clear lane before boarding. Desk clerk Leon wants the passenger paperwork settled. Mechanic Saff will arrive later with the result of a ramp inspection.
Blank cast record
- Role and owner: [ ]
- Immediate goal: [ ]
- Voice cue: [ ]
- Presence and permission: [ ]
Filled opening cast
Rowan
- Role and owner: Rowan, reader
- Immediate goal: Reach the island with the parcel
- Voice cue: Reader decides
- Presence and permission: At desk; AI may offer options, never write Rowan's choice
Mira
- Role and owner: Mira, AI
- Immediate goal: Clear boarding lane by 17:18
- Voice cue: Short concrete instructions; uses minutes
- Presence and permission: At desk initially; knows departure and lane constraint
Leon
- Role and owner: Leon, AI
- Immediate goal: Close manifest without an incorrect parcel entry
- Voice cue: Complete, careful sentences; names documents
- Presence and permission: At desk throughout; knows parcel paperwork
Saff
- Role and owner: Saff, AI
- Immediate goal: Report ramp clearance and return to engine room
- Voice cue: Plain physical descriptions; no desk jargon
- Presence and permission: Absent at start; arrives at 17:14 with inspection result, no parcel facts
A distinct voice needs an observable cue. "Practical" could describe all three. Mira's "Six minutes. Clear the lane" sounds different from Leon's "I need the receiving office entered here." Saff can describe what was checked without borrowing either person's vocabulary. Avoid writing every cue in every line; a person can fall silent.
For a general setup before this cast note, use the roleplay prompt template. The Plotto multi-character guide is related reading on the same task. This worked scene focuses on a compact register that changes as people arrive, hear facts and leave.
Keep knowledge permissions separate from author notes
Use fact IDs when more than one person could accidentally inherit information. "Knows the problem" is too broad. This is the completed register before anyone speaks:
Blank fact and knowledge record
- Fact: [ ]
- Mira: [ ]
- Leon: [ ]
- Saff: [ ]
- Rowan: [ ]
Filled opening knowledge
F1: departure and lane deadline
- Fact: F1: departure 17:20; lane must clear by 17:18
- Mira: Knows
- Leon: Knows
- Saff: Knows departure, not lane deadline yet
- Rowan: Knows departure, not lane deadline yet
F2: tomorrow delivery
- Fact: F2: archive will accept the parcel tomorrow; arrival today is Rowan's preference
- Mira: Does not know
- Leon: Does not know
- Saff: Does not know
- Rowan: Knows from own letter
F3: receiving-office code procedure
- Fact: F3: Leon can record an archive parcel using its receiving-office code
- Mira: Does not know
- Leon: Knows
- Saff: Does not know
- Rowan: Does not know
F4: ramp inspection
- Fact: F4: ramp inspection passed at 17:13
- Mira: Does not know
- Leon: Does not know
- Saff: Knows when inspection ends
- Rowan: Does not know
Keep F2 in your own note until Rowan says it aloud. Sending it in an OOC cast note gives the AI the words even if the NPCs are instructed not to know them. That instruction is a story rule; keep information outside the chat if you do not want to send it. An omitted fact cannot reliably guide the writing until supplied.
Ask for named turns and a clear handoff
Copy this as an ordinary scene message, keeping Rowan's private letter outside it if you want F2 unrevealed:
OOC scene message
OOC: Ferry scene. I control Rowan's words, choices, actions and feelings. Portray Mira, Leon and later Saff as fictional NPCs. Label each speaker. Let silent people react briefly when relevant; they do not all need a speech. At 17:12, Mira and Leon are at the desk. Saff arrives at 17:14 with a passed ramp inspection. Mira wants the lane clear by 17:18 and speaks in short instructions. Leon wants correct parcel paperwork and speaks carefully about documents; only Leon knows the receiving-office code procedure. Saff uses plain physical descriptions and knows the inspection result. End before Rowan's next decision. Do not introduce extra passengers or settle the dispute offscreen. Rowan sets the parcel beside the desk. "The trolley's blocking the lane. Can I still board with this?"
The NPCs can disagree, and the reply should stop before Rowan decides. Check the next reply against the register before continuing.
A departure dispute across several turns
Illustrative AI, turn 1
Illustrative AI reply: Mira
"Eight minutes until departure. Lane clear by eighteen. That trolley needs moving before we board." She looks toward the lane, not at the parcel label.
Illustrative AI reply: Leon
"I can put the parcel on the manifest if you have the archive's receiving-office code." He turns the form toward Rowan.
Mira waits with her hand on the rail. Rowan has now heard the lane deadline; Saff is still absent. No one chooses whether Rowan fills the form or moves the trolley.
Your turn as Rowan
"The code is HA-6. Leon, please enter that. Captain, why does the lane need clearing before eighteen?"
Illustrative AI, turn 2
At 17:14, Saff arrives from the ramp with the inspection sheet.
Illustrative AI reply: Leon
"HA-6. I enter that as the receiving-office code." He writes it into the form where Saff can hear him.
Illustrative AI reply: Mira
"Lane clear by eighteen. Then two minutes for boarding. No lane, no boarding."
Illustrative AI reply: Saff
"Ramp's sound. The hinge seated properly on the last test." Saff notices the trolley and stops beside the rail, without claiming to know what is inside Rowan's parcel.
Rowan can now propose a way to clear the lane. The reply does not move the trolley on Rowan's behalf.
After this turn, everyone at the desk has heard F3's procedure and F1's lane deadline. Everyone hears F4 from Saff. None of those disclosures tells the NPCs F2, tomorrow's acceptable delivery.
Your turn as Rowan
"The archive can take this tomorrow. I'd prefer tonight, but don't hold the ferry for me. Saff, is there a marked place for the trolley?"
Illustrative AI, turn 3
Illustrative AI reply: Saff
"Blue bay by the warehouse. It keeps the ramp approach clear."
Illustrative AI reply: Mira
"Then I'll check boarding at the ramp. Leon has the desk." Mira walks away at 17:15. Her next response requires a new encounter or an audible message.
Illustrative AI reply: Leon
"Your parcel entry is ready. You can take it aboard yourself if the lane clears." He sets down the pen and waits.
Saff rests a hand on the trolley handle but does not start moving it. Rowan still decides whether to help, ask someone else or travel tomorrow.
Everyone present when Rowan spoke now knows F2. Mira heard it before leaving. Her departure removes her from the desk conversation; it does not erase what she heard.
Your turn as Rowan
"I'll help Saff wheel it into the blue bay, then come back for the parcel."
Illustrative AI, turn 4
Saff takes the other handle. Together they move the trolley into the marked bay, leaving the lane clear at 17:17. Saff checks that the wheels are inside the line.
Illustrative AI reply: Saff
"That'll stay put. I'm heading below for the engine check." Saff leaves.
Illustrative AI reply: Leon
"The lane is clear, and the form is done. Your parcel is still beside the desk." He gestures toward the boarding gate. Rowan's choice to board remains open.
The physical result follows Rowan's stated action and an unobstructed move in this illustration. The reply does not decide that Rowan boards. Mira is at the ramp, Saff below and Leon at the desk. Only Leon remains available for immediate desk dialogue.
Repair only the roles that slipped
Imagine the reply to Rowan's code question had instead said:
Illustrative scene excerpt: Mira and Leon smile. "We know your archive can wait until tomorrow, darling. HA-6, ramp passed, all sorted." Rowan agrees to leave the parcel and boards.
This merges two voices, introduces an unsupported delivery claim, announces F4 before Saff's arrival and chooses Rowan's action. A correction can reject those errors without confirming the private fact or rewriting the cast:
OOC correction
OOC: Resume at 17:14 after Leon records HA-6, before Saff gives the inspection result. Separate Mira and Leon. Mira gives the short lane-deadline answer; Leon handles the form. Reject the claim about delivery flexibility. Rowan has disclosed no exception to the delivery timing. Saff is now present and alone reports the passed ramp inspection. Leave Rowan's next action to me. Keep the ferry time, code and locations unchanged.
A corrected illustrative reply would be:
Illustrative scene excerpt
Mira: "Lane clear by eighteen. Then two minutes for boarding." Leon: "The office code is entered." He leaves the form on the desk. Saff holds the inspection sheet. Saff: "Ramp's sound. The hinge seated properly." The three wait for Rowan to respond.
The unsupported delivery guess and the OOC message both remain in chat history. Rejecting the guess does not confirm the private fact or restore secrecy. Check the corrected continuation before updating your note. The continuity guide covers repeated drift beyond a single speaker error.
At the end of a scene, note who remains present and which facts were actually spoken within earshot. Send the changed lines when they matter again. You can adapt and send the scene in roleplay AI chat.
Copy a starter or worksheet
Choose one starter or form to copy. Keep the planning record in your own notes and check the next chat reply against it.
Blank fields
- Current time/location: [ ] - Reader character and exclusive control: [ ] - AI cast: [ ] - Reply labels and stop point: [ ] Reusable cast record - Name / owner: [ ] - Immediate goal: [ ] - Observable voice cue: [ ] - Present / arrival / departure: [ ] - Known facts: [ ] - Unknown facts: [ ] - Next permitted reveal: [ ] Reusable knowledge event - Fact ID and statement: [ ] - Who knows now: [ ] - Who may learn next: [ ] - Event that actually reveals it: [ ] After each turn: speaker [ ]; silent reaction [ ]; arrival/departure [ ]; newly heard facts [ ]; reader choice still open [ ]. Correction: last accepted beat [ ]; affected roles [ ]; leak/merged cue [ ]; true permissions [ ]; unchanged material [ ]; next open action [ ].
Filled ferry register
At 17:12, departure desk, Bellweather sailing 17:20. Rowan is the reader-controlled traveler with an archive parcel. AI portrays Mira (captain), Leon (desk clerk), Saff (mechanic). Named dialogue; stop before Rowan decides. Reusable filled-register fields - Name / owner: [ ] - Immediate goal: [ ] - Voice cue: [ ] - Presence: [ ] - Known initially: [ ] - Unknown initially: [ ] - Reveal: [ ] Filled opening cast Rowan - Name / owner: Rowan / reader - Immediate goal: Travel with parcel - Voice cue: Reader chooses - Presence: Desk - Known initially: Departure; archive accepts tomorrow - Unknown initially: Code procedure, ramp result, lane deadline - Reveal: Reader discloses tomorrow in turn 3 Mira - Name / owner: Mira / AI - Immediate goal: Clear lane 17:18 - Voice cue: Short instructions and minutes - Presence: Desk; leaves for ramp 17:15 - Known initially: Departure, lane deadline - Unknown initially: Tomorrow acceptance, code procedure, inspection - Reveal: Gives lane deadline in turn 1; repeats it and explains the two-minute boarding duration after that deadline in turn 2 Leon - Name / owner: Leon / AI - Immediate goal: Correct manifest - Voice cue: Complete document-focused sentences - Presence: Desk throughout - Known initially: Departure, lane deadline, code procedure - Unknown initially: Tomorrow acceptance, inspection - Reveal: Requests receiving-office code in turn 1 Saff - Name / owner: Saff / AI - Immediate goal: Report inspection, engine check - Voice cue: Physical details - Presence: Arrives 17:14; leaves below after trolley move 17:17 - Known initially: Departure at 17:12; learns passed inspection when it ends at 17:13 - Unknown initially: Tomorrow acceptance, lane deadline, code procedure - Reveal: Reports passed inspection in turn 2
Blank per-fact knowledge record
- Fact: [ ] - Mira: [ ] - Leon: [ ] - Saff: [ ] - Rowan: [ ]
Filled opening knowledge by fact
F1: departure and lane deadline - Fact: F1: departure 17:20; lane must clear by 17:18 - Mira: Knows - Leon: Knows - Saff: Knows departure, not lane deadline yet - Rowan: Knows departure, not lane deadline yet F2: tomorrow delivery - Fact: F2: archive will accept the parcel tomorrow; arrival today is Rowan's preference - Mira: Does not know - Leon: Does not know - Saff: Does not know - Rowan: Knows from own letter F3: receiving-office code procedure - Fact: F3: Leon can record an archive parcel using its receiving-office code - Mira: Does not know - Leon: Knows - Saff: Does not know - Rowan: Does not know F4: ramp inspection - Fact: F4: ramp inspection passed at 17:13 - Mira: Does not know - Leon: Does not know - Saff: Knows when inspection ends - Rowan: Does not know Knowledge events: F1 lane deadline revealed to Rowan in turn 1 and to arriving Saff when Mira repeats it at 17:14; F3 procedure heard at desk in turns 1-2, code HA-6 supplied by Rowan; F4 inspection heard by all at 17:14; F2 tomorrow acceptance heard by all in turn 3 before Mira leaves. Saff initially knows the sailing time but learns the lane deadline at the desk. Readers may keep F2 outside chat until Rowan speaks; an OOC permission is not secure secrecy. Turn record: 1 Mira and Leon speak, Mira waits silently, Saff absent; 2 Saff arrives, Leon explains and enters code, Mira repeats deadline, Saff reports; 3 Rowan discloses tomorrow, Saff names blue bay, Mira leaves, Leon waits, Saff touches handle without moving; 4 Rowan chooses to help, trolley moves, Saff departs, Leon points to gate without boarding Rowan. End: Leon desk, Mira ramp, Saff engine room, Rowan desk, parcel desk, lane clear at 17:17. Filled correction: reject shared Mira/Leon voice, the unsupported delivery guess, pre-arrival inspection result and Rowan boarding. Use "Reject the claim about delivery flexibility. Rowan has disclosed no exception to the delivery timing," without confirming the private fact. Resume at 17:14 after code entry; Mira gives the lane deadline followed by two minutes for boarding, Leon handles form, present Saff reports inspection, Rowan decides next. Preserve HA-6, departure and locations. Update only corrected facts after reading the continuation. The wrong reply and OOC correction remain in chat history; rejecting a guess does not restore secrecy.