pickmebaby-LCHD icon

LCHD

HD visual tweaks for Lethal Company — override retro pixelation, HDRP TAA/SMAA anti-aliasing, post-process toggles (bloom/vignette/CA/grain), FOV slider, head-bob suppression, FPS counter and more. Hot-reloadable.

Last updated 12 minutes ago
Total downloads 24
Total rating 0 
Categories Mods Misc BepInEx Client-side Tweaks & Quality Of Life
Dependency string pickmebaby-LCHD-0.8.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

LCHD

HD visual tweaks for Lethal Company (v80+). LC runs on HDRP, so the mod uses HDRP-native APIs (HDAdditionalCameraData, Volume overrides) plus classic QualitySettings knobs. Everything is hot-reloadable via BepInEx config — edit the file while the game runs and the change applies within a few seconds without a restart.

What it does

Setting Effect
Override retro pixelation Resizes the player camera's render target to Scale × screen resolution. Removes the low-res "horror cam" pixel look — full HD image.
HDRP anti-aliasing Per-camera AA: None / FXAA / TAA / SMAA. TAA = best quality, SMAA = sharp without ghosting.
FOV slider Per-frame override on Camera.main.fieldOfView. Wider FOV = more peripheral vision.
Disable head bobbing Best-effort suppression of camera bob during movement. Helps with motion sickness.
Bloom / Vignette / CA / Film Grain toggles Per-effect HDRP Volume override. Clean image with one click.
FPS counter overlay Small corner display showing FPS and frame time in milliseconds.
Force soft shadows Patches every shadowed light to use Soft mode — smoother shadow edges.
Shadow projection StableFit (no swimming) vs CloseFit (sharper but unstable).
Directional shadow strength Override sun/moon shadow intensity. Lower = lighter shadows.
Anisotropic filtering Disable / Per-texture / ForceEnable. Sharpens textures viewed at an angle.
Texture mipmap limit Trade VRAM for sharpness.
Shadow distance / cascades / resolution How far shadows render and at what quality.
VSync / Frame rate cap Standard performance toggles.
LOD bias Pushes high-detail meshes further away.
Pixel light count Max per-pixel lights affecting any object.
Hide visor Remove the helmet visor mesh around the camera.
Display resolution Force a specific window/screen size via Screen.SetResolution. Choose width/height + fullscreen mode (Exclusive / Borderless / Windowed / Maximized).
Color grading Saturation (-100..100), Contrast (-100..100), Post-Exposure (-5..5 EV). Applied through a high-priority HDRP Volume — overrides whatever the moon/ship volume set.
White balance Temperature (cold↔warm) + Tint (green↔magenta) sliders.
Tonemapping mode None (raw HDR, washed out) / Neutral (LC default) / ACES (cinematic, more contrast).
Ambient occlusion Screen-space AO toggle + intensity. Adds darkening in tight corners → more depth.
Motion blur HDRP per-pixel motion blur toggle (vanilla LC has it on; turn off for clarity).
Depth of field HDRP DOF toggle.
Exposure compensation Auto-exposure offset in EV stops — universal brightness slider.
Shadow penumbra scale Per-light multiplier on shadow softness (penumbra width). 0.5 sharper, 2.0 softer. Applied to every HDAdditionalLightData in the scene.
Lens distortion Override fisheye/pincushion. -1 = pincushion (counters fisheye), 0 = neutral, +1 = barrel/fisheye.
Screen-space reflections HDRP SSR toggle — visible on wet floors, glass, polished metal.
🔥 Ray-traced reflections Replaces SSR with real-time RT reflections. Requires DX12 + RTX-capable GPU + HDRP asset with supportRayTracing=true.
🔥 Ray-traced ambient occlusion Replaces SSAO with RT-AO. Same requirements.
🔥 Ray-traced global illumination Real indirect light bouncing. Most expensive RT feature. Same requirements.

Install

  1. Install BepInEx 5 for Lethal Company.
  2. Drop LCHD.dll into BepInEx/plugins/LCHD/.
  3. Run the game once — BepInEx/config/com.lchd.cfg will be created.

Configuration

Edit BepInEx/config/com.lchd.cfg. Every setting hot-reloads.

[Camera]
FOV = 0                            # 0 = vanilla (~66), try 80 / 90 / 95
DisableHeadBob = false             # suppress walk/sprint bobbing on local player

[AntiAliasing]
HDRPMode = 2                       # 0=None, 1=FXAA, 2=TAA, 3=SMAA  (HDRP per-camera)
MSAA = 4                           # legacy QualitySettings (kept for compat)

[RetroOverride]
Enabled = false                    # true = override low-res retro RT
Scale = 1.0                        # 1.0 = native res, 0.5 = softer retro, 2.0 = supersampled

[Texture]
AnisotropicFiltering = 1           # 0=disabled, 1=per-texture, 2=forced
MipmapLimit = 0                    # 0=full, 1=half, 2=quarter, 3=eighth

[Shadows]
Distance = 60                      # meters; 0 disables real-time shadows
Cascades = 4                       # 0, 2, 4
Resolution = 2                     # 0=low, 1=med, 2=high, 3=very high

[ShadowSmoothness]
ForceSoftShadows = true            # apply soft penumbra to every shadowed light
Projection = 1                     # 0 = CloseFit, 1 = StableFit
DirectionalShadowStrength = 0      # 0 = vanilla, 0.6–0.8 = lighter sun shadows, -1 = disable

[PostProcessing]
Bloom = true                       # set false to disable HDRP Bloom override
Vignette = true                    # screen-edge darkening
ChromaticAberration = true         # color fringing
FilmGrain = true                   # film noise

[Performance]
VSync = true
FrameRateCap = 0                   # 0 = unlimited

[Detail]
LodBias = 1.5                      # 1.0 = vanilla
PixelLightCount = 4                # 0..16

[Visor]
Hide = false                       # true = remove helmet/visor mesh around camera

[FpsCounter]
Show = false                       # true = show FPS overlay
X = -160                           # negative = anchor from right edge
Y = 8

[Resolution]
Width = 0                          # 0 = leave whatever the game/desktop chose
Height = 0
FullscreenMode = 1                 # 0=Exclusive, 1=Borderless (default), 2=Windowed, 3=Maximized

[ColorGrading]
Saturation = 0                     # -100..100
Contrast = 0                       # -100..100
PostExposure = 0                   # -5..5 EV (brightness offset after tonemap)
Temperature = 0                    # -100..100 (cold ↔ warm)
Tint = 0                           # -100..100 (green ↔ magenta)
TonemappingMode = 1                # 0=None, 1=Neutral, 2=ACES

[Effects]
AmbientOcclusion = true            # SSAO on/off
AmbientOcclusionIntensity = 1.0    # 0..4
MotionBlur = false                 # disable per-pixel motion blur
DepthOfField = false               # disable DOF blur
ExposureCompensation = 0           # -5..5 EV offset on auto-exposure
ShadowPenumbraScale = 1.0          # per-light shadow softness, 0..4
LensDistortionIntensity = 0        # -1..1 (pincushion ↔ fisheye)
ScreenSpaceReflections = true      # SSR on wet/reflective surfaces

[RayTracing]
Reflections = false                # RT reflections (replaces SSR)
AmbientOcclusion = false           # RT AO (replaces SSAO)
GlobalIllumination = false         # RT GI (real indirect bounce light)

Ray Tracing requirements

To make [RayTracing] toggles actually do something:

  1. DX12 rendering — launch the game with -force-d3d12 in Steam → right-click LC → Properties → Launch Options.
  2. RTX-capable GPU — NVIDIA RTX 20xx/30xx/40xx, AMD RX 6000+/7000+, or Intel Arc A-series.
  3. HDRP asset must have supportRayTracing enabled. Vanilla LC ships with this off — you'd need to edit Lethal Company_Data/StreamingAssets/aa/... or use a separate mod that flips that flag.

If any of these is missing, the toggles are silent no-ops. On startup the mod logs:

RayTracing capability: SystemInfo.supportsRayTracing=true, GraphicsDevice=Direct3D12. OK.

If you see supportsRayTracing=false, RT won't work no matter what you set in config.

Presets

Crisp HD:

RetroOverride.Enabled = true
RetroOverride.Scale = 1.0
HDRPMode = 2                       # TAA
LodBias = 2.0
PostProcessing.Vignette = false
PostProcessing.FilmGrain = false

Toaster (low-end):

RetroOverride.Enabled = true
RetroOverride.Scale = 0.75
HDRPMode = 1                       # FXAA
MipmapLimit = 2
ShadowDistance = 30
LodBias = 0.8
PixelLightCount = 1

Cinematic (max quality):

RetroOverride.Enabled = true
RetroOverride.Scale = 1.5
HDRPMode = 2                       # TAA
ShadowDistance = 120
ShadowResolution = 3
LodBias = 2.5
PixelLightCount = 8

Notes & caveats

  • HDRP retro override resizes the player camera's render target each second. If LC's UI quad caches the texture pointer, output should still update because we resize in place rather than swapping the asset.
  • Head-bob suppression is reflective — finds fields named *bob* on PlayerControllerB and zeroes them in LateUpdate postfix. Check log for HeadBob: matched N field(s). If N=0, tell me the field names and I'll patch directly.
  • Volume overrides affect every active HDRP Volume in the scene. If a moon has its own override volume, it'll be touched too.
  • All settings are client-local.

Building from source

dotnet build -c Release

The DLL auto-deploys to BepInEx/plugins/LCHD/. Override game path with -p:GameDir="...".

License

MIT.