#visual-novel #settings #color #character #parameters #scene

vn-settings

Various settings intended to simulate visual novels

1 unstable release

Uses new Rust 2024

new 0.1.0 Mar 15, 2025

#55 in Simulation

MIT/Apache

40KB
1K SLoC

Visual Novel settings

Crates.io

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:

  1. General scene value (scene)
  2. General character specific scene value (characters_scene)
  3. General character specific default value (characters_default)
  4. General default value (default)

This should make managing state for visual novels easy.

Features

🎨 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).

Core Types

Type Description
PlayerSettings Root container for all configuration
Override<T> Hierarchical value management
Parameter Addressable setting path
Change Mutation operation

Documentation

API Reference

Developed with ❤️ for visual novel creators

Dependencies

~270–710KB
~16K SLoC