Skip to main content
v0.9.2
2 February 2026

Highlights

  • PCVR Support - LCK is a single implementation for PCVR and Meta Quest Standalone
  • Microphone Mute Control - New SetMicrophoneEnabled() API for runtime mic control
  • Audio Config Validation - Real-time validation with editor warnings in Project Settings
  • Permission Handling - Improved Android microphone permission flow with callbacks
  • Developer Settings UI - Full settings panel in Project Settings with audio plugin configuration

New Features

LCK Core SDK

FeatureDescription
Audio Config ValidationValidateAudioConfig() method with FMOD > Wwise > UnrealAudio priority
Build Info APIGetLoadedAudioPlugins(), GetBuildInfoDescription() with dynamic build number
Microphone Mute ControlSetMicrophoneEnabled(), IsMicrophoneEnabled() for runtime mic control
Developer Settings UIFull settings panel in Project Settings with audio plugin checkboxes
Voice Chat Audio SourceFLCKAudioSourceVoiceChat struct for Vivox integration
Plugin DetectionImproved detection via IPluginManager with dependency checks
Settings CategoriesOrganized settings with headers, tooltips, and category grouping
Audio Buffer CleanupClear previously buffered audio on state change

LCKUI

FeatureDescription
ELCKMicState EnumThree-state: On, Off, No_Access for permission handling
Audio Level IndicatorReal-time microphone level display on recording button
Demo DashboardLCKDemoUIBoard with FOV, quality, orientation, mic controls
JSON State PersistenceReplaced USaveGame with JSON for tablet state

LCKTablet

FeatureDescription
Android Permission HandlingRequestMicAccess() with proper callback flow
Mic State ManagementToggleMicState() with No_Access state support
Recording State ManagerMic level reading integrated into RecorderController
Developer Settings IntegrationUses ULCKDeveloperSettings for camera modes and profiles
Data Model DelegatesAdded delegates for state change notifications
JSON Data PersistenceSave/load tablet state as JSON with platform paths
Mic Audio Level APIRead mic audio level via ULCKService

Audio Plugins

PluginChanges
LCKVivoxSDK settings binding, microphone output fix
LCKOboeSDK settings binding for StartCapture
LCKWwiseSDK settings binding, documentation
LCKFMODCapture fix, SDK settings binding, documentation

Bug Fixes

FixPlatformDescription
Photo capture not triggeringAllFixed TSharedPtr notification handling
TabletDataModel null crashAllUse NewObject in BeginPlay instead of CreateDefaultSubobject
Settings not restoringAllRemoved forced defaults on initialization
Notification callbacksAllExecute callback per queued notification
SetupBindingToDataModel nullAllAdded null guard check

Improvements

ImprovementDescription
Cleaned ConstantsConsolidated constants across LCKUI and LCKTablet modules
Camera Modes MovedCamera modes moved from LCKUI to LCKTablet for better modularity
JSON Helper MovedJSON utilities centralized in LCKTablet
Plugin IconsAdded icons for LCKUI and LCKTablet plugins
Audio Sub-LevelsAdded audio sub-levels for middleware variants

Breaking Changes

  1. FLCKMetaData.Build - Changed from int32 to FString
    // Before (v0.9.1)
    int32 BuildNumber = MetaData.Build;
    
    // After (v0.9.2)
    FString BuildString = MetaData.Build;
    
  2. Mic state type - Use ELCKMicState enum instead of bool
    // Before (v0.9.1)
    bool bMicEnabled = true;
    
    // After (v0.9.2)
    ELCKMicState MicState = ELCKMicState::On;
    // Values: On, Off, No_Access
    

Code Reorganization

Several components were moved between modules for better organization:
ComponentFromTo
Camera modes (ELCKCameraMode)LCKUILCKTablet
JSON helper utilitiesLCKUILCKTablet
Tablet data modelLCKUILCKTablet
Tablet UI componentsLCKUILCKTablet
If you were importing these from LCKUI, update your includes to reference LCKTablet instead.
v0.9.1
16 December 2025
  • Open Beta release