Skip to main content
LCK provides in-game video recording with hardware-accelerated encoding, configurable quality presets, and a full scripting API for programmatic control.

How recording works

When a user taps Record on the LCK tablet, the active LckCamera begins capturing frames. The captured video and audio are sent to a hardware-accelerated encoder and written to disk. Users can switch between cameras seamlessly during recording without interruption. Recordings are saved to:
  • Quest: Storage/Movies/<RecordingAlbumName>
  • PCVR: <User>/Videos/<RecordingAlbumName>
The album name is configurable in Edit > Project Settings > LCK.

Camera modes

LCK includes three built-in camera modes, all available from the tablet UI: All modes support FOV range of 50—100 and smoothing from 0—100.

Quality presets

Quality is configured through the LckQualityConfig ScriptableObject, referenced by the LCKCameraController component.

Android (Quest) defaults

Quest 2 override: SD at 6.5 Mbps / 30 fps, HD at 10 Mbps / 30 fps.

Desktop (PCVR) defaults

You can define custom presets and per-device overrides in the LckQualityConfig asset.

Recording API

For programmatic control, access LckService via dependency injection:

Core methods

Configure quality programmatically

Events

Higher quality capture rendering

If you want capture output to look better than the in-game experience (for example, higher-quality player avatars), the recommended approach is to use separate render layers:
  1. Create a duplicate of the object at higher quality.
  2. Place it on a dedicated render layer visible only to LCK cameras.
  3. Keep the original on a different layer for gameplay rendering.
This avoids GPU timing issues with command buffers. See Higher Quality Scaling for alternative approaches using command buffers or URP Render Features.