Metadata-Version: 2.4
Name: sheet-company
Version: 1.1.0
Summary: A cool little tool to help track Lethal Company HQ runs
Requires-Python: >=3.14
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: asyncinotify>=4.3.2
Requires-Dist: click<8.2.0
Requires-Dist: httpx-sse==0.4.*
Requires-Dist: iterfzf>=1.8.0.62.0
Requires-Dist: pycryptodome>=3.23.0
Requires-Dist: pydantic>=2.11.4
Requires-Dist: pydantic-settings>=2.12.0
Requires-Dist: pydantic-typer>=0.0.13
Requires-Dist: pydantic-yaml>=1.4.0
Requires-Dist: pyperclip>=1.11.0
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: stamina>=26.1.0
Requires-Dist: textual>=6.11.0
Requires-Dist: typer>=0.15.3
Requires-Dist: xdg-base-dirs>=6.0.2
Requires-Dist: influxdb-client<=1.50.0
Requires-Dist: aiohttp>=3.8.1
Requires-Dist: aiocsv>=1.2.2
Requires-Dist: httpx>=0.28.1
Dynamic: license-file

# sheet-company

it's the sheet

BUT IT'S NOT. This is a Lethal Company run tracking program for discerning spreadsheet haters.

## Installation

```bash
pip install --user sheet-company # or omit the --user if you hate yourself.
sheet --install-completion # For tab completion
sheet --help
```

Better installation methods will come later maybe, or maybe not. If you don't know how to `pip`, this probably isn't for you.

## Usage

```
❯ sheet --help

 Usage: sheet [OPTIONS] COMMAND [ARGS]...

╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --install-completion          Install completion for the current shell.                                                                                                                                                                                      │
│ --show-completion             Show completion for the current shell, to copy it or customize the installation.                                                                                                                                               │
│ --help                        Show this message and exit.                                                                                                                                                                                                    │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ set-current-run     Lets you pick a previous run to be your current run                                                                                                                                                                                      │
│ start-run           Starts a new run                                                                                                                                                                                                                         │
│ update-run          Updates the currently selected run                                                                                                                                                                                                       │
│ add-day             Adds a new day                                                                                                                                                                                                                           │
│ update-day          Updates the current day                                                                                                                                                                                                                  │
│ add-quota           Adds a new quota                                                                                                                                                                                                                         │
│ update-quota        Updates the current quota                                                                                                                                                                                                                │
│ quota-roll          Shows how good a quota roll was                                                                                                                                                                                                          │
│ quota-roll-revq     Shows the percentage of the last sold                                                                                                                                                                                                    │
│ average             Shows the average collected value                                                                                                                                                                                                        │
│ show-current-run    Shows the currently selected run                                                                                                                                                                                                         │
│ average-efficiency  Shows the average collection efficiency                                                                                                                                                                                                  │
│ on-ship             Shows how much loot is currently on ship                                                                                                                                                                                                 │
│ pace                Shows the pace the run is projected to be on                                                                                                                                                                                             │
│ total-collected     Shows how much loot has been collected in total                                                                                                                                                                                          │
│ needed-average      Shows the average needed to meet the target quota                                                                                                                                                                                        │
│ target-quota        Shows the desired target quota                                                                                                                                                                                                           │
│ sell-amount         Show the amount we need to sell, accounting for early sells                                                                                                                                                                              │
│ calculate-overtime  Shows how much loot has been collected in total                                                                                                                                                                                          │
│ chance              Shows the chance of reaching a given quota amount                                                                                                                                                                                        │
│ store               Shows a store interface for quickly calculating sell                                                                                                                                                                                     │
│ overlay             Prints a stream overlay to stdout                                                                                                                                                                                                        │
│ watch               Run stats tracker watcher                                                                                                                                                                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```

### Typical usage

Start a run:

```bash
sheet start-run --run-title 'this is a really cool run we are gonna comp this shit' --players GregBadabinski --players NotARobot --version v81
```

Add each day:

```bash
sheet add-day --moon Assurance --weather stormy  --layout mansion --item-count 14  --bee-count 2 --top-line 214  --bottom-line 550 --indoor-fog --meteor-shower --fire-close-to-main --infestation nutcracker
sheet add-day --moon Assurance --weather clear  --layout facility --item-count 15  --bee-count 4 --top-line 914  --bottom-line 396
sheet add-day --moon Assurance --weather flooded  --layout facility --item-count 15  --bee-count 2 --top-line 790  --bottom-line 600
```

Use the store interface to plan your buys:

```bash
sheet store
```

If you didn't confirm your sell amount using `C` in the store, update your quota with what you sold:

```bash
sheet update-quota --sold 1614
```

Add your next quota:

```bash
sheet add-quota --amount 214
```

Switch your run when your squad goes AFK for an hour and you rage quit to solos:

```bash
sheet set-current-run
```

When you inevitably wipe your solo run, mark it as wiped:

```bash
sheet update-run --wiped
```

### A note on the store interface

Look at the bottom of the screen. Look at it. There are your settings. It's case sensitive. To enter a checklist view, press `D`. To exit that view, press `d`. To increase a sale of an item, press `S`. `s` will reduce the sale. If you want to just quit without saving anything, press `ctrl+q`.

I know it's terse and bad and annoying to use. I like command line interfaces. I suck at designing TUIs. Be glad I didn't try to make a GUI.

## Maku is really cool and so is LCStatsTracker

If you're using the _excellent_ [LCStatsTracker](https://github.com/MakuAureo/LCStatsTracker) mod, you can avoid manually updating any of the shit I mentioned above. Just do this once Lethal Company is up and running:

```bash
sheet watch
```

You'll see the weather, moon, and the **true** top and bottom lines. A whole _shitload_ of other information is also tracked, but I haven't gotten around to making use of it yet.

## Extra settings

You can configure some additional settings in `"$XDG_CONFIG_HOME"/sheet-company/settings.yaml`. Here's where that'd be by default on the relevant operating systems:

* Linux: `"$HOME"/.config/sheet-company/settings.yaml`
* MacOS: `"$HOME"/.config/sheet-company/settings.yaml`
* Windows: Why are you on Windows? I have no idea where this would end up. Probably in the same place, but under `C:\Users\WhoeverYouAre`

Here's what you can set:
```yaml
default_version: v81
default_target_quota: 24
default_quota_chance_amount: 30000
should_write_overlay: true
overlay_output_path: /home/greg/.cache/sheet-company/overlay
push_to_influxdb: false
influx_db_url: "http://localhost:8086"
influx_db_bucket: sheet-company
```

And speaking of the overlay...

## The overlay

It looks like this:
```
Q1/Q2+ avg: 119/nan
On ship: 224
Needed avg for Q20: 0
Q2 roll percentage: 53%
Clear efficiency: 18.86%
Pace: Q1/130
17K chance: nan%
```

Add it as a text source in OBS. Congratulations, you have run information that doesn't require obnoxious chroma keying.

---

Made by a human for humans. Do Not The Clanker™
