DUXPLIMA Documentation

Overview

What is stored, the tables, sharing one database, keeping one server apart, and moving off SQLite.

The database holds every minion: its row, its stock, its bank, its tool, who it trusts, what it produced and paid, and who moved it. Types, fuel, prices and skins are files.

BackendFor
SQLiteOne server. The default
MySQL and MariaDBA network that keeps minions in one place
PostgreSQLThe same, on PostgreSQL

Tables

Every table name starts with storage.table-prefix, minions_ by default.

TableHolds
minions_minionOne row per minion: owner, type, level, world and position, chunk, facing, name, skin, fuel, actions done, destination and linked container, scope
minions_stockIts virtual contents; never in a block beside it
minions_filterMaterials it was told to stop collecting
minions_trustWho may use a minion they do not own
minions_ledgerWhat each minion produced and paid
minions_auditEvery placement, break, pickup, upgrade, restore and refused duplicate
minions_grantExtra slots an operator granted
minions_bankMoney held for collection
minions_tool, minions_given_toolTool wear, and the tool a player gave
minions_storedMinions picked up into the pocket, with where they last stood
minions_schema_historyThe version the tables are at

A network

Point every server at the same database with the same table-prefix, and every minion, its stock and its bank are in one place. A minion is worked by the server its chunk is loaded on; there is no sync-seconds.

Keeping one server apart

local-only = true on one server keeps its rows in its own SQLite file, whatever type says, under the same prefix.

Moving off SQLite

  1. Create the database and a user on the database server.
  2. Set type, host, port, database, username and password, and copy-from-file = true.
  3. Restart once. The rows of the SQLite file are copied into the empty tables, and the console says how many.

Tables that already hold rows are left alone, so leaving copy-from-file on copies nothing twice.

Related: config.conf