For the complete documentation index, see llms.txt. This page is also available as Markdown.

StoryTeller Interactive Story System

StoryTeller is an interactive story system that lets users add their own scripts, manage them, and play text adventures by others. It supports Discord, Line, Telegram, and WhatsApp, with rich features

This feature exists because of the choose-your-own-adventure books I played as a kid—they read like novels, yet let you decide what to do. I never forgot them and always hoped to play that kind of game again someday.

Quick Start

Basic Commands

# Start a script
.st start <alias|title> [alone|all|poll
 x]  
 
 # List playable scripts
.st list     

# Game control
.st pause                                   # Pause the current script
.st continue [runId]                        # Resume a paused script
.st end                                     # End the current script

During Play

.st goto <page>                             # Jump to a page/option
.st set <var> <value>                       # Set a variable

Detailed Features

1. Script Management

Add and Update Scripts

Discord-only:

Supported Formats:

  • .json — Full StoryTeller format

  • .txt — RUN_DESIGN syntax format

Script Management Commands

2. Permission Management

3. Game Settings

Participation Options:

  • alone — Only the host can interact

  • all — Anyone can participate

  • poll x — Enable Discord poll for x minutes (default 3; Discord only)

4. Status View

RUN_DESIGN Syntax

StoryTeller supports RUN_DESIGN—a concise text format for interactive stories.

Basic Structure

Syntax Elements

Metadata

  • [meta] title "Title" — Set the story title

Introduction

  • [intro] content — Set the story introduction

Player Variables

  • [player_var] key "prompt" "default" — Define variables the player must set

Stat Definitions

  • [stat_def] key min max "label" — Define game stats (HP, attack, etc.)

Variable Definitions

  • [var_def] key min max "label" — Define game variables

Page Structure

  • [label] id — Define page ID

  • [title] title — Set page title

  • [text] content — Display text

  • [text|if=condition] content — Conditional text

  • [text|speaker=character] content — Specify speaker

Variable Operations

  • [set] key=value — Set a variable

  • [set|if=condition] key=value — Conditional set

Random Events

  • [random] percent% — Set trigger probability

Choices

  • [choice] — Start defining choices

  • -> choice text | target page | if=condition | stat=stat changes

Endings

  • [ending] — Mark an ending page

Variable System

Variable Types

  1. Player Variables (playerVariables)

    • Character info set by the player

    • e.g. name, class

  2. Stats (stats)

    • Numeric attributes in the game

    • e.g. HP, attack, defense

  3. Game Variables (variables)

    • State during the story

    • e.g. gold, quest progress

Variable Operations

Conditional Expressions

Supports many condition forms:

Dice System

Supports dice expressions:

Platform-Specific Features

Discord Only

  1. Poll System

  2. File Upload

    • Drag-and-drop .json or .txt

    • Automatic parse and validation

  3. DM

    • Scripts can be sent to users via DM

Cross-Platform Compatibility

  • Line/Telegram/WhatsApp: Basic features; no polls or file upload

  • Discord: All features including polls and file upload

Limits and Rules

File Size Limits

  • Max upload: 1MB

  • Max pages: 400

  • Max text per segment: 500 characters

User Limits

Limits vary by VIP tier:

VIP Tier
Script Limit
Concurrent Games

0

3

3

1

10

10

2+

100

100

Permission System

  1. AUTHOR_ONLY: Only author can start

  2. GROUP_ONLY: Only specified groups can start

  3. ANYONE: Anyone can start

Best Practices

Creating Scripts

  1. Plan Structure

    • Design main plot and branches first

    • Decide number and variety of endings

  2. Variable Design

    • Set sensible stat ranges

    • Provide meaningful player variables

  3. Test and Validate

    • Use .st verify to check format

    • Test all branches and endings

Running Games

  1. Character Setup

    • Encourage rich character info

    • Personalize content from character data

  2. Progress Management

    • Use pause when needed

    • Record important game state

  3. Community

    • Use Discord polls for engagement

    • Encourage players to share experiences

Troubleshooting

Common Issues

  1. Script Not Found

    • Check alias spelling

    • Confirm permission settings

  2. Cannot Start Game

    • Check concurrent game limit

    • Confirm script format

  3. Variable Set Failed

    • Check variable name

    • Confirm value is in range

Debug Tools

Example Script

Simple Adventure

This example shows basic StoryTeller features: variables, conditions, random events, and multiple endings.

Changelog

Recent Features

  • RUN_DESIGN syntax support

  • Discord poll system

  • Cross-platform pause/continue

  • Enhanced character stats

  • Improved permission management

Known Limitations

  • Polls: Discord only

  • File upload: Discord only

  • Some advanced features require VIP tier


StoryTeller is actively updated—watch for new features and improvements.

Last updated