Visual Novel settings
A cross-platform configuration system for visual novels, featuring cascading overrides and real-time state management.
Overrides
This library provides various settings to simulate visual novels in Rust applications. It includes settings for colors, timing, images, objects, layout, and names.
Each parameter can have a default value and you can add temporary overrides to these values, which will only be active during a single continuous dialog.
Most parameters can also have a character specific values, which are only set when a character speaks. These character specific parameters can also have temporary overrides.
The priorities of the values is like this:
- Scene value (
scene) - Character specific scene value (
characters_scene) - Aspect value (
aspect) - Character specific aspect value (
characters_aspect) - Character specific default value (
characters_default) - Default value (
default)
Aspects are story-driven overrides (e.g. a "Mood" aspect with values like "Happy" or "Sad") that globally affect visual settings based on the current state of the story.
This should make managing state for visual novels easy.
Features
🎨 Cascading Settings
Override colors, timing, and layouts at multiple levels:
settings.set_character_default;
🔄 State Management
Track defaults, character-specific overrides, and scene changes:
settings.change;
📦 Serialization Ready
All types implement serde::Serialize (enable serde feature).
Core Types
| Type | Description |
|---|---|
PlayerSettings |
Root container for all configuration |
Override<T> |
6-level hierarchical value management |
Parameter |
Addressable setting path |
Setter |
Setting path paired with a value |
Change |
Mutation operation for scene-level overrides |
Documentation
Developed with ❤️ for visual novel creators