Skip to main content
The LCK Unreal SDK is structured around a ULCKSubsystem (WorldSubsystem) that creates and owns a single ULCKService instance responsible for all recording, preview and telemetry operations, while the user-facing tablet is implemented as an ALCKTablet actor (BP_LCKTablet) that owns its own ULCKTabletDataModel (persisted settings) and ULCKUISystem (3D UI) and communicates with the service only via direct function calls.
ComponentRoleLifetimeHow to Access
ULCKSubsystemWorldSubsystem → creates and owns the single ULCKService instanceWorld lifetimeGetWorld()->GetSubsystem()->GetService()
ULCKServiceCentral SDK brain: recording, preview, profiles, delegates, telemetrySingleton per player sessionAlways via ULCKSubsystem
**ALCKTablet **+ BP_LCKTabletReady-to-use actor containing full 3D UI + recording logicOne per tablet in the LevelDrop the provided **BP_LCKTablet **Blueprint
ULCKDummyRecorderController
(will be renamed)
Handles record button state & timerOwned by ALCKTabletUsed internally by the tablet
ULCKUISystemFull 3D UI orchestrator (all buttons, tabs, show/hide groups)Component of the tabletManages all UI components and data binding
ULCKTabletDataModelCentral data container (mic state, quality, orientation, camera settings, etc.)Owned by tabletAll UI elements bind to it automatically

Recording profile

Recording quality modes defined in the tablet.
ProfileResolutionFramerateVideo BitrateAudio Bitrate
SD_30FPS (default)960×540
(Soon 1280×720)
30 fps4 Mbps128 kbps
HD_60FPS1920×108060 fps10 Mbps256 kbps
For now tablet recording profile switching isn’t effective (it only visually updates the HD/SD button in the tablet, without the logic being bound) but will be functional in the next update.
Editor-exposed settings panel will be added soon, in the meantime you have one temporary way to define your default recording profile.
To define the default recording profile of your tablet, you may temporarily set it in ALCKTablet::BeginPlay().


Important:
Directly editing any .cpp file inside the plugin folder is a temporary workaround to update the default recording settings. Image15 Image29

Telemetry

  • Telemetry is anonymous. DeviceId is an irreversible MD5 hash.
  • Define the **TrackingID **inside **DefaultGame.ini **as shown in the section “Preview Integration Guide”
EventTriggerExample context sent
GameInitializedPlugin loadedEngine version, graphics API
**ServiceCreated **/ DisposedULCKService init/shutdown
RecordingStartedUser starts recordingResolution, FPS, bitrates
RecordingStoppedUser stops recordingDuration, stop reason
PhotoCapturedTakePhoto() calledResolution, format (PNG)
**RecorderError **/ SdkErrorAny failureError message + code