-
Notifications
You must be signed in to change notification settings - Fork 12
Data Storage
EliteEssentials stores all persistent data in JSON files within the mod's data folder.
mods/
EliteEssentials/
config.json - Configuration settings
homes.json - Player home locations
warps.json - Server warp locations
back.json - Player back locations (previous positions)
spawn.json - Server spawn location
kits.json - Kit definitions
kit_claims.json - Player kit claim tracking
motd.json - Message of the Day content
rules.json - Server rules content
first_join.json - First join tracking
Stores all player home locations indexed by player UUID.
{
"550e8400-e29b-41d4-a716-446655440000": {
"base": {
"name": "base",
"location": {
"world": "world",
"x": 100.5,
"y": 64.0,
"z": -200.5
},
"createdAt": 1704067200000
},
"mine": {
"name": "mine",
"location": {
"world": "world",
"x": 500.0,
"y": 12.0,
"z": 300.0
},
"createdAt": 1704153600000
}
}
}Structure:
- Top-level keys are player UUIDs
- Each player has a map of home name to home object
- Home names are stored lowercase
-
createdAtis Unix timestamp in milliseconds
Stores all server warp locations.
{
"shop": {
"name": "shop",
"location": {
"world": "world",
"x": 0.0,
"y": 64.0,
"z": 0.0
},
"permission": "ALL",
"createdBy": "EliteScouter",
"createdAt": 1704067200000
},
"arena": {
"name": "arena",
"location": {
"world": "world",
"x": 1000.0,
"y": 80.0,
"z": 1000.0
},
"permission": "OP",
"createdBy": "Admin",
"createdAt": 1704153600000
}
}Structure:
- Top-level keys are warp names (lowercase)
-
permissionis eitherALLorOP -
createdByis the player name who created the warp -
createdAtis Unix timestamp in milliseconds
Stores player back location history.
{
"550e8400-e29b-41d4-a716-446655440000": [
{
"world": "world",
"x": 100.0,
"y": 64.0,
"z": -200.0
},
{
"world": "world",
"x": 50.0,
"y": 70.0,
"z": -100.0
}
]
}Structure:
- Top-level keys are player UUIDs
- Each player has an array of locations (most recent first)
- Array size is limited by
back.maxHistoryconfig
All location objects share the same structure:
{
"world": "world",
"x": 100.5,
"y": 64.0,
"z": -200.5
}| Field | Type | Description |
|---|---|---|
world |
string | World/dimension name |
x |
double | X coordinate |
y |
double | Y coordinate (height) |
z |
double | Z coordinate |
Stores the Message of the Day content with color code support.
{
"lines": [
"",
"&e&lWelcome to {server}, {player}!",
"&7There are &a{playercount}&7 players online.",
"&7You are in world &b{world}&7.",
"",
"&6> Server Resources:",
"&7* Type &a/help&7 for commands",
"&7* Type &a/rules&7 for rules",
"",
"&7EliteEssentials is brought to you by: &bEliteScouter",
"&9https://github.com/EliteScouter/EliteEssentials",
""
]
}Structure:
- Array of strings, each representing a line
- Supports color codes (
&a,&c,&l,&o,&r) - Supports placeholders:
{player},{server},{world},{playercount} - URLs are automatically detected and made clickable
Stores the server rules content with color code support.
{
"lines": [
"",
"&c&l========================================",
"&e&l SERVER RULES",
"&c&l========================================",
"",
"&a1. &7Be Respectful to others",
"&a2. &7No Cheating / Hacking",
"&a3. &7No Griefing",
"&a4. &7Have fun!",
"",
"&6Breaking these rules may result in a ban.",
""
]
}Structure:
- Array of strings, each representing a line
- Supports color codes for formatting
- Fully customizable content
Tracks which players have joined the server before.
{
"players": [
"550e8400-e29b-41d4-a716-446655440000",
"6ba7b810-9dad-11d1-80b4-00c04fd430c8"
]
}Structure:
- Array of player UUIDs who have joined before
- Used to determine if a player is joining for the first time
- Enables special first-join messages
-
Homes - Saved immediately after each
/sethomeor/delhome -
Warps - Saved immediately after each
/setwarpor/delwarp - Back - Saved periodically and on server shutdown
-
MOTD - Loaded on startup and when
/ee reloadis used -
Rules - Loaded on startup and when
/ee reloadis used - First Join - Saved immediately when a new player joins
- All Data - Saved on server shutdown
EliteEssentials automatically saves all data when:
- The server shuts down gracefully
- A home or warp is created/deleted
- The
/eliteessentials reloadcommand is run
- Data files use atomic writes to prevent corruption
- Existing data is preserved during mod updates
- Invalid JSON entries are logged and skipped (not deleted)
It is recommended to regularly backup the mods/EliteEssentials/ folder, especially:
- Before updating EliteEssentials
- Before making major configuration changes
- As part of your regular server backup routine
# Linux/Mac
cp -r mods/EliteEssentials/ backups/EliteEssentials-$(date +%Y%m%d)/
# Windows
xcopy mods\EliteEssentials backups\EliteEssentials-%date:~-4,4%%date:~-10,2%%date:~-7,2% /E /IYou can manually edit the JSON files while the server is stopped. Be careful to:
- Stop the server first - Editing while running may cause data loss
- Validate JSON syntax - Use a JSON validator before saving
- Maintain structure - Keep the same field names and types
- Use valid UUIDs - Player UUIDs must be valid format
Player UUIDs can be found:
- In server logs when players join
- Using online UUID lookup tools with player names
- In the existing data files
When updating EliteEssentials:
- Existing data files are preserved
- New fields are added with default values
- Deprecated fields are ignored (not deleted)
No manual migration is required when updating.
- Check file permissions on the data folder
- Ensure the server has write access
- Check server logs for error messages
- Verify disk space is available
If a data file becomes corrupted:
- Stop the server
- Check the file for JSON syntax errors
- Fix the syntax or restore from backup
- Start the server
- Check if the data folder location changed
- Look for data in both old and new locations
- Manually copy data files if needed
- Data files are loaded into memory on server start
- Large numbers of homes/warps may increase memory usage
- Consider periodic cleanup of unused data for very large servers
EliteEssentials by EliteScouter | GitHub | Report Issues