Numerical Storage
Versatile system for managing currencies, mana pools, and upgraded bank accounts.
The Numerical Storage Extension provides a generic framework for managing numeric data. Use it to create custom currencies, RPG stat pools, or upgradable bank accounts with interest rates and GUI management.
This page documents the public artifact. The BTC custom artifact is maintained separately: it targets Java 25, uses the BTC MiniPlaceholders syntax and BTC GUI stack, and must not be mixed with the official public test server.
-
Source Code — View source on GitHub.
- Download Releases — Get the latest JARs.
-
Definition — Define currency rules, interest, and limits.
- Bank Levels — Configure upgrade tiers and capacities.
- Menu Config — Customize the banking interface.
Features
- Multi-Currency: Define unlimited unique storages (Gold, Tokens, Mana).
- Leveling System: Players can upgrade their storage to increase capacity and interest rates.
- Interest: Scheduled interest payouts based on Cron expressions.
- Banking GUI: Complete interface for depositing, withdrawing, and upgrading.
- Safe persistence: asynchronous asset I/O, per-artifact mutation locks, short-lived cache and schema migration.
- Profile mode: optional profile-aware keys when the Profiles integration is installed.
Quick Start
- 1. Configure Settings — Start with the configuration entry: definition. This defines global settings for the extension. → definition
Commands
All commands use the /ns prefix.
| Command | Description | Permission |
|---|---|---|
/ns open <id> | Open storage menu. | typewriter.ns.open |
/ns add <id> <amount> | Add balance (Console). | typewriter.ns.add |
/ns remove <id> <amount> | Deduct balance (Console). | typewriter.ns.remove |
/ns level <id> <value> | Set level (Console). | typewriter.ns.level |
/ns reset <id> | Wipe data (Console). | typewriter.ns.reset |
Placeholders
Use these placeholders to display values. Replace <id> with your storage Definition ID.
| Placeholder | Description |
|---|---|
%typewriter_ns_balance_<id>% | Current balance. |
%typewriter_ns_level_<id>% | Current level index. |
%typewriter_ns_capacity_<id>% | Max balance capacity. |
%typewriter_ns_interest_<id>% | Current interest rate. |
%typewriter_ns_interest_cooldown_<id>% | Time until next payout. |
%typewriter_ns_name_<id>% | Display name. |
%typewriter_ns_prefix_<id>% | Currency prefix symbol. |
Permissions
| Permission | Description |
|---|---|
typewriter.ns.open | Open a numerical storage menu. |
typewriter.ns.add | Add to a stored value. |
typewriter.ns.remove | Remove from a stored value. |
typewriter.ns.reset | Reset a stored value. |
typewriter.ns.level | Manage storage levels. |
Custom BTC variant
The custom artifact exposes the same values through MiniPlaceholders tags such as <ns_balance:bank> and <ns_level:bank>. Its Java 25 JAR, BTC GUI dependency and MiniPlaceholders engine must stay on the custom server only.
Dependencies
| Extension | Required | Usage |
|---|---|---|
| GUI Extension | Required | Menu rendering and layout system. |
| PlaceholderAPI | Optional | For @Placeholder fields. |
| Vault | Optional | Direct economy transactions in VAULT mode. |
Data migration
New writes use a technical artifact path and JSON schema version 2. A legacy file based on the old semantic artifactId is backed up under backups/numericalstorage/ and migrated on first access. Back up the TypeWriter assets/ directory before upgrading.