Script‑first • Python 3.11+ • SDL2

A minimal VN engine that stays out of your way.

cpyvn focuses on readable scripts, fast iteration, and a tiny core. It keeps engine rules strict so creators can ship without fighting the toolchain.

Script‑first

Write scenes in a clean DSL. Keep logic readable and quick to scan.

Predictable memory

Explicit preload + cache pinning keeps large projects stable.

Fast builds

Cythonized hot paths, lightweight runtime, instant iteration.

Debug Editors

Built-in inspector (`F3`), hotspot editor (`F4`), and script editor (`F6`).

Minimal DSL

Readable scripts, strict rules.

cpyvn keeps syntax small on purpose — you can scale to complex VNs without losing clarity. Strict errors mean fewer silent bugs.

label start:
    loading "Loading assets" {
        preload bg "witches_library.png";
        preload audio "ui_bell.wav";
    };
    scene image "witches_library.png";
    narrator "Welcome to cpyvn.";
    ask "What to do?"
        "Start" -> intro.start
        "Quit" -> end;