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!
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 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