Data Model & Lifecycle
IgniteSky separates its persisted island schema from its live runtime objects.
Persisted island shape
IslandData is the on-disk record. It is versioned with schemaVersion, so older blobs can be
read and migrated safely.
| Stored area | Examples |
|---|---|
| Identity | unique id, owner id, name, mode, grid index |
| Location | center, home, warps, home server |
| Progress | level, worth, bank balance, upgrades, missions, milestones |
| Membership | members, banned players, coop players, permission overrides |
| Content | flags, cosmetics, guestbook, public warps, warp categories, icons |
| Mode state | OneBlock count, skill points, skill levels, prestige |
Repository lifecycle
| Stage | What happens |
|---|---|
| Enable | The repository loads every saved island into a write-through cache. |
| Read | Lookups hit memory, not storage, for steady-state performance. |
| Save | The current island snapshot is encoded and persisted asynchronously. |
| Delete | The island is removed from both cache and storage. |
The repository also stores pending cross-server arrivals for proxy sharding.
Startup lifecycle
| Stage | What happens |
|---|---|
| Plugin enable | Configs load, storage starts, services wire up, then commands and hooks register. |
| World bootstrap | Saved per-island worlds are loaded and claimed for their hosting pool. |
| Shutdown | The repository flushes and the live caches are cleared. |
Why this matters
This is the part of the plugin that makes the rest of the wiki believable: upgrades, missions, flags, warps, sharing, sharding and mode data all sit on top of this persisted island model.