Lethal Company
Install with App

Details

Latest version
0.1.9
Last Updated
First Uploaded
Downloads
554
Likes
0
Size
44KB
Dependants

SimpleOptimize

Written by Claude & Chonk

Performance work and bug fixes for Lethal Company v81, built for runs where hundreds of collected items tank the frame rate.

Anyone can install it. Almost everything runs only on your own machine and doesn't affect other players. The exceptions are called out below.

Commands

Type these in the in-game chat.

Command What it does
/opt (/optimize) Status: items sleeping, shadows removed, items culled, frame time and FPS, and which features are on
/opt sleep on|off Item sleeper
/opt snap on|off Instant settle for items dropped aboard
/opt shadows on|off Shadow remover
/opt cull on|off Hides ship items when you're far away
/opt yeet on|off Cruiser launch fix
/opt spray Spray colour status, and how many colours are available
/opt spray <index> Use one of the game's own spray colours. Your colour is yours: other players running SimpleOptimize see it on the marks you spray, and you see theirs
/opt spray #RRGGBB Use any colour, for example /opt spray #20B2AA
/opt spray off Back to the normal colour
/opt dropship Cargo dropship status and the speed table
/opt dropship on|off Fast cargo dropship
/opt dropship speed <1-4> 1 is normal (40s), 2 is 20s, 3 is 13s, 4 is 10s to arrive. Only at the Company: deliveries on a moon stay vanilla
/opt dropship wait on|off Keeps the dropship waiting until someone opens it
/opt transit on|off Fast player ship landing and takeoff (off by default)

/opt cargo and /opt paint work the same as dropship and spray.

Every command also works with !, such as !opt or !opt spray #FF69B4. Use it if /opt replies "unknown command". That message comes from another chat mod grabbing every / command before SimpleOptimize sees it, and those mods ignore !.

Settings are saved in local.simpleoptimize.cfg.

Performance

  1. Item sleeper. The game updates the position of every item that isn't being held, every frame, forever. Items resting aboard now skip that update, and wake up the moment they're grabbed, moved or used.
  2. Shadow remover. Resting items stop casting shadows, and get them back when picked up or taken off the ship. Hundreds of shadows is the biggest graphics cost of a big hoard.
  3. Instant settle. A falling item can't sleep, so after a big merge or organize, hundreds of items spend seconds dropping into place. Items dropped aboard now land instantly. Items dropped outside still fall normally.
  4. Distance culling. While you're out collecting, items on the ship stop being drawn once you're more than 45 m away, and reappear as you come back.

Cargo dropship

Normally you wait 40 seconds for a terminal order to arrive, and the dropship leaves after 30 seconds whether or not anyone opened it. If it leaves unopened, you lose the items and the credits.

SimpleOptimize makes it arrive faster and, by default, keeps it waiting until someone opens it, so you can't miss an order you paid for. Once it's opened, it leaves at your chosen speed.

Only the host needs this. The host controls the dropship timer, so players without the mod still see it arrive early, with nothing out of sync.

Spray paint colour

The game picks each spray can's colour at random. /opt spray lets you choose it.

Only players with the mod see your colour. The game never sends spray colour between players, so anyone without SimpleOptimize sees the original colour on the same cans and the same paint. Nothing breaks. You just see different colours.

Players who have SimpleOptimize get the host's colour automatically when they join and whenever it changes. To keep your own colour, set [Spray] AcceptHostColor = false.

Picking one of the game's colours always works. A custom colour depends on the paint material supporting it. If it doesn't, the command tells you instead of silently doing nothing.

Paint that's already on a wall keeps its colour. Only new spray changes.

Bug fixes

Fix What it fixes
Cadaver kill lag Killing a cadaver plant made the game throw an error and write several debug lines. Clearing a growth turned into thousands of them: 2,110 errors and a 24 MB log in one measured session.
Spider web slow Breaking a web while you're caught in it left you permanently slower, and it stacked each time.
Stuck interact A lost network message could leave you unable to interact, scroll or use items until you rejoined. Now it clears itself after 2 seconds.
Cruiser yeet Teleporting into the cruiser, or walking into it on TZP, could launch it across the map.
Ship item cap Raises the limit of 400 items saved on the ship.
Early grab Lets you pick up items before the game starts.
Throw error spam Silences a flood of harmless errors caused by other players dropping items.
Magnet lag When the cruiser attached to the ship, the game wrote three log lines for every item within 25 m. With a big hoard that took 772 ms. Now skipped.
Weed killer error flood If the plant you were spraying got destroyed first, the game threw an error every frame until you stopped: 25,691 in one measured session. Now it happens once.
Blood particle flood A dead body's blood effect can be aimed at a mesh with no surface. The game then warns every frame: 57,398 log lines in one session, and a real frame cost for the rest of the day. That emitter is switched off.
Unknown names Players who joined late showed up as "unknown". Steam only shares names between friends or people in the same Steam lobby, and everyone leaves that lobby when the ship first lands. Now your game asks Steam for the missing names. Fixes your own screen, so each player needs SimpleOptimize.

These floods of errors and log lines build up over a session. That's why lag can creep back after a few runs and go away when you restart.

Fast player ship (off by default)

Speeds up your own ship's landing and takeoff. This is off by default, and it isn't the same thing as the fast cargo dropship.

Needs everyone in the lobby. Each player's game plays the landing on its own, so this only turns on when every player has SimpleOptimize, or you're playing solo. It checks automatically and switches itself off if someone joins without the mod.

Install

Drop SimpleOptimize.dll into BepInEx/plugins, or install with a mod manager. Requires BepInEx 5.4.2100. Every feature can be turned off in local.simpleoptimize.cfg.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.