-
Notifications
You must be signed in to change notification settings - Fork 11
Migration
EliteEssentials includes migration services to help you import data from other plugins or previous versions.
EliteEssentials provides the /eemigration command to migrate data from other essentials plugins. This command is admin only.
Migrate data from another essentials plugin to EliteEssentials.
Usage:
-
/eemigration essentialscore- Migrate from nhulston's EssentialsCore -
/eemigration hyssentials- Migrate from leclowndu93150's Hyssentials -
/eemigration essentialsplus- Migrate from fof1092's EssentialsPlus -
/eemigration homesplus- Migrate from HomesPlus -
/eemigration sql [force]- Migrate JSON data into configured SQL database -
/eemigration cleanup- Move migrated JSON files into backup/ folder
Behavior:
- Checks if the source plugin's data folder exists
- Imports warps, kits, and homes from the source
- Skips items that already exist in EliteEssentials (preserves your data)
- Reports migration results with counts and any errors
- Safe to run multiple times
Example Output:
Starting Hyssentials migration...
Source: /path/to/server/mods/com.leclowndu93150_Hyssentials
Migration complete!
- Warps imported: 5
- Players with homes: 12
- Total homes imported: 23
Permissions:
- Admin only (simple mode)
-
eliteessentials.admin.reload(advanced mode)
EliteEssentials can automatically migrate data from Hyssentials, a previous Hytale server essentials plugin. This migration imports:
-
Warps from
warps.json -
Homes from
homes.json - Player data associated with homes
The migration is handled by the HyssentialsMigrationService class, which:
- Detects if a Hyssentials data folder exists at
../HytaleServer/hyssentials/(relative to the EliteEssentials data folder) - Reads the Hyssentials
warps.jsonfile and imports each warp that doesn't already exist in EliteEssentials - Reads the Hyssentials
homes.jsonfile and imports homes for each player - Creates player data files for players who have homes but no existing EliteEssentials data
- Logs all migration actions and errors
The migration runs automatically when:
- EliteEssentials starts up and detects the Hyssentials folder
- The server admin triggers migration via console command (if available)
Migration is safe to run multiple times - it will skip any warps or homes that already exist.
When migration runs, you'll see logs like:
[Migration] ========================================
[Migration] Starting Hyssentials migration...
[Migration] Source: /path/to/server/hyssentials
[Migration] ========================================
[Migration] Migrating Hyssentials warps.json...
[Migration] - Imported warp: shop
[Migration] - Imported warp: spawn
[Migration] - Imported warp: arena
[Migration] Migrating Hyssentials homes.json...
[Migration] - Imported 3 home(s) for player Steve
[Migration] - Imported 2 home(s) for player Alex
[Migration] ========================================
[Migration] Hyssentials migration complete!
[Migration] - Warps: 3
[Migration] - Players: 2
[Migration] - Homes: 5
[Migration] ========================================
"Hyssentials folder not found"
- Ensure Hyssentials was previously installed and has a
hyssentials/folder - The folder should contain
warps.jsonand/orhomes.jsonfiles
"Failed to migrate warps/homes"
- Check that the JSON files are valid and not corrupted
- Ensure file permissions allow reading the Hyssentials data folder
- Review server logs for specific error messages
Warps or homes not appearing after migration
- Migration skips items that already exist in EliteEssentials
- Check the migration log to see what was imported
- Verify the source files contain the expected data
EliteEssentials can also migrate data from HomesPlus, another Hytale homes plugin. This migration imports:
- Homes from HomesPlus's data format
The migration process is similar to Hyssentials migration and runs automatically when HomesPlus data is detected.
After migration, your data will be stored in EliteEssentials' standard locations:
mods/EliteEssentials/
├── warps.json # Warp locations
├── homes.json # Player homes (UUID -> {name -> location})
├── players/ # Per-player data folder
│ └── <uuid>.json # Individual player data
If automatic migration doesn't work, you can manually import data:
- Stop the server
- Backup all data files
- Manually copy warps and homes from the old plugin's JSON format to EliteEssentials' format
- Start the server and verify the data appears correctly
- Commands - All available commands
- Configuration - Configuration options
- Data Storage - How data is stored
If you are switching from JSON file storage to SQL (H2 or MySQL), use /eemigration sql [force] to transfer all existing data. This is part of the same /eemigration command used for plugin migrations.
- Set
storage.storageTypeto"h2"or"mysql"inconfig.json - If using MySQL, configure the
mysqlconnection settings - Restart the server so the SQL backend initializes and creates tables
Run /eemigration sql as an admin. The command will:
- Read all player JSON files from
players/and write each into the SQL database - Read
warps.jsonand import all warps - Read
spawn.jsonand import spawn data - Read
firstjoinspawn.jsonand import the first-join spawn
If the SQL tables already contain data, the command will warn you. Use /eemigration sql force to overwrite existing SQL data.
Starting JSON to SQL migration (h2)...
Migrating 150 player file(s)...
Players: 150 migrated, 0 failed.
Migrating 12 warp(s)...
Warps: 12 migrated.
Migrating 3 spawn point(s)...
Spawns: 3 migrated.
First-join spawn migrated.
Migration complete!
- Players migrated: 150
- Warps migrated: 12
- Spawns migrated: 3
- First-join spawn migrated: yes
- Time elapsed: 2.3s
After verifying the migration, run /eemigration cleanup to move old JSON files (players/, warps.json, spawn.json, firstjoinspawn.json, player_index.json) into a backup/ subfolder. This keeps your data folder clean.
You can delete the backup/ folder once you've confirmed everything works on SQL.
- The command refuses to run if
storageTypeis"json"(you must configure a SQL backend first) - Individual record failures are logged with the specific UUID/identifier and do not stop the migration
- No server restart is required after migration — in-memory caches are reloaded automatically
- Your original JSON files are not modified or deleted by the migration itself (use
cleanupto move them)
EliteEssentials by EliteScouter | GitHub | Report Issues