Role-play: How to Create Scenarios

This guide will teach you the basics of creating great role-playing scenarios in DreamGen.

One of the best ways to learn is through looking at examples, here three select scenarios you can use as an inspiration. Right now you need to be logged in to view them.

You can also start your scenario by copying an existing one. Find a scenario you like, click the vertical ellipsis button and select "Copy".

Scenarios

A scenario describes some situation or predicament that a user can participate in. Here are some examples:

  • "Frodo in the Shire" — a slice-of-life scenario where the user plays as Frodo, and interacts with other characters from the Shire.
  • "Uncovering Dark Mystery" — a scenario where the user plays as a detective, and investigates some dark mystery.
  • "You and Your Cute Girlfriend" ― a scenario where the user plays as themselves, and interacts with their virtual girlfriend.

The main components that influence how the scenario plays out are:

  • Prompt description for the scenario and each of its characters
  • Scenario introduction, consisting of the initial "interactions"

Scenario's Prompt Description

This should describe the overarching predicament of the scenario. When using a model from the Opus V0 family, it is recommended to phrase the prompt description as a story summary, for example:

This story is about {{user}} and {{char}}, told in second person, from the perspective of {{user}}...

The story starts with ...

The prompt description should include all details important to the scenario, at least the ones you want to be consistent across different replays.

The {{user}} and {{char}} represent placeholders for the user's prompt name and the character's prompt name, respectively. See also the Character section below.

Characters

Character is some important participant / entity in the scenario. Not every participant / entity that ever appears in the scenario needs to be explicitly defined as a character. For example, if we take the scenario "Frodo in the Shire", then you may want to define Frodo, Sam, Merry and Pippin as characters, but not necessarily every other hobbit from the Shire.

Character's Prompt Name

This is the name that will be used to refer to the character in the prompt. It's recommended to use first name only, rather than the full name. So for example, instead of Frodo Baggins use Frodo.

Character's Label

For each character you have to define a label, this has to consist of lower-case letters, numbers or underscores (no spaces), and has to be unique across all characters in the scenario.

Label is used to refer to the character in the prompt description, and in the intro interactions, for example, if the label is frodo, then you can use {{frodo}} in the prompt description and it will be automatically replaced with the character's prompt name.

Character's Prompt Description

This should contain information specific to this character, written in third person (even for the user character). What are they like physically and psychologically? What are their goals? What are their motivations? What are their relationships with other characters / the user? Etc.

If you want to include character's age, the prompt should look like this:

Age: 18+
(rest of the prompt desceription)

Avoid double newlines in the prompt description, as it may confuse the model.

User Character

You can also add one or more characters that represent the user. The user will be able to choose which of these characters to play as during the setup, but they will also be able to provide their own name and prompt description.

Interactions

Interactions are actions taken by the user or the AI. There are three kinds of interactions:

Message

Message is single piece of dialog from one of the characters or the user. It may contain a direct quote, but also some description of the character's actions or thoughts. For example:

Interaction Message

Text

Text is a plain part of the role-play story, and not attributed to any character. It's often used to describe the scene, provide background, etc. For example:

Interaction Text

Instruction

Instruction is a special interaction that is used to steer the model. It can be used to direct the model towards certain outcomes, even ones that would not be otherwise characteristic. It can also be useful to do time skips.

For example:

Interaction Instruction

Sticky Interactions

When an interaction is marked as "sticky", it will be given priority when we decide which interactions to prune and which to keep in case we run into the token limit. For the instruction interaction, "sticky" also means that it will not be removed even when the user selects "Keep only last instruction" in the settings.

For scenario creators, this comes in handy when you want to make sure your Scenario Intro is always included in the prompt.

Scenario's Intro

This is perhaps the most crucial part of the scenario definition. It is a list of initial interactions that are used to kick off the role-playing scenario. It is recommended to include at least 2-3 message interactions.

The scenario's intro has a huge influence on the writing style of each of the characters, as well as on the formatting used by the model. If you do not include any example message interactions, the model may not be able to follow the role-play specific dialog format.

Presentation

You can customize the title, the visible description and images of the scenario and its characters. These do not influence the way the scenario plays out, but they do influence how the scenario is presented to the user in the scenario list and when playing the scenario.

Scenario and character descriptions

These are the descriptions that are visible to the user when they are browsing the scenario list. They are not included in the prompt. You can use a subset of the markdown syntax.

Scenario and character images

The first image for the scenario is used in the "cards" in the scenario list, and the first image for each character is used in the message interactions. Users will also be able to see the other images when they inspect the scenario, or when they play.

You can have at most 10 images for the scenario and each of the characters.

Currently, images will be resized or cropped to fit 1024x1024px, so it's recommended to use images with this aspect ratio.

In the future we may use the images as inputs to image-to-image models, to let users generate further images in similar style.