📜Configuration
# =====================================================================
# NetworkEconomy configuration
# Cross-server, Vault-compatible economy for Paper/Spigot networks.
# =====================================================================
# A unique identifier for THIS server inside the network.
# It is used as the "source server" for transaction logs and to ignore
# Redis messages published by this same node. Must be different on every
# server of the network.
server-id: "lobby-1"
# ---------------------------------------------------------------------
# Storage: authoritative persistent store (MySQL / MariaDB).
# This is the single source of truth. All balances live here.
# ---------------------------------------------------------------------
storage:
host: "127.0.0.1"
port: 3306
database: "networkeconomy"
username: "root"
password: "changeme"
pool:
# HikariCP pool sizing. Keep it small; economy queries are short.
maximum-pool-size: 10
minimum-idle: 2
# Prefix for all tables created by the plugin (see schema.sql).
table-prefix: "ne_"
# ---------------------------------------------------------------------
# Redis: pub/sub used to keep local caches coherent in real time.
# Optional but STRONGLY recommended for multi-server setups.
# ---------------------------------------------------------------------
redis:
enabled: true
host: "127.0.0.1"
port: 6379
username: "" # leave empty unless your Redis uses ACL users
password: "" # leave empty for no auth
database: 0
# Channel used for balance-change broadcasts across the network.
channel: "networkeconomy:updates"
pool:
minimum-size: 2
maximum-size: 8
# ---------------------------------------------------------------------
# Local in-memory cache for online players.
# ---------------------------------------------------------------------
cache:
expire-after-seconds: 300
fallback-refresh-seconds: 30
# ---------------------------------------------------------------------
# Currencies. The first entry is the DEFAULT currency and the one exposed
# through the Vault Economy API.
# ---------------------------------------------------------------------
currencies:
coins:
display-name: "Coin"
display-name-plural: "Coins"
symbol: "$"
symbol-before: true
decimals: 2
starting-balance: 100.0
payable: true
default: true
gems:
display-name: "Gem"
display-name-plural: "Gems"
symbol: "♦"
symbol-before: false
decimals: 0
starting-balance: 0.0
payable: false
default: false
# ---------------------------------------------------------------------
# Command behaviour.
# ---------------------------------------------------------------------
commands:
pay:
minimum-amount: 0.01
deny-self: true
tax-percent: 0.0
baltop:
entries-per-page: 10
cache-seconds: 60
# ---------------------------------------------------------------------
# Transaction history GUI.
# ---------------------------------------------------------------------
gui:
history:
title: "&8Transaction History"
rows: 6
entries-per-page: 45
# ---------------------------------------------------------------------
# Messages. Supports legacy '&' colour codes and MiniMessage tags.
# ---------------------------------------------------------------------
messages:
prefix: "&6&lNE &8» &r"
no-permission: "&cYou do not have permission to do that."
player-only: "&cThis command can only be used by players."
player-not-found: "&cPlayer &e{player}&c has never joined the network."
invalid-amount: "&cPlease provide a valid, positive amount."
invalid-currency: "&cUnknown currency: &e{currency}&c."
balance-self: "&7Your balance: &a{balance}"
balance-other: "&7{player}'s balance: &a{balance}"
pay-sent: "&aYou sent &e{amount}&a to &e{receiver}&a."
pay-received: "&aYou received &e{amount}&a from &e{sender}&a."
pay-insufficient: "&cYou do not have enough {currency}."
pay-self: "&cYou cannot pay yourself."
eco-give: "&aGave &e{amount}&a to &e{player}&a. New balance: &e{balance}"
eco-take: "&aTook &e{amount}&a from &e{player}&a. New balance: &e{balance}"
eco-set: "&aSet &e{player}&a's balance to &e{balance}&a."
eco-reset: "&aReset &e{player}&a's balance to the starting amount."
error-generic: "&cAn internal error occurred. Please contact staff."
# Enable verbose logging for debugging (SQL / Redis traffic).
debug: falseGeneral
server-id
Unique identifier for this server. Written to every transaction row as the origin server, and used to ignore this node's own Redis broadcasts. Must differ on every server
debug
Verbose logging of SQL and Redis traffic
storage
host / port
MySQL / MariaDB address
database
Database name — must already exist
username / password
Credentials; the user needs table-creation rights on first start
pool.maximum-pool-size
Maximum HikariCP connections. Also determines the plugin's worker-thread count (minimum 2). Keep it small
pool.minimum-idle
Connections kept open while idle
table-prefix
Prefix applied to all three tables. Substituted for {prefix} in the schema
Changing table-prefix after first start points the plugin at a new, empty set of tables — the old balances are still in the database but no longer read. Only change it before going live.
redis
enabled
Turn real-time sync on or off. When off, caches refresh on a timer instead
host / port
Redis address
username
Only needed for Redis ACL users; leave empty otherwise
password
Leave empty for a Redis with no auth
database
Redis logical database index
channel
Pub/sub channel for balance broadcasts. Must be identical on every server
pool.minimum-size / maximum-size
Lettuce connection-pool sizing. A dedicated connection is used for the subscription
cache
expire-after-seconds
How long a cached balance is trusted before a background refresh is forced. Only matters when Redis is off or a message was missed — with Redis on, this can stay high
fallback-refresh-seconds
With Redis disabled, how often online players are re-synced from the database. Ignored when Redis is enabled
currencies
Covered in detail on currencies.md.
commands
pay.minimum-amount
Smallest amount accepted by /pay
pay.deny-self
Block players from paying themselves
pay.tax-percent
Percentage removed from the transferred amount. 0.0 disables the tax
baltop.entries-per-page
Rows shown per /baltop page
baltop.cache-seconds
How long a computed /baltop page is reused before being queried again
With pay.tax-percent above zero, /pay cannot use a single atomic transfer: the sender is debited the full amount and the receiver credited the net, and the difference leaves circulation. Leave the tax at 0.0 if you want transfers to stay a single all-or-nothing database transaction.
gui.history
title
Inventory title of the history GUI
rows
Inventory height, clamped to 1–6
entries-per-page
Transactions per page. Leave room for the navigation row — with rows: 6, 45 fills the top five rows and leaves the last for navigation
messages
Every value supports legacy & colour codes and MiniMessage. A string containing & is parsed as legacy; otherwise it is parsed as MiniMessage — so &aHello and <green>Hello</green> both work, but don't mix the two in one line.
prefix is prepended to command feedback automatically. Available placeholders:
{player} {amount} {currency} {balance} {sender} {receiver} {reason} {page} {pages}
Not every placeholder is meaningful in every message — {receiver} only makes sense in pay-sent, for instance. Unknown placeholders are left as-is rather than erased.
Last updated