Skip to content

Migrating from CoreProtect

Arkonix Game Studio edited this page Nov 12, 2026 · 2 revisions

Migrating from CoreProtect

Differences and equivalent commands.

UniversalProtect is an independent replacement for CoreProtect. Most commands and parameters work the same way.

What stays the same

  • Lookup, rollback, restore, purge and the inspector work in the same style.
  • Actions with + and - (+block, -container, +inventory, ...).
  • An API modelled on CoreProtect API v13 is provided. Because it lives in its own package, plugins that use CoreProtect need small changes, see API.
  • The networking API (coreprotect:handshake, coreprotect:data) works with Watson and similar mods, see Networking.
  • The command is /up instead of /co.

What is new

Area CoreProtect UniversalProtect
Databases SQLite, MySQL DuckDB, SQLite, MySQL, ClickHouse
Switching databases Manual Live with /up migrate-db
Preview #preview #preview with details on blocks, containers, entities, inventories
Reviving mobs No Yes, with profession, level and trades
Long parameter names No user:, time:, radius:, action:, include:, exclude:
Text filter No f: / filter:
Pages /co page Also /up lookup 1:10
Per-world config No <world>.yml
Blacklist blacklist.txt Plus id@user rules
Purge Time, radius Plus block or entity targets and #optimize

Command comparison

CoreProtect UniversalProtect
/co inspect /up inspect
/co lookup u:X t:1d /up lookup u:X t:1d
/co rollback u:X t:1h r:20 /up rollback u:X t:1h r:20
/co restore ... /up restore ...
/co purge t:30d /up purge t:30d
/co reload /up reload

Moving your data

The CoreProtect database cannot be imported directly because the schema is different. Start with a fresh UniversalProtect database. If you still need old entries, keep the old CoreProtect database file as a backup.

Warning: Do not run both logging plugins with rollbacks at the same time. They would change the same blocks.

Importing your CoreProtect data

UniversalProtect can import an existing CoreProtect database. Run it in the console (universalprotect.admin):

/up import-coreprotect sqlite                 Uses plugins/CoreProtect/database.db
/up import-coreprotect sqlite <file>          A CoreProtect SQLite file
/up import-coreprotect mysql <host[:port]> <database> <user> [password]

Options:

Option Meaning
--prefix=co_ Table prefix of the CoreProtect tables (letters, digits and _)
--items Also import item and inventory history. Skipped by default
--force Import again even if imported data already exists. This creates duplicates
  • Imports blocks, containers, signs, chat, commands and sessions.
  • The CoreProtect database is opened read-only and stays untouched.
  • The import runs in the background. Progress appears in the console.
  • Only one import can run at a time, and not during a database migration.
  • Imported entries work with lookup, rollback and restore like any other entry.

What else is new

Area UniversalProtect
Command rollback /fill, /setblock and /clone with #command
Investigation /up investigate and /up timeline, see Investigation and Alerts
Alerts X-ray and anomaly detection with optional Discord webhook
Staff audit /up audit
Crash recovery Interrupted rollbacks resume after a restart
Compaction /up compact, see Purge

Related pages: Commands · API · Networking

Clone this wiki locally