Concept: Multiplayer & Authority
Camera is a local concern. Every CrimsonCamera feature runs on the locally-controlled pawn and produces a view for that one client - nothing here is server-authoritative gameplay state, so there is no replication to manage.
| Feature | Where it runs | Replication |
|---|---|---|
| Mode stack / modes | Local view evaluation | None - each client picks its own view |
| Lock-on | Locally-controlled pawn | None - each client locks independently; only the local control rotation changes (and that already replicates as the player's view) |
| Occlusion fade | Locally-controlled pawn only | None - a local material effect |
| Camera shake | Owning player's camera manager | None - affects only the controlling player |
PvP
Because lockability is just a component + a team-affiliation filter task, players are lockable too. In PvP an enemy-team player passes the affiliation filter and can be locked; a friendly is filtered out. The same pipeline serves PvE and PvP with no special casing.
Don't drive gameplay from the camera
Lock-on changes the camera and the local control rotation only. If an ability needs the locked target server-side, read it on the server from your own gameplay state - don't trust a client's camera target as authoritative.