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.