7. Conventions & gotchas (operational)#
The same copy also carries the handful of files a panel replica cannot regenerate — its origin certificate, its SSH gateway host key, the CLI gateway secret and its env — about 6 KB per replica, as a separate encrypted object so the store copy stays exactly a store. The replica containers are deliberately not in a vzdump pool: everything else in them is reproducible from install/ and the hub, and copying 4 GB of identical container three times to protect a few kilobytes is the wrong trade. A replica that cannot be reached is recorded as an error inside the copy rather than skipped, because a backup that quietly holds two replicas out of three is the same lie as a page that stays green.
- Reload rule:
systemctl restart mcfor full reloads. Neversk reload all(corrupts trigger state on Skript 2.14.1);sk reload <single-file>is fine for isolated scripts. - Never use unbounded
loop all <entity type>:in Skript here — crashes the whole script load on Java 25 (use… in radius N around <loc>). - File pushes into CTs:
scpto the node, thenpct push <ct> <node-path> <ct-path>(node/tmp≠ container/tmp). - Skript+SQL: result columns come back typed — use values directly;
parsed as integeron them returns<none>. MariaDB TEXT/BLOB defaults need parentheses:DEFAULT ('x'). - DB-race pattern: anything selecting from
{sql.playerdata.*}on load must wait/retry until the async connect lands (seeconduit-ffa-load-fix.sk, profilesystem). - Citizens NPC swaps: stop service → wait for JVM exit → replace saves.yml (+worldid) → start.
- Live templates carry live's velocity secret — always overwrite
paper-global.ymlwith Conduit's forwarding secret on migrated servers. - More in
CHANGELOG-TIMESMP-FIXES.md+ memory notes.