Classes and Subsystems
The consumer facing classes you use most, with the module they live in and where to read more.
note
All of the subsystems initialize automatically. You fetch them, you do not create them.
| Class | Module | What it is for |
|---|---|---|
UCrowdySDKSubsystem | CrowdySDK | Passwordless sign-in, UDP connection, and voice. Sign-in returns the identity session token; the UDP connection uses an app-scoped token minted after sign-in. A UGameInstanceSubsystem. See authentication and voice. |
UCrowdyAuthentication | CrowdyServices | Owns sign-in (email + password, magic link, social, dev bypass), the app-scoped token mint/refresh lifecycle, and encrypted session persistence (RestoreSession/ClearSavedSession/HasSavedSession). A UGameInstanceSubsystem. See authentication. |
UCrowdyEntityComponent | CrowdyReplication | Turns an actor into an entity. Identity, ownership, mode, lifecycle. Also the entry point for MarkStateDirty/MarkAllStateDirty. See entities. |
ICrowdyEntityComponentProvider | CrowdyReplication | Optional interface an actor implements (in C++ or Blueprint) so GetCrowdyEntityComponent can find its entity component when FindComponentByClass would not. See host authority. |
UActorUpdateExecutor | CrowdyReplication | The per entity snapshot hook for Dynamic state. See continuous state. |
UCrowdyEntitySubsystem | CrowdyReplication | The entity registry and the spawn and destroy path. Also enrolls non-actor participants (RegisterParticipant, FindParticipant) and drives ownership transfer (OnOwnershipRequested, OnEntityOwnershipChanged). A world subsystem. |
UCrowdyStateReplicator | CrowdyReplication | Ticks the Crowdy State plane: diffs owned entities, sends and receives property deltas. Read-only diagnostics IsStateReplicated(const AActor*) and GetLastSentStateBytes(const AActor*). A world subsystem. See Crowdy State. |
UCrowdyUtilities | CrowdyServices | Blueprint friendly statics: spawn and destroy entities, look up entities, send events, check host authority (GetCrowdyHasAuthority), and the entity ownership and host helpers (DoesCrowdyEntityOwn, IsCrowdyEntityHost, GetCrowdyEntityComponent). |
UCrowdyStateBlueprintLibrary | CrowdyReplication | Blueprint statics to schedule a manual-dirty Crowdy State property or push a host override: MarkCrowdyStateDirty, MarkAllCrowdyStatesDirty. See Crowdy State. |
UCrowdyOwnershipTransfer | CrowdyReplication | Blueprint statics for the request and grant ownership handshake: RequestOwnershipTransfer, GrantOwnershipTransfer, GrantOwnershipTransferToPlayer, GrantOwnershipToHost. See host authority. |
UCrowdyReplicatedSubsystemLibrary | CrowdyReplication | Enroll a host-owned UObject subsystem as a replicated participant: RegisterReplicatedSubsystem, UnregisterReplicatedSubsystem. See replicated subsystems. |
UCrowdyReplicatedWorldSubsystem, UCrowdyReplicatedGameInstanceSubsystem | CrowdyReplication | Optional base classes that enroll and unenroll a subsystem for you, so you inherit instead of calling the library by hand. See replicated subsystems. |
UCrowdyMapProfile | CrowdyReplication | The per map configuration asset. Required for the SDK to activate on a map. See map profile. |
UCrowdyRenderingBackend | CrowdyReplication | The pluggable backend that draws replicated entities. See rendering backends. |
UCrowdyHostSubsystem | CrowdyServices | Host election and host queries. See host authority. |
UCrowdyChannels | CrowdyServices | Create and manage channels, channel membership, and raw channel messages. See channels. |
UVoiceChatSubsystem | CrowdyVoice | The voice capture and playback engine. You usually drive it through UCrowdySDKSubsystem. |
UCrowdyTeams | CrowdyServices | Create, join, leave, and query teams and roles at runtime. See teams. |
UCrowdyAvatars | CrowdyServices | Player profiles and per app avatar state. See avatars. |
UCrowdyPersistenceSubsystem | CrowdyServices | Save and load tagged structs. See persistence. |
UCrowdySDKDeveloperSettings | CrowdyReplication | Project settings: app id, endpoints, map profiles. See project settings. |
Fetching a subsystem
How you fetch a subsystem depends on its scope. Game instance subsystems come from the game instance, world subsystems come from the world.
Game instance subsystems:
UCrowdySDKSubsystem* SDK = GetGameInstance()->GetSubsystem<UCrowdySDKSubsystem>();
UCrowdyTeams* Teams = GetGameInstance()->GetSubsystem<UCrowdyTeams>();
World subsystems:
UCrowdyEntitySubsystem* Entities = GetWorld()->GetSubsystem<UCrowdyEntitySubsystem>();