35 lines
2.4 KiB
Markdown
35 lines
2.4 KiB
Markdown
---
|
|
type: User Story
|
|
title: "US-011: Configure and persist progression"
|
|
description: Give operators validated configuration and durable, defensive storage for all base progression behavior.
|
|
status: done
|
|
---
|
|
|
|
# US-011: Configure and persist progression
|
|
|
|
As a **server operator**, I want progression behavior to be configurable and durable so that the plugin remains predictable across restarts and server changes.
|
|
|
|
## Acceptance criteria
|
|
|
|
- [x] Configuration supports all qualifying materials, progression thresholds, radii, vertical flight limits, warning-buffer distance, warm-ups, cooldowns, prices, particle settings, and notification durations.
|
|
- [x] Default values match the progression requirements documented by the related user stories.
|
|
- [x] Thresholds and levels are validated as nonnegative, representable, and sequentially coherent where required.
|
|
- [x] Radii, vertical ranges, durations, and prices reject unsafe or nonsensical values.
|
|
- [x] Invalid required configuration prevents partial plugin initialization and produces a clear server log message.
|
|
- [x] UUID-keyed state persists latest known names, base locations, counters, levels, relocation times, teleport times, visitor cooldowns, navigation preferences, flight preferences, boss-bar preferences, and visitor settings.
|
|
- [x] UUID-keyed Pocket Base state persists raid-earned flight unlocks, with missing legacy values defaulting safely to locked.
|
|
- [x] Pocket Base state persists the owner automatic-flight preference and active flight portal, with safe defaults for legacy records.
|
|
- [x] Cooldowns and relocation limits use real elapsed timestamps and continue while players are offline.
|
|
- [x] State is saved safely so a failed write does not replace valid persisted state with a partial document.
|
|
- [x] Corrupt, unknown, or invalid records are handled defensively and cannot silently grant progression or privileges.
|
|
- [x] Unknown forward-compatible configuration and state fields are preserved where practical.
|
|
|
|
## Related
|
|
|
|
- [US-001: Unlock and establish Base I](us-001-unlock-and-establish-base.md)
|
|
- [US-003: Expand the base](us-003-expand-the-base.md)
|
|
- [US-010: Administer player progression](us-010-administer-player-progression.md)
|
|
- [US-012: Build and release the plugin](us-012-build-and-release-plugin.md)
|
|
- [US-021: Unlock Pocket Base flight](us-021-unlock-pocket-base-flight.md)
|
|
- [US-022: Share Pocket Base flight through a portal](us-022-share-pocket-base-flight-through-a-portal.md)
|