Skip to content

Safes tab: Nightclub, Agency, Arcade, Garment Factory and Salvage Yard safes with nightclub popularity - #44

Merged
ToothyDev merged 4 commits into
mainfrom
claude/8-safes
Oct 15, 2026
Merged

ToothyDev merged 4 commits into
mainfrom
claude/8-safes

Conversation

@ToothyDev

@ToothyDev ToothyDev commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

What this does

A new Safes tab with a card for each owned property that has a safe: Nightclub, Agency, Arcade, Garment Factory and Salvage Yard, in that order (fastest to fill at the best payout first). Each card shows:

  • the money in the safe against its capacity
  • the payout per in-game day
  • the countdown to the next payout
  • the time until the safe is full, assuming nightclub popularity stays where it is, so the time grows as popularity falls

Payouts land once per in-game day (48 minutes of play time). Nightclub popularity sets the nightclub's payout and drops after every payout. Below 95% the card warns "Payout cut" with the payout at the current popularity.

  • Nightclub:
    • Sourced: the payout table by popularity and the $250,000 cap.
    • Estimated: popularity loss of 10% a day, 5% with Staff (new Staff checkbox).
    • Buttons: Maxed, Promotion +25% (sourced), DJ +10% (sourced) and Event +10% (est.).
    • The popularity bar has five segments in the edit controls, like the business bars.
  • Agency: $250 base plus $500 per 5 security contracts, up to $20,000 a day (est.). Contracts done is a number input. Holds $250,000.
  • Arcade: $5,000 a day with all 35 floor slots filled; fewer slots get an even share (est.). Slots filled is a number input "of 35", default 0. Holds $100,000.
  • Garment Factory: a random $1,500 to $2,000 a day, no upgrades affect it (gta.wiki). The card shows the range; LSOS counts the middle, $1,750 (est.). Holds $100,000.
  • Salvage Yard: pays the 0% reputation amount, $250 a day ($300 with Staff). The card notes it is too little documented to track reliably. Holds $250,000 with the Wall Safe, $100,000 without.

Numbers that rest on estimates say "(est.)", and each such card has a small best-estimate note (decision 013). In edit mode, safe money (Collected, Full) and popularity (typed, slider or buttons) can be corrected by hand. The payout time is synced with a Payout just arrived button, pressed when the game notifies a payout: it restarts the day, and pays the payout if LSOS had not counted it yet.

Upgrade settings gain a third kind, count: a whole number typed into a NumberField. The data and its sources are in src/data/safes.ts, the design in decision 016. Saved data moves to version 7, with a migration test. The settings gear is now a shared SettingsButton.

Open data questions, all labelled low-priority: #40 (Agency step and base payout), #41 (nightclub popularity loss and event boost), #42 (Arcade per-slot payout), #43 (Salvage Yard reputation decay and safe size without the Wall Safe).

Closes #8

How to check it

  • In Settings, mark the Nightclub, Agency, Arcade, Garment Factory and Salvage Yard as owned. Then open the Safes tab: the cards appear in that order.
  • Nightclub: click Edit. Set popularity to 67% and check that "Payout cut" says "At 67% popularity the safe gets $21,000 a day; 95% or more pays $50,000". Try the buttons and Undo.
  • Press Start, wait until "Next payout in" is under 24 minutes, then press "Payout just arrived": the safe is paid, popularity drops and the countdown restarts at 48:00. Pressing it again right after only restarts the countdown.
  • Arcade: the payout reads $0 until floor slots are set. In the gear enter 14: the payout should read $2,000 (est.).
  • Agency gear: enter 100 contracts. The payout should read $10,250 (est.).
  • Garment Factory: the payout reads "$1,500 to $2,000 a day".

Checklist

  • npm run verify passes
  • Game data added or changed here has a source (see docs/decisions/004-game-data.md)
  • README / CLAUDE.md updated if usage or workflow changed

🤖 Generated with Claude Code

…tclub popularity

Each owned property with a safe gets a card on a new Safes tab: money and
capacity, payout per in-game day, next payout and time until full on play
time. Nightclub popularity drives its payout, falls each day and has Maxed,
Promotion, DJ and Event buttons. Estimated values are marked (decision 013);
open data questions are issues #40 to #43. Saved state version 7.

Closes #8

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Deploying lsos with  Cloudflare Pages  Cloudflare Pages

Latest commit: aa8c299
Status: ✅  Deploy successful!
Preview URL: https://e9d688ea.lsos-2qs.pages.dev
Branch Preview URL: https://claude-8-safes.lsos-2qs.pages.dev

View logs

- Agency contracts and arcade floor slots are typed numbers (a new
  "count" upgrade kind) instead of long dropdowns.
- Agency pays a $250 base plus $500 per 5 contracts (estimate).
- "Full in" assumes popularity stays where it is, so it grows as it falls.
- The popularity bar has five segments in the edit controls.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ToothyDev ToothyDev added feature New tracker, tab or capability data Sourced game data in src/data/ tracker A business, safe or cooldown tracker ui Components, layout, theme labels Oct 14, 2026 — with Claude
@ToothyDev ToothyDev linked an issue Oct 15, 2026 that may be closed by this pull request
- Replace the typed "Next payout in" with a "Payout just arrived" button: restarts the day and
  pays the payout if LSOS had not counted it yet (syncPayout).
- Nightclub "Payout cut" names the current popularity instead of implying one cut amount.
- Arcade floor slots default to 0 like every other count; note says "fewer than all 35".
- Garment Factory safe: random $1,500 to $2,000 a day, $100,000 cap (gta.wiki); counted at
  the middle, marked as an estimate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ToothyDev ToothyDev changed the title Safes tab: Nightclub, Agency, Arcade and Salvage Yard safes with nightclub popularity Safes tab: Nightclub, Agency, Arcade, Salvage Yard and Garment Factory safes with nightclub popularity Oct 15, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ToothyDev ToothyDev changed the title Safes tab: Nightclub, Agency, Arcade, Salvage Yard and Garment Factory safes with nightclub popularity Safes tab: Nightclub, Agency, Arcade, Garment Factory and Salvage Yard safes with nightclub popularity Oct 15, 2026
@ToothyDev
ToothyDev merged commit 7b2b455 into main Oct 15, 2026
4 checks passed
@ToothyDev
ToothyDev deleted the claude/8-safes branch October 15, 2026 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data Sourced game data in src/data/ feature New tracker, tab or capability tracker A business, safe or cooldown tracker ui Components, layout, theme

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tracker: Arcade safe Tracker: Nightclub popularity and safe

2 participants