
PersonalHelper
Atmospheric horror mod for Lethal Company with developer events, a stalker, video pranks and lockdowns.PersonalHelper
It knows everything.
A small atmospheric horror mod for Lethal Company. No new enemies, no new gear: only the feeling that something in the facility is aware of you.
Install
- Install BepInEx 5 (Thunderstore:
BepInEx-BepInExPack-5.4.2100). - Drop
PersonalHelper.dllintoBepInEx/plugins/PersonalHelper/. - Drop your own media into
BepInEx/plugins/PersonalHelper/Assets/(see below). - Launch once, then edit
BepInEx/config/experimenter.personalhelper.cfg.
Every player in the lobby needs the mod installed. The host is authoritative: the host rolls the dice and broadcasts events, clients only play them.
Events
1. Distant Sound
85% chance, once per round. The first time anyone steps inside the facility, the host rolls and broadcasts. Each player hears the sound 22-40 m away from themselves, from a random direction, audible up to 90 m. Everyone hears it, nobody hears it from the same place.
2. Vigil
67% chance, rolled once per round. If it wins, then as soon as time spent inside the facility reaches 60 s, 2D music starts for everyone at once and rises for 90 seconds. At 1:30 a stinger plays, a full-screen image appears, the player dies, the music cuts.
3. Rare flashes
While you are inside, a 4%-per-minute roll replaces a single frame of your screen with something. Too fast to be sure you saw it.
4. The Stalker (new in 0.2.0)
Walk straight, without turning, for long enough and something spawns behind you. It does nothing. It waits. The moment you turn around and it enters your view, a full-screen image and a sound hit you, then fade out quietly. It despawns instantly. Non-lethal by default. Once per cooldown, capped per round.
5. Video (admin only)
The admin picks a player and a full screen video takes over their screen for 11 seconds, sound and all, then hard cuts back. The length is configurable per call from the panel. Nobody else sees it, and there is nothing they can press to make it stop.
6. Lockdown (admin only)
When every living player is inside the complex, the admin can seal the main entrance. Only the fire exits work. A full-screen image pulses (dim -> bright), global music plays and a synced countdown runs on everyone's HUD. When it hits zero, whoever is still inside is dealt with.
Admin panel
Authorization is by SteamID64, validated server-side. Put your IDs in the config:
[Admin]
SteamIDs = 76561199058784388
PanelKey = F6
A client can request anything it wants: the host checks the sender's SteamID against the list and silently drops the request if it does not match. Editing your own config does not make you an admin.
From the panel you can:
- fire any event at one player or at everyone
- trigger Distant Sound, Vigil, Jumpscare, Flash and Stalker on demand
- play a full screen video on one player's screen, with a custom length
- start / stop Lockdown with a custom duration
- see who is inside the facility right now
Custom sounds and images
Everything is loaded at runtime from BepInEx/plugins/PersonalHelper/Assets.
Drop your own .ogg / .wav / .mp3 and .png files into the subfolders and
restart the game. One file per folder is picked at random each time.
Assets/
sounds/
distant/ <- event 1, the far away sound
music/ <- event 2 and lockdown, the global track
stingers/ <- the scream on the killing image
meme/ <- the stalker payoff sound
images/
jumpscare/ <- the image that kills you
flash/ <- single-frame flashes
meme/ <- the stalker payoff image
lockdown/ <- the pulsing full-screen image
videos/ <- .mp4 / .webm for the admin video event
No files in a folder = that part is silently skipped. Nothing crashes.
Debug hotkeys
| Key | What it does |
|---|---|
| F7 | Event 1: distant sound for everyone |
| F8 | Event 2: start music and the 1:30 countdown |
| F9 | Image + stinger + death |
| F10 | Random flash |
| F11 | Reset round state |
| F12 | Play a video locally (test only, does not hit other players) |
| F6 | Toggle the admin panel (admins only) |
Set Debug/HotkeysEnabled = false before you play seriously.
Music never loops: a clip plays once and stops, so make your track at least as
long as Event2/BuildupSeconds.
Config
BepInEx/config/experimenter.personalhelper.cfg
| Section / Key | Default | Meaning |
|---|---|---|
| Event1 / Chance | 85 | Chance of event 1, % |
| Event1 / MinDistance - MaxDistance | 22 / 40 | Sound distance, m |
| Event1 / MaxAudibleDistance | 90 | Falloff range |
| Event2 / Chance | 67 | Chance of event 2, % |
| Event2 / TriggerAfterSeconds | 60 | Time inside before the music |
| Event2 / BuildupSeconds | 90 | Buildup to the death (1:30) |
| Event2 / StartVolume - EndVolume | 0.05 / 1.0 | Volume from and to |
| Event2 / ImageSeconds | 1.2 | How long the image stays |
| Event2 / KillPlayer | true | Kill the player or not |
| RandomFlash / ChancePerMinute | 4 | Flash chance per minute, % |
| Stalker / Enabled | true | Enable the stalker |
| Stalker / StraightWalkSeconds | 11 | Straight walking before it spawns |
| Stalker / SpawnDistance | 7.5 | How far behind you it spawns |
| Stalker / CooldownSeconds | 300 | Cooldown between stalkers |
| Stalker / MaxPerRound | 2 | Cap per round |
| Stalker / KillPlayer | false | Lethal or not |
| Video / Seconds | 11 | Length of the admin video, seconds |
| Video / Volume | 1.0 | Video audio volume |
| Video / KillPlayer | false | Kill the player when the video ends |
| Lockdown / DefaultSeconds | 120 | Default countdown |
| Lockdown / KillOnTimeout | true | Kill whoever is still inside |
| Lockdown / PulseSpeed | 1.4 | Pulses per second |
| Admin / SteamIDs | (empty) | Comma separated SteamID64 list |
| Debug / HotkeysEnabled | true | F6-F12 |
Building from source
src/ is not needed in the release build.
cd src
build.bat
Requires the .NET SDK. Restores LethalCompany.GameLibs.Steam from NuGet, so
no manual DLL copying from your game folder.
New Input System
Hotkeys use UnityEngine.InputSystem.Keyboard.current; the old UnityEngine.Input API is not used.