# E6.M1 — PvPEligibilityAndFlagState

## Summary


| Field            | Value                                                              |
| ---------------- | ------------------------------------------------------------------ |
| **Module ID**    | E6.M1                                                              |
| **Epic**         | [Epic 6 — PvP Security](../epics/epic_06_pvp_security.md)          |
| **Stage target** | Prototype                                                          |
| **Status**       | Planned (see [dependency register](module_dependency_register.md)) |


## Purpose

Server-enforced rules for whether player-versus-player combat is allowed: driven by [E4.M4](E4_M4_SecurityTierZoneFlags.md) security tiers and explicit opt-in context. Ensures PvP is never client-only toggles; eligibility is authoritative and auditable.

## Responsibilities

- Evaluate `EligibilityRule` against current zone policy and player PvP flag / consent context.
- Maintain and transition `PvPFlagState` (or equivalent) with clear semantics for combat engine gating.
- Emit `PvPStateChanged` (or equivalent) for UI, telemetry, and downstream systems.

## Key contracts


| Contract          | Role                                                                 |
| ----------------- | -------------------------------------------------------------------- |
| `PvPFlagState`    | Current opt-in and effective PvP capability for an actor in context. |
| `EligibilityRule` | Policy mapping from tier + context to allow/deny.                    |
| `PvPStateChanged` | Event for subscribers (UX, analytics, combat deny reasons).          |


## Module dependencies

- **E4.M4** — SecurityTierZoneFlags: `SecurityTier`, `ZonePolicyState`, `ZoneEntryWarning` inputs.

## Dependents (by design)

- **E6.M2** — ConsentAndRiskUxSignals: prompts and HUD indicators.
- **E6.M3** — LossPenaltyAndAntiGriefRules: builds on eligibility and zone context.
- **Combat resolution** — [E5.M1](E5_M1_CombatRulesEngine.md) consults E6.M1 **in the same pipeline** before applying player-target hostility; see [PvP and the combat engine](pvp_combat_integration.md).

## Related implementation slices

See Epic 6 **Slice 1 — Zone-based PvP flag core**: high-sec blocks player combat; server-enforced eligibility; telemetry `pvp_state_changed`, `pvp_zone_enter`, `pvp_zone_exit`.

## Risks and telemetry

- PvP feeling mandatory: pair with E6.M4 reward parity and design gates from master plan.
- Griefing: high-sec safe hubs; fast iteration using telemetry and E9 integrity paths when live.

## Source anchors

- Master plan: [`neon_sprawl_vision.plan.md`](../../../neon_sprawl_vision.plan.md) — Core Epic Map, Epic 6.
- [Module dependency register](module_dependency_register.md)

