DoomAI's Bot Making Guide: The Scenario Field

What it's actually for (hint: it's not the opening scene).

Written with AI help for readability. The methods come from my own bot making.

Janicard mascot


The Big Mistake

Most people treat the scenario field like a story prompt:

{{char}} is at home when {{user}} knocks on the door.

That's a first message job. Here's why it breaks things:

The scenario is sent to the AI with every message. If it says {{char}} is at their house, the bot will keep dragging the roleplay back to that house, even after the story has moved on.

What the Scenario Field Is For

Think of it as rules of the roleplay, not the plot. Anything that should stay true no matter where the story goes belongs here.

"Put in the scenario"

  • Persistent statuses (relationship, job, injuries, powers, curses, etc.)
  • Boundaries and guidelines for how the roleplay should run
  • World rules that always apply
  • Consistent dynamics between {{char}} and {{user}}
  • Things the bot should always or never do
  • Formatting rules, including tracker headers (see below)

"Keep out of the scenario"

  • The starting location or situation (use the first message)
  • Anything that stops being true once the story moves
  • Personality and appearance (that's the personality field)
  • Anything about the bot's backstory that doesn't affect the roleplay

The 50-Message Test

Before you write a line, ask:

"Will this still be true 50 messages from now?"

Answer Where it goes
Yes, always Scenario
Only at the start First message
It describes who {{char}} is Personality
The user should read it, not the AI Bio

Examples

Bad (a situation)

{{char}} is in their apartment, waiting for {{user}} to arrive for dinner.

What happens when they leave for the park? The bot keeps pulling them back.

Good (persistent rules)

{{char}} and {{user}} are married. {{char}} has a broken arm and keeps it in a sling for the whole roleplay. {{char}} never uses magic in public. The roleplay can take place anywhere.

None of that expires when the scene changes.

What Belongs Here vs Everywhere Else

The scenario has neighbors, and each field has one job. Most bloated scenarios are just other fields' work pasted into the wrong place, so check where a line lives before you add it:

  • First Message — the opening scene. Where the story starts and what's happening right now. Written once, then the story takes over.
  • Personality — who {{char}} is. Appearance, temperament, quirks, speech patterns. Always true, but it describes the character, not the roleplay.
  • Bio — context for the human reader. Lore and notes the AI doesn't need in order to run the roleplay.
  • Scenario — everything left over: rules, statuses, boundaries, and formatting that stay true no matter where the story goes.

Backstory only earns a place in the scenario when it changes ongoing behavior. "{{char}} is cursed and hides it" is a persistent status. "{{char}} grew up in a small village" is not, unless the village is still shaping every reply.

Persisting Statuses

Statuses are one of the best uses of the field, because the AI forgets things over time unless something keeps reminding it.

  • Relationship status (dating, enemies, strangers, etc.)
  • Physical state (injured, cursed, disguised)
  • Secrets {{char}} is hiding
  • Ongoing conditions ("{{char}} is always in debt")

If a status should change during the story, tell the AI how it can change, or leave it out and let the chat handle it.

Guidelines and Boundaries

This is where you set expectations for how the roleplay runs. Examples:

  • Don't write {{user}}'s actions, dialogue, or thoughts
  • Keep a specific POV or tense
  • Pacing: no rushing major events
  • Content limits or things to avoid
  • Tone to maintain (slow burn, lighthearted, etc.)

Be specific. "Be realistic" is vague. "{{char}} won't trust {{user}} quickly and trust builds slowly" is something the AI can follow.

Tracker Headers

A tracker header is a short line the bot puts at the top of every reply, like:

Location: Old Library | Present: Clio, Mara

The scenario holds the rule ("start every reply with this, update it when things change"). The first message seeds it with the starting values.

success "Why it works"

  • It stays current. The AI rereads its own previous reply every turn, so the header gets copied forward and only changes when the story does. That's why this works where a hardcoded location in the scenario doesn't.
  • It stops drift. The bot stops forgetting where you are, and people stop appearing from nowhere or never leaving.
  • It's one line. Unlike status panels and stat blocks, it doesn't eat your reply length or feel forced.
  • You can see what the bot thinks is happening. If the header is wrong, you catch it before the roleplay goes sideways.

How to set one up

  1. Put the rule in the scenario, with the exact format as a literal example
  2. Define what each part means (for example, "Present = everyone in the same room as {{user}}, besides {{user}}")
  3. Say when it updates ("immediately when the scene changes or someone enters or leaves")
  4. Put the header at the top of the first message too, so the bot has something to copy

Example rule

⎗
✓
1
2
3
4
5
6
7
Every reply begins with exactly this on one line at the very top:
Location: [Current Location Name] | Present: [Names]

Present lists everyone in the same room as {{user}}, besides {{user}}.
Copy it from your previous reply. Add a name only when that person
enters, and remove it when they leave. Update it immediately when
the scene changes.

"Things to watch"

  • Seed it in the first message. No header there means nothing to copy from.
  • Give a literal example. Weaker models copy the pattern, and tend to ignore a description of it.
  • Keep it short. It costs tokens every single reply.
  • Models drift. In long chats some will drop or reformat it. Spell out the exact format to reduce this.

Basic Scenario Template

Copy this into the Scenario field and fill in the [brackets]. Delete any section you don't need.

⎗
✓
>guidelines:
Tone: [tone]
{{char}} acts: [behavior]
Shifts for: [what changes their mood]

>hooks:
- Emotional: [hidden trait or goal]
- Action: [task or conflict]

>format:
[POV, reply length, how dialogue and actions look]

>tracker:
Every reply starts with this line:
`Location: [place] | Present: [names]`
Present = everyone in the room with {{user}}, besides {{user}}.
[when it updates]

>user formatting:
"quotes" = {{user}} speaking
*asterisks* = {{user}} acting or thinking

What Goes in Each Slot

Section What it does Example
Tone The overall feel of the roleplay slow burn, dry humor
{{char}} acts How the character behaves by default guarded, teases to deflect
Shifts for What changes their behavior kindness, or being cornered
Emotional hook Something for the bot to tease or work toward hides that she's lonely
Action hook Something that pushes the plot forward a deadline, or an authority figure
Format How replies are written first person, under 400 characters, actions in *asterisks*
Tracker A header on every reply that keeps the scene consistent see Tracker Headers
User formatting How the bot reads your messages "quotes" = speech, *asterisks* = action

Hooks, format, and user formatting are optional. The tracker is optional too, but remember to seed it in the first message if you use it.

Filled-In Example

Here's what that looks like filled in:

⎗
✓
>guidelines:
Tone: slow burn, dry humor
{{char}} acts: guarded, teases to deflect
Shifts for: kindness, or being cornered

>hooks:
- Emotional: hides how lonely she is
- Action: owes a debt to the guild

>format:
First person, under 400 characters.
Actions in *asterisks*, dialogue in "quotes".

>tracker:
Every reply starts with this line:
`Location: [place] | Present: [names]`
Present = everyone in the room with {{user}}, besides {{user}}.
Copy it from the previous reply. Update it
when the scene changes or someone enters or
leaves.

>user formatting:
"quotes" = {{user}} speaking
*asterisks* = {{user}} acting or thinking

The [place] and [names] in the tracker stay as brackets. The bot fills those in each reply, not you. Want a longer, more detailed version? Add extra lines under any section. The skeleton just keeps it organized.


Advanced Template

This is the longer version I actually drop in for AI — Grok, Gemini, Claude, z.ai (ew), etc. Copy it into the Scenario field and fill in the [brackets]. Swap CharacterName for your character, and change the pronouns (she/her) to match.

⎗
✓
>guidelines:
Tone: [Tone]. CharacterName acts [Behavior], shifts for [Theme] or
[InternalConflict].
CharacterName responds fully in character, using her personality, quirks,
speech patterns, and current mood toward {{user}}.
>Hooks:
- Emotional: Tease [HiddenTrait] or [Goal].
- Action: Highlight [Task] or [Conflict with Authority].

>FORMAT:
Write only as {{char}}, in first person: her "dialogue" and *actions*. Every
action starts with her name or a pronoun (*she flicks her tail*,
*CharacterName leans closer*). Put **CharacterName:** before dialogue. Specify
counts where relevant. Engage {{user}} with interaction or a challenge. Replies
stay under 400 characters.
Describe the environment passively (sounds, smells, objects). {{char}} is the
only person in the scene unless {{user}} names or asks for someone else.
Continue forward from {{user}}'s last action or line without repeating it, and
end on an open beat. {{char}} only knows what she can see or hear. Her mood
carries between replies, and she takes initiative instead of waiting for
{{user}} to lead.

>LOCATION RULE:
Every reply begins with exactly this on one line at the very top:
`Location: [Current Location Name] | Present: [Names]`

Location is where the scene is currently taking place. Capitalize all major
words.
Present lists everyone in the same room or immediate area as {{user}}, besides
{{user}}, starting with {{char}}.
Copy the header from your previous reply (or the first message, if there is no
previous reply). Add a name only when that person actually enters the room, and
remove it when they leave. Keep the same name for the same person every time.
Update it immediately when the scene changes or {{char}} moves.

>USER FORMATTING:
- Anything inside "quotation marks" is {{user}}'s spoken dialogue, even with
  *asterisks* inside it (example: "What are you, *chicken*?").
- Text only inside *asterisks* with no quotation marks is {{user}}'s actions,
  narration, or thoughts. {{char}} never answers it as if it were spoken aloud.

The line breaks are only there so the block fits on screen. They won't affect the bot, so paste it as is.

This is the same structure as the basic template above, with more rules for the bot to follow. Use the basic one to start, and this one when you want tighter control over format, initiative, and length.

First Message Header

The scenario holds the rule, but the bot needs a starting header to copy from. Put this on the very first line of the first message, above the opening scene:

⎗
✓
`Location: [Starting Location] | Present: [CharacterName]`

Then write the rest of the first message underneath it as normal.

  • Match the scenario's format exactly, including the backticks. If the header looks different in the two places, the bot may pick the wrong one.
  • List everyone actually in the starting scene under Present, not only the character.
  • If you use an alternate greeting, put the header in each one.

Where Does the Opening Situation Go?

The first message. It sets the scene once, then the story takes over. Scenario = what stays. First message = where it begins.

Quick Checklist

  • Nothing in here hardcodes a location or moment (tracker rules are fine)
  • No personality or appearance details
  • Guidelines are specific, not vague
  • Statuses are things that stay true
  • Tracker header (if used) has a literal example and is also in the first message
  • Opening situation is in the first message instead

Credits

  • Made by: DoomAI
  • Last updated: 10/28/2026
Edit

Pub: 22 Oct 2026 18:03 UTC

Edit: 29 Oct 2026 02:22 UTC

Views: 24