Skip to content

Configuration ​

The config.yml file lives in plugins/OpenEco/. OpenEco auto-migrates legacy currency.* keys into currencies.*, autosave-interval into persistence.autosave-interval-seconds, and baltop.cache-ttl-seconds into baltop.refresh-interval-seconds on startup and /eco reload.

Migration edits your file in place: it only retires the settings it replaces and adds the keys an upgrade introduced. Your own ordering, custom keys and comments are never rewritten, and the file is not saved at all when no key was added. A key named currency below the top level belongs to another plugin and is left alone — only the root currency section is migrated.

Click any option below to view additional information.

Apply most changes without a restart

After editing config.yml, run /eco reload to apply messages and most runtime rules. Storage backends, the commands section, cross-server.enabled, account-loading.mode, and account-loading.lazy.cache.enabled still require a restart.

currencies:
default:openeco
definitions:
<currency-id>:
name-singular:Dollar
name-plural:Dollars
decimal-digits:2
starting-balance:0.00
max-balance:-1
format:<amount> <name>
grouping:false
decimal-separator:.
grouping-separator:,
storage:
type:sqlite
sqlite:
file:economy.db
h2:
file:economy
mysql:
host:localhost
port:3306
database:openeco
username:root
password:
pool-size:10
connection-timeout-seconds:10
ssl-mode:preferred
jdbc-url:
mariadb:
host:localhost
port:3306
database:openeco
username:root
password:
pool-size:10
connection-timeout-seconds:10
ssl-mode:disabled
jdbc-url:
postgresql:
host:localhost
port:5432
database:openeco
username:postgres
password:
pool-size:10
connection-timeout-seconds:10
ssl-mode:prefer
jdbc-url:
migration:
source-type:sqlite
source-folder:
source-file:
persistence:
autosave-interval-seconds:30
account-loading:
mode:eager
lazy.cache.enabled:true
lazy.cache.maximum-size:50000
lazy.cache.expire-after-access-minutes:30
pay:
cooldown-seconds:0
tax-percent:0.0
min-amount:0.01
baltop:
page-size:10
refresh-interval-seconds:30
history:
page-size:10
retention-days:-1
commands:
fallback-prefix:openeco
<command>:
enabled:true
name:<command>
aliases:[]

If a name is already used by another plugin, OpenEco logs a warning and the command stays reachable through its namespaced form, for example /openeco:pay.

cross-server:
enabled:false

Messages ​

The messages section contains MiniMessage-formatted chat strings. Placeholders like <player>, <balance>, <amount>, and <currency> are replaced at runtime.

Run /eco reload after editing messages. No restart needed.

Full example ​

yaml
currencies:
  default: openeco
  definitions:
    openeco:
      name-singular: "Dollar"
      name-plural: "Dollars"
      decimal-digits: 2
      starting-balance: 0.00
      max-balance: -1
      format: "<amount> <name>"
      grouping: false
      decimal-separator: "."
      grouping-separator: ","

storage:
  type: sqlite
  sqlite:
    file: economy.db

persistence:
  autosave-interval-seconds: 30

account-loading:
  mode: eager
  lazy:
    cache:
      enabled: true
      maximum-size: 50000
      expire-after-access-minutes: 30

pay:
  cooldown-seconds: 0
  tax-percent: 0.0
  min-amount: 0.01

baltop:
  page-size: 10
  refresh-interval-seconds: 30

history:
  page-size: 10
  retention-days: -1

commands:
  fallback-prefix: openeco
  balance:
    enabled: true
    name: balance
    aliases: [bal, money]
  baltop:
    enabled: true
    name: baltop
    aliases: [balancetop, moneytop]
  pay:
    enabled: true
    name: pay
    aliases: []
  eco:
    enabled: true
    name: eco
    aliases: [economy]
  history:
    enabled: true
    name: history
    aliases: [txhistory, ecohistory]
  openecomigrate:
    enabled: true
    name: openecomigrate
    aliases: []

cross-server:
  enabled: false

See Production guide for recommended starting values on live servers.