--- type: User Story title: "US-004: Unlock and control base flight" description: Let players permanently unlock and toggle increasingly broad flight within their personal base. status: done --- # US-004: Unlock and control base flight As a **player with Base I**, I want to unlock controlled flight around my base so that I can build large structures more conveniently. ## Acceptance criteria - [x] Flight progression is unavailable until Base I is unlocked and a base is established. - [x] The plugin observes elytra held directly in the player's inventory and armor equipment while the player is in Survival mode. - [x] Elytra inside shulker boxes, bundles, or other nested containers do not count. - [x] Observing one elytra permanently unlocks Flight I, two simultaneous elytra unlock Flight II, and three simultaneous elytra unlock Flight III. - [x] A player observed with enough elytra for a later tier receives all unmet preceding flight tiers. - [x] Elytra are not consumed, and losing them later does not revoke an earned tier. - [x] Flight I permits plugin-granted flight within the current horizontal base radius and from 25 blocks below through 25 blocks above base Y by default. - [x] Flight II expands the vertical range to 100 blocks below and above base Y by default. - [x] Flight III expands the vertical range to the world's minimum and maximum build heights. - [x] A configurable five-block horizontal warning buffer extends beyond the current base radius. - [x] Plugin-granted flight remains active in the warning buffer, and a prominent on-screen notice that the player is leaving the base appears only while the player is actively flying. - [x] Passing beyond the warning buffer removes only flight granted by this plugin. - [x] Flight is not granted outside the unlocked vertical range. - [x] `/basesettings flight enable` enables unlocked flight idempotently, and `/basesettings flight disable` disables it idempotently. - [x] Invalid flight arguments show command usage, and `enable` and `disable` are offered through autocomplete. - [x] The flight toggle persists across reconnects and restarts. - [x] The plugin handles teleportation, world changes, game-mode changes, death, logout, and plugin shutdown without leaving unintended flight enabled. ## 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-009: View progression and unlock notifications](us-009-view-progression-and-notifications.md)