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 areaExamples
Identityunique id, owner id, name, mode, grid index
Locationcenter, home, warps, home server
Progresslevel, worth, bank balance, upgrades, missions, milestones
Membershipmembers, banned players, coop players, permission overrides
Contentflags, cosmetics, guestbook, public warps, warp categories, icons
Mode stateOneBlock count, skill points, skill levels, prestige

Repository lifecycle

StageWhat happens
EnableThe repository loads every saved island into a write-through cache.
ReadLookups hit memory, not storage, for steady-state performance.
SaveThe current island snapshot is encoded and persisted asynchronously.
DeleteThe island is removed from both cache and storage.

The repository also stores pending cross-server arrivals for proxy sharding.

Startup lifecycle

StageWhat happens
Plugin enableConfigs load, storage starts, services wire up, then commands and hooks register.
World bootstrapSaved per-island worlds are loaded and claimed for their hosting pool.
ShutdownThe 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.