Settings, API & MCP Tool

UCrimsonOnlineDeveloperSettings

Project Settings → Crimson → Online Subsystem

PropertyTypeDescription
DLCMappingTableTSoftObjectPtr<UDataTable>DataTable with FCrimsonDLCMappingRow rows — required for DLC entitlement resolution
DebugPlatformOverrideECrimsonOnlinePlatformOverrides platform detection in PIE (set to Unknown to disable)
bVerboseLoggingboolLogs every OSS callback result to the output log
bEnableCloudSaveboolEnables the UCrimsonOnlineCloudSaveService; if false, all cloud save calls are no-ops
bVerboseCloudSaveLoggingboolExtra verbose logging for cloud save reads/writes

UCrimsonOnlineSubsystemGI — main API

MemberDescription
static Get(WorldContextObject)Returns the UCrimsonOnlineSubsystemGI for the calling world; null if not initialised
GetActivePlatform()Returns ECrimsonOnlinePlatform — set once at boot, then stable
IsPlatformReady()Returns bool — all services initialised and the OSS is ready
OnPlatformDetectedDelegate broadcast once when the platform is identified at boot
GetIdentityService() / GetSessionService() / Get…Service()Returns the typed service pointer; never null after initialisation

UCrimsonOnlineServiceBase — rules

Never cache GetOSS()
Every service exposes GetOSS() for direct access to the underlying OSS interface. This pointer is invalidated on PIE restart. Always call GetOSS() fresh each use — storing it in a member variable is a latent crash.
VirtualWhen to override
InitService()One-time setup: bind OSS delegates, create subsystem resources
ShutdownService()Cleanup: unbind delegates, release resources on game instance shutdown
GetOSS()Do not override — internal helper only

MCP tool — crimson.online.get_state

Available when the CrimsonMCPTools plugin is also active. Reports the current online subsystem state from a running PIE session.

FieldTypeDescription
ActivePlatformFStringThe ECrimsonOnlinePlatform name detected at boot (e.g. "Steam")
IsPlatformReadyboolAll 15 services initialised and OSS is responsive
LocalPlayer0LoginStatusFStringECrimsonLoginStatus name for local player index 0
LocalPlayer0DisplayNameFStringPlatform display name, or empty if not logged in