SimpleHQ
Scrap bank for long runs plus tournament mode. Bank ship scrap with /bank to cut lag, see it in the terminal, sell it at the Company. Kit codes set the moon, seed, weather and gear for set-seed tournaments. Written by Claude & Chonk.Changelog
0.4.19
- Fixed: a bank withdrawal (or kit gear) while landed wiped the day's scrap totals. SimpleHQ gives clients the values of the items it spawns with the game's own scrap-value RPC, and that RPC also sets the level's total scrap value to the value of just those items and resets the day's "collected" tally to 0, on every machine. At the Company that meant a wrong end-of-day collected / total and grade (and a wrong ratio in the game's own enemy-spawn check on the host). SimpleHQ now tags its own calls, and every machine with SimpleHQ puts those totals back right after. The game's own landing sync, and other mods' calls, are untouched; vanilla clients still get the item values as before.
0.4.18
- New:
/bank withdraw all. Takes every banked item out at once and puts them all on the ship floor just inside the door, spread out in rows from the doorway inward (inside the ship, never on furniture). Also works from the terminal asbank withdraw all, and as/bank w all./bank withdraw <item> allstill means every item of that kind, at your feet. - Same rules as a single withdraw: the host or whitelisted players, in orbit or at the Company, off in tournament mode and on arena saves. Chat says how many items came out and their value; an empty bank gets a short "nothing to withdraw" note.
- The bank file follows the next save of the ship, like any withdraw, so the items and the bank always roll back together and nothing is counted twice.
- Never more than the game saves: vanilla keeps only
maxShipItemCapacityitems on the ship (SimpleOptimize raises it). If the whole bank won't fit, the most valuable items that fit come out and the rest stay banked, with a message.
0.4.17
- Fixed: reloading a save after an end-of-day auto deposit duplicated the deposit. The game saves the ship in the same frame as the auto deposit, and Unity only destroys a despawned item at the end of the frame, so every item just banked was written into the save as ship scrap too. Reload that save (quit before the next orbit save, or "reset") and the day's scrap was back on the ship while the bank still held it (Josh: 4k became 6k). Banked items are now marked gone (the flag vanilla's own save skips) before they are despawned, so the save never sees them. This is most likely what the 0.4.8 "resetting a save could duplicate" report really was.
- Old banks are healed on load. A bank written by 0.4.16 or older whose last items are still, item for item, on the save's ship has those items taken out of the bank (they stay on the ship). The host log and chat say how many and how much.
- Each bank belongs to one save. The first time a save's bank is written, the save gets a bank
id (a
SimpleHQ_BankIdkey that vanilla ignores) and the bank file carries it. A bank file with a different id, or with an id beside a save that has none (a copied or restored save), is not loaded. - A bank found under another slot's name is moved, not copied. When LCBetterSaves renumbers slots, the bank is renamed to the save's new slot instead of being loaded from the old file and written again beside it (which left the same bank in two files). It needs the ship line and, if the save has one, the same bank id.
- A fresh (day 0) save never picks up another slot's bank. Copies of the same day-0 save all look alike, so a stray old bank could match.
- Bank files gain
id=andwriter=lines; 0.4.16 reads them and ignores both.
0.4.16
- PVP arena saves moved out of SimpleHQ into a separate mod. Gone from SimpleHQ: the
/pvp(/arena) chat and terminal commands (claim, release, status), the[Bank] ArenaSavessetting, the arena announcement and theSimpleHQ.Pvplobby message. It was unfinished and off by default. - Kept: a save marked as an arena still stays apart from co-op. On the host, a slot with an
arena marker (
LocalLow/ZeekerssRBLX/Lethal Company/SimpleHQ/<save>.arena.txt, same file as before) doesn't load or write the crew bank, and refuses/bankand/tournament. SimpleHQ only reads the marker; delete the file to use the slot as a normal save again. The marker now counts whether or not anything else is installed (before, only withArenaSaveson). - Everything else, tournament mode included, is unchanged. An old
ArenaSavesline inlocal.simplehq.cfgis ignored and can be deleted.
0.4.15
- New tournament format: the circuit. A preloaded string of one-off days played back to back,
each day with its OWN kit: name, moon, seed, weather, items (shotgun shells included), cruiser and
credits. Format
Nc(7c= 7 days, up to 15). All suits, decorations, hardcore and "deaths end the run" stay kit-wide. No quotas, no Company days.- Each day ends like a one-off: the scrap brought back (found weapons included) is banked onto the run total and removed. Then all of that day's kit gear is cleared, used or not, wherever it is.
- Back in orbit: "Day 3 of 7: FROSTBITE" in chat and on the title card, the ship routes to the day's moon, the day's items are placed (same placement, receipts and shotgun safety sync as every kit), its credits are set, and the cruiser is put on the magnet if the day has one and none is there, or taken away if the day has none. The lever waits the second or two this takes.
- A wipe loses only that day's scrap; the bank and run total stay and the circuit goes on. In a hardcore circuit a wipe ends it.
- The deadline reads 3 days every day, exactly like the one-off each day is, so monster spawns match.
- Results list every day's banked total, then the run total.
- Kit codes for circuits are version 7. One-offs and quota kits are still written as version 5/6, bit for bit as 0.4.14 wrote them, and every older code still loads the same. An older SimpleHQ refuses a circuit code with "Update SimpleHQ".
- KitCoder reads circuit kit files (each day with
"name","items","cruiser","credits"), checks the round trip day by day, and says when a day name is cut to fit (15 characters). - The code screen takes up to 1000 characters a line (was 600).
- The terminal editor says a circuit code can't be edited there (it plays as is).
- A refused lever pull no longer clears the chat in tournament mode.
0.4.14
- Kits can put ship decorations on the ship for the run. The disco ball, record player,
jack-o-lantern, plushie pajama man and the rest of the store's rotating decor; never the
teleporters, the loud horn or the signal translator, and the cruiser stays its own setting.
In the builder or the editor:
decorfor all of them, or name pieces (disco record jack,decor:lightswhen an item shares the word). Editor:decor on|off,decor disco,remove disco. Kit JSON:"decor": "all"or"decor": [ "Disco Ball", "Record player" ]. - They go back exactly. Only decorations the crew doesn't already have (on the ship, moved or in storage) are added. When the tournament ends, or a kit without them replaces it, exactly those go, in orbit, wherever players moved them or if they were stored. Anyone moving one in build mode is stopped first. The crew's own furniture is never touched or moved. A piece with scrap on it, or someone using it, waits until that's cleared. No save ever keeps them (autosaves during the run included), nor where they were moved.
- Kit codes with decorations are version 6 ("all" adds 2 bits, under one character; named pieces 2 characters each). Codes without decorations are still written exactly as 0.4.13 wrote them; version 4 and 5 codes still load.
- The code screen takes up to 600 characters a line (was 250), so even long multi-day codes paste in one go.
- Players with SimpleHQ also forget "unlocked" for the suits a tournament took back.
/clearworks for every player. With SimpleHQ, a player's/clear(or!clear) empties their own chat on the spot and is never sent, so nobody else sees it. The host's/clearstill empties everyone's;/clear meempties just the host's. A player without SimpleHQ who types it gets a one-line note to install it (the game has no private message to them).- Fixed: shotguns firing on their own between days, and the safety "turning itself off". The game keeps a shotgun's safety separately on every player's machine and only ever sends "flip it", and the misfire roll runs on whoever last picked the gun up, from their own copy. 0.4.13 put a kit gun's safety on for the host but a player could still get it off, so one Q press left the two copies opposite for good: the gun said "safety on" to one player while the host's copy was off, and the host's copy misfired (Joshua's Gauntlet log: a shot with nobody pulling the trigger right after day 2 ended, the kit gun's one shell gone). Now every shotgun SimpleHQ spawns (kit, bank, repairs) starts with the same safety everywhere: on when every player has SimpleHQ 0.4.14, otherwise the game's own (off, with a chat note to press Q). Nothing is ever sent to a gun again after that except to a player who just joined, whose copies the game's join message resets: they get the host's values. No vanilla reload or shot message is sent any more.
- Multi-day runs keep the weapons they find. Shotguns, kitchen knives and shotgun shells brought back stay on the ship (not banked, not removed, also through Company days) and score when the run ends, if they're still aboard: "Weapons kept: N, $X" in the results. Not toward a hardcore quota. A wipe scores the ones on the ship right then. One-off runs are unchanged.
0.4.13
- Kits can carry the kitchen knife, the shotgun and shotgun shells. Any item in the game can go
in a kit now, not just store items (the store still wins a short name, so
prois still the Pro-flashlight). In the builder or the editor:knife 2,ammo 3,shotgun@2 1(one shotgun with 2 shells loaded;@0,@1,@2). Kit JSON:{ "item": "Shotgun", "count": 1, "shells": 2 }. - Every player sees the same shells, and the safety starts on. The game never sends a shotgun's shells over the network; each player's copy starts with the prefab's count. The host now tells SimpleHQ players the exact count, and gives players without SimpleHQ the missing shells with the game's own reload message. (A count below the prefab's can't be shown to players without SimpleHQ; the host's log says so.) Banked shotguns get the same fix when withdrawn.
- All suits for a tournament. A kit can put every suit on the rack for the run (
suitsin the builder,suits onin the editor,"suits": truein JSON, or[Tournament] AllSuitsfor every kit). When the tournament ends, or a kit without suits replaces it, exactly the added suits come off the rack; anyone wearing one goes back to the suit they had, on every screen. The added suits are kept out of every save, including autosaves during the run. - Kit codes are version 5. Version 4 codes (everything made before) still load and edit; an edited code is written as version 5.
0.4.12
- Fixed: players sometimes didn't see kit items, or saw them in the wrong place. Since 0.4.9, the host repeated where each kit item lies a few seconds later and whenever someone joined. That repeat also put back items players had already picked up. The holder's tool jumped out of their hand on their own screen and reappeared on the floor for everyone else, so every player saw something different. Now an item in someone's hands is never touched, and repeats only cover items still lying where they were put.
- The host now checks every player got every item, and repairs it. Each player answers with exactly which items they couldn't find. The host sends those again to that player only (up to 3 times). If an item still doesn't arrive, the host replaces it with an identical one (same kind, value and contents, same spot) that everyone gets fresh.
- Players keep trying for 20 seconds instead of 6. Kit items, withdrawals and cruiser returns no longer cancel each other's repeats.
- The game's own "item dropped" message goes out a second after the spawn instead of straight away, so players without SimpleHQ get it too (bank withdrawals outside a tournament).
0.4.11
- Fixed: a kit's cruiser could outlive its run. Loading a code without a cruiser now really
removes the old one:
- it's gone for every player;
- the magnet and its lever switch off on every screen;
- the save forgets it, so quitting or reloading can't bring it back;
- the invisible physics parts the truck leaves behind are cleaned up too. Anyone still driving, riding or standing in it gets 10 seconds to get out first.
- A cruiser kit never gets two cruisers, and never none. Only a real, live cruiser counts as "already here", and the kit's cruiser waits for the old one to finish going.
- Ending tournament mode takes the kit's cruiser away (once the ship is back in orbit), with anything in its bed put on the ship floor. It never becomes free gear in your own save. A cruiser you bought yourself isn't touched by this.
0.4.10
- The chat clears itself when the lever goes down on a tournament run. Setting a run up fills the
screen with the vote, the agreements, the kit and the routing; none of it belongs over a landing
people are being scored on. Turn it off with
ClearChatOnLaunch. /clearempties the chat for the whole lobby, at any time, for anyone running SimpleHQ.
0.4.9
- Kit items are announced more than once. Where each item came to rest was sent to players a single time, so anyone still loading, or whose game registered a moment late, missed it and had no way to ask again. The host now repeats it twice over the next ten seconds and whenever someone joins. Placing an item that is already in place does nothing, so repeating costs nothing.
0.4.8
- Fixed: resetting a save could duplicate banked scrap. Deposit, sell at the Company, reload an earlier point of the same day, and the scrap came back in the ship while the bank still held its value. The bank's stamp only knew the seed and the day, and neither changes when you reload the same day.
- The bank now also records what the save says is in the ship (item count, scrap value and credits). If the save has been rolled back past a deposit, the bank is not loaded, and chat says why instead of leaving you wondering where it went.
- The old bank file is kept, so a run can be put back by hand. Banks written before this update are accepted once and re-stamped at the next save.
0.4.7
- Fixed: a kit cruiser hung off the magnet the wrong way round, right flank to the ship instead of left. The game decides which side attaches from the truck's own facing when it spawns, so it now spawns half a turn round.
- Fixed: a cruiser outlived the run it belonged to. Load a second code with no cruiser in it and the first run's truck was still hanging there. Every run now starts with the vehicles cleared, so a kit's cruiser is the kit's, and a dented survivor never becomes someone's starting gear.
- The magnet switches off with it, instead of reading as on with nothing attached.
0.4.6
- Codes can be edited now. Type
tournament editat the terminal, paste a code, and change only what you want:remove tzp,shovel 2,weather foggy,seed 4242,moon Rend,players 2,credits 0,cruiser off. Typecodeand the new one is printed and saved tokits.txt. - It edits any code, including the multi-day quota kits the builder can't make yet:
day 2 seed 4242aims an edit at one day of a three-day tournament. - Edited codes are read back and compared field by field before you get them, the same check the builder runs, so an edit can never quietly hand you a different kit.
0.4.5
- Groundwork for a feature still in progress; nothing player-facing.
0.4.4
- Kit items and withdrawals spawn without a parent, and are put on the ship afterwards on every machine. Spawning an item already attached to the ship only ever works when nobody else is connected, which is why other players still saw an empty floor in 0.4.3.
- Players now tell the host what they managed to place, so the host's log (and a chat line) says plainly when someone is missing items, instead of the answer living only in their log.
0.4.3
- Fixed: a kit's spray paint arrived empty. Kit tools were spawned as if restoring a saved item with nothing stored in it, and an empty value is a real one: a spray can loaded with zero is an empty can. Kit gear now keeps what it comes with, so cans are full and a kit shotgun is loaded.
- Fixed: other players couldn't see kit tools or withdrawn items. The host spawned them and told everyone where they landed with the game's own "item dropped" message, which a player whose copy of the item is still arriving throws away. The items existed, at position zero inside the ship floor, visible to nobody but the host. SimpleHQ now sends the resting place itself and keeps trying for a few seconds until every player has the item, and both sides log what they placed.
0.4.2
- Tournament builder: make your own kit codes in the terminal. Type
tournament builderand answer six questions (moon, seed, weather, crew size, starting items, format). Research a seed with SimpleBlackBox, play it, then build a code for it and send it to whoever you want to race. No kit files, nothing from us. - The builder asks what to call it. First question, up to 16 characters, and the name travels inside the code, so the kit announces itself by name when someone loads it.
- You can pick your kit up before the lever. In tournament mode the crew can take the gear off the ship floor while the run is still staging in orbit, instead of waiting for the landing to touch it.
- Items are typed the way you buy them, several to a line:
shovel 2 weed 4 jet 1 pro 2. Short names work when they match one item, and a wrong answer asks again instead of starting over. Only store gear can go in a kit, so nobody starts a run holding scrap. - The finished code is written to
BepInEx/config/SimpleHQ/kits.txtwith the kit spelled out in plain words, because a code is too long to copy off the terminal screen. The terminal says so. - Every code is read back before you get it: if the decoded kit doesn't match what you typed, down to each item and count, the builder tells you which part disagreed instead of handing out a code that would play something else.
- Fixed: codes for Embrion and Dine played the wrong moon. A code carried only 6 bits of the moon's name, and in this game Embrion collides with Experimentation and Dine collides with Vow, so those two kits would have loaded the other moon without saying anything. Moon keys are 10 bits now and item keys 14, which nothing in the game collides in. Codes are version 4: the one code made before this (PILOT1) has been rebuilt, and any older code is refused rather than misread.
- Kits can include a Company Cruiser, on the magnet. A kit with a cruiser starts with one
already attached to the ship in orbit, magnet switched on, so it drops with you instead of costing
you the first minutes of the run waiting for a delivery. Ask for it in the builder by typing
cruiser 1with the rest of the gear. - Longer formats say they're in beta: 1-off only for now. Quota runs still play from codes we build by hand.
0.4.1
- The bank shows on the terminal, beside the credits at the top right, in smaller orange text:
$430 $1240. No label, and it never wraps, so six-figure totals still fit on the credits' line. It appears only when there's something in the bank, and only for players with SimpleHQ. Turn it off withShowBankOnTerminalin the config.
0.4.0
- Kits are codes now. A tournament kit is a code the organisers hand out, like an old save-game
password:
23280-01HWG-.... The host types it at the terminal after everyone agrees. Nothing is shipped inside the mod any more, so organisers can run their own kits without a mod update, and a mistyped code is refused instead of loading the wrong thing. - Removed the sealed kits and their decryption. Kit codes are plain, checkable data.
- A code carries the kit exactly: name (up to 31 characters, as typed), format, hardcore flag, crew range, credits, cruiser, days (moon, seed, weather), starting items and fixed quotas. KitCoder proves every code rebuilds its kit field for field before printing it, and can turn a code back into a kit file.
- The unused
scoringfield is gone: the run total is the score. - Long kit codes fit at the terminal now: the code screen lifts the typing limit, and if a code still gets cut, type the rest on the next line and it loads as soon as it's complete.
- Series: load another code in the same lobby and its score is added to the last one, so a
bracket can play one code per round (handed out only when everyone has finished the round) without
anyone leaving the lobby.
/tournamentshows the series total, and/tournament endposts every run and the final score. - Kits can end the run on any death, not just a wipe (
"deathsEndRun": true). The day's scrap doesn't count, and the results say who died.
0.3.0
Tournament mode, stage 2: the kit applies itself.
- New flow. The host types
tournament(or/tournament start) with no code, and everyone agrees to tournament mode itself. Then the lobby locks and the ship flies to the Company and waits: routing locked to the Company, and the lever won't land. When the host enters the code (tournamentat the terminal again, or/tournament load <code>), the kit applies at once, with no second vote, and the lever unlocks.
When the code is entered, in orbit:
- The ship routes to the kit's moon, and routing is locked to it for the run.
- The moon's weather is fixed to the kit's on every player's game, right away (no waiting a day).
- The kit's seed is set, so every team gets the same interior, scrap count and single-item day.
- Credits are set to the kit's, and its tools appear on the ship floor.
- Every player now needs SimpleHQ for tournament mode: the game has no way to send weather, so
each player's SimpleHQ sets it.
/agreefrom a player without it says so and doesn't count. - Formats: a kit is a whole tournament:
1o(one day) or1q,3q... (three moon days per quota), each day with its own moon, seed and weather, routed automatically. Normal runs get a Company day after each quota to sell and meet it (vanilla rules, fired on a miss); hardcore runs have no Company days and each quota is checked against the scrap banked in its three days. Kits can fix their quotas and the crew size (exact, or a range like 1 to 2 players); a lobby that doesn't fit is refused. When the run is over the results go to chat and the ship waits at the Company. - Scoring: at the end of every tournament day, the scrap brought back goes into the bank and
onto a run total shown in chat and in
/tournament. Kit items never count; found shotguns and knives do. A crew wipe loses it all, like vanilla. - Clean ship: when the code is entered, everything on the ship is removed, so nothing from before the run counts. At the end of each day the scrap is banked and removed (players drop what they hold); equipment stays for the next day.
- Title card: entering the code shows "TOURNAMENT: <NAME>" on every player's screen (on the game's own quota card) with the first quota and the format, instead of a "quota reached" popup.
- Run timer for set-seed speedruns: from the first lever pull to the end of the run, shown in
/tournamentand in the results. - When tournament mode turns on, credits go to $0 and anything ordered before it is cancelled.
- Routing is free in a tournament: the ship routes itself, and routing by hand to the day's moon just says it's already routed instead of charging.
- A kit whose moon, weather or items aren't in the game is refused when the code is entered.
- Loading another kit mid-run takes the old kit's tools back off the floor;
/tournament endputs the weather and seed back to normal. - Fixed: a kit's tools didn't appear. The game's JSON reader skipped the item list, so it's read separately now.
- Chat messages from SimpleHQ are labelled "HQ" (red-orange) instead of "Bank".
- Bank withdrawals no longer label tools with a value (only scrap gets one).
0.2.0
Tournament mode, stage 1. Sealed tournament kits ship inside the mod; the host unlocks one with its code, every player agrees, and the lobby locks.
- The host types
tournamentat the terminal, then the kit's code on the next line (or/tournament load <code>in chat). Codes are case sensitive. - The kit is shown to the lobby, and every connected player types
/agreein chat within 2 minutes. Players don't need any mods to agree. - Tournament mode ON: the lobby locks and refuses joins, and every suite mod switches its commands
and gameplay extras off.
/tournamentshows the state; the host ends it with/tournament end. - Kits are encrypted with their code, so the seed and moon can't be read before the code is released.
- Stage 2 will apply the kit: credits, tools on the floor, cruiser, moon, seed and weather.
0.1.5
- Auto deposit hooks the end of the day at a sturdier point in the game, the same fix as SimpleSell's briefing.
0.1.4
/bank info(orbank infoat the terminal) tells the whole lobby the bank exists and how to use it from chat, which works for players without SimpleHQ.- Only the host and whitelisted players can use bank commands. Anyone can still type
/bankto see the total. The whitelist is SimpleSell's (/whitelist); without SimpleSell, bank commands are host-only.
0.1.3
- Sell from the terminal when the host also runs SimpleSell:
sell 500,sell quota,sell all,sell gold bar 2, andsell bank 300. Without SimpleSell on the host,sellisn't added to the terminal (exceptsell bank). - Auto deposit:
/bank auto on|off(orbank auto onat the terminal) deposits all the scrap on the ship at the end of each day, just before the game saves. Off by default; the setting is remembered between sessions. - Fixed: withdraw could duplicate items. Its second step ran on a plugin object the game destroys after startup, which would crash after the items appeared but before they left the bank. It now uses its own helper, and the bank is always updated.
- Bank files are never overwritten by another run. Save managers like LCBetterSaves rename save slots, so a slot's bank file can belong to a different run. It's now kept under a new name instead, and that run finds it again when loaded.
0.1.2
- The bank's value shows in SimpleSell's
/stock(SimpleSell 0.1.3 or newer). - Withdraw:
/bank withdraw <item> [count|all](orbank withdraw ...at the terminal) puts items back on the ship with their exact value. No count means 1; the most valuable come out first. - Deposits and withdrawals only work in orbit or at the Company, not while landing on or exploring a moon.
0.1.1
- Bank commands work in the terminal. Type
bank deposit 100,bank deposit all,bank listorbank sell 300at the terminal, no slash needed. The result shows in chat. Typing justbankstill shows the bank. - The public-lobby lock message now says how to unlock it: host as Friends only, or
/lobby friends.
0.1.0
First version.
- Scrap bank:
/bank deposit <amount|all|item>takes scrap off the ship and keeps its value. /sell bank <amount|quota|all>sells from the bank at the Company.bankin the terminal shows the bank to every player with SimpleHQ.- Mirrors vanilla: the bank is lost when the crew is wiped out, and emptied when you're fired.
- Private lobbies only. The game save is never changed.
