Configuration
On this page(3)
SnUserTransfer ships three YAML files:
| File | Updates |
|---|---|
config.yml | New keys are auto-merged on boot; your values and comments are preserved |
lang/messages_en.yml | New keys are auto-merged on boot; every message, screen and state word lives here |
profiles.yml | Written once on first start and never updated again: it is yours. See Profiles |
/sntransfer reload re-reads them. Every transfer reads a fresh copy of the settings, so a reload
applies to the next command.
config.yml
# ============================================================
# SnUserTransfer - configuration
# Managed by SnLib: new keys are auto-merged on boot; your values and
# comments are preserved. Do NOT add a config-version key (retired).
# Set update-configs: false to freeze this file (SnLib only warns about
# missing keys instead of inserting them).
# Sections marked "# sn:extensible" are yours: entries you delete there
# stay deleted.
# ============================================================
# Active language code; loads lang/messages_<code>.yml (falls back to en).
lang: en
# Master switch of the SnLib auto-updater for this plugin's managed files.
update-configs: true
# Runtime debug output (also toggleable live via /sntransfer debug).
debug:
# Master toggle of the debug output.
enabled: false
# Verbosity threshold: OFF, INFO, DEBUG or TRACE.
level: DEBUG
# Category filter; an empty list lets every category through.
categories: []
# ------------------------------------------------------------
# Main command.
# ------------------------------------------------------------
command:
# Aliases of /sntransfer. Re-read on /sntransfer reload.
aliases: [snt]
# ------------------------------------------------------------
# Transfer model.
# ------------------------------------------------------------
transfer:
# Also match the old NICK as the exact full value of cells, keys and file names.
name-matching: true
# Seconds between kicking the affected players and touching the first store.
grace-period-seconds: 5
# Queue H2 and shared-file stores for the next restart; false skips and reports them.
queue-enabled: true
# ------------------------------------------------------------
# Discovery.
# ------------------------------------------------------------
discovery:
# Read SnLib-shaped database sections from every plugin's config.yml.
snlib-convention: true
# Scan plugin data folders for embedded databases and player files.
filesystem-scan: true
# Look for MySQL credentials inside other plugins' config files.
mysql-sniffing: true
# ------------------------------------------------------------
# Scan limits.
# ------------------------------------------------------------
scan:
# Files larger than this many KB are skipped. The skip is counted as an
# omission only when the file could otherwise have been transferred; an
# oversized file whose extension is neither renamed nor parsed (a mapping
# blob, a log) is skipped silently, because raising this limit would not
# make it a target either. Database files are never size-limited.
max-file-size-kb: 5120
# Maximum directory depth walked inside each plugin data folder.
max-depth: 6
# Plugin folder names never scanned or touched (case-insensitive). The
# filesystem scan still lists every excluded folder once per run, so an
# exclusion is never silent.
# The two defaults are not plugins: .paper-remapped is Paper's remapped-jar
# cache and .Sn-License is the shared licence folder of the Sn bundle. Neither
# can hold per-player data, and both spent omission lines on every run.
# Delete an entry if you really do keep a plugin in a folder of that name.
#
# UPGRADING FROM 0.12.0 OR EARLIER: these two defaults do NOT appear by
# themselves. Key auto-merge only ADDS missing keys, and it must never
# overwrite a list you chose, so an existing config keeps its own value -
# which for 0.12.0 was an empty list. To pick the defaults up, either add the
# two entries below by hand or delete this key entirely and let it be
# rewritten on the next boot.
excluded-plugins: [".paper-remapped", ".Sn-License"]
# Directory names skipped inside every plugin data folder.
excluded-paths: [logs, cache, backups, libraries]
# ------------------------------------------------------------
# Feedback.
# ------------------------------------------------------------
# Before-image backups written before any store is touched.
backups:
# Days a backup folder is kept before the retention sweep deletes it.
retention-days: 30
# Largest before-image a single table may produce. A table with more matching
# rows is reported and left untouched, because the whole before-image is held
# in memory while it is written. 0 removes the cap.
max-rows-per-table: 20000
# Per-transfer report files under reports/.
reports:
# Write the full per-plugin report file of every transfer.
write-files: truescan.excluded-plugins keeps the value you chose on an update. An install that started on 0.12.0
or earlier still has excluded-plugins: []: add ".paper-remapped" and ".Sn-License" by hand,
or delete the key and restart to get the defaults.
Key reference
| Key | Default | Description |
|---|---|---|
transfer.name-matching | true | Also match the old nick, as an exact whole value only. false matches the UUID alone |
transfer.grace-period-seconds | 5 | Wait between kicking the two accounts and the first write, so other plugins finish saving |
transfer.queue-enabled | true | Queue H2 and shared-file stores for the next restart. false skips and reports them |
discovery.snlib-convention | true | Read the database: section of every plugin's config.yml |
discovery.filesystem-scan | true | Scan plugin data folders for databases, player files and shared files |
discovery.mysql-sniffing | true | Look for MySQL credentials in other plugins' config files |
scan.max-file-size-kb | 5120 | Larger files are skipped (and reported when they could have been a target). Database files have no limit |
scan.max-depth | 6 | Folder depth walked inside each plugin data folder |
scan.excluded-plugins | [".paper-remapped", ".Sn-License"] | Plugin folders never scanned or touched. Each excluded folder is still listed once per run |
scan.excluded-paths | [logs, cache, backups, libraries] | Folder names skipped inside every plugin data folder |
backups.retention-days | 30 | Days a backup is kept before the startup sweep deletes it |
backups.max-rows-per-table | 20000 | A table with more matching rows is reported and left untouched. 0 removes the cap |
reports.write-files | true | Write reports/<id>.txt for every apply, undo and restart run |
lang/messages_en.yml
Every chat line, the kick screen, the join-denied screen and the state words (Instant, Queued,
OK, Failed, ...) are in lang/messages_en.yml. Lines starting with [noprefix] are sent
without the prefix.