How-To: Cull Pops on the Server (Optional)
Goal: stop sending pop events to players who are too far away to see them. With culling on, the server delivers each event per-client only to players in range, instead of multicasting to everyone - a bandwidth win on large maps with many players.
1. Set the cull distance
Open Project Settings -> Crimson -> Crimson Number Pop -> Replication and set ServerCullDistance (cm). 0 (the default) keeps the multicast-to-all behavior. Each broadcast then compares the event's resolved location against every player's view location (GetFocalLocation) and sends only to those in range.
ServerCullDistance to at least the largest MaxDisplayDistance your players can choose. The server cull runs first - a client can never show a pop the server culled away.2. What happens under the hood
On the first culled broadcast, the plugin adds a UCrimsonNumberPopClientComponent to each PlayerController on the server - a per-player delivery channel that carries a Client (owner-only) unreliable RPC straight into that client's subsystem. You never add this component manually.
OnNumberPopReceived delegate only broadcasts on the multicast path. With ServerCullDistance > 0, events feed each client's subsystem directly - custom listeners bound to that delegate (HUD overlays, analytics) will not be called. Keep culling off if you rely on it, or listen elsewhere.See also
- Concept: Event Flow & Replication - the multicast and per-client paths side by side.
- How-To: Filter Pops Per Player - the client-side distance cap that stacks on top of this.