Infinite Quest

A single-page OpenRouter-powered choose-your-own-adventure story engine.

No adventure yet

Turn 0 Viewing latest Ready
πŸ—οΈ

Create a world, then begin.

The engine will write a scene, produce an illustration prompt and image, offer four choices, keep a hidden scratchpad, and update your custom trackers.

Waiting for response.

Notice

Getting Started

Choose how you want Infinite Quest to connect to OpenRouter.

You can paste your own OpenRouter API key, or use the Community API Key, which is limited to free models.

Model Settings

Set your OpenRouter key, model preferences, and image generation options.

This is a purely client-side app. Calls go directly from your browser to OpenRouter; no key is sent anywhere else by this file.

When enabled, the story model list shows Curated Free Mix, openrouter/free, and models ending in :free; the image model list shows only the Pollinations.ai option. When fallback models are enabled, Curated Free Mix is removed from all story model dropdowns.

When enabled, OpenRouter receives the selected Story LLM first, followed by Fallback 1 and Fallback 2 as backup text models.

World Set Up

Create, import, save, or start the world for your story.

Load a sample world

Choose one to fill the setup fields, then click Start New Adventure when you are ready.

Give the LLM a sparse seed or a detailed brief. It will fill in the genre, tone, player character, premise, style guide, and any optional generated RPG stats or trackers.

Save, copy, or share only the world setup: title, genre, tone, background story, player character, premise, first action, style guide, RPG stats, default trackers, event triggers, and trigger suppression setting. Load accepts saved .world JSON, .story JSON, or Infinite Worlds JSON exports; multi-character Infinite Worlds JSON opens a no-LLM character picker first. Story turns, current run state, generated pictures, and API keys are not included in .world saves.

Edit State

Edit the scratchpad, current trackers, and history view.

The LLM updates this private continuity scratchpad after every turn. This editor shows the scratchpad for the turn currently being viewed, so past turns can be inspected or edited without changing later turns.

Generate world setup

Describe the adventure you want. A few words is enough; more detail gives the LLM more to preserve.

Leave unchecked to leave trackers blank for the generated setup. When checked, the generator creates tailored default trackers for the new setup.

Leave unchecked for a purely narrative game. When checked, the generator fills RPG percentile stats and enables stat rolls.

Choose a player character

Pick one of the generated or imported characters. The selected description will fill the Player character textbox in World Set Up.

Edit image prompt

Adjust the illustration prompt for this turn, then regenerate only the image. The story text and choices will stay the same.

Edit Response

Edit the narration for the turn you are currently viewing. Saving replaces the text for that turn.

Load world from text

Paste JSON from a saved .world file, a .story file, or an Infinite Worlds JSON export, then load it into the world fields, RPG stats, and default trackers.

Load shared world?

This page URL includes a shared world. Review it below before replacing your current world setup.

Are you sure you would like to load this world and replace the current world setup?

This will replace the title, genre, tone, background story, player character, premise, first action, story rules, RPG stats, default trackers, event triggers, and trigger suppression setting. If you start a new adventure, existing story turns will be deleted; otherwise they will remain, but they may no longer match the loaded world.

Title

Genre

Tone

Background Story

Player character

Premise and starting situation

First Action

Start a new adventure?

Loading this shared world and starting a new adventure will delete your current adventure.

Starting a new adventure will delete the current adventure/story turns and replace them with a new adventure based on this shared world.

Are you sure you want to proceed?

Import from Infinite Worlds (Experimental)

Convert Infinite Worlds exports into Infinite Quest using your current Story LLM and image settings.

Heads up: this process can take several minutes, especially for large worlds, long stories, or image generation.

Import World

In Infinite Worlds, open the world editor, uncollapse every part of the entire page, select all, and copy all the text. Save that copied text into a .txt file.

Click Import World and choose that text file. The app will ask the current Story LLM to convert the world into Infinite Quest fields, use the first Infinite Worlds player character, convert 1–5 stats to d% values, and carry over tracked items as default trackers.

Import Story

First import the world for this story. Then export the story from Infinite Worlds in .txt format and upload the resulting file.

For each imported turn, the app will ask the Story LLM to generate Infinite Quest-style choices, an image prompt, scratchpad continuity, and tracker updates. If image generation is enabled, it will also generate each turn’s image using your current image settings.