Skip to main content
Most characters do not need a complicated system. Start with a clear personality and scenario, then add mechanics only when they create an experience the story could not deliver on its own.

Put the strongest rules first

Use direct behavioral instructions for boundaries or facts that should not drift:
Good rules describe observable behavior. Avoid vague instructions such as “do not progress too quickly” when you can define what progress means, what unlocks it, and how the character responds before then.
Character instructions cannot override ourdream’s Terms or safety rules. The Trust & Safety site is always authoritative.

Choose phased or tracked progression

Avoid adding a meter simply to make a character look complex. If the same effect can be achieved with two clear behavioral rules, use the simpler version.

Write reliable phases

Every phase needs:
  1. A name that summarizes the relationship or story state.
  2. A specific trigger for entering it.
  3. A behavioral mandate describing what becomes different.
  4. An optional world change if the setting should reflect the progression.
“When they become closer” is not a reliable trigger. A particular admission, choice, completed task, or clearly observed action is.

Use State Trackers for changing values

State Trackers are the platform’s native way to keep important story information live across a chat. Use them instead of asking the model to manually remember and recalculate a number in ordinary prose. Common trackers include:
  • Affection or rapport.
  • Mood.
  • Outfit.
  • Location.
  • A custom meter, counter, choice, time, or text state.
For a rapport meter:
  1. Create a meter with a clear range and starting value.
  2. Explain what the value represents.
  3. Define a few meaningful gain and loss triggers.
  4. Describe the character’s behavior at each range.
  5. Test whether values move at the pace you intended.
Keep adjustments sparse. A meter that changes after every ordinary line becomes noisy and reaches its endpoint too quickly.
Add pacing guidance such as a maximum daily gain when the story needs time to pass. Define exactly what marks a new day so the model has an observable rule.

Connect behavior to state

A number matters only when it changes the character. Create a small behavior map: This is more useful than repeating “she trusts the user more” at every level.

Let the environment tell part of the story

For high-concept characters, the setting can reflect emotion or progression:
You can also make the change permanent at a phase transition: fog lifts, a locked room opens, the bar’s off-menu appears, or unfinished paintings gradually gain color. Use environmental changes as readable clues, not as a replacement for the character’s behavior.

Make complex mechanics discoverable

If a character has commands, unusual rules, or several trackers, explain the essentials in the Public Description or provide a simple help instruction in Extra Details:
Do not make users guess a secret syntax before they can participate in the story.

Keep the engine maintainable

  • Use short headings and cause-to-effect rules.
  • Remove duplicate or contradictory instructions.
  • Prefer native State Trackers for live values.
  • Reserve major changes for meaningful actions.
  • Add one system at a time and test it before adding another.
  • If the system repeatedly fails, simplify it.
The goal is not to make the prompt look like code. The goal is to give the character consistent choices that the user can understand and influence.

Next: Create the gallery

Showcase the finished character with a deliberate cover and supporting scenes.
Last modified on July 27, 2026