HoeWars

Storage and Data

Where HoeWars keeps player data and arena files, and how to move between backends.

HoeWars stores different kinds of data in the format that suits each one. Player stats go in a database, while config and arena files stay as readable files.

What is stored where

DataFormatLocation
Player stats and match historySQLite or MySQLhoewars.db, or your MySQL server
Config, messages, scoreboardYAMLplugins/HoeWars/*.yml
Arena settings (spawns, mode)YAMLplugins/HoeWars/arenas/<name>.yml
Arena floor templatesCompact binaryplugins/HoeWars/templates/<name>

Choosing a backend

Set the backend in config.yml:

storage:
  type: SQLITE

The default. Player data goes in a single file, plugins/HoeWars/hoewars.db. No setup, nothing to install. Best for a single server.

For networks where several servers share one set of player data. Set type: MYSQL and fill in the connection details:

storage:
  type: MYSQL
  mysql:
    host: "localhost"
    port: 3306
    database: "hoewars"
    username: "root"
    password: ""
    table-prefix: "hw_"
    use-ssl: false

The connection pool (size, idle, timeouts) is configured under mysql.pool. The pool only loads when MySQL is selected.

Moving data between backends

If you start on SQLite and later move to MySQL (or back), copy your data with:

/hoe migrate <from> <to>

For example, /hoe migrate sqlite mysql. The migration runs in the background, copies player rows and match history, and reports how many rows it moved.

Back up your database before migrating. Make sure the destination backend is configured and reachable first.

Performance notes

  • Stat writes happen in the background so gameplay stays smooth.
  • Player data is loaded into memory on join and saved on quit and on a timer.
  • Leaderboards are served from a cache that refreshes on a timer rather than per request. See Stats and Leaderboards.

On this page