Skip to content

Migration

elitescouter edited this page Mar 23, 2026 · 3 revisions

Migration

EliteEssentials includes migration services to help you import data from other plugins or previous versions.

Using the Migration Command

EliteEssentials provides the /eemigration command to migrate data from other essentials plugins. This command is admin only.

/eemigration

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)

Hyssentials Migration

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

How Migration Works

The migration is handled by the HyssentialsMigrationService class, which:

  1. Detects if a Hyssentials data folder exists at ../HytaleServer/hyssentials/ (relative to the EliteEssentials data folder)
  2. Reads the Hyssentials warps.json file and imports each warp that doesn't already exist in EliteEssentials
  3. Reads the Hyssentials homes.json file and imports homes for each player
  4. Creates player data files for players who have homes but no existing EliteEssentials data
  5. Logs all migration actions and errors

Running Migration

The migration runs automatically when:

  1. EliteEssentials starts up and detects the Hyssentials folder
  2. 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.

Migration Output

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] ========================================

Troubleshooting Migration

"Hyssentials folder not found"

  • Ensure Hyssentials was previously installed and has a hyssentials/ folder
  • The folder should contain warps.json and/or homes.json files

"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

HomesPlus Migration

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.

Data File Locations

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

Manual Migration

If automatic migration doesn't work, you can manually import data:

  1. Stop the server
  2. Backup all data files
  3. Manually copy warps and homes from the old plugin's JSON format to EliteEssentials' format
  4. Start the server and verify the data appears correctly

See Also

JSON to SQL Migration

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.

Prerequisites

  1. Set storage.storageType to "h2" or "mysql" in config.json
  2. If using MySQL, configure the mysql connection settings
  3. Restart the server so the SQL backend initializes and creates tables

Running the Migration

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.json and import all warps
  • Read spawn.json and import spawn data
  • Read firstjoinspawn.json and 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.

Migration Output

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

Post-Migration Cleanup

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.

Important Notes

  • The command refuses to run if storageType is "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 cleanup to move them)

Clone this wiki locally