Quick answer: Unity Input System rebinding overrides one player's bindings affect another's? Override storage uses the action asset reference, not the actor - clone the asset per local player.
Local co-op: P1 rebinds Jump. P2's Jump now uses P1's binding.
Clone per local player
var playerActions = Instantiate(actionsAsset);
player.PlayerInput.actions = playerActions;Each player gets its own asset instance. Overrides are isolated.
Or use control schemes
Per-scheme bindings. Each scheme has its own overrides; shared base asset.
Verify with debugger
Input Debugger shows per-actor binding state. Cross-talk surfaces as identical overrides on different actors.
“Action assets are shared by default. Local multiplayer requires explicit clones.”
If you ship local multiplayer, the cloned-asset pattern is non-optional. Build it from day one; retrofit is painful.