Skip to content

Configuration System

AshleyThew edited this page Jul 5, 2026 · 1 revision

Configuration System

Overview

Bank configuration is organized as multiple subsystems, each with its own file and responsibility. This page explains what each subsystem controls and when admins should edit it.

How It Works

On startup, Bank loads root YAML files first, then conf/ subsystem files. Command routing, GUI layout, permission checks, economy behavior, and integration behavior are all driven by these files.

Configuration

Primary files:

  • config.yml
  • convert.yml
  • upgrade.yml
  • mysql.yml
  • mongo.yml
  • conf/commands.yml
  • conf/permissions.yml
  • conf/inventories.yml
  • conf/items.yml
  • conf/language.yml
  • conf/sounds.yml
  • conf/itemblacklist.yml
  • conf/default_items.yml
  • conf/hiscores.yml

Core runtime subsystem (config.yml)

Controls feature toggles and global behavior:

  • Save backend and lock/autosave behavior (Bank.Save.*)
  • Access mode routing (Bank.Type.*)
  • Open target restrictions (Bank.Opentype.Subset.*)
  • Economy systems (Bank.Money.*, Bank.Exp.*, Bank.Loans.*)
  • Optional integrations and implementations (Bank.Implementation.*)

Reference file:

Bank:
  Save:
    Type: SQLITE
  Type:
    Citizens:
      Enabled: false
    Sign:
      Enabled: false

Command subsystem (conf/commands.yml)

Defines command tokens, aliases, permission nodes, and argument hints. Use this when you want to rename or disable command paths without code changes.

Reference file:

Bank:
  Money:
    Command: money
    Permission: bank.money

Permission-check subsystem (conf/permissions.yml)

Controls permission checks for behavior-level gates:

  • Open mode checks
  • Item slot/tab limits
  • Interest and loan value-prefix limits

Reference file:

Permission:
  Open:
    Sign:
      Check: true
      Permission: bank.open.sign

Inventory subsystem (conf/inventories.yml, conf/items.yml, conf/default_items.yml)

Controls menu structure, inventory buttons, titles, and item templates. Use this subsystem to tune GUI behavior without touching economy math.

Reference files:

Messaging and feedback subsystem (conf/language.yml, conf/sounds.yml)

Controls chat strings, placeholders, and sound feedback for actions.

Reference files:

Safety and migration subsystem (convert.yml, upgrade.yml)

Controls one-time conversion and upgrade workflows. These files should be treated as operational change controls, not daily tuning files.

Reference files:

Open target subset subsystem (Bank.Opentype.Subset.*)

This is a complete subsystem, not a single toggle.

Purpose:

  • Restrict what users and admin channels can open directly.
  • Define command/NPC/sign channel behavior consistently.

Admin checklist:

  1. Enable Bank.Opentype.Subset.Enabled.
  2. Configure channel groups (Command, Citizens, Sign).
  3. Validate each route with a player and an admin account.
  4. Keep this aligned with granted permissions to avoid confusing denials.
Bank:
  Opentype:
    Subset:
      Enabled: true
      Command:
        Enabled: true
      Citizens:
        Enabled: true
      Sign:
        Enabled: true

Commands

Configuration-adjacent admin commands:

  • /bank admin reload
  • /bank admin save
  • /bank admin permission update <name>

Permissions

conf/permissions.yml defines optional check toggles for many permissioned behaviors. Permission nodes in conf/commands.yml must remain aligned with behavior checks in conf/permissions.yml.

Data and Storage

Config is file-backed YAML and separate from player/account persistence. Treat config files as control-plane data, and account storage as runtime state data.

Examples

  • Enable advanced open subset by setting Bank.Opentype.Subset.Enabled: true and relevant child flags.
  • Enable converter from another plugin under Bank.Converter.*.Enabled for one migration startup.

Money-only server profile:

  1. Keep money subsystem enabled.
  2. Disable exp/loan features in Bank.Exp.* and Bank.Loans.* as needed.
  3. Update command permissions to remove unused command branches.

Troubleshooting

  • Config edits not taking effect: check file path (conf/ vs root) and restart if key is marked non-modifiable at runtime.
  • Conversion flags enabled accidentally: reset Convert.Confirm and Upgrade.* values before startup.
  • Players can run commands but cannot access menus: verify Bank.Type.* and Bank.Opentype.Subset.* together.

Related Pages

Clone this wiki locally