How to Create a CYOA Scenario

In this guide, you will learn how to create a "Choose Your Own Adventure" (CYOA) scenario in DreamGen. It assumes you already know the basics of creating DreamGen scenarios.

How to use CYOA?

If you just want to use CYOA as a regular DreamGen user, rather than as a scenario creator, check out the role-play and story guides.

What Is CYOA?

CYOA turns a role-play or story into a guided branching experience. Instead of asking the user to invent every next action from scratch, the AI presents several next-step options.

In role-play, those options usually describe ways the user's character can respond to the current situation: confront someone, deflect, ask a question, retreat, flirt, lie, bargain, and so on. Clicking an option typically fills the input box with the user's corresponding message, so they can edit it or send it as-is.

In story mode, options usually describe possible directions for the next scene or beat. Clicking an option typically fills in an instruction for the next story beat or scene.

Working Example Scenarios

You can inspect these simple CYOA scenarios to see the setup in practice:

Or browse all the most popular public CYOA scenarios.

Enable The CYOA Interface

First, enable the CYOA-specific controls in the scenario editor:

  1. Scroll to the bottom of the editor.
  2. Open the Advanced section.
  3. Turn on Show CYOA Interface.

Teach The AI With Examples

Once the interface is enabled, build an example that shows the AI what kind of choices to produce and when to produce them.

Add A CYOA Example

Use the Examples section to show the AI what a good CYOA turn looks like. One strong example is usually enough for most scenarios; more complex scenarios may benefit several examples, covering different scene types (e.g. you might want different CYOA behavior for narrative, "combat", "quest rewards", etc.).

A good CYOA example has:

  • Description: Short rules for how options should be generated.
  • Sample interactions: A role-play exchange or story beat that creates a concrete decision point.
  • Next steps: The actual options the AI should learn to produce in similar situations.

Write The Example Description

The example description tells the AI what the example demonstrates. Use it to define the number of options, the shape of labels, and what makes a good option for your scenario.

The prompts below use two terms that match the next-step option fields:

  • Label: The short button text the user sees.
  • Content: The user message, instruction, or narrative that is used when the user selects the option.

Here is a reusable starting point:

Last turn of each response must end with a CYOA-style "options" block of 3–5 options.

Each option should include:
- A label: emoji + short title, e.g. "🍷 Mock the Ritual"
- Content: {{user}}'s followup action/dialogue (30–80 words)

Guidelines:
- Each option must be a distinct approach: confront, charm, deflect, provoke, withdraw, yield, etc. No two options with the same emotional intent.
- Every option must respond to something specific from the preceding turn—dialogue, action, or object. If it could be pasted into a different scene, it's too generic.
- Each option must move the scene forward and open doors, not close them. End on moments that demand response.
- In multi-character scenes, distribute focus across characters.
- Stay in {{user}}'s established voice.

Adjust the rules to fit your scenario. A tactical adventure might need options about resources, terrain, and risk. A romance might need options that vary emotional tone. A mystery might need options that point toward different clues.

Example: Specific Option Categories

If you want the AI to offer a predictable menu every time, define option categories directly in the example description. This works well for game-like scenarios where each turn should include a balanced set of approaches: a safe choice, a selfish choice, a risky choice, and one or two choices that use the user's abilities or inventory.

Define Specific Example Categories
Last turn of each response must end with a CYOA style "options" block.

Each option should consist of:
- A label: short title, e.g. "🍞 Steal the Bread"
- Content: {{user}}'s followup action/dialogue (30–80 words)

There should be exactly 5 options, in exactly this order:

1. Ethical / lawful / cooperative
2. Unethical / illegal / selfish 
3. Risky / wild-card 
4. Using [ability / item]
5. Using [ability / item]

This kind of structure makes the options easier to scan and helps users learn what to expect from the scenario. Keep the categories broad enough that they can adapt to different scenes.

Example: Loot Selection

CYOA options are not limited to moment-to-moment actions. You can also use them for structured decisions, such as choosing quest rewards, picking a route, selecting an ally, or deciding what to do with a discovered item.

Use CYOA For Quest Rewards
After handing in a quest, the last turn must end with a CYOA style "options" block to let the {{user}} pick their reward.

Each option should consist of:
- A label: name of the reward, e.g. "⚔️ The Ashbringer" or "🪙 100 Gold"
- Content: {{user}}'s message acknowledging their pick + any relevant actions, dialog or narrative (aim for 30-80 words max) 

There should be typically 2-5 reward options, but it will depend on the quest: 

- Monetary reward, e.g. "🪙 30 Gold"
- Item reward, e.g. "🪄 Ol' Rusty Wand"
- Ability reward, e.g. "🔥 Fireball Level 2"
- etc. 

For reward choices, make the label the thing being chosen and use the content to describe the user's acceptance, reaction, or follow-up action. That keeps the button easy to read while still giving the AI enough context to continue.

Add Sample Interactions

Next, create the short exchange or story beat that leads into the choice.

For role-play, this is usually a user turn followed by one or more character or narrative turns. For story mode, it is usually a short passage that ends at a meaningful decision point.

Keep the sample specific. The AI learns better from a concrete scene than from generic instructions.

Tip:

Sample interactions are optional. For most scenarios, a clear example description and strong next-step options are enough, especially if the opening also includes next-step options. The linked examples all use one example with only a description and next-step options.

Add Next-Step Options

After the sample interactions, click Add Next Step Option.

Fill in the option label and content.

The label should be short enough to work as a button. The content should be the actual thing that happens when the option is selected.

Use Add Option to add more choices. Aim for 3-5 options unless your scenario has a specific reason to use more or fewer.

Add CYOA Options To Openings

You can also add next-step options to an opening. This gives users immediate choices before the first generated response.

You can use opening options in the usual way, as suggested directions for how the opening should continue. You can also use them as a setup menu for things like:

  • Choosing a starting location.
  • Choosing a profession, class, or faction.
  • Choosing game difficulty.
  • Choosing a quest or objective.

You can combine multiple openings, each with its own next-step options, to give users many possible starting paths without creating a separate opening for every combination.

Opening next steps are especially powerful because each option can contain more than one interaction. That lets an option do more than insert a single user message: it can add background through narration, set rules with a pinned instruction, establish a starting state, or combine several setup actions at once.

To add the first next-step option to an opening, click Add Option in the Choose The Next Step block at the bottom of the opening, below the interaction input box.

Each opening next-step option has a label, its own interaction list and interaction input, and a mode selector.

For opening options with a single editable interaction, choose between Fill and Send:

  • Fill places the interaction into the input box so the user can review and edit it first.
  • Send immediately appends the option's interaction and continues generation.

Options with multiple interactions send automatically. Options that cannot be represented in the input box also send automatically.

Advanced: Manual Option Markup

You really do not need this.