Data Files
The 51 files in mods/Siren_Cultivation/Data/ are not settings. They are the server's own save state, written through the same config machinery as everything else purely because that machinery is the proven way this engine persists a server-wide array to disk. Two of them - CultivationSeasonData.json and MarketPriceData.json - are loaded by their own system rather than at startup, so they only appear once that system first has something to save.
Do not hand-edit these while the server is running. For each one, a manager class holds the live authoritative copy in memory and rewrites the whole file on every mutation - so any change you make on disk is silently overwritten the next time anything happens in that system. If you genuinely need to surgically fix one, stop the server first, edit, and start it again.
They also carry no ConfigName or ConfigVersion, since there is no user-facing layout to version or migrate. A missing file, or a missing key inside one, simply decodes as empty - the same as a brand-new server - which is why deleting a data file is always possible: it resets that one system, and nothing else, to a blank slate. What it costs you differs a great deal from file to file, and each section or table below says which. The ones that hold something players are owed - items, Spirit Stones, rewards - deserve the most care.
Everything below describes what each file stores, not how to tune it. The tunable settings for these systems live in Core, Cultivation, Arts and Society configs. The eleven files described first have a section each; the other forty are grouped by area in the tables that follow, from Placed structures onward.
Sects Data
Every sect on the server, found in the path mods/Siren_Cultivation/Data/SectsData.json. Held live by SectManager.
A single Sects array. Each sect records its name, its leader's UUID, its member and elder rosters, its join policy and any pending join requests, its motto, and - if it holds one - its hall: the world, the hall chunk's X and Z, and the Spirit Vein tier that chunk rolled. A sect that has inscribed a technique into its hall also stores which technique that is, since it must be revoked from every member the moment the hall is lost.
See Sects.
Formations Data
Every placed formation on the server, found in the path mods/Siren_Cultivation/Data/FormationsData.json. Held live by FormationManager.
A single Formations array. Each formation records its type, the world and chunk it is anchored to, its radius in chunks, and its controller - either an owner UUID for a personally placed formation or a sect name for a sect-controlled one - plus the time it was created.
See Formations.
Wars Data
In-flight sieges and post-war cooldowns, found in the path mods/Siren_Cultivation/Data/WarsData.json. Held live by WarManager.
Two arrays. Sieges holds each live siege: the attacking and defending sect names, the world and chunk of the contested hall, how much hold time the attacker has accrued so far, and how much of the siege window remains. Cooldowns holds each sect name that is currently immune from being besieged, with the timestamp that immunity expires at.
Because the remaining window and the cooldown expiry are both persisted, a server restart mid-siege does not hand either side a free reset.
See Sect Wars.
Dwellings Data
Every claimed Cave Abode and every sect-hall spring, found in the path mods/Siren_Cultivation/Data/DwellingsData.json. Held live by DwellingManager.
A single Dwellings array. Each entry records its owner UUID (or the sect name, for a hall spring), the world, chunk, and radius it covers, the Spirit Vein tier beneath it, the owner's realm ordinal (which sets the spring's pool cap), the Qi currently banked in its spring, the timestamp that Qi was last accrued to, the timestamp its paid upkeep runs out at, and when it was created.
The two timestamps are why abodes accrue on wall-clock time rather than ticking: the spring's growth is computed from the gap between LastAccrualMillis and now, so it fills correctly across a restart or a long absence without the server doing any work while nobody is there.
See Cave Abodes.
Leaderboard Data
The server-wide ranking index, found in the path mods/Siren_Cultivation/Data/LeaderboardData.json. Held live by CultivationLeaderboard.
A single Entries array, one per known cultivator: their UUID, their last-seen username, their realm and stage ordinals, and their banked Qi.
This is persisted rather than kept purely in memory because sect rankings are summed from it. While the index lived only in memory, a member who had not logged in since the last restart scored zero, so sect standings ranked sects by who happened to be online rather than by their actual roster. Deleting it brings that back until each member next logs in.
A second array, SeasonSnapshots, is the old per-profile season baseline. This release only reads it, once per account, as a migration source; the current per-account season progress lives in Cultivation Season Data.
Master-Disciple Data
Every Master-Disciple bond on the server, found in the path mods/Siren_Cultivation/Data/MasterDiscipleData.json. New in 0.8.0.
One row per bond — the master's UUID, the disciple's, and when it was formed — plus the dissolve cooldowns that bar either party from a new bond for an hour. Pending offers are not here: they live in memory and expire in 120 seconds.
Tournaments Data
Sect tournament state, found in the path mods/Siren_Cultivation/Data/TournamentsData.json. New in 0.8.0.
The bracket a sect is currently running — its rounds, its pairings and who is still in — and the per-sect start cooldowns. A completed tournament leaves only its cooldown behind; the champion's title is earned on the account, not stored here.
Secret Realms Data
Every tracked Secret Realm, found in the path mods/Siren_Cultivation/Data/SecretRealmsData.json. New in 0.8.0.
One row per site: its world, its anchor chunk, when it opened, when it seals, whether it has been stocked with beasts yet, and — for a fragment-opened realm — who opened it. Persisted so a restart mid-realm does not strand an open site with no timer attached to it.
Cauldrons Data
Placed Pill Cauldrons, found in the path mods/Siren_Cultivation/Data/CauldronsData.json. New in 0.8.0.
One row per cultivator: where their cauldron stands. Setting the flag down elsewhere moves the row rather than adding a second, which is what makes "one cauldron per cultivator" a property of the data rather than a check.
Fields Data
Spirit Field plots, found in the path mods/Siren_Cultivation/Data/FieldsData.json. New in 0.8.0.
One row per plot — whose abode it belongs to and how much herb progress has accrued — since a field grows while its owner is offline and so cannot live in a player component. A plot whose abode lapses or is abandoned is dropped.
Web Store Data
The cached Treasure Pavilion entitlement lists, found in the path mods/Siren_Cultivation/Data/WebStoreData.json. New in 0.8.0.
Per registered benefit: the account IDs currently entitled, and when that list was last fetched. It is a cache, not a record — deleting it costs nothing but one early re-fetch, and a server that has been offline keeps serving the last list it saw rather than revoking everybody.
Placed structures
Registries of things players set down in the world. Each is a single array of placements, held live by its own manager. Deleting one makes the server forget those placements; it does not remove the blocks themselves.
| File | Stores | If you delete it |
|---|---|---|
BeastPensData.json | Every placed Beast Pen (Pens). See Spirit Beasts. | Every pen is forgotten. |
SpiritDensData.json | Every placed Spirit Beast Den (Dens). | Every den is forgotten. |
SpiritHearthsData.json | Every placed Spirit Hearth (Hearths). See Spirit Cooking. | Every hearth is forgotten. |
TalismanDesksData.json | Every placed Talisman Desk (Desks). See Talismans. | Every desk is forgotten. |
ForgeAnchorsData.json | Every placed Forge Anchor (ForgeAnchors). See Forging. | Every anchor is forgotten. |
ArrayPlatformsData.json | Every placed Array Platform (Platforms). See Transmission Arrays. | Every platform is forgotten. |
SiegeBannersData.json | Every standing Siege Banner (Banners). See Sect Wars. | Standing banners are forgotten. |
TreasureCacheData.json | Every tracked Treasure and Ruin exploration site (Sites). | The tracked sites are forgotten. |
HallOfFameFoundationData.json | The Hall of Fame Foundation - a server-wide singleton, not a list. One row: whether it is Placed, its world and X/Y/Z, when it was placed and by whom. First placement wins; it is a one-time civic landmark. | The Foundation counts as unplaced. |
ExpeditionsData.json | Every cultivator's active Beast Expedition (Expeditions). | Expeditions in progress are lost. |
Bonds, oaths and inheritance
Relationships between cultivators and sects, kept as arrays of rows. Pending offers and proposals are not saved in any of them - an unanswered offer is not worth persisting, and expires in memory.
| File | Stores | If you delete it |
|---|---|---|
AllianceData.json | Every standing sect relation on the non-aggression, trade and alliance ladder (Alliances), every unilateral rivalry declaration (Rivalries), and the post-breakup cooldowns (RelationCooldowns). | Every sect relation, rivalry and cooldown resets. |
OathsData.json | Every sworn Heavenly Oath (Oaths), plus every breach penalty and stake transfer that has been decided but has not yet landed on its player (PendingPenalties). It lives in the same file so a breach's broken status and the penalty it owes are written by one save. | Sworn oaths vanish, and so does any penalty that was still owed. |
DaoInheritanceData.json | Dao Inheritance: the houses (Houses), the rivalries between them (Rivalries) and the heir confirmations (HeirConfirmations). See Dao Inheritance. | Houses, rivalries and confirmations reset. |
LegacyData.json | Cultivation Legacy: each benefactor's standing heir designation (HeirDesignations), retirement buffs still waiting for an offline heir (PendingGrants, each with its own wall-clock deadline) and the history of retirements (LegacyHistory). | Designations, waiting grants and history reset. |
Owed rewards and escrow ledgers
These hold something players are owed - items, Spirit Stones, Qi or rewards that could not be delivered at the moment they were earned. Nobody's item or Spirit Stones are ever simply deleted by these systems; they wait here until they can be delivered. Deleting one of these forfeits what it holds - the affected players are not refunded.
| File | Stores | If you delete it |
|---|---|---|
AuctionData.json | The whole Auction House: every active listing (Listings) and every claimable parcel (Claimables) - an item from a listing that expired unsold, or the proceeds of a sale to a seller who was offline. | Every listing and every unclaimed parcel is lost. This is the one to protect. |
DaoDuelEscrowData.json | The ledger behind Dao Duel Spirit Stone stakes: one Escrows row per participant while a duel is live, and StuckStakes for a refund that could not be delivered (the recipient was offline or had no room). A restart voids every duel in flight, and the next boot refunds every leftover escrow. | Stakes held at the time and undelivered refunds are lost. |
TournamentWagerData.json | The ledger behind spectator wagers: one Wagers row per bet, and StuckParcels for any undelivered refund or payout. A restart never resumes a market, so the next boot refunds every leftover row as a stuck parcel. | Open bets and undelivered payouts are lost. |
DuelGraceData.json | The duel reconnect-grace ledger (Rows): the Qi taken from a duelist who dropped out mid-duel, in whichever state it has reached (held, paid out or refunded). Duels themselves keep no file; only this wager is written down, so a restart can never swallow it. | Qi still held or owed from a dropped duel is lost. |
PagodaPendingRewards.json | Trial Pagoda floor rewards that could not be placed in an inventory (Pending). Delivered by /cultivation pagoda claim, and automatically on login. | Unclaimed floor rewards are lost. |
DungeonRewardData.json | Foundry Warden contribution rewards that could not be paid at once (PendingRewards) - for instance to a contributor who disconnected mid-fight. See Dungeons. | Unpaid dungeon rewards are lost. |
WorldBossData.json | Calamity Beast contribution rewards that could not be paid immediately (PendingRewards), delivered on the owner's next login. Also holds the pre-rolled next-boss memo (PrerollArmToken, PrerollEventId, PrerollBossWillSpawn, PrerollBossRoleId) that the /divine heavens prophecy reads. | Unpaid rewards are lost, and a prophecy already given may no longer name its boss. |
RiftData.json | Void Rift contribution rewards that could not be paid at once (PendingRewards), plus NextRiftAllowedAtMillis - the wall-clock time before which a new rift may not open. | Unpaid rewards are lost, and the rift cooldown is forgotten. |
TideRewardsData.json | The Beast Tide defender reward queue (PendingRewards): one row per defender per settled siege, left in the file only until its Spirit Stones are actually in that player's inventory. See Beast Tide. | Undelivered defender payouts are lost. |
FactionPendingData.json | Faction-standing credits earned but not yet delivered (Credits) - the fallback when the player is offline or in another world - and the Cloudmere Concord market anti-farm counters (PairStamps), kept in the same file because both are small, rarely written, per-player records. See Factions. | Undelivered standing is lost, and the sale-pair counters reset. |
Tournaments
The two server-wide tournaments. Neither is resumed across a restart: on boot the manager cancels and refunds whatever it finds. The bracket is kept in the file anyway for after-the-fact inspection. (Sect tournaments are different - they do resume, from Tournaments Data.)
| File | Stores | If you delete it |
|---|---|---|
GrandTournamentData.json | The server-wide Grand Tournament: phase, round, entrants, pending pairs, who has advanced, and the champion history. Dormant in 0.11.0 — nothing opens a Grand Tournament, so this stays empty. | The bracket and champion history are lost. |
DaoDuelTournamentData.json | The server-wide Dao Duel Tournament: phase, round, entrants, pairs, prize pool, champion history and undeliverable prize parcels (StuckPrizes), plus when it last tried to open itself automatically. | The bracket and champion history are lost, and any prize still waiting as a stuck parcel is forfeited. |
Rankings, seasons and history
Durable mirrors of ranking indexes and the records of how past seasons ended.
| File | Stores | If you delete it |
|---|---|---|
DaoMasteryLeaderboardData.json | The Dao Mastery ranking index: one entry per cultivator with their Heavenly fraction, manifested count and composite score, plus season baselines (SeasonSnapshots). | The ranking is empty until players next log in. |
SeasonHallOfFameData.json | The Seasonal Cycle: the current season's id, start time and idempotency guard, and the Hall of Fame history, with the champion sets for Path War, the Cultivation ladder, Dao Mastery and sects. | The current season's lifecycle state and the Hall of Fame history are lost. |
PathWarData.json | Path War: both sides' season totals, every cultivator's own row, the state of the current Heavenly Schism window (so a restart mid-window resolves it quietly instead of leaving it open forever), and the history of resolved windows. | Season totals, personal rows and the window history are lost. |
ReincarnationLedgerData.json | Bloodline points and reincarnation counts per account - see Reincarnation Ledger Data. | Lineage bonuses are permanently lost. |
RivalNemesisData.json | One Nemesis record per player who has ever lost to a Wandering Rival Cultivator: the Nemesis's name and tier, wins and losses against the player, last encounter and whether it is retired. See Rival Cultivators. | Every grudge resets; players no longer have a Nemesis. |
BountiesData.json | The Bounty Board: the current board (Board), the next rotation time (RotationDueMillis), and every cultivator's live and claimed contracts (Acceptances). | The board and everyone's contracts reset. |
HeavenlyRealmData.json | The Heavenly Realm's own world-level state, a single field: the Heavenly Dew per-account daily gather and consume ledger (DewLedger). The old carve and rebuild keys are gone as of 0.11.0 - the realm is now generated by WorldGen V2 - and an old file that still has them is simply ignored. | Everyone's daily Dew allowance resets. |
Schedulers and counters
Small standing-state files where losing them costs almost nothing.
| File | Stores | If you delete it |
|---|---|---|
CelestialData.json | The celestial scheduler's pre-roll: which event it is armed to run next and when (NextEventAtMillis, NextEventId, ArmToken, ArmedAtMillis). /divine heavens reads it. | The scheduler arms a fresh pick at the next boot, as it did before the pre-roll existed. |
TidesData.json | Every Beast Tide target's standing state (Targets): its world, suppression and cooldown timers. Only this survives a restart - an assault in progress is deliberately not persisted, and a crashed tide never resumes. See Beast Tide. | Cooldowns and suppression reset, so targets become eligible again at once. |
ArrayCooldownsData.json | Every player's outstanding Teleportation Array travel cooldown (Cooldowns). The combat-recency lockout is memory-only and not here. | Everyone's travel cooldown is cleared. |
BalanceLedger.json | Aggregate usage counters - stable counter ids and their totals, plus the time the first one was recorded (Counters, SinceMillis). No player name or UUID is ever stored. Read and cleared by /cultivation admin balance and /cultivation admin balance reset. | Only the counters reset. |
Admin Backups Data
The undo history for admin edits to a player's progress, found in the path mods/Siren_Cultivation/Data/AdminBackupsData.json. Held live by AdminBackupStore.
A Players array with one row per target player: their UUID and last known name, the next sequence number, and a Records array of backups. Each record carries when it was taken, its scope and source, who did it and to whom, which profile it touched, whether and as what it has since been restored, and a Fields list of before and after values. How many records are kept per player is set by Admin-Backups-Per-Player in the Core Config; older ones are dropped first.
Deleting the file costs you the ability to restore any past admin edit. A restore that is already in flight is guarded in memory only, so do not touch the file while an admin is mid-restore.
Reincarnation Ledger Data
The server-wide bloodline-point index, found in the path mods/Siren_Cultivation/Data/ReincarnationLedgerData.json. Held live by ReincarnationLedger.
An Entries array, one per account that has reincarnated: its UUID, last-seen username, accumulated BloodlinePoints and ReincarnationCount. The bonus every connected cultivator earns is computed from these points, so deleting the file permanently erases the lineage bonuses. See Reincarnation and the Reincarnation Config.
Cultivation Season Data
Per-account progress on the Cultivation ladder's season, found in the path mods/Siren_Cultivation/Data/CultivationSeasonData.json. Owned and written only by CultivationLeaderboard, and loaded by it directly - so, like Market Price Data below, the file appears only once there is something to save.
A Rows array with one row per account: the UUID, the SeasonId, and two levels, StartPeak (the highest level any of the account's real cultivators held the first time the season saw the account) and Peak (the same reading as of the account's latest real record). The season delta is Peak - StartPeak, never below 0. It measures an account's best real cultivator rather than whichever profile happens to be active.
It replaced the SeasonSnapshots array in Leaderboard Data, which is now read once per account only as a migration source. Deleting the file resets everyone's season delta to zero for the current season. See the Seasonal Cycle.
Market Price Data
The Auction House price guide's backing store, found in the path mods/Siren_Cultivation/Data/MarketPriceData.json. Loaded by the price index directly, so the file appears only once the index first saves.
A Sales array of recent completed-sale samples: the ItemId, the whole-stack TotalPrice, the Quantity and a timestamp. It is a purely descriptive cache, never consulted by the Auction House itself - so deleting it, or losing the last throttled save, only makes the guide read not enough trades yet for a while longer. It is safe to delete. See Auction House.