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
| Data | Format | Location |
|---|---|---|
| Player stats and match history | SQLite or MySQL | hoewars.db, or your MySQL server |
| Config, messages, scoreboard | YAML | plugins/HoeWars/*.yml |
| Arena settings (spawns, mode) | YAML | plugins/HoeWars/arenas/<name>.yml |
| Arena floor templates | Compact binary | plugins/HoeWars/templates/<name> |
Choosing a backend
Set the backend in config.yml:
storage:
type: SQLITEThe 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: falseThe 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.