neon-sprawl/docs/decomposition/modules/E6_M1_PvPEligibilityAndFlag...

2.2 KiB

E6.M1 — PvPEligibilityAndFlagState

Summary

Field Value
Module ID E6.M1
Epic Epic 6 — PvP Security
Stage target Prototype
Status Planned (see dependency register)

Purpose

Server-enforced rules for whether player-versus-player combat is allowed: driven by E4.M4 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 (or dedicated PvP branch) consults eligibility before applying player-vs-player actions (integration detail per implementation).

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