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.

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, 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
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

cross-server:
  enabled: false

See Production guide for recommended starting values on live servers.