Commands Reference
Commands Reference
Section titled “Commands Reference”Every Link Cable command sits behind one root: /linkcable. The full surface is split into:
backup— the backup management suite. Used in normal admin operation.migrate— one-shot data migrations from other sync mods. Used during transitions.dev— diagnostic and stress-test commands. Only registered in development environments.
All commands require the linkcable.command.admin permission node. With no permissions plugin installed, the fallback is operator level 2.
Permissions
Section titled “Permissions”linkcable.command.adminWith LuckPerms:
/lp group admin permission set linkcable.command.admin trueThe dev commands are gated additionally by the development-environment check. They’re not available on production builds regardless of permission level.
linkcable backup
Section titled “linkcable backup”The backup management suite. See Backups for the operational guide.
| Command | Arguments | Effect |
|---|---|---|
backup create <player> [reason] | <player>: any known player (autocomplete includes offline players); [reason]: free-form text, defaults to manual | Take a full snapshot. |
backup list <player> | <player> | List every backup for the player, newest first. Each row is clickable for inspect. |
backup browse <player> | <player> | Open an in-game GUI showing the player’s backups with party/PC navigation. |
backup inspect <backupId> | <backupId>: autocompletes against known backup ids | Print full detail (lane sizes, timestamps, reason). |
backup party <backupId> | <backupId> | Open a GUI showing the party in this backup. |
backup pc <backupId> | <backupId> | Open a GUI showing the PC contents in this backup. |
backup restore <player> <backupId> | <player>, <backupId> | Restore the backup. Offline-only. Pre-restore backup taken automatically. |
backup delete <backupId> | <backupId> | Hard-delete the backup. |
backup export <backupId> <path> | <backupId>, <path>: filesystem path | Export the backup to a self-contained archive. |
backup import <path> | <path> | Import a previously-exported archive as a new backup. |
Notes on autocomplete
Section titled “Notes on autocomplete”<player>autocomplete includes offline players whose UUIDs have been seen on the network.<backupId>autocomplete pulls from currently-stored backups. The full id is rarely necessary — the first few characters narrow it.
Notes on output
Section titled “Notes on output”backup createandbackup listproduce clickable chat output. Click a backup id to inspect; click a player chip to open the browser.backup inspectoutputs as plain chat lines (no clickable elements).backup partyandbackup pcopen ConfigGUI-backed browsers and require the executor to be a player (not the console).
linkcable migrate
Section titled “linkcable migrate”Currently, migrate has one target: ultrasync. See UltraSync Migration for the operational guide.
| Command | Arguments | Effect |
|---|---|---|
migrate ultrasync <mongoUri|active> [limit] | <mongoUri|active>: full Mongo URI in quotes, or active to reuse the configured Mongo deployment; [limit]: optional integer cap on how many records to process | Bulk import UltraSync player records into Link Cable’s player-core lane. |
Behavior
Section titled “Behavior”- Online players are skipped.
- Players in non-
OFFLINEruntime states are skipped. - Per-player work is serialized behind the same distributed lock used by live sync.
- Pre-migration backups are taken automatically for any player who already has a Link Cable snapshot.
- Only the player-core lane is touched. UltraSync’s source data populates inventory, ender chest, health, food level, saturation, XP, and game mode; if UltraSync had
trinketsdata, it’s mapped into the Accessories mod’s Fabric Attachment API slot. Cobblemon lanes (party, PC, general, Pokedex) and the per-player Molang lane are preserved. - The database is fixed to
UltraSyncand the collection tousers— override only by editing theultraSyncMongoDatabaseandultraSyncMongoCollectionfields inconfig.json.
Output
Section titled “Output”The command echoes a single completion line back to the actor:
UltraSync migration finished: scanned=N migrated=N skipped=NOr, if any record failed:
UltraSync migration finished with failures: scanned=N migrated=N skipped=N failed=NEach per-player failure prints as a separate red failure line below (up to 10 per run). Re-running the command is safe — already-migrated, online, locked, or no-op-merge players are skipped on subsequent passes.
linkcable dev (Development Only)
Section titled “linkcable dev (Development Only)”The dev commands are diagnostic and stress-test tools. They’re only registered when running in a development environment — they aren’t available on production servers regardless of permission level.
These are documented for completeness. Use them on a staging network to reproduce issues; do not rely on them as production tooling.
State and Audit
Section titled “State and Audit”| Command | Effect |
|---|---|
dev state <player> | Prints a single line with state, owner, epoch, snapshot version, last flushed version and timestamp, the server that flushed, network presence, and canonical/cached snapshot versions for the player. |
dev audit | Compares the executing player’s current state (party, PC, box names/wallpapers, inventory, armor, offhand, ender chest, selected slot, food, XP, game mode, test attachment, counts) against an expected baseline captured earlier with mutate-player. Reports Audit OK or Audit FAILED with the specific mismatches. |
dev player-audit | Alias for dev audit. |
dev pasture-audit | Lists the tethered Pokémon in the executing player’s active pasture link and verifies each tether’s Pokémon UUID exists in the player’s PC. |
Forced Transfer
Section titled “Forced Transfer”| Command | Effect |
|---|---|
dev transfer <targetServer> | Force a transfer of the executing player to the named server, bypassing some normal proxy paths. Useful when proxy-side transfer commands aren’t behaving as expected on a dev network. |
Bounce Tests
Section titled “Bounce Tests”| Command | Effect |
|---|---|
dev bounce <serverA> <serverB> <hops> <delayTicks> | Move the executing player back and forth between two servers without state mutation. |
dev mutate-bounce <serverA> <serverB> <hops> <delayTicks> | Same, but mutate state between hops to verify owner-epoch fencing under churn. |
These reproduce real network flows on a staging environment. Run them before promoting a config change to production.
Crash Test
Section titled “Crash Test”| Command | Effect |
|---|---|
dev crash <delayTicks> | Schedule a crash on this backend after the given tick delay. Used to verify that crash recovery (stale-owner release, snapshot durability) works under realistic timing. |
Don’t run this on a server with anyone else online.
State Mutation
Section titled “State Mutation”| Command | Effect |
|---|---|
dev mutate-player <step> | Apply a known mutation pattern to the executing player’s state. Used inside bounce tests to introduce verifiable state changes. |
dev set-test-attachment <value> | Write an integer test attachment onto the executing player. |
dev get-test-attachment | Print the player’s current test attachment value. |
Test attachments are a debugging hook for verifying that custom Cobblemon-side player attachments survive transfers. They aren’t used in production sync.
Output and Failures
Section titled “Output and Failures”Every Link Cable command sends its result back through the chat surface to the executing source. Successful commands send success chat (visible to the source); failures send failure chat (red).
For commands that produce structured output (backup list, backup inspect, audits), the output is one line per item, in the order produced by the command. Long lists scroll past the chat history limit — use the in-game GUIs (backup browse, etc.) for interactive navigation.
For commands that affect player state (backup restore, migrate ultrasync, dev mutate-bounce), the operation log lines also appear in the server console with [Link Cable] prefixes, regardless of who initiated the command.
See Also
Section titled “See Also”- Backups — operational guide for the backup commands.
- UltraSync Migration — operational guide for the migrate command.
- Configuration — the field reference for
config.json. - Beta and Production Rollout — patterns for ongoing operation.