Disclosure: This website contains affiliate links, which means we may receive a commission if you click a link and purchase something through our website. Purchasing assets through our links won’t cost you any extra money and will help fund the hosting and development of this site.

ChoiceEngine: Visual Novel and Text Game Engine

A Visual Novel / Text game toolkit. ChoiceEngine is designed to work as the foundation of any text based game, making all the necessary features available in just a few clicks.


- Node based architecture that allows for any conversation to be structure and modified at any time with little to no effort.

- Every "node" can be customized in terms of sprites, characters, background, sounds, music, random events and response type.

- Image customization system which allows complete freedom in the creation of any character, background etc.

- Saving and loading system.

- Affection / Amity system.

- Character profiles.

- Custom sprite spawn points.

- Character portraits.

- Export and import of data (text,int,string and bool options) into/from files (XML).

- Import of data from text files (text import only, separated by blank lines).

- Keybindings.

- Unlock and view CG.

- Conversation log.

- In-editor node visualizer.

- Text animation and timing.

- Auto, skip and auto save/load functions.

- Inventory system supporting categories, item inspection and progression determined by possession of specified items.

- Item notifications system.

- Sprite animation (loop and play once).

- Main Menu.

- Scene loading transitions.

- Level loading on nodes (including passing data across levels).

- Requesting and displaying player's name (both as a label and in any text field by using a "[name]" tag).

- Prefabs models can be used instead of (or alongside with) character sprites. This feature also enables the usage of certain Live2D models.

- Background video playback.

- Choice countdown timer (player can be limited in time when making a choice).

- Custom variables / variable checks, allowing flexible storytelling.

- Custom functions can be invoked on each node.

- Multi-langauge support for nodes, choices, names, and descriptions.

- Detailed documentation.

The toolkit itself is fully expandable and allows easy addition / customization of any features.