ConduitDocs

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 mc for full reloads. Never sk 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: scp to the node, then pct push <ct> <node-path> <ct-path> (node /tmp ≠ container /tmp).
  • Skript+SQL: result columns come back typed — use values directly; parsed as integer on 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 (see conduit-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.yml with Conduit's forwarding secret on migrated servers.
  • More in CHANGELOG-TIMESMP-FIXES.md + memory notes.
Edit on GitHubFEATURES.mdUpdated