Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Odd Company
Six horror creatures, 20% outdoor encounters and The Last Passenger: a gaze-triggered vision followed by a fatal takeoff execution. Includes spatial audio, animations and effect controls. Experimental build.
By thedemonmods
| Last updated | 16 hours ago |
| Total downloads | 54 |
| Total rating | 0 |
| Categories | Monsters Tweaks & Quality Of Life AI Generated |
| Dependency string | thedemonmods-Odd_Company-0.4.0 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2100README
Odd Company
Six strange visitors for your next quota run. Version 0.4.0 is an experimental test build, with industrial-horror silhouettes, original spatial encounter soundscapes, scanner hints, and host-controlled encounters.
0.4.0: The Last Passenger
Outdoor encounters: each new encounter gets a 20% outdoor roll, independent of which creature is chosen. A failed placement keeps that roll instead of rerolling it indoors. Outdoor encounters use outdoor AI nodes and terrain navigation, spawn at least 20 metres from the ship, and target players in the same indoor/outdoor zone. When the whole crew is indoors, an outdoor encounter can spawn on a reachable path near the ship exterior and patrol until someone returns. Placement still needs a valid hidden point. Normal creatures will not deliberately chase targets within 12 metres of the ship. They do not traverse entrances to change zones.
The Last Passenger resembles the supplied reference: a red angular skull, huge black mouth, hollow eyes, thin head spikes and a tall black body. Its geometry is original procedural modeling based on that reference, not a photorealistic scan. By default it has a 12% selection chance per successful encounter, with at most one appearance per landing in normal mode. Indoor/outdoor selection remains a separate 20% roll.
- The apparition waits and turns toward a viewer. Looking at it for approximately 0.6 seconds within 22 metres, with a clear camera view and sightline, marks one player. The host validates the client's view signal. A glance away resets that player's gaze timer. The first qualifying player wins; only one curse can exist per landing.
- The victim gets a 3.5-second vision: distorted/muffled listener audio, flickering nearby lights, camera tremors and a dedicated interference sound. The apparition then disappears, those effects end, and normal movement/play continues. There is no ongoing damage while marked. A tip explicitly warns that it will return at takeoff.
- When the ship begins departing, the apparition returns behind the marked player. The ship crew experiences flickering lights, tremors and a departure soundscape. The victim is held in place during a reaching/head-twist animation but can still look around.
- At 2.4 seconds into the execution, a dedicated snapping impact plays and the victim dies. The mod selects a detached-head ragdoll from the installed game's own ragdoll list, so the neck separation, head physics and any native blood effect use the game's existing assets. Other clients see the performer and receive the normal networked player death. The sequence ends at six seconds.
This curse is fatal even when GentleDamage is enabled. Avoid staring, or disable The Last Passenger in the host's Monsters config. Once marked there is no cleansing mechanic in this version. If the victim is already dead or disconnects before execution, the pending curse is cancelled. A victim outside the ship is executed where they are; the mod does not teleport them aboard. Return together to see the execution in front of the crew.
Shake is a camera effect suggesting ground/ship tremors; actual terrain and ship collision transforms are not moved. Flicker affects nearby existing lights, so an unlit outdoor location may have fewer visible lights to flicker. Temporary filters and light intensities are cleaned up after each effect; pre-existing audio filters from other mods are not overwritten. The built-in camera shake may finish its short tail. Disconnection, disabling the mod and expired snapshots release the victim's movement lock and restore owned effects.
Set local [Effects] CurseShake, CurseFlicker or CurseDistortion to 0 to disable the respective effect without altering the host's curse mechanics. Defaults are 0.7, 0.75 and 0.65. The execution includes flashing lights, camera shake and a decapitation effect. The sequence has compiled and passed offline timing checks, but has not been verified in a live multiplayer game. Native head detachment falls back to an ordinary death if no compatible detached-head prefab exists. It is a stylized in-game animation, not an ultra-realistic cinematic.
0.3.0: First Contact
First-sighting scare (the original five): seeing a species clearly for a quarter-second triggers its short personal sting. The monster must be within 12 metres, in the central portion of the camera view, with an unobstructed sightline. This is a geometric visibility check, not a measurement of how well the scene is lit. Each species can scare each player once per landing, with a shared 45-second cooldown. Sightings suppressed by the cooldown or an attack are consumed, not queued for later. Dead players and players inside the ship are excluded. These ordinary stings do not move the camera or flash lights. The Last Passenger uses its separate curse encounter instead.
State-based audio: each creature now has five original clips: a 16-second roaming bed, an eight-second pursuit/alert bed, a warning, an impact and a sighting sting. Roaming and pursuit crossfade over roughly two-thirds of a second. Warning/impact playback lowers the beds so the counterplay remains audible. State and cue type are sent by the host, so clients no longer infer a sound from a phase that may already have changed.
- Pligga switches from slow breath/rattle to urgent, rhythmic guttural pulses when pursuing.
- Hushloom's drifting tones become a pulsing dissonant chord when responding to sprinting.
- Backstitch's sparse taps become a fast needle mechanism when a runner triggers its trail. It still patrols rather than chasing players.
- Tollbud's distant bell becomes an insistent service alarm while demanding a toll. It remains territorial rather than pursuing.
- Foldback's slow reverse scrapes become quick scraping/footstep rhythms while recording or following a target.
More detailed animation: locomotion follows actual movement instead of playing a full walk cycle while stationary. Pligga's face, scalp and seams move together as its head tilts during the wind-up and recoils on impact. Its fingers follow its arms. Hushloom's membranes and veins unfold on shared shoulder hinges. Backstitch lifts alternating needle legs and pumps on a stitch. Tollbud tightens its jaws with the charge and snaps on a pulse. Foldback has a staggered vertebral motion and impact recoil. All remain procedural models; this is not a replacement with hand-sculpted, skeletal-rigged assets.
New local settings: [Audio] FirstSightingScares = true and SightingVolume = 0.55. Turn the switch off to disable stings without affecting encounter/attack sounds. Gameplay damage, spawn limits and counter timing remain unchanged.
The horror update
The palette is now soot, corroded metal, dirty cloth and old bone. Body surfaces no longer glow. Warning marks remain visible but use muted colors. Animations use restrained swaying, intermittent twitches and uneven folded movements instead of broad bouncing.
- pligga: collapsed work coat, dragging forearms and fingers, stitched face edges. The supplied face image remains recognizable, tinted by its material and lit by the environment. Its soundscape layers wet breathing, a throat rattle and uneven heartbeat-like thumps; the tongue wind-up and strike have separate cues.
- Hushloom: torn double-sided membranes, bent antennae, dangling limbs and a narrow throat slit. Unstable, choir-like tones drift over noisy inhalations, rising into a dissonant warning.
- Backstitch: a corroded wire-wound spindle on angular needle legs. Broken sewing-machine taps and tension squeals announce its approach.
- Tollbud: a rusted timeclock with split metal jaws, staple teeth and a hanging receipt. A detuned service bell rings above a failing transformer hum.
- Foldback: asymmetric thin folds, a tilted blank face and hanging arms. Reverse-rising paper scrapes and misplaced footstep-like thumps give its recorded trail an uneasy rhythm.
Each creature has original synthesized sound designs, not licensed songs or sampled voices. They are designed as localized horror soundscapes rather than a full musical score. Roaming, pursuit and attack audio comes from the creature, attenuates with distance, fades in, and is quieter and low-pass filtered behind walls. First-sighting stings are short local non-positional sounds. Nearby competing monsters have reduced ambience; cues use one voice per creature to avoid overlapping volume spikes. The regular warning timings and gentle damage defaults remain unchanged.
Local [Audio] EncounterVolume defaults to 0.45; WarningVolume defaults to 0.75. Set the encounter volume to zero if you prefer only warning sounds. These settings do not change other players' volumes. Audio is routed to the player's movement mixer group when available. The final mix still needs an in-game listening pass.
Compiled against Lethal Company Steam build 22825947. Compilation and offline rule checks passed; in-game rendering, navigation and multiplayer have not yet been playtested.
Meet the six
| Creature | What it does | How to deal with it |
|---|---|---|
| pligga | A round, bald creature with the supplied photo mapped onto its face. It fixes its aim, winds up for 1.8 seconds, then flicks a six-metre tongue for 10 damage and a little stamina. | The thin line shows the attack direction. Step sideways, back out of reach, or get behind a wall. It cannot redirect the strike once winding up. |
| Hushloom | A ragged moth with a resonating hollow throat. Nearby sprinting fills its charge; a two-second warning precedes a seven-metre pulse. Only players still sprinting in the pulse lose 8 health and some stamina. | Walk. Its charge fades when nobody nearby sprints, and walking avoids its pulse even after it charges. It reacts to sprint state, not your microphone. |
| Backstitch | A six-legged living spool sewing cyan loops along its route. Loops last 12 seconds and arm after 1.5 seconds. Sprinting across an armed loop costs 6 health and some stamina. | Walk through the loops, go around them, or wait for them to fade. The spool itself has no touch attack. |
| Tollbud | An amber mechanical flower guarding a small ring. It charges a toll in attention: remain still within 5.5 metres, with line of sight, for two seconds to earn a personal 20-second pass. Otherwise its inner 3.2-metre ring pulses for 8 damage every three seconds. | Stand still just outside the inner ring before passing. It never takes or changes your scrap. |
| Foldback | A folded-paper walker tracing a nearby player's footsteps from six seconds ago. Pale markers show the recorded route. Contact while it is following the trail costs 10 health. | Keep moving forward and avoid doubling back into it. It resets its recording when switching targets or losing sight. |
| The Last Passenger | A red, spiked apparition that marks a viewer, vanishes after a distorted vision, and returns for a fatal takeoff execution. | Look away before the gaze timer completes. Melee does not dispel this apparition. |
The designs were created for this pack; no claim is made that no other mod has ever used a similar idea.
Balanced defaults
- One added monster at a time; at most three encounters per landing.
- First spawn attempt 75 seconds after landing, then one attempt every 75 seconds with a 65% chance.
- Indoor spawn points must be 14–65 metres from the nearest eligible player, out of view and connected to the target by a complete NavMesh path. Spawns may be delayed if no safe point exists.
- Normal added attacks have a shared four-second cooldown per player. GentleDamage limits ordinary attacks to a 20-health floor. The Last Passenger's takeoff curse bypasses that floor and kills. Vanilla enemies and hazards can still kill you.
- Stamina drains preserve a small reserve and never increase already-low stamina.
- The original five take three accepted vanilla shovel/knife hits to remove. Each accepted hit interrupts them for 2.5 seconds. The Last Passenger is an apparition and cannot be removed by melee.
- Field encounters leave after 160 seconds and are removed when the round ends. The Last Passenger's mark persists specifically through takeoff, then resets for the next landing. No curse state is saved in the save file, although the resulting player death has the usual game consequences.
Install / upload
Upload the Odd_Company-0.4.0.zip file as-is to the Lethal Company community on Thunderstore. It contains the required manifest, 256×256 icon, README, and compiled plugin at BepInEx/plugins/OddCompany/OddCompany.dll. BepInEx is the only dependency. Thunderstore acceptance and name availability have not been checked by an upload.
When upgrading, replace the previous Odd Company plugin in every player's profile. Do not keep both versions installed. Existing gameplay config settings are preserved; new audio settings are added automatically.
For local testing before publishing, install BepInExPack in a fresh Thunderstore Mod Manager or r2modman profile, then use the manager's local-mod import with this ZIP if available. Alternatively, open that profile's folder and copy the ZIP's BepInEx/plugins/OddCompany directory into the profile's BepInEx/plugins directory. Launch modded.
Every player, including the host, needs the same mod version. A host with this mod pauses its added monsters if another connected player does not respond to its version handshake. A client cannot add encounters to an unmodded host.
Test the update
- Launch modded once to generate
BepInEx/config/local.oddcompany.five.cfg, then quit the game. - In the mod manager's config editor, set
[Testing] TestMode = trueon the host. Leave all six monsters enabled. - Start a disposable LAN save. For the curse test, set
FirstMonster = 5. Set[Spawning] OutdoorChance = 0for an indoor test or1for an outdoor test; restart after changing settings. - The first attempt happens 15 seconds after landing. Test mode bypasses the chance roll, retries every eight seconds when the encounter slot is free, and cycles through six kinds. Each field encounter lasts at most 65 seconds, but a mark persists until takeoff.
FirstMonsterselects the start: 0 pligga, 1 Hushloom, 2 Backstitch, 3 Tollbud, 4 Foldback, 5 The Last Passenger. Find it away from the ship or deeper inside. First verify that looking away prevents a mark, then deliberately stare and check the vision ends. Return to the ship with a second player and take off to test the execution and death sync.- Restore
TestMode = falseandOutdoorChance = 0.2for normal play.
Test mode still respects safe spawn placement. Its timer is not a guarantee that a creature appears beside you. The host log records each actual spawn with its name, indoor/outdoor choice and position. If you miss one, set it as FirstMonster and land again.
Configuration
All gameplay settings come from the host. ShowHints is local to each player.
| Section | Setting | Default |
|---|---|---|
| General | Enabled / ShowHints | true / true |
| Audio | EncounterVolume / WarningVolume | 0.45 / 0.75 (local) |
| Audio | FirstSightingScares / SightingVolume | true / 0.55 (local) |
| Balance | GentleDamage | true |
| Spawning | MaxAlive / MaxPerDay | 1 / 3 |
| Spawning | FirstSpawnDelay / SpawnInterval | 75 / 75 seconds |
| Spawning | SpawnChance | 0.65 |
| Spawning | OutdoorChance / LastPassengerChance | 0.20 / 0.12 |
| Effects | CurseShake / CurseFlicker / CurseDistortion | 0.70 / 0.75 / 0.65 (local) |
| Monsters | One enable switch per creature | all true |
| Testing | TestMode / FirstMonster | false / 0 |
First-release limits
- The models are stylized procedural geometry. Pligga uses a photo-textured oval face on a 3D head; it is not a sculpted or facially rigged likeness. The other creatures use geometric bodies and simple procedural animation.
- These are custom encounter entities rather than registered vanilla
EnemyAIprefabs. Vanilla enemies still spawn normally; native enemy power budgets and third-party enemy spawn menus do not manage these six. - Scanner labels and hints are included; terminal bestiary pages, enemy radar dots, stun-gun interactions, enemy-versus-enemy interactions and loot drops are not implemented.
- Creatures use their indoor or outdoor NavMesh. They cannot open doors, use elevators, traverse off-mesh links or follow through facility entrances. They wait at blocking colliders and eventually despawn. Modded moons/interiors, mine elevators, large modpacks and late-join mods need testing.
- There is no live game or two-player test result yet. Start with a clean profile and report any errors from the profile's
BepInEx/LogOutput.log, plus the host/client role and creature involved.
Suggested playtest
- Confirm all six render, their names scan, and warning sounds are audible.
- Test outdoor placement with the entire crew indoors and with someone outside. Verify no cross-zone pursuit and no normal creature chasing onto the ship.
- Test the curse with host and client victims, two simultaneous viewers, death before departure, disconnects, leaving during the vision, effect sliders at zero and a second landing. Confirm no input lock, filter or light change persists after the sequence.
- Test first sighting from behind a wall, behind the camera and in clear view. Check repeated sightings, two species within 45 seconds, the next landing, and the local off switch. Confirm no sting interrupts an attack warning.
- Listen to roam-to-pursuit and pursuit-to-roam transitions on host and client. Verify movement stops the walk animation and impacts produce a brief recoil.
- Walk toward and away from each creature, then put a wall between you and it: verify falloff, smooth ambience and muffling. Confirm warning cues remain readable against the game's audio.
- Try each listed counter; verify Pligga cannot hit through walls or behind itself.
- Verify Backstitch ignores walking and Hushloom's pulse ignores non-sprinting players.
- Stand still for Tollbud, then cross its ring within the 20-second pass.
- Walk a loop around Foldback, then double back to test the delayed trail.
- Check the original five's 20-health floor and three-hit removal separately from the fatal curse.
- Repeat with a second player and verify positions, cues, damage, removal and cleanup agree.
- Leave/rehost the lobby and complete two landings to check state resets.
Packaging follows the Thunderstore package format. Networking uses Unity Netcode custom messages as described in the Lethal Company modding documentation.
Listener-level filtering follows Unity's AudioDistortionFilter and AudioLowPassFilter behavior.