# NPCs and supporting cast

> **Review scope:** Linked public documentation checked October 30, 2026. Examples are proposed checks, not recorded OD results; use your account's current controls.

[ Tutorial index](README.md)

## What you will make

An **NPC**, or non-player character, is a fictional person the model portrays while you choose your own character's actions. **Extra Details (ED)** is the character-editor field for supporting lore and rules. The [writing guide](https://guide.ourdream.ai/characters/story-and-personality) identifies supporting cast as one use of ED.

You will add Rowan to Mira's archive story. Mira is a 30-year-old adult archivist: precise, patient, and dryly humorous. Rowan is a 32-year-old adult courier: practical and informal. You play an adult traveler. Parcel A17 is sealed and undelivered; receipt R-A17 has not been issued.

## Before you start

Have Mira's editable practice character and a copy of its current ED. Choose one format. A **cast narrator** portrays several people through one character's replies. A **native group** uses separate character cards and respondent controls. For a separate Rowan card, follow [character creation](02_Create_Your_First_Character.md), then [group setup](10_Group_Chats.md). The main exercise below uses a cast narrator.

## Follow these steps

1. **Give Rowan a reason to matter.** In your notes, write: `Rowan can explain courier routes and question an impractical delivery plan.` This gives him a useful role without making him solve every problem. He can disagree, ask for missing information, or decline a job he cannot reasonably complete.

2. **Add a short record to Mira's ED.** Keep the existing story rules. Add this original section once, replacing a conflicting Rowan record:

   ```text
   SUPPORTING CAST: ROWAN
   Available record ID: rowan-courier-01; display name Rowan; no other known alias.
   Identity: 32-year-old adult courier.
   Appearance: short red hair, green eyes, freckles, light skin.
   Behavior: practical and informal; suggests workable next steps.
   Motive: finish routes without false delivery records.
   Current goal: establish A17's correct destination before taking the job.
   Relationship: knows Mira through archive courier work.
   Knowledge at opening: local routes learned through courier work.
   Evidence status: has not inspected A17's address card or sealed contents.
   Missing knowledge: has not heard the archive conversation before arriving.
   Voice example: "Show me the address and the awkward bit."
   Entry: Rowan is available for the story but has not arrived.
   ```

3. **Keep the kinds of information separate.** Rowan's freckles describe appearance, not trustworthiness. His practical manner describes behavior, not proof that his route advice is correct. His goal does not establish a completed delivery. Leave his family, exact whereabouts before arrival, and other unneeded history unspecified unless the story establishes them.

4. **Confirm who is present.** Send this ordinary **chat setup message** in the practice conversation:

   ```text
   At this starting moment, Mira and I are at the archive counter.
   A17 is sealed on the counter. Rowan has not arrived.
   Keep Rowan's cast record available without making him speak from the room.
   Leave my next action and private feelings for me to choose.
   ```

   Read the reply before moving on. A record's presence in ED is not itself an arrival event. Its ID organizes the available record; it cannot retrieve a missing card or old private chat.

5. **Introduce Rowan through an event.** When you want him involved, send:

   ```text
   Rowan arrives at the archive door and greets Mira.
   I turn the address card toward him and ask which street name is current.
   ```

   This message deliberately brings him into the scene. He can now observe the card and hear the question. He does not inherit every earlier exchange merely because the narrator has that context.

6. **Test his contribution and your agency.** Send: `I ask Rowan what could go wrong with the canal route, but I have not chosen a route yet.` Look for practical advice in an informal voice. Mira may check the register or challenge an assumption. Neither should automatically make you leave, carry A17, or agree with the recommendation. If Rowan asks which route you choose, the reply should stop before inventing that answer or its later consequences. Nobody needs a compulsory private thought or a turn merely because they are present.

7. **Maintain newly established facts.** If Mira confirms the eastern records office and you tell Rowan, record that knowledge in your current scene notes. The opening knowledge line describes a starting point, not permanent ignorance. If he only receives an unconfirmed sent message, keep its status separate from reading it. He may form a labelled guess from partial evidence without acquiring a confirmed fact. If Rowan leaves to inspect a route, record the departure and purpose. An offscreen plan does not run an automatic background simulation; its outcome remains unknown until an event or agreed report establishes it.

8. **Promote incidental people when needed.** A clerk who only checks A17's seal may need no full biography. If the clerk becomes central to a dispute, retain their established name, role, goal, relationship, and knowledge in a short record. Keep unknown details open. Add people because the scene needs them; no minimum cast size or compulsory private viewpoint is required.

## Replace an ambiguous cast rule with a specific one

`They should all know what happened` can erase the difference between the narrator's context and a person's experience. For this original **ED behavior revision**, use named or clearly scoped subjects:

```text
Portray Rowan using his practical courier voice when he has a relevant part
in the scene. If he did not witness an event, base his response on what he
was actually told or can observe. Leave unsupported details uncertain.
He may ask for information or stay silent; his presence requires neither
a speech nor a private-thought paragraph.
```

Merge this with equivalent cast guidance instead of appending a competing rule. Keep the current knowledge record separate: when Rowan learns the corrected address, update that fact without rewriting his whole personality. Try a new question before and after a documented explanation and save both outputs. The [OD prompt lab](../modules/ourdream-prompt-lab.html) practices this distinction between a behavior rule and a supplied event.

## Connect the cast without making everyone omniscient

The supplied Scenario Engineering guide, reviewed October 31, suggests planning relationships and legitimate recurring access alongside individual profiles. For this original **local cast-network note**, Mira and Rowan know one another through courier work; a records clerk knows the receiving procedure; the traveler has access to the public reading area. Those connections do not give everyone access to staff records or private conversations.

Give an entry a reason: Rowan arrives for his route appointment, or the clerk answers an established phone call. A phone participant remains remote. Record an actual arrival, departure, or disclosure after it occurs; an independent motive or possible invitation is not an automated background event. If no new person is needed, Mira and the traveler can continue quietly. The [scenario-planning worksheet](../modules/scenario-engineering.html) connects role, access, knowledge paths, and launch conditions without requiring a larger cast or a fixed outcome.

## Checkpoint

Rowan enters once, looks and speaks consistently, and learns through actual events. A17 remains undelivered until accepted and R-A17 issued. In a native group, selecting Rowan to answer still does not establish his fictional location.

These are targets, not observed results. Save the reply before and after Rowan's arrival. Before arrival, check that he does not speak as if present or claim to witness the archive exchange. After showing him the address card, check that he can discuss what he actually saw without claiming to have inspected the sealed contents. Record voice, knowledge, presence, and user-agency failures separately; a convincing voice does not prove the other checks passed.

## Troubleshooting

- **Rowan appears too early:** remove repeated arrival instructions and restore the present-cast list.
- **He knows a private exchange:** identify what he actually heard, correct the mistaken claim, then tell him during play if appropriate.
- **Every person sounds like Mira:** reduce overlapping behavior text and give Rowan one contrasting voice example.

When Rowan returns later, recover his established appearance, voice, learned facts, and outstanding goals from available notes. Keep an old alias attached to that same identity; do not recycle it for a different person or create a duplicate Rowan. If a needed record is missing, mark the gap rather than inventing a reunion history. See the original [knowledge/evidence module](../modules/knowledge-evidence.html) for proposed returning-NPC and partial-evidence checks.

Next: [Scenarios and worldbuilding](09_Scenarios_Greetings_and_Worldbuilding.md) or [native group chats](10_Group_Chats.md).


