Always close the Unreal Editor before upgrading LCK.Native libraries are loaded at editor startup and cannot be replaced while running.
Upgrading while the editor is open will cause failures and may corrupt your project.
Before You Begin
Pre-Upgrade Checklist
Pre-Upgrade Checklist
- Close Unreal Editor completely
- Backup your project (especially Plugins folder)
- Note current LCK version for reference
- Check release notes for breaking changes
- Verify Unreal Engine version compatibility
Upgrade Steps
Close Unreal Editor
Completely close the Unreal Editor. Verify no UE processes are running in Task Manager.
Backup Current Installation
Before removing the old SDK, create a backup:Or manually copy the
Plugins/LCK* folders to a safe location.Regenerate Project Files
Right-click your
.uproject file and select Generate Visual Studio project files (or equivalent for your IDE).This ensures the new plugin modules are properly registered.Version Compatibility
| SDK Version | Unreal Engine | Notes |
|---|---|---|
| 1.0 | 5.4+ | Current stable |
| 0.9.2 | 5.4+ | Previous stable |
| 0.9.1 | 5.4+ | Initial release |
We recommend always using the latest SDK version.
Per the SDK License Agreement, older versions are not officially supported.
Breaking Changes by Version
1.0
v1.0 introduces streaming support and refactors the audio delegate system.
If you bind audio delegates or interact with the encoder directly, you must update your code.
-
Audio delegate renamed and re-typed —
FOnRenderAudioDelegateis now a typedef for a multicast delegate invocation, not a single-cast delegate The parent delegate type has been renamed fromFOnRenderAudioDelegatetoFDelegateRenderAudioand changed from a single-cast delegate to a multicast delegate (DECLARE_MULTICAST_DELEGATE_FourParams). The old nameFOnRenderAudioDelegatestill exists as a typedef for the innerFDelegatetype, so existing variable declarations compile — but binding semantics have changed. Additionally, the delegate signature gained a fourth parameter (SampleRate). -
bEnableStreamingadded to developer settings — Streaming is disabled by default A newbEnableStreamingsetting has been added toULCKDeveloperSettings. Whenfalse(the default), RTMP streaming libraries are not packaged and streaming API calls returnLCK_STREAMING_NOT_AVAILABLE.If you do not need streaming, leave this disabled to reduce APK size. The streaming.so/.dllfiles will not be included in the build. -
AcquireEncoder()/ReleaseEncoder()added — New encoder lifecycle managementULCKRecorderSubsystemnow uses reference-counted encoder ownership. Recording and streaming can share the same encoder instance. If you callStartRecording()/StopRecording()throughULCKService, this is handled automatically. Only update if you use the recorder subsystem directly. -
ILCKStreamingFeatureinterface added — Streaming backend contract A new modular feature interface for streaming backends. Implementations are discovered at runtime viaIModularFeatures. You do not need to implement this unless you are building a custom streaming backend. -
ILCKPacketSinkinterface added — Packet routing contract Encoders can now route encoded H.264/AAC packets to arbitrary sinks (RTMP streams, network transports, etc.) viaILCKPacketSink. You do not need to implement this unless you are building a custom packet consumer. -
ELCKStreamingStateenum added — UI must handle streaming states If you build custom UI, you must handle the new streaming states: -
ELCKTabletModeenum added — Camera/Stream mode switching The tablet now supports two modes. Custom UI must handle mode switching: -
Plugin version bumped to 1.0 — All
.upluginfiles updated Update any version checks or minimum-version guards in your build scripts.
- Live Streaming — RTMP streaming support via LCKStreaming module
- Encoder Sharing — Recording and streaming can share a single encoder instance
- Packet Sink Architecture — Extensible encoded packet routing
- Streaming UI — Tablet mode switching between Camera and Stream
- Hub Integration —
LaunchHub()andIsHubInstalled()for LIV Hub companion app
LCKStreaming— RTMP streaming implementation (optional, requiresbEnableStreaming)LCKUnrealAudio— Extracted Unreal Engine audio capture (previously bundled in LCKAudio)
0.9.2
Breaking Changes:-
FLCKMetaData.Build— Changed fromint32toFString -
Mic state type — Use
ELCKMicStateenum instead ofbool
- PCVR Support — single implementation for PCVR and Meta Quest Standalone
- Microphone Mute Control with
SetMicrophoneEnabled()API - Audio Config Validation with editor warnings
- Debug Mode System with
ILCKVisuallyDebuggableinterface - Improved Android microphone permission flow
0.9.1
Initial public release of LCK SDK for Unreal Engine. No breaking changes.Handling Custom Modifications
Recommended Approach
Instead of modifying LCK files, create project-local overrides:- Custom Blueprints — Create Blueprint subclasses of LCK actors
- Custom Widgets — Create widget variants based on LCK widgets
- Custom Materials — Create Material Instances, don’t modify base materials
- Custom Scripts — Extend LCK classes in your own modules
If You Have Modifications
If you’ve modified LCK files directly:- Document all changes before upgrading
- After upgrade, reapply changes to new version
- Consider refactoring to use extension approach
Troubleshooting Upgrades
Editor crashes on startup after upgrade
Editor crashes on startup after upgrade
Cause: Old native libraries still loaded or version mismatch.Solution:
- Close all UE processes
- Delete
BinariesandIntermediatefolders in your project - Delete
DerivedDataCachefolder - Regenerate project files
- Rebuild project
Compile errors after upgrade
Compile errors after upgrade
Cause: API changes between versions.Solution:
- Check release notes for breaking changes
- Update your code to match new API
- See migration examples above
Plugins not appearing in editor
Plugins not appearing in editor
Cause: Plugin not properly installed or wrong folder structure.Solution:
- Verify folder structure matches expected layout
- Check
.upluginfiles exist in each plugin folder - Ensure plugins are enabled in Edit > Plugins
Recording not working after upgrade
Recording not working after upgrade
Cause: Settings or configuration may have changed.Solution:
- Verify Tracking ID is still configured
- Check Project Settings > LCK SDK
- Review Output Log for specific errors
- Test with a fresh LCK tablet actor
Downgrading
Downgrading to older SDK versions is not recommended and not supported.If you must downgrade due to critical issues:
- Report the issue to LIV support
- Restore from your backup
- Regenerate project files
Clean Installation
For a completely fresh start:See Also
Installation
Fresh installation guide
Changelog
Version history and release notes