A small visual novel engine for Godot 4.4+. You write the story in plain text scenario files and set up the game with .tres resources in the Inspector. The engine does the rest.
The plugin doesn't touch your project: no autoloads, no project settings, no main scene change. The only thing it adds is a small export step that packs your scenario files into the build.
Features
- Dialogue, characters, backgrounds and choices
- Chapter-based story flow with branching
- Flags (story variables), per save or global
- Save/load slots, quicksave/quickload (F5/F9), auto-save
- Rollback, backlog with voice replay, auto-read and skip modes
- Extras: CG gallery, music room, endings list, movie room
- Multiple endings, scrolling or video credits
- Optional boot splash screens (image or video)
- Multi-page settings menu (display, audio, text, controls)
- Designed at 1920x1080 and scales to any window
- F3 debug overlay (debug builds only)
Try the demo
- Copy
addons/vn_engine/into your project (keep the same path). - Open
addons/vn_engine/sample_game/play_sample_game.tscnand run it.
The sample game needs no art or audio: two short chapters with choices, flags and two endings.
Use it in your own game
- Enable the plugin: Project > Project Settings > Plugins > VN Engine. Without it, scenario files are left out of exported builds.
- Copy
sample_game/as a starting point (config/,scenario/,assets/). - Create an inherited scene from
vn_main.tscn, setcontent_rootto your folder and make it your main scene, or instance it from code:
const VN_SCENE := preload("res://addons/vn_engine/src/flow/scenes/vn_main.tscn")
func start_vn() -> void:
var vn: VNEngineMain = VN_SCENE.instantiate()
vn.content_root = "res://my_game/"
add_child(vn)
Each game gets its own save folder and settings file, so the engine never overwrites your own saves.
Full documentation, config file reference and export notes: see the README on GitHub.
Status: early release, tested in the Godot 4.4 editor and with a Windows export.
Changelog for version v0.8.0
2026-10-07 08:34:12
No changelog provided for this version.