Crates.io | vn-settings |
lib.rs | vn-settings |
version | 0.2.0 |
created_at | 2025-03-15 20:48:58.565683+00 |
updated_at | 2025-08-16 13:46:00.427339+00 |
description | Various settings intended to simulate visual novels |
homepage | |
repository | https://gitlab.com/porky11/vn-settngs |
max_upload_size | |
id | 1593881 |
size | 52,831 |
A cross-platform configuration system for visual novels, featuring cascading overrides and real-time state management.
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
)characters_scene
)characters_default
)default
)This should make managing state for visual novels easy.
🎨 Cascading Settings
Override colors, timing, and layouts at multiple levels:
settings.set_character_default(Setter::Color(
ColorParameter::Dialog(BoxColorParameter::TextFill).named("Alice"),
Color::RED
));
🔄 State Management
Track defaults, character-specific overrides, and scene changes:
settings.change(&Change::Timing(
TimingParameter::AutoNext.named("FastMode"),
1.0
));
📦 Serialization Ready
All types implement serde::Serialize
(enable serde
feature).
Type | Description |
---|---|
PlayerSettings |
Root container for all configuration |
Override<T> |
Hierarchical value management |
Parameter |
Addressable setting path |
Change |
Mutation operation |
Developed with ❤️ for visual novel creators