--- type: User Story title: "US-012: Configure and persist game state" description: Give operators validated configuration and durable defensive storage for all Tyrant behavior. status: done --- # US-012: Configure and persist game state As a **server operator**, I want configurable and durable game behavior so that the plugin remains predictable across restarts and balance changes. ## Acceptance criteria - [x] Configuration covers ranges, durations, cooldowns, inactivity and maintenance intervals, effect levels and caps, mob restrictions, item materials and names, messages, timer behavior, shared-role-arena boss balance, and a validated barrier wall height defaulting to 12 blocks. - [x] Defaults match the approved user stories, including a 50-block Tyrant range and Follower range, seven-day opt-out, 48-hour inactivity, and one-minute role maintenance. - [x] Invalid required configuration prevents partial plugin initialization and produces a clear server log message. - [x] UUID-keyed state stores lifecycle, current and pending roles, assignments, login history, participation, reign progression, purchases, choices, cooldowns, paused time, item delivery, and captured mobs; the administrator-set arena center is durable across restarts. - [x] Cooldowns and deadlines use UTC instants and exclude administratively paused time. - [x] State is saved using atomic replacement where supported so failed writes do not replace valid state with partial data. - [x] Corrupt, unknown, or invalid records cannot silently grant progression, roles, powers, items, or duplicated mobs. - [x] Unknown forward-compatible configuration and state fields are preserved where practical. - [x] Plugin disable removes transient effects and presentation safely while preserving durable state. ## Related - [Persistence model](../concepts/persistence-model.md) - [Build, test, and release the plugin](us-013-build-test-and-release.md) - [Claim the Vigilante role in the arena](us-019-claim-vigilante-in-arena.md) - [Claim the Tyrant role in the arena](us-020-claim-tyrant-in-arena.md)