Skip to main content

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.

ClassModuleWhat it is for
UCrowdySDKSubsystemCrowdySDKPasswordless 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.
UCrowdyAuthenticationCrowdyServicesOwns 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.
UCrowdyEntityComponentCrowdyReplicationTurns an actor into an entity. Identity, ownership, mode, lifecycle. Also the entry point for MarkStateDirty/MarkAllStateDirty. See entities.
ICrowdyEntityComponentProviderCrowdyReplicationOptional interface an actor implements (in C++ or Blueprint) so GetCrowdyEntityComponent can find its entity component when FindComponentByClass would not. See host authority.
UActorUpdateExecutorCrowdyReplicationThe per entity snapshot hook for Dynamic state. See continuous state.
UCrowdyEntitySubsystemCrowdyReplicationThe entity registry and the spawn and destroy path. Also enrolls non-actor participants (RegisterParticipant, FindParticipant) and drives ownership transfer (OnOwnershipRequested, OnEntityOwnershipChanged). A world subsystem.
UCrowdyStateReplicatorCrowdyReplicationTicks 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.
UCrowdyUtilitiesCrowdyServicesBlueprint 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).
UCrowdyStateBlueprintLibraryCrowdyReplicationBlueprint statics to schedule a manual-dirty Crowdy State property or push a host override: MarkCrowdyStateDirty, MarkAllCrowdyStatesDirty. See Crowdy State.
UCrowdyOwnershipTransferCrowdyReplicationBlueprint statics for the request and grant ownership handshake: RequestOwnershipTransfer, GrantOwnershipTransfer, GrantOwnershipTransferToPlayer, GrantOwnershipToHost. See host authority.
UCrowdyReplicatedSubsystemLibraryCrowdyReplicationEnroll a host-owned UObject subsystem as a replicated participant: RegisterReplicatedSubsystem, UnregisterReplicatedSubsystem. See replicated subsystems.
UCrowdyReplicatedWorldSubsystem, UCrowdyReplicatedGameInstanceSubsystemCrowdyReplicationOptional base classes that enroll and unenroll a subsystem for you, so you inherit instead of calling the library by hand. See replicated subsystems.
UCrowdyMapProfileCrowdyReplicationThe per map configuration asset. Required for the SDK to activate on a map. See map profile.
UCrowdyRenderingBackendCrowdyReplicationThe pluggable backend that draws replicated entities. See rendering backends.
UCrowdyHostSubsystemCrowdyServicesHost election and host queries. See host authority.
UCrowdyChannelsCrowdyServicesCreate and manage channels, channel membership, and raw channel messages. See channels.
UVoiceChatSubsystemCrowdyVoiceThe voice capture and playback engine. You usually drive it through UCrowdySDKSubsystem.
UCrowdyTeamsCrowdyServicesCreate, join, leave, and query teams and roles at runtime. See teams.
UCrowdyAvatarsCrowdyServicesPlayer profiles and per app avatar state. See avatars.
UCrowdyPersistenceSubsystemCrowdyServicesSave and load tagged structs. See persistence.
UCrowdySDKDeveloperSettingsCrowdyReplicationProject 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>();