hdlmrell-OverTheCounter icon

OverTheCounter

Build your dream dispensary empire with the OverTheCounter mod! Design fully custom storefronts, hire budtenders for autonomous checkouts, and watch live customer NPCs walk in to consult and buy. Manage it all seamlessly from an in-game phone app!

CHANGELOG

OverTheCounter Changelog

v2.0.10 — Bug Fixes

  • Overhauled dispensary customer pricing to closely simulate vanilla deals: flat per-product pricing paired with dynamic tipping based on customer enjoyment — with perfect skill checks, OTC sales can now match and even outperform vanilla curfew-bonus deals
  • Fixed OTC entities duplicating after dying and reloading
  • Fixed client players being unable to reliably ring up customers at the checkout counter in multiplayer
  • Fixed client GreenTab pricing buttons doing nothing in multiplayer
  • Fixed OTC quests not appearing for client players when they took ownership of a property

v2.0.9 — Bug Fixes

  • Customers no longer refuse to buy bricks when smaller package types aren't on the shelf — checkout now seamlessly repackages bricks, jars, baggies, and any other format mid-sale
  • Budtending consultation pricing now mirrors the vanilla deal formula — with matching Products App and GreenTab multipliers, an OTC sale on a single product lines up with the vanilla equivalent (OTC still offers variety in a single deal, which vanilla doesn't)
  • Fixed checkout remainder/return storage leaking between properties when you own more than one dispensary
  • Added a guard to prevent duplicate grid items from spawning on saves made with older versions of the mod

v2.0.8 — Bug Fixes

  • Added multiplayer sync for dispensary customization — desk style, display name, sign colors, and pricing now sync from clients to host with ownership checks and input sanitization
  • Widened S1API dependency range to accept 3.0.0–3.0.3 while rejecting the broken 3.0.2 release
  • Fixed customers getting stuck re-entering store after checkout
  • Fixed OTC app desync on property listings and thread order
  • Fixed quest RPCs not routing correctly between host and clients
  • Fixed ownership gate blocking dispensary light switch for clients

v2.0.7 — Bug Fixes

  • Fixed style customization persisting invalid style IDs when material lookup fails
  • Fixed stale HUD and coroutines leaking across scene transitions
  • Fixed counter deduplication using count instead of coordinates, breaking multi-counter buildings
  • Fixed dead drop cache crashing on null storage during early load
  • Fixed SteamNetworkLib version mismatch handling and shop injection hardening
  • Fixed RNG state not restoring when appearance generation throws
  • Fixed star sprite caching preventing retry after fallback

v2.0.6 — Bug Fixes

  • Fixed floor-fall bug caused by duplicate checkout counters and solid register colliders
  • Fixed quest double-registration crash in multiplayer by deferring creation to Tick()

v2.0.5

  • Added walk-in customer scheduling with configurable spawn intervals and mirror mode for OTC stores
  • Added budtending relationship and addiction effects with deal completion popups
  • Added Storefront Expansion quest for the dispensary with a tutorial NPC and guided pricing stages
  • Added dispensary signage system with rename and color customization UI
  • Added P2P sales log sync with auto-chunked messaging for multiplayer
  • Added store diagnostic warnings to the GreenTab overview dashboard
  • Added LightExposureNode to OTC tiles for grow light compatibility
  • Added nav-stuck recovery with retry escalation for customers
  • Added E-to-checkout prompt on queued customers
  • Customers now process deferred deals 30 min before store opens so NPCs arrive at opening
  • Register collection is now host-authoritative via P2P to prevent double withdrawal
  • Batched SyncVar publishes with dirty flags to reduce same-frame network churn
  • Fixed supplier meetup handoff, client sync, and delivery bay visibility
  • Fixed sales summary card showing tips instead of average transaction value
  • Fixed phone closing on right-click via ContactsApp exit listener
  • Fixed desperation deals being falsely redirected to OTC storefronts
  • Fixed OTC overlays not hiding when game HUD is hidden

v2.0.4 — Bug Fixes

  • Fixed memory leaks from checkout counter GameObjects and failed texture loads
  • Fixed duplicate networked object spawning
  • Fixed MeshVault registration flag firing before any registration succeeds
  • Added ownership check to store pre-open window logic

v2.0.3

  • Added auto-pricing system - set per-product pricing from the GreenTab inventory tab, with multiplayer sync and save persistence
  • Added floating sale notification at the register on completed transactions
  • Added multiplayer SteamNetworkLib dependency check on lobby join
  • DependencyChecker now detects wrong-branch and misplaced dependency DLLs
  • Fixed ContactsApp region tab buttons for multiplayer clients and double Start() crash
  • Fixed tip deposits for player-operated checkouts
  • Fixed ornate desk product display position

v2.0.2

  • DependencyChecker now validates mod versions, detects misplaced DLLs, and warns about wrong-folder installs
  • Fixed supplier patch audit issues and removed ActionListPatch

v2.0.1 — Bug Fixes

  • Fixed reliability issues on IL2CPP builds (crashes, hitching, and noisy MelonLoader output)
  • Fixed edge cases with suppliers, store alerts, and the HUD overlay
  • Cleaned up spurious MelonLoader warnings when optional mods are not installed

v2.0.0 — Storefronts

  • Added three purchasable buildings — Westville Shack, Big Dispensary, and Supplier Warehouse, purchased through an encrypted messaging thread with Static
  • Added walk-in customer system — NPCs enter through the front door, consult with a budtender, pick products based on preferences, queue at checkout, and pay with unit-based orders scaled by rank and relationship
  • Added interactive checkout — scan and place products at the register, handle partial orders, and process transactions with a redesigned POS terminal and real-time sales analytics
  • Added budtender system — autonomous checkout employees with per-counter staffing, store alerts, and daily wages
  • Added GreenTab POS app — overview dashboard with 7-day sales and inventory charts, sales log grouped by checkout, employees tab, and building customization (desk styles, wall finishes, floor materials, lighting)
  • Added storefront growth quest — a progressive questline: acquire the property, stock shelves with packaged product, install lighting, hire a budtender, and complete your first sale
  • Added HUD overlay — health, stamina, and XP bars above the hotbar with floating +/- indicators for damage, healing, and XP gains
  • Reworked Static's questline into the OTC app with threaded messages, encrypted conversations, property purchase cards, and a dead drop network
  • Added P2P networking bridge for targeted multiplayer messaging with FishNet door replication
  • Added map building overlay showing OTC building footprints on the phone map and minimap
  • Added dependency checker popup for missing S1API, S1MAPI, or MeshVault
  • Added rain suppression inside OTC buildings, region-locked customer traffic with daily caps, and notification badges

v1.5.7

  • Updated for game v0.4.4 compatibility
  • Decoupled OTC Loader into a standalone package
  • Fixed Customer NullRef crash on non-networked NPC components

v1.5.6

  • Added beta game version support with StackLimit and NPCEnteredBuilding compatibility fixes
  • Fixed minimap manager mugshots showing as white circles on IL2CPP first load

v1.5.5

  • Added minimap toggle for modded NPC POIs (police, cartel, etc.)

v1.5.4

  • Added PackRat backpack integration — Smart Fill and delivery manifest now include backpack inventory
  • Fixed Mono TryCast and unpackaged product bugs in Smart Fill and delivery manifest
  • Fixed minimap positioning on ultrawide monitors
  • Fixed manager upgrade slots not persisting across save/load on host

v1.5.3

  • Reworked Smart Fill with inline status, gram-based feedback, and slot-aware filling
  • Employees tab now shows specific activity labels, actionable issue highlighting, and dynamic manager end-of-day status
  • Minimap positioning now adapts to actual screen resolution instead of assuming 1080p
  • Fixed stale quests surviving save migration during reconciliation

v1.5.2 — Save Data Hardening

  • Hardened Vic, Static, and Bella quest reconciliation against corrupted and stale save data — progression flags now heal bidirectionally on load
  • Fixed completed quests lingering as active in the journal
  • Fixed quest creation racing with game persistence on load

v1.5.1 — Vic Quest Rework

  • Vic's intro quest now triggers from weekly ATM deposits (configurable threshold, default $10,000) instead of the Clean Cash quest
  • Fixed Vic dialogue getting stuck when quest instance was missing or save state was ahead of quest progress

v1.5.0 — Recipe Pins & Dead Drops

  • Added recipe pin overlay — pin any product from the Product Manager app to see its full mixing chain on screen
  • Added dead drop support for manager distribution routes — managers can now deliver to dead drop locations
  • Added graffiti re-edit — re-edit placed graffiti while preserving spray cans, with a config toggle
  • Upgraded all UI text to TextMeshPro for sharper rendering across all OTC screens
  • Minimap now supports free-form positioning via X/Y sliders, compass labels, and off-screen POI edge indicators
  • Managers now use a cascading walk fallback chain, reducing teleports when pathfinding fails
  • Standardized logging with auto-gated verbose output, per-system toggles, and deduplicated prefixes
  • Fixed save data leaking between loads by clearing registry cache on scene load
  • Fixed pickpocket NPC reference comparison on Mono builds
  • Fixed MelonLoader 0.7.2 compatibility warnings

v1.4.0 — Employees & Stack Scaling

  • Added Employees tab in the OTC phone app — type filtering, property grouping, detail pages with relationship bars, in-app map, and a tier-0 landing page
  • Added customer detail view — split-view layout with relationship stats, addiction level, and location tracking
  • Added stack size multiplier — configurable scaling for item stacks, manager thresholds, and supply picker quantities
  • Added OTC Loader — branch-aware DLL management plugin with restart prompts, replacing the SwapperPlugin dependency
  • Added rank/XP bar on the minimap — live rank and tier display with XP progress bar and floating +XP labels
  • Added HireMe mod integration — auto-detected Hire/Transfer button in the Employees tab
  • Minimap now tracks vehicle position/rotation and shows remote player facing direction
  • Config changes now apply instantly via native preference subscriptions
  • Fixed ContactsApp portrait rendering, connection lines, and click handling
  • Fixed manager clipboard detection with NPCInteract360, post-sleep NPC positioning, and Manny dialogue gating

v1.3.0 — Upgrades & Minimap

  • Added manager upgrades — walk speed and carry capacity tiers purchasable from the detail page, with tiered pricing and daily wage scaling
  • Added minimap overlay — configurable on-screen minimap with POI filtering, customer mugshot markers, time/day display, zoom levels, and hotkey toggle
  • Added handover Smart Fill — quality-aware auto-fill on the handover screen with a two-phase fill/boost button
  • Added alternate hire mode — hire managers directly from the OTC app per-business, for mod compatibility
  • Added Mono build support with dual IL2CPP/Mono packaging
  • Drifters now check vanilla pricing — overpriced products are skipped, and lingering drifters are cleaned up at day rollover
  • Fixed client mugshot misframing, inventory icon display, manager card layout, and Vic quest marker position

v1.2.2 — Manager App

  • Added Managers tab in the OTC phone app — list view with status cards, detail page with mugshot, live inventory, locker balance, and real-time minimap tracking
  • Added per-manager debug log — in-app console page with a ring buffer of recent manager activity
  • Added granular status display — managers now show sub-states like "Supply Run - Purchasing" and "Distribution Route 2 - Depositing", synced to clients in multiplayer
  • Rewrote mugshot generation — all NPCs now use runtime capture with content validation, fixing client mugshot bleed-through
  • Managers now deposit items before shopping for more, and only pick up what the destination can hold
  • Fixed NPC spawning crash when SteamNetworkLib is not installed
  • Fixed quest progress carrying over between save loads
  • Fixed wage payment interrupting managers mid-run

v1.2.1 — Manager Polish

  • Added job rotation, map markers, and a verbose logging toggle
  • Added pre-baked mugshots for Vic, Static, and Bella
  • Managers now rotate between supply runs and distribution routes, walk 1.8x faster, and freeze during inventory viewing
  • Managers now block new jobs at 4 AM and respect hardware store hours grace period
  • Fixed distribution infinite loop when destination storage is full
  • Fixed manager mugshots not loading on second save load
  • Renamed all log output to use OTC: prefix for easier filtering
  • Fixed dealer contracts appearing in the delivery manifest
  • Fixed IL2CPP dialogue crash on scene reload

v1.2.0 — Managers

  • Added Manager system — hire employees from the Fixer, assign lockers for wages and inventory, configure via clipboard panel, and send them on supply runs and distribution routes that persist across saves
  • Added Bella NPC and Executive Privilege quest — new quest line that unlocks 24/7 warehouse access with drug handover validation and multiplayer sync
  • Added Smart Fill per-contract packaging — Smart Stash now groups items by contract with a compact manifest toggle, and includes drifter deals
  • Added System toggle settings — individually enable or disable desperation deals, drifters, and managers from the config
  • Added single-player support without SteamNetworkLib dependency
  • Added filter-aware storage — managers respect storage rack filters when depositing and retrieving items
  • Fixed delivery window filtering for overnight contracts and desperation/drifter deals
  • Fixed multiplayer quest desync with state reconciliation
  • Fixed drifter inventory clone, spawn rate, journal cleanup, and phantom unread badge
  • Fixed dealer HUD leak, Static rotation, and Vic dialogue issues

v1.1.1 — Bug Fixes

  • Fixed drifter Customer component starving vanilla deal generation
  • Fixed stale dialogue data persisting across Vic and Static NPC conversations

v1.1.0 — Drifters

  • Added Drifter system — random one-time customers with unique appearances roam the streets and text you to buy, with robbers, narc stings, region-scaled spawning, and 35+ hotspot locations
  • Added multiplayer support for drifters — fully synced between host and clients
  • Fixed Vic intro text re-sending after reloading a save
  • Fixed a crash caused by null avatar settings list

v1.0.5 — Desperation Overhaul

  • Desperate NPCs now run to the deal location instead of walking
  • Fixed desperation deal event persisting after a successful delivery — added post-deal cooldown
  • Fixed desperation response buttons staying on screen after the offer timed out
  • Fixed desperation multiplayer sync for client handover, deal acceptance, and contract expiry
  • Fixed ContactsApp initialization race condition in multiplayer
  • Multiplayer config override improvements

v1.0.4 — Stability

  • Cleaned up excessive debug logging for a quieter MelonLoader console
  • Reduced stale quest cleanup log spam

v1.0.3 — Multiplayer Sync Fix

  • Fixed multiplayer client state sync regression where the second NPC to spawn would lose host state

v1.0.2 — Save State Fix

  • Fixed Static's subscription state persisting across different save files (loading a new save no longer carries over progress from a previous one)
  • Added dialogue refresh guards to prevent stale NPC dialogue
  • Fixed stale config sync data bleeding between save loads

v1.0.1 — Packaging & Polish

  • Added Thunderstore package support with auto-versioned build script
  • Updated in-game app icon
  • Added CC BY-NC-SA 4.0 license

v1.0.0 — Initial Release

  • Vic the bank teller — money laundering NPC behind the bank with a multi-stage quest line (Rinse Cycle journal quest, cash deposits, tier-2 trust progression, sleep-triggered intro)
  • Static the casino NPC — subscription service with tiered upgrades, weekly bank billing, sales pitch dialogue with fee traps and suspension terms
  • OTC phone app — tier-gated in-game phone app with paywall, region locks, GPS customer pins, and billing countdown
  • CustomersApp — phone app with map integration for tracking your customers
  • Desperation deal system — desperate NPCs send you deal offers with a location picker UI
  • Smart Stash overlay — delivery manifest and one-click Smart Fill for storage containers
  • Multiplayer support — client-host quest sync via Steam lobby data, host-authoritative config sync
  • Configurable settings — centralized MelonPreferences config exposed through Mods App