Quick answer: Unreal Lyra-style input contexts conflicting when local multiplayer joins? Contexts are global per player controller - assign per local player and prefix bindings.

P1 menu input swallows P2 gameplay input on couch co-op. Both contexts active simultaneously.

Per-player contexts

Use ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(). Each local player has its own context stack.

Prefix bindings per player

Action assets per player slot prevent cross-talk. P1Move and P2Move are distinct assets, not shared with player tag.

Verify with input debug

ShowDebug EnhancedInput. Lists per-controller active contexts; cross-talk is visible.

“Local multiplayer multiplies input complexity. Per-player segregation is the structural fix.”

Design input contexts with multiplayer in mind even for single-player games. Refactoring later is painful; design upfront is free.