Settings, API & MCP Tool
UCrimsonOnlineDeveloperSettings
Project Settings → Crimson → Online Subsystem
| Property | Type | Description |
|---|---|---|
| DLCMappingTable | TSoftObjectPtr<UDataTable> | DataTable with FCrimsonDLCMappingRow rows — required for DLC entitlement resolution |
| DebugPlatformOverride | ECrimsonOnlinePlatform | Overrides platform detection in PIE (set to Unknown to disable) |
| bVerboseLogging | bool | Logs every OSS callback result to the output log |
| bEnableCloudSave | bool | Enables the UCrimsonOnlineCloudSaveService; if false, all cloud save calls are no-ops |
| bVerboseCloudSaveLogging | bool | Extra verbose logging for cloud save reads/writes |
UCrimsonOnlineSubsystemGI — main API
| Member | Description |
|---|---|
| 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 |
| OnPlatformDetected | Delegate 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.| Virtual | When 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.
| Field | Type | Description |
|---|---|---|
| ActivePlatform | FString | The ECrimsonOnlinePlatform name detected at boot (e.g. "Steam") |
| IsPlatformReady | bool | All 15 services initialised and OSS is responsive |
| LocalPlayer0LoginStatus | FString | ECrimsonLoginStatus name for local player index 0 |
| LocalPlayer0DisplayName | FString | Platform display name, or empty if not logged in |