How to Play.
Build the best bar in Pattaya. Staff it with real people. Earn real bragging rights. Everything in one place.
Two ways to play. Open pattayabarsimulator.com in any browser on your laptop, tablet, or phone, or install it on your phone to get a real app icon, fullscreen view, and push notifications.
We recommend installing on your phone. It's the only way the Girlfriends feature reaches its full potential. You'll get a push notification the moment a saved lady is detected starting work, so you never miss her shift.
📲 Install on your phone
Pattaya Bar Sim works on your phone just like a real app, fullscreen, with an icon on your home screen and push alerts when a girlfriend you've bookmarked clocks in. It's free, takes 30 seconds, and there's no App Store download.
📱 On iPhone
- Go to pattayabarsimulator.com in your phone's browser. If you're already there reading this, skip to step 2.
- Tap the Share button, the square with an arrow pointing up. In Safari it's at the bottom; in Chrome it's the same icon at the top right.
- Tap “Add to Home Screen”. Scroll past the first row of app icons. If you don't see it, tap “More” at the bottom of the list to expand all options, it's hiding in there.
- Tap “Add” in the top-right. The Pattaya Bar Sim icon now lives on your home screen.
- Open it from your home screen. The app opens fullscreen, no browser bar.
- Tap “Turn on” when the red banner asks “Turn on alerts?”, then tap Allow when iOS asks. You'll get pinged when a girlfriend you've saved clocks in, the only notification the game sends to your phone.
🤖 On Android (Chrome)
- Go to pattayabarsimulator.com in Chrome. If you're already there reading this, skip to step 2. (Chrome may pop up its own “Install app?” banner, if you see it, tap Install and skip to step 5.)
- Tap the menu button, the three dots (⋮) at the top right of Chrome.
- Tap “Install app” or “Add to Home screen”. Wording varies by browser; both do the same thing.
- Tap “Install”. The icon appears on your home screen and in your app drawer.
- Open it from your home screen. The app opens fullscreen.
- Tap “Turn on” when the red banner asks “Turn on alerts?”, then tap Allow when Chrome asks. Girlfriend presence pings are now on.
Why bother installing?
- One-tap launch, no typing the URL or hunting through bookmarks.
- Girlfriend alerts, get pinged when a lady you've bookmarked as a girlfriend clocks in for her shift. The only push notification the game sends, everything else (matchups, tricks, captains) lives in the Inbox.
- Looks like a real app, fullscreen, no browser bar, your icon on the home screen.
- Tiny, about 1 MB. No App Store. No updates to install, it always loads the latest version.
Common questions
Will this drain my battery or use lots of data?
No. It only loads when you open it, just like visiting a website. Push alerts use almost no data.
Can the app see my photos, contacts, or anything on my phone?
No. It runs in the same safety sandbox as a normal website, zero access to your photos, contacts, files, or anything else. The only thing it can do is send notifications, and only because you allowed it.
How do I remove it?
Long-press the icon on your home screen and tap Remove App (iPhone) or Uninstall (Android). Same as any other app. Your account is safe, you can always reinstall.
I tapped Allow but I'm not getting any notifications.
First, make sure you opened the app from the icon on your home screen, not from a Safari/Chrome tab. Then check your phone's notification settings: Settings → Notifications → Pattaya Bar Sim. If still stuck, message us in Discord.
Why isn't this in the App Store?
Apple's App Store doesn't allow our kind of theme. Web apps installed straight from Safari are the official Apple-approved alternative, they work the same, with no review and no 30% Apple tax.
📱 Mobile vs Desktop
The sim runs two parallel UIs on the same backend. Viewport width under 720px or any touch-primary device, phones, tablets in any orientation, gets the mobile UI. Everything else gets the desktop UI. The underlying game state is identical, so you can switch devices mid-day and nothing is lost.
Everything shared
All game mechanics are identical on both platforms: drinks, wages, daily roll-over, loyalty, fatigue, streaks, matchups, chips & boosters, sabotage, dirty tricks, prestige, bar group synergy, bar marketplace, matchups and leaderboards. If you hire a lady on mobile she's on your roster on desktop too, same database, same rules.
Desktop-only features
- Drag-and-drop organize tab in Bar Groups, move ladies between bars by dragging. On mobile you use the Transfer action on the staff card sheet.
- Full 3D World canvas, Three.js walking-street, multiplayer, bike races, venue props. Mobile shows a teaser + "Enter the soi" button; performance on phones is a coin-flip.
- Side-by-side staff comparison, the roster perf-table with 30-day heatmap and day-of-week pattern columns. Mobile has a dedicated Compare mode on Scouting (tap the + on up to 4 cards) for the same use case.
- Multi-theme picker (Legacy / Dark / Light / Chang), mobile has a simpler Light + Dark toggle only. Your desktop theme and mobile theme are independent; you can run desktop Chang and mobile Dark.
Mobile-only features
- Bottom tab-bar navigation, Home / Staff / Finance / Compete / More. Desktop uses the sidebar.
- Swipe-to-reveal on staff cards, swipe left on a lady/cashier to surface Replace / Bench / Release / Train. Or tap the … menu.
- Bottom-sheet filters on Scouting, one Filters button consolidates Venue / Roster / Presence / Sort into a single sheet with a live result counter.
- PWA install + push notifications, girlfriend-watchlist pushes only fire to installed PWAs. See Girlfriends.
- Hero cards with gradients, Home bankroll, VS card, tonight's drop countdown, prestige reset. Desktop shows the same data in text form.
Same feature, different layout
- Staff, mobile: swipeable card list grouped by Cashiers / Ladies / Freelancers / Bench. Desktop: one big performance table with sortable columns.
- Scouting, mobile: sticky search + filters bottom sheet + Compare mode. Desktop: inline filter pills + perf heatmap per row + compare column.
- Girlfriends, mobile: search by name/venue, scoped per-bar, save/remove toggle inline. Desktop: grid with pagination.
- Finance, mobile: sub-tabs for Earnings / Upgrades / Bank, each its own page. Desktop: single scrollable page with everything.
- Compete, mobile: VS hero card, matchup strip, leaderboard tiles. Desktop: multi-column matchup board with deeper stats.
- Bar Groups, mobile: collapsible per-bar sections with sort chips. Desktop: full tabs (My Ladies / Scouting / Stats / Settings) plus drag-and-drop organize.
Switching between them
Detection is automatic: viewport ≤ 720px or a touch-primary device gets mobile; everything else gets desktop. On an iPad in landscape you'll stay on mobile even above 720px because the device is touch-primary. Desktop users shrinking their browser window below 720px will switch to the mobile UI, some features (drag-drop organize, admin impersonation) won't be reachable, so keep the window wide if you need those.
Internally this uses CSS (max-width: 720px), (pointer: coarse), see dashboard/static/mobile.css.
💬 Community & Discord
The game lives on top of a real-world community of 11,000 Pattaya Mongers. We develop the sim in public, in a dedicated channel, and most of the league's scheming happens on Discord rather than in-app.
Where to find us
- Invite link: discord.gg/pattayamongers, also available as the blurple Discord icon in the sidebar footer of every page.
- #🎮 bar-simulator, the game's home channel. Feature requests, weird bugs, strategy debates, and real-time match banter. The dev team posts here directly.
- The home page carries a one-time dismissible invite card for new players. Click × to tuck it away; the sidebar icon always gets you back.
Why it's worth joining
- Patch notes in real time. Bug fixes, new features, and rebalances get announced in #bar-simulator the moment they ship.
- Talk to the devs. The build team reads and replies in the channel.
- Find rivals. The matchup leaderboard is a lot more fun when you know the person on the other side.
- Tips trade faster than docs update. Strategy emerges from matches before we can write it down.
🎮 Getting Started
Welcome to Pattaya Bar Simulator, the fantasy sports game where you build and manage a virtual bar powered by real venue data. Your roster wears fun cartoon avatars and the nicknames the bars themselves use, the performance numbers behind them are whatever those venues actually did last night.
Your first session in six steps:
- Create your bar. Pick a name, colour scheme and logo. Creating a bar costs ฿500,000 from your starting balance of ฿1,000,000.
- Draft your ladies. The signup flow auto-drafts 5 starter ladies for you so the doors can open right away; you can keep going and fill the rest manually, or use the ✨ auto-pick helper to skip the grind. The bar opens for business as soon as you have 5+ ladies.
- Choose a captain. Nominate one lady each day from the Dashboard, her drinks count 2× for that day's revenue.
- Visit the 3D world. Walk around your bar, challenge staff to Connect 4, and scope out rivals' venues.
- Check your matchup. See your weekly head-to-head opponent, your live drink total, and plan your chips.
- Play a dirty trick. Once you hit 500 lifetime drinks, the Dirty Tricks page unlocks. Sabotage a rival, just watch your notoriety.
Starting budget
Hiring cashiers
You start with 2 cashier slots. Cashiers run the register and are rated 1-5 stars for consistency:
| Rating | Hire Cost |
|---|---|
| 1 Star | ฿50,000 |
| 2 Stars | ฿100,000 |
| 3 Stars | ฿150,000 |
| 4 Stars | ฿225,000 |
| 5 Stars | ฿300,000 |
Cashiers earn ฿500 per shift just for showing up, plus ฿80 per drink they sell (50% of each ฿160 drink). A rostered cashier with zero drinks still costs ฿500 (you pay her for the shift), and her drinks generate the full ฿160 revenue for your bar. You need at least one cashier, without a cashier your bar earns zero revenue.
Week-1 sponsorship
Brand-new bars (Day 0–7) get an automatic sponsor card on the home page. A fictional Pattaya sponsor (rotating brand, all in-world) pays your bar ฿5,000/day for the first 7 days, landing in your balance at the 09:00 Thai earnings roll. Total subsidy: ฿35,000 across the first week. No action required, the kickback is automatic and visible as a 📰 Sponsor line on the Finance page → Earnings each morning.
The card retires from the home page after Day 7 and the line item drops off Earnings the same day. Treat it as a small head-start, not a long-term revenue source.
🎲 Draft
The draft page lets you pick 10 ladies from every real venue. You can build it yourself, or skip everything with one click using the auto-pick helpers below.
β‘ Auto-pick helpers
If you want to skip the selection grind, the Create / Cashier / Draft pages each offer a one-click helper:
- On Create Bar: π² Surprise me populates a fresh Thai-inspired name (Neon Cobra, Mango Sticky Bar, Red Lotus Lounge…).
- On Select Cashier: β¨ Pick best for me hires the best affordable cashier and jumps to Draft.
- On Draft: β¨ Auto-pick my top N fills the remaining slots using Expected Tonight.
Expected Tonight score
The draft page default sort is Likely tonight β, a composite score that answers “how likely is she to bring in drinks tonight?”. It blends:
- +20 if she's clocked into the POS right now (her real venue)
- +2 per night worked in the last 7 business nights (max +14)
- +0.5 per day worked in the last 30 days (max +15)
- Γ 0.4 if her venue is closed tonight (demote, don't eliminate)
Business day here rolls at 09:00 Thai time, so at 10am the score uses last night's attendance; from 6pm onward it starts picking up tonight's live clock-ins. The draft UI shows three badges per card:
- π’ Working now, in the POS today
- π₯ N/7, nights worked in the last 7
- π« Venue closed, her bar's shut tonight, score demoted
Alternate sorts Consistency β, Cost β, and Cost β are available if you want to ignore live presence and pick purely on history or budget.
Onboarding inbox + checklist
When you create a bar, four welcome messages drop into your Inbox (welcome, pick captain, meet opponent, claim freelancer). Overview shows a 3-step checklist until you've done them. Day 3+ you get a Dirty Tricks intro; day 7+ you get a Chips reminder. All auto-archive when you complete the action, no manual dismiss needed for most.
🎰 Three-name roll on Create Bar
Tap 🎲 Surprise me on the Create Bar page and it rolls three names instead of one. Pick the one you want; the other two go to the Pattaya Turtle Hall of Fame ballot for the wider community to vote on. Hit Re-roll if none of the three feel right. The whole loop usually takes longer to read than it does to land on a name you like.
🪑 Bar Owner School · The Table of Knowledge
The first thing you see after you create your bar is a wonky corner table in a dim Pattaya side-soi bar. Four old expat regulars are arguing across it. There's an empty chair pulled up at the front. That chair is yours.
The Table of Knowledge is the new-player curriculum: 89 lessons across 4 stages, framed as a column the Pattaya Turtle's beat reporter is writing about whatever the four regulars are arguing about this week. Each lesson nudges you toward one specific game action (pick a captain, book a themed night, file a dirty trick, buy your second bar) and pays a small cash reward into your bar's bank when you complete it. By the time the chair fills in, you've touched every system that matters.
Try it → Open the TableThe four stages
| Stage | Goal | Lessons |
|---|---|---|
| Stage 1 · Run a profitable bar | Sit down, fill the seats, book your first night. | 31 |
| Stage 2 · Run a competitive bar | Climb the leaderboard. Master every chip. Survive a sabotage week. Lock in Squad synergy. | 25 |
| Stage 3 · Multi-bar empire | Open your second bar. File for Mayor. Bulk-activate across the group. Prestige once. | 19 |
| Stage 4 · Pattaya Legend | Twenty bars. The Founder Title. The real-world Beer Card. The Empty Chair was always yours. | 14 |
Each stage opens once the previous one is graduated. You can peek ahead at any locked stage but can't tick lessons off until it unlocks.
How a lesson works
- One of the four regulars speaks in their own voice (typewriter animation, tap to reveal the rest).
- The Pattaya Turtle reporter's editor's note quietly translates what they actually mean in game terms.
- A single CTA button takes you to the page where you'd do the thing (Pick a captain →, Book a themed night →).
- Completion auto-detects. Most lessons tick themselves off when the game state matches the lesson's predicate, no “mark as done” needed.
- Cash reward + lesson count banked instantly on first complete. Front-loaded payouts taper off as you start earning real revenue.
Need to come back to it later
The Bar Owner School strip lives at the top of every page on the home view (the cream “X / 89 lessons” bar). Tap it any time, or hit the 🪑 chair icon in the header. The Table doesn't go away. It just patiently waits.
The cast
The four regulars are caricatures of a real Pattaya archetype. The comedy is warm. They're full of nonsense and a few of them are right occasionally. The Pattaya Turtle reporter is the conduit between their bar-stool wisdom and the actual game mechanics.
Barry · The Money Man
English · mid-fifties · cabaret-DJ retiree
“Look, I've done the maths. Cost. Per. Drink. That's the only number that matters.”
Beer belly so big it's eaten his neck, faded yellow Chang singlet, DJ headphones permanently slung around his neck (hasn't spun in twelve years). Quotes percentages, claims to predict takings to the nearest ฿20. Genuinely good at the numbers. Genuinely bad at people.
Right about: the maths. Wrong about: anything cultural. Specialties: Revenue Breakdown, Captain pick maths, Bar Stool ROI, Wage Strike, Buy a Round.
Terrence · The Bangkok Veteran
English · late sixties · ex-Sukhumvit club owner
“Now, back in Sukhumvit in '94 (and I'll grant you, it was a different city) the principle still applies.”
Tall, gaunt, the only pale one at the table. Sunken cheeks, slicked grey hair, unbuttoned cheap silk shirt, cigarette permanently hanging off two long fingers. Ran a string of Bangkok nightclubs in the 90s. Each one closed, mysteriously, around the time he sold his share. Source of his money is the great unanswered question of the Table.
Right about: the structural stuff. Wrong about: modern technology. Specialties: Roster scouting, Themed Nights, Bar Marketplace, Notoriety.
Dave · The Mystic Lunatic
American · late sixties · biker, in Pattaya 30 years
“Listen, kid. THIRTY YEARS. I've seen things. I've seen things that would freeze your blood.”
Loud American with biker-aesthetic-aged-poorly. Black bandana, full grey beard, sleeve tattoos of snakes and skulls he can't remember the meaning of, gold rings on every finger, multiple amulets. Genuinely believes in ghosts. Reads every losing streak as a curse, every winning streak as a blessing he's earned.
Right about: momentum and when to chase it. Wrong about: cause and effect. Specialties: Streaks, Dirty Tricks, Notoriety/CCTV, Mayor election, Captain instinct.
Gregory · The New Bloke
Australian · early sixties · ex-FIFO miner, fresh retiree
“Yeah nah look mate, I reckon...”
The freshest face at the Table. Sun-burnt nose, sun-faded green-and-gold rugby singlet, Akubra on the back of his chair, beer in hand at all times. Twenty-five years FIFO in the WA iron mines, retired six months ago on a heroic super pension. Has been in every bar in town as a customer. Listens more than he talks.
Right about: customer's-eye view of every venue. Wrong about: Pattaya prices in his head are still 2018 numbers. Specialties: Venue Synergies, Bar Intro Night, Loyalty & Training, Group Synergy.
The reporter
The Pattaya Turtle's beat reporter is the framing voice: a dry, slightly weary journalist who's been on this beat too long. They've learned to nod along at the Table and write the truth down at the bar. They never speak in dialogue. Their voice appears only in the Pattaya Turtle headlines at the top of each lesson card, in italic editor's notes correcting whoever's wrong on a fact (“Editor's note: Barry is wrong about the cap. Bar Stool max is 5, or 10 with Double Unit.”), and in the one paragraph of framing copy between the quote and the CTA.
✨ What's New
A digest of the most impactful recent changes. Click any bullet to jump to the section with more detail.
- 📡 Channels (Marketing skill tree): the Boosters page now splits into Events and Marketing top-level tabs. Marketing is a long-game skill tree built around five real Pattaya media characters (Cruise, Brendan, Cuckoo, Kickback Mack, Vic & Barty). Spend points to wire up to a Channel, buy its products, and pull a small daily drink-earnings line. Underdog ladder boosts newer and smaller bars; multi-bar accounts scale down. Read more →
- 📱 The Pulse: voiceover-led "Meet the Cast" intro for Channels. Plays automatically the first time you open Marketing; replay card stays on Boosters forever after. Same ToK-style two-column flow as Bar Owner School. Read more →
- 📱 Bill Scan PromptPay numbers refreshed: every venue's QR phone is now a 9-bit binary string (0066 0000 00001 etc.) so a misscan can't accidentally pay a real Thai mobile. All 13 venues remain wired up, scan still credits 10× the bill amount. Read more →
- 😂 Funniest Names leaderboard tab: every bar name in the league rated 0–100 for humour by the Pattaya Turtle's resident comic-AI, with a one-line rationale. Refreshed daily. Read more →
- 🏆 Compressed post-season: 2-day semis and 1-day final replace the old week-long playoff rounds, so a 2-week regular season wraps in roughly 17 days end-to-end. Read more →
- 📢 Group News (formerly Chat): the bar-group chat tab is now Group News (URL
?tab=memos), posts signed in the chain-owner's voice instead of per individual bar. Read more → - 🆕 "Just started today" on Returners: a new top-of-page section catches brand-new POS hires (a lady's first ever shift) within ten minutes of her appearing upstream. Pure first-mover territory. Read more →
- 📍 Rostered badge on hire pickers: staff already placed at one of your bars now appear in the hire / freelancer / cashier picker with a π ROSTERED label instead of being hidden. Not-rostered candidates sort first. Cert-filter pills also default to Confirmed + Predicted at every hour. Read more →
- 🎓 Training filter chip: new chip on the roster filter row narrows the list to staff currently in Week Off / Train in House / Bar Intro Night. Greys out when nobody's training. Read more →
- ⚡ Optimize Roster expanded: portfolio Optimize now redistributes present freelancers across your picked bars instead of leaving them stuck. New Only use currently working toggle in Pick & Fill, plus tick-order priority badges on the bar columns. Read more →
- 💼 Marketplace v2: buyer inherits the seller's ladies and cashiers (no refund on inherited staff, duplicates de-duped). Marketplace-bought bars start at ฿0, no starter float. Sole-bar listings now allowed. Buy/list errors surface inline instead of silent redirects. Read more →
- 🪑 Bar Owner School · The Table of Knowledge: the new-player curriculum is four old expat regulars (Barry, Terrence, Dave, Gregory) arguing across a corner table while the Pattaya Turtle reporter writes it down. 89 lessons across 4 stages, each paying a small cash reward when you complete it. Read more →
- 🐢 The Pattaya Turtle: the front page is now entirely reader-written. Submit a take (headline + article body) on /turtle, vote up the ones you like, the top-voted letter today becomes the lead story. Read more →
- 🏝️ Real Venues: default tab on /world. League-wide form-and-trend table for all 13 real Pattaya venues, plus a full venue profile page at /venues/<slug>. All bucketised, no raw drink numbers ever. Read more →
- 👑✨ Captain MVP: weekly community vote for the lady carrying her captains. Winner gets a permanent badge on her scouting profile and the last-captain bar gets a +฿20,000 bonus. Read more →
- 🏆 Walk of Fame: league-wide hall for ladies with 5+ matchup wins as captain across her entire career. Pure status, public, links from her venue. Read more →
- 🦙 Rideable Moo Deng: ฿500k transport upgrade (chunky pink pygmy hippo). Joins the Soi Scrambler and Sukhumvit Superbike under a Transport picker. Read more →
- 🗳 Mayor · policies + endorsements: the post-election mayor picks one of seven policies that runs league-wide for 14 days. Day-1 players can endorse and split a 5% / ฿250k kickback pool if their pick finishes top-3. Read more →
- 🍻 Last Call minigame + 🍺 mid-evening events: 30-second whack-a-mole launched from the 🎮 games picker any time, plus choose-your-own-adventure cards between 19:00 and 23:00 Thai. Both bake into the same +/- 15% nightly cap on tomorrow's drink earnings. Last Call → · Evening events →
- ✨ Synergy retuned: Trio +3% / Squad +6% / Full House +10%. Themed Night stack cap halved to +40%. Read more →
Show all updates
- Playbook is now Boosters (
/boosters, old URL still works) with Now / Book / Calendar tabs and book-ahead up to 3 days. Read more → - Dirty Tricks rebalanced, Police ΰΈΏ40k, Bad Review ΰΈΏ20k, Ladyboys ΰΈΏ25k, Happy Hour ΰΈΏ25k (now +30%); Security Guard ΰΈΏ50k, CCTV ΰΈΏ25k. Read more →
- Retire criteria tightened, β₯2 bars, β₯14 days old, β₯5,000 lifetime drinks, β₯ΰΈΏ500k net earnings, β₯2 upgrades; the Upgrades page shows a live checklist. Read more →
- Balance Ledger, every balance change on every bar is recorded (admins can audit per-bar or across the whole game). Read more →
- 3D World lives inside the app now (sidebar/header visible) with a pop-out button. Mobile d-pad is smaller and raised so the down-arrow isn't clipped. Read more →
- Freelancers & Cashiers tabs retired, claim freelancers and hire cashiers from modals on My Ladies. Read more →
- Leaderboard gets rank-delta, sparklines, Follow button, "Your rank" trend chart, Top Bell-Ringers, and new Groups + Achievements tabs. Read more →
- Matchup / Season / Rivalries, momentum charts, predicted-finish variance bands, narrative rivalry beats, inline chip activation, season archive. Read more →
- Bank / Earnings / Upgrades / Feed / Scouting / Achievements all got dashboard refreshes, see their individual sections for the new charts, ROI recalibration, reply threads, shortlist compare, and Next-Up tiles.
🧭 Sidebar & Navigation
The sidebar has been streamlined. Several previously separate entries are now sub-tabs within their parent section, so the top-level list stays short and the related screens are one click away once you're in the right place. Help and Logout are compact icons in the footer.
- 🏠 Home: daily clock, Tonight's Captain card, Three Quick Wins, the Bar Owner School strip at the top of the page. School →
- 💃 Staff: sub-tabs: My Ladies, Scouting, Girlfriends, 👑 Captain MVP, 🏆 Walk of Fame. During Mayor of Soi Sabotage seasons a 🗳 Mayor's Cabinet sub-tab also appears for picking your campaign roles.
- 💰 Finance: sub-tabs: Earnings, Upgrades, Bank.
- ⚔️ Compete: sub-tabs: Compete, Leaderboard, Scout Meta, Season, Matchup, Dirty Tricks, Rivalries. A Season ↔ Election toggle swaps the panel into the campaign HQ when the Mayor election is live.
- 🎉 Boosters: top-level 🍻 Events tab holds Tonight's Stack, Chips, Active, Calendar, and Buy a Round. Top-level 📡 Marketing tab opens the Channels skill tree. Channels →
- 📬 Inbox: To-do, FYI, Archive. The bell badge counts open to-dos only. Details →
- 📰 News: sub-tabs: 💬 Feed (player posts, replies, beef-of-the-day) and 🐢 The Pattaya Turtle (the in-world satirical newspaper plus Soi Voice Tribune polls).
- 🏅 Achievements: 69 unlocks across Milestones / Earnings / Roster / Combat / Social / Seasonal, with a Gamer Score in ฿.
- 🏘️ Bar Group: shown when you own 2+ bars. My Ladies, Scouting, Stats, Settings, Boosters, Organize.
- 🌍 World: sub-tabs: 🏝️ Real Venues (form + trend across every Pattaya venue, default tab) and 🌍 Soi Sabotage (the 3D arch, multiplayer races, pool, dice, bells).
The top-right header shows the 🪑 Bar Owner School progress chip (e.g. “5/75”) which opens the Table from anywhere, a scan icon, a search icon, a camera, the notification bell and (for admins) an ⚙️ admin cog. Bell clicks deep-link straight to the source (feed post, trick, bar page). Logging back in lands you on the last bar you were managing, not whichever bar happens to have the lowest id.
🔍 Scouting other bars
Every bar's roster from past days is public, free, and detailed. The fastest way to learn the meta is to look at what the leaders are doing, same idea as Fantasy Premier League, where every manager's team becomes visible after the deadline.
Open a bar's scout page
Three routes to it:
- Click a bar's name on the leaderboard. This is the primary way. The whole row links straight to
/scout/<bar-slug>and loads yesterday's snapshot. - Type the URL.
/scout/frodos-ringfingerworks directly, or with a date:/scout/frodos-ringfinger/2026-04-30. - Click any bar referenced elsewhere, trick targets, group members, recently-scouted chips on the leaderboard.
What you see on a scout page
- Headline: total drinks, gross revenue, wages, profit. Money is gold and never per-staff.
- Roster: every girl who worked, with a level pill (high / medium / low). The captain has a 👑 and a gold ring on the portrait. Did-not-work ladies appear dimmed.
- Cashiers on shift, same level pill convention.
- Strategy: music style, chips active that day (Triple Captain / Bench Boost / Wildcard / Free Hit), and which upgrades the bar owns.
- Dirty tricks used by them and used against them, with links to the other bars involved.
- Context: any venue event (e.g. Tourist Bus Day) and synergy bonuses.
- Last 14 days mini-bar chart, click any bar to load that day. The selected day is highlighted.
- Captain history: the last seven captain picks, in date order.
Day clicks are AJAX, tapping a different day in the strip or the ‹ Prev / Next › chevrons swaps the page in place without reloading or scrolling to the top.
Walk other bars by rank
The chevrons just under the bar name on each scout page jump to the next or previous bar by lifetime drinks rank. The same pattern as FPL's "View next manager", useful for spot-checking the top 20 in two clicks.
Today is locked
Nobody can scout today's lineup. The day reveals at 09:00 Thai when earnings roll up. Until then a "🔒 Today's roster is locked" placeholder shows up if you try to load today's date.
Scouted-by badge
If two or more distinct viewers have looked at a bar in the last 7 days, a "👀 Scouted by N this week" pill appears on its scout page. It's an aggregate count, nobody is notified when you scout them, and we don't show who looked.
Share link
Every scout page is a shareable permalink. The 🔗 Share link button copies the URL or opens the native share sheet on mobile.
Privacy, what's NOT exposed
Per-staff drink counts are never shown. The scouting layer only renders level buckets (high/medium/low) and aggregate counts ("rostered by 14 of top 20"). The customer-call risk discussed elsewhere in these docs is fully preserved.
📊 Meta digest
Open at /meta, or via Compete → 🔍 Scout meta in the sidebar, the 🔍 Scout the meta card on the home page, or the matching banner at the top of the leaderboard.
One page converts the top 20 or top 100 rosters into the FPL "effective ownership" view, instead of clicking through 20 bars one by one, you see one card with what the leaders are actually doing.
Cohort toggle
Top 20 and Top 100 tabs in the top right. Top 20 reflects the meta among elite bars; Top 100 widens it to include the chasing pack.
Day picker
Underneath the cohort toggle on desktop (and in a card on mobile) there's a ‹ Prev day / [date] / Next day › picker. Walk back through past days to spot meta shifts, e.g. did everyone start playing Wage Strike on Mondays?
What you see
- Median of top X headline, what was a "good day" yesterday in raw drinks + revenue terms, and how many tricks the average top bar deployed.
- Captain picks, what % of top bars captained a high-tier vs medium vs low vs cashier. The number to beat is "% on high".
- Most rostered girls, the five girls appearing in the most top rosters, with the count and percentage. Hire targets.
- Most captained, the five girls top bars chose to double-multiply most often. Captain candidates.
- Avg roster size + avg cashiers, how many staff the leaders actually deploy per night.
- Chips played, usage rate of each chip among top bars on this day.
- Music style split, which style dominates the leaders.
Your roster vs top N
If you have a bar, the page shows a personalised gap-analysis card at the top: roster size, captain quality, missing chips, music alignment. Each insight is colour-coded (green = on the meta, amber = a gap to close) and ends with a one-line action.
Effective-ownership pills
The same data also surfaces inline:
- On the Hire screen (Staff → Scouting), each candidate gets a 🔍 N/20 tag next to their price, meaning they're on N of yesterday's top-20 rosters.
- In the Captain pick modal, the same tag appears so you can see at a glance whether your candidate matches the leaders' choice.
You don't have to leave the decision flow to check the meta, the meta comes to you.
🏘 Group mini-league
If you're in a Bar Group, open /group/<id>/scout, or use the 🔍 Scout group rosters button at the top of the Bar Group page. You'll see every member bar's roster side-by-side as cards (mobile) or columns (desktop).
Each card / column shows:
- Captain for the day, with the captain bonus inline.
- Headline drinks + revenue, bar-level totals only (no per-lady drink counts).
- Roster avatars with a level dot per girl (high / medium / low / present / off).
- Music style and any active chips (Wildcard / Wage Strike / Triple Captain / Bench Boost).
- Dirty tricks used and received the previous day, both sent and incoming.
- 14-day mini-bar chart + last 7 captain picks at the bottom of every card.
Click any bar's name to drill into its full scout page. Day chevrons let you walk back through past days side-by-side.
This is the equivalent of FPL's mini-league screen, the one place where you can see "Mike captained Pond, you captained Mai, Sarah played Wildcard" at a glance.
📬 Inbox & Morning Brief
The Inbox is your daily command centre. At 9am Thai (when earnings roll up) the Morning Brief generator fires and fills it with everything that wants a decision from you today. The goal is simple: open your phone, open the inbox, five minutes later you know what to do.
Three tabs
- To-do, actionable items. The red badge on the sidebar counts only open to-dos; dismissing or actioning drops the count.
- FYI, informational: yesterday's report, loyalty milestones, streaks, tips, market activity. Auto-clears when you open the tab.
- Archive, every item you've handled. Search back through the week.
Expandable cards
Every row collapses to title + one-line message. Click to expand and reveal:
- A 1–3 sentence explainer of why this matters.
- Supporting stats (drinks, revenue, delta, runway, weeks, etc.) in a grid.
- Tonal pills (green = good, red = bad, gold = noteworthy).
- A primary CTA button that deep-links to the page where you act.
Items sort by priority, urgent-red items float to the top, ambient-grey tips settle at the bottom. Same-priority items tie-break by recency.
What fires every morning
Fifteen generator types cover the bases. Each de-dupes by business date so re-running the scheduler never spams.
| Item | Kind | When it fires |
|---|---|---|
| 📊 Daily report | FYI | Always, top of inbox. Drinks, revenue, earnings, delta vs prior day, top performer. |
| 👑 Captain reminder | TODO | You haven't picked today's captain. 2× drinks on the line. |
| 🎷 Venue event | FYI | Themed night at a venue where you have staff, expect a lift. |
| ⚔️ Matchup today | TODO | H2H running tally + how far ahead/behind you are this week. |
| 🃏 Unused chip | TODO | A chip is usable in the current tranche, don't waste the window. |
| ✨ Synergy close | TODO | One more hire from a venue unlocks the next synergy tier. |
| 😴 Fatigue warning | FYI | Any lady with 7+ consecutive nights worked, rest them. |
| ❤ Loyalty milestone | FYI | A lady crossed 4 / 8 / 12 / 20-week loyalty overnight. |
| 🏗 Upgrade affordable | TODO | A roster / bench / cashier upgrade just came into budget. |
| 🆓 Freelancer window | TODO | Claims left today + free freelancer slots, the window closes at 09:00 Thai. |
| ⚠ Balance low | FYI | <3 days of wage runway in the bank. |
| 🔥 Streak | FYI | A lady hit a 5 / 10 / 15-night High streak. |
| 📉 Underperformer | FYI | 3 straight declining nights from an active lady. |
| 🏢 Bars for sale | FYI | Other players listed their bars, market activity. |
| 💡 Tip of the day | FYI | Rotating strategic tip, date-seeded so everyone sees the same one. |
Where it surfaces
- /home, the "Morning brief" card shows the top 3 open to-dos inline with quick-jump links.
- Sidebar bell / badge, unread to-do count.
- /inbox, the full experience with expandable cards and the three tabs.
Find it: Sidebar → 📬 Inbox. Also deep-linked from the sidebar bell and the home-page Morning Brief card.
✅ Today Action List
The Home page surfaces a uniform grid of cards for everything that wants your attention today, captain pick, chip expiry, freelancer claims, unused trick slots, themed-night bookings, and so on. Unfinished items carry a red dot; each card has a small ✓ button to mark it done.
- Completion state persists in
localStorageso reloads keep your progress. - The home-sidebar badge decrements as you tick items off.
- Items re-appear the next day if they're still relevant (e.g. you didn't pick a captain).
- The panel is collapsible, click the Today header to hide it if you want a cleaner home page. State persists per bar in
localStorage.
🏝️ Real Venues (the league's hire pool)
Every staff member in the game works at one of thirteen real Pattaya venues: Bradley's, Brasshouse, Camel Toe, Catflaps, Club Fate, Free Willy, Maggie May's, Maggie's Agogo, Maggie's Beer Bar, Maggie's Darkside, Maggie's Jomtien, Maggie's Resort, Throbin Wood. The Real Venues tab on World is the public view onto how each of them is doing right now. Default tab on /world.
The index table
The main Real Venues view lists all thirteen venues with three columns:
- Venue, the bar name, a one-line satirical description, and (when in form) a small fire / sparkle pip.
- Yesterday, a bucket label (HIGH or MEDIUM as of 2026-05-11; quieter buckets and red have been dropped per the league's privacy rules). Coloured to match the bucket.
- Trend, a one-step compare against the day before that: ↑ Up, → Flat, ↓ Down. Coloured.
Tap any row to open that venue's profile.
Venue profile page
Each venue has a public profile at /venues/<slug>, shareable anywhere and viewable without logging in. The profile shows:
- Hero card, yesterday's bucket as the headline and the same trend pill as the index.
- 30-day form sparkline, bucket-by-bucket, so you can see whether the venue is on a tear or coasting.
- Notable ladies right now, a small grid of the venue's in-form names. Bucketised, never with raw drink numbers, per the privacy rules.
- Cashier form, the venue's cashier bucket alongside the ladies'.
- League roster count, how many bars across the entire league currently have at least one staff member from this venue. Hints at how popular the venue's pool is.
- Pattaya Turtle quote of the day, stable per venue per day so screenshots stay reproducible.
Privacy invariant
No page in this section ever exposes a venue's raw drink count, raw revenue, or raw wage total. Buckets and trend arrows only. Same rule that protects individual ladies, applied at the venue level so a rival can't reverse-engineer a venue's nightly take.
🏛 Soi Sabotage (the 3D world)
The second tab on World. Spawn into a 3D rendering of Soi Sabotage, the league's home street, with the entrance arch overhead and an explorable interior for every bar. Walk around your venue, interact with staff, and find the interactive props.
- Connect 4 bistro table, near the wall. Walk up and press E to pick a staff member and play. Wins pay ฿2,000.
- Pool table, if you've bought the Pool Table upgrade (requires Double Unit). Wins pay ฿3,000.
- Sound system, cosmetic wall-mounted speakers if you've bought the upgrade, with a choice of 10 genres.
- Staff avatars, your active ladies and cashier appear at the bar.
- Facade tier, your prestige level shows on the exterior (standard → bronze → silver → gold → neon → fireworks).
Minigame daily payout total is capped at ฿15,000 per bar across Connect 4 + Pool combined.
🖥 Desktop: in-app vs. pop-out
The 3D world renders inside the app shell, your sidebar and header stay visible so you can walk around without losing navigation. Need the whole screen? Hit the ↗ Open in new tab button for a fullscreen pop-out. Arrow keys / WASD to move, E to interact, Shift to sprint.
📱 Mobile controls
You land on a teaser screen, tap Enter the soi → to boot the canvas (load takes ~10s on wifi). Once inside, the on-screen d-pad is smaller and raised up from the bottom edge so the down-arrow never gets clipped. Pool minigame works, tap the on-screen E prompt next to the table to interact. You cannot dismount the motorbike during a race to prevent accidental forfeits. See also Mobile vs Desktop for the feature split.
👑 Bar Groups
When you own 2+ bars, they're automatically grouped together into a Bar Group. The Bar Group page gives you a centralised view of your entire empire across 9 tabs: My Ladies · Organize · Scouting · Dirty Tricks · Picks (captains) · Girlfriends · Stats · Marketplace · Settings. Every sub-page shares the same tab strip so navigation is consistent. Member-activity indicators and owner-only lock icons are surfaced throughout. You can also drag-and-drop ladies between bars on the Organize tab.
My Ladies Tab
See all your staff across all bars in one view, ladies, cashiers, freelancers, and benched staff grouped by bar. Each staff member shows their performance badge, 7-day heatmap, and streak info.
- Sort controls, Sort all staff By Bar (default), By Name (A-Z flat list), or By Performance (High to Low)
- Transfer, Move any lady or cashier between your bars with one click. Active staff are auto-benched at the destination bar
- Bench / Unbench / Release, Full roster management from the group view without switching bars
Scouting Tab
The full scouting page is available directly under your Bar Group. Use the "Hiring for" dropdown to select which bar you're scouting for, the balance and roster counts update accordingly.
- All the same filters, search, and analytics as the standalone Scouting page
- When hiring via group scouting, you can fund hires from the Group Bank instead of the individual bar's balance
Stats Tab
A dedicated analytics dashboard for your entire empire with Yesterday / Last 7 Days / All Time breakdowns per bar, including sparkline charts.
Settings Tab
- Group Bank, a shared treasury. Deposit from any bar, withdraw to any bar, fund hires on the Scouting tab. Earns +0.1% interest per day on the balance.
- Bulk deposit composer (mobile + desktop), draft a deposit across multiple bars in one form (e.g. "deposit 25% of every bar's balance") and submit them as a single batched transaction.
- 30-day deposits / withdrawals sparkline, aggregates flows across every member of the group so you can eyeball who's funding the pot vs draining it without opening each bar's Bank page. Hidden when the group has no recent movement.
- Group Matchups, your group is matched against other groups for weekly drink battles (combined totals across all your bars).
- Group Standings, season leaderboard for group-vs-group competition. Optionally toggle daily standings on the Profile page (per bar) to also receive yesterday's standings every morning, default OFF, the Monday weekly recap is always on.
- Edit Group, rename, pick a logo.
Boosters Tab (bulk actions across the group)
- Bulk Buy-a-Round, fire Buy a Round across every selected bar in one click.
- Themed-night bulk booking matrix, book the same themed night on multiple bars in one form. Useful for syncing a Bar Crawl across the whole group.
- Bulk chip activation, fire the same chip on every selected bar.
- Birthday Party rule-based bulk, auto-pick a celebrant on every bar by rule (e.g. longest-tenured girl) instead of clicking through each one.
Group Synergy
Multi-bar groups earn a group synergy bonus on every bar's drink sales, shown at the top of the group page.
- +2% per extra bar in the group: 2 bars = +2%, 3 bars = +4%, 4 bars = +6%, 5 bars = +8%
- Capped at +10%, reached at 6+ bars in the group
- Computed off base drink sales (drinks × ฿160), not gross. Stacks alongside team synergy and themed nights in the breakdown.
Multiple Bars
Expanding to a second bar costs ฿700,000 from your active bar's balance, ฿500,000 is the purchase cost and ฿200,000 becomes the new bar's starting balance for hiring staff. Each bar has its own ladies, cashiers, balance, upgrades, and win-loss record. Use the bar switcher in the sidebar (sorted A-Z) to switch. You'll never be matched against your own bars.
Bar Marketplace
You can list your bar for sale on the Upgrades page (minimum ฿500,000). Buyers pay from their active bar's balance. The buyer inherits everything: the bar name, colour scheme, win/loss record, all paid upgrades (beer fridge, sound system, roster expansions, etc.), the lifetime stats (drinks, earnings, age), AND the staff already on roster (ladies and cashiers). Sabotage history is wiped so old vendettas don't follow the venue.
Inherited staff carry zero refund value (they cost the buyer nothing, so releasing them refunds nothing either). If the same lady appears on both the bought bar and another bar the buyer already owns, the duplicate is dropped on the new bar so she only sits on the buyer's older roster.
Marketplace-bought bars start at ฿0. No ฿200,000 starter float, no goodwill, no welcome pack. You hustle up from zero the way a real handover works in Pattaya.
Sole-bar sales are allowed. If you only own one bar you can still list it (and a buyer can still purchase a sole-bar listing). The seller forfeits the proceeds if they have no other bar to receive the cash, which the listing form warns about up front. If you want to start over, use Profile → Reset Account instead.
Errors now surface. If a buy or list fails (insufficient balance on the source bar, another buyer beat you to it, same-IP block, listing already closed), the marketplace flashes a specific message inline instead of silently redirecting.
Group banner: colour, emoji, motto
Group leaders can customise the group's identity from the Settings tab. A coloured stripe, one emoji and a 40-character motto render together on every group-related surface in the app: the Feed group ribbon, the home page when one of your bars is in the group, the bar's public brochure, and the Pattaya Turtle's group writeups.
- Colour: any of the bar-creation palette colours.
- Emoji: a single emoji that becomes the group's shorthand on the leaderboard and in chat.
- Motto: 40 characters. Same em-dash rule as everywhere else in the app.
Group News (Memos)
A dedicated Group News tab on the Bar Group page (URL ?tab=memos). 280-character posts, replies on every post, image uploads. Posts are scoped to the group (other groups can't see them) and signed in the group's voice (chain-owner announcements) rather than per individual bar, so a heads-up about an inbound raid or a captain-pick suggestion lands as a single team-wide note. Use it to coordinate captain picks, plan a group raid, or trash-talk the rest of the league with people who actually have your back.
Group MVP · the weekly internal vote
Each ISO week (Mon 00:00 to Sun 23:59 Thai) every group runs an internal MVP vote. The candidates are your fellow bar-owners. You get one vote per week. On settlement:
- The winner picks up a permanent "Group MVP · Week N" pill on their bar brochure.
- An auto-post lands in Group News naming the winner with a Turtle one-liner.
- Past winners stay listed on the group page so the streak is visible.
Coordinated Group Raids
Raids are group-vs-group sabotage. A leader proposes a raid against a target group; three or more members must pledge before the raid fires. The targeted group can counter-pledge to halve the effect. There's a 24-hour cooldown between raids on the same pair so groups can't grief.
| Raid | Effect on the target group |
|---|---|
| 🧹 Sweep | −4% drinks across every bar in the group for 24h (legacy: this raid still touches the raw drink count, the only modifier in the game that does, flagged for migration to drink-earnings). Counter halves it to −2%. |
| 🚫 Boycott | Random one of the target group's bars takes −8% for 24h. Counter shifts the target to the proposer's choice and halves it. |
| 📰 Soi Smear | Pattaya Turtle prints a satirical headline pinning a fictional scandal on the target group. Pure flavour, no revenue effect; raises the target's notoriety counter by 1. |
| 📑 Tax Audit | Target group's leader pays a one-off ฿100,000 fine to the proposer's group bank. Counter halves to ฿50,000. |
Effects are bar-aggregate shaves only, never per-staff. Pledges cost slush from each pledging member's bar but pay out into the proposer's group bank on a successful raid.
⏰ Daily rhythm
The game runs on Thai time (UTC+7). A full cycle rolls from 09:00 to 09:00. Knowing which phase you're in tells you what's worth doing right now and what to queue up for later.
- π Review last night's report on Finance
- ποΈ Buy upgrades before the night rush
- π§ Scout candidates, 30-day histories
- π Plan which chip you're playing this week
- πΈ Buy & sell ladies at the open venues
- π Swap bench for worked-today roster
- π Claim freelancers (window still open)
- π Lock in tonight's captain
- βοΈ Dirty tricks fully armed
- β Worked-today filter live
- π₯ Watch green dots light up as ladies clock in
- π Follow your matchup tally hourly
The morning cinematic
The first page-load after the 09:00 Thai roll triggers a short morning cinematic: a full-screen card with last night's headline number, the Pattaya Turtle's one-line take on your bar, and (where it landed) a shareable PNG of the headline. Three actions sit underneath:
- Post to feed, drops the headline on the Feed as a quoted card.
- Share image, copies the PNG link or sends it to the system share sheet on mobile.
- Dismiss, marks the cinematic seen for this day so it doesn't replay on a refresh.
Don't want it at all? Open Profile, scroll to the Morning cinematic toggle, switch it off. The headline still lands in your inbox; you just skip the cutscene.
👥 Roster
Your ladies are your team. Every lady earns you revenue every night based on real drink sales. Cashiers keep the register running, without one, your bar earns nothing.
Try it β Manage rosterTeam Size
You start with 10 lady slots and 2 cashier slots. All ladies are active, everyone plays, everyone earns. Each lady card shows a sparkline of her recent performance history so you can spot trends at a glance.
Hiring & Releasing
- Hire: Open slots show a "+" card on the Ladies page. Click to browse available ladies or cashiers and hire them at their current market value.
- Release: 🖥 Desktop: click "Release" on any lady or cashier card. 📱 Mobile: swipe left on the card (or tap …) to reveal Replace / Bench / Release / Train. You get a refund based on how long they've been on your team.
- You need at least 1 cashier for your bar to earn any money.
Expanding your team
Buy upgrades to hold more ladies and cashiers:
- Bar Stools, ฿100,000 each, +1 lady slot per stool (max 5, or 10 with Double Unit)
- Double Unit, ฿500,000, +10 lady slots, +2 cashier slots & +5 more bar stools
- Golden Barstool, ฿2,500,000, +1 lady slot. Late-game (requires Double Unit + 1M lifetime drinks).
That means your team can grow from 10 up to 31 ladies and up to 4 cashiers. Plus, every bar gets 5 freelancer slots for salary-free revenue on top.
Refund Tiers
| Time on Roster | Refund |
|---|---|
| Same day (just hired) | 100% of paid price |
| 1 day | 75% of paid price |
| 2+ days | 50% of paid price |
Anti-exploit: Refunds are calculated against the actual price you paid, not the live market value, otherwise a rising market would let you fire and rehire for a profit. New bars that haven't yet earned 500 lifetime drinks receive a maximum of 25% refund regardless of hire date.
Performance Levels
Individual drink counts are never revealed. Each lady's nightly drinks are bucketed into one of three levels, we'll only ever show the bucket, never the underlying number.
| Level | What it Means |
|---|---|
| High | A strong night, she pulled her weight and then some. |
| Medium | A solid shift, nothing wrong, nothing exceptional. |
| Low | Quiet night, barely any drinks. Could be venue traffic, could be her. |
A no-show day (didn't work at the venue) shows as Off, not a "Low", just no data.
👑 Captain Pick
Each day you can nominate one lady as your Captain. Your captain's drinks count 2× towards your bar's total revenue for that day.
- Pick your captain from the Staff page, look for the gold π Captain tonight panel above the roster
- You can change your captain as many times as you like before the 09:00 Thai rollover
- The captain bonus is applied before venue event modifiers and synergies, so it stacks with everything
- Triple Captain chip turns the 2× into 3× for one night, see Season Chips
Find it: Staff page → Captain picker sits at the top with a rich modal showing each candidate's form, fatigue, loyalty, intro status and 7-day heatmap.
Every "Pick captain" / "Change captain" link in the app, the home countdown, the Compete panel, the Top-10 card, deep-links to /staff#captain and auto-opens the picker modal instead of dumping you on the page with the modal closed. Works on both surfaces.
👑✨ Captain MVP (weekly community vote)
Each ISO week (Mon 00:00 to Sun 23:59 Thai) the league nominates ladies who've been carrying their captains. The community votes. The winner gets a permanent badge on her scouting profile and the bar that last captained her this week gets a small cash thank-you.
Try it → Captain MVP panelHow nominees are sealed
- The daily sim flags every lady who hit a HIGH performance bucket while being captained. Threshold: 5 high-bucket captain-nights in the week so far.
- The list is sealed each Monday at the week roll. 8 to 12 nominees typically make the ballot; the panel shows them in a grid with portrait, venue and a public bucket label (strong / huge / monster). Raw drink counts are never exposed.
Voting
- One vote per player per week, locked once cast. The vote button greys out and the panel shows your pick highlighted.
- Server-side 1-second rate limit + DB primary key on
(week_str, user_id)stops dupes. - The leading nominee is shown live (bar chart of votes), so the race is visible all week.
Settlement at week end
- Winner gets a permanent "MVP · Week N" badge rendered on her scouting profile. Awards stack over a career.
- +฿20,000 bar bonus paid to whichever bar last captained her in the winning week, paid via balance_ledger with an idempotent source so the bonus can't double-fire.
- Past winners stay visible in a small spotlight strip at the bottom of the panel.
🏆 Walk of Fame
The league-wide hall of recognised ladies. A lady joins the Walk once she has been picked as captain for 5 or more matchup wins, counted across every bar that has ever captained her, not per-bar.
Try it → Walk of Fame panelWhat you see on the panel
- Each lady's portrait, name, current venue (links to her venue profile), and career captain-win count.
- Sorted by total wins. Newest entries highlighted.
- A short Pattaya Turtle preamble at the top, in keeping with the in-world voice.
What it does and doesn't do
- Pure status, no prize money. The Walk is a public ledger of who has actually delivered when it mattered.
- Cross-bar, wins from any owner count. If a lady has been on three bars' rosters across her career and has 2 + 2 + 1 captain-wins, she lands on the Walk at 5.
- Matchup wins only, not generic captain nights. The Captain MVP award handles weekly high nights; the Walk handles the matchup record.
💸 Release & Replace Refunds
When you Release or Replace a salaried lady or cashier, you get some of her hire price back. Freelancers cost nothing to hire so there's nothing to refund.
Refund curve
A three-step curve based on how long she's been on your roster:
- Released same day you hired her → 100% (full refund, miss-hire protection)
- Released 1 day after hiring → 75%
- Released 2+ days after hiring → 50%
New bars under 500 lifetime drinks are capped at 25% so brand-new accounts can't cycle-hire to farm refunds.
Related anti-exploit gates
- Shared-IP starter: If you register from an IP that already belongs to another user (household/office/shared network), your first bar starts with ฿100,000 instead of ฿500,000. Keeps genuine sharers in the game without handing out fresh ฿500k to every alt account.
- Marketplace listing: a bar must have earned 2,000 lifetime drinks before it can be listed for sale. Stops freshly-expanded or freshly-bought bars being flipped between accounts.
- Same-IP marketplace block: buyers and sellers whose accounts were registered from the same IP can't transact directly through the marketplace.
Chip-active refund
If Wildcard is active this week, every Release or Replace refunds 100% of hire price. (Wage Strike, the renamed Free Hit, no longer touches refunds, it waives lady wages instead.) See Season Chips for details.
Release vs Replace
Mechanically identical for the outgoing staff, same curve, same chip rule. The only difference is Replace hires a new staff member in the same click, deducting the new hire cost. A Replace ledger entry shows:
- A debit with source
cashier_swap/girl_swapfor the new hire - A credit with source
cashier_swap_refund/girl_swap_refundfor the old staff (at the applicable pct)
Fixed April 2026: Replace previously dropped the refund silently, swap_cashier also failed to record hire_price on the new cashier. Both fixed. If you lost money on a Replace while a chip was active, it's been credited back out-of-band.
🪑 The Bench
Don't want to release a lady or cashier but need the roster slot? Send them to the Bench.
- Benched staff don't count towards your roster limit, freeing up a slot for a new hire
- Benched staff don't earn revenue or count towards synergies while benched
- You can unbench at any time if you have a free roster slot
- Bench slots are limited, you start with 5 and can expand to 10 with Beer Fridge upgrades (฿75,000 each)
- Benched staff still show full performance data so you can track how they're doing at their real venue
Bench Swap
You can atomically swap a benched staff member with an active one, no need to unbench then bench separately. Available from the Staff page, with a 7-day performance heatmap in the swap modal.
Hire straight to bench
Empty bench slots on the Staff page (both Table and Grid views) have Hire Lady and Hire Cashier buttons. Use them to stash a standby without displacing whoever's active. Same bench cap rules apply, shared pool across ladies + cashiers.
🟢 Staff presence
Every staff card across the app carries a small presence dot showing whether the lady or cashier is at her venue right now. The dot is binary in colour, only green or red, with one fill variation inside green for predicted-vs-confirmed.
Dot system
| Dot | Meaning |
|---|---|
| Solid green | Confirmed at venue right now (POS feed says she's clocked in, OR cashier schedule says she's working today). |
| Hollow green ring | Predicted to work today, ≥ 60% likely based on her rolling 30-day attendance. Only ever appears between 09:00 and 13:00 Thai (the morning blind-spot before venues open). A banner at the top of pages with the hollow ring explains the convention. |
| Solid red | Off shift / not working today. Red is always solid, there is no hollow red. |
Cashiers always use solid green: the monthly schedule upload tells the sim exactly who's working, no prediction needed. Only girls show the hollow ring during the blind-spot.
Confirmed / Predicted / Offline filters
Staff and Scouting both surface a three-way pill row: Confirmed, Predicted, Offline. Tap any combination to narrow the list to staff in that state. The pills are sticky in your browser, your last selection is remembered per page.
- Confirmed: solid green, at venue right now.
- Predicted: hollow green ring, ≥ 60% likely (only meaningful 09:00–13:00 Thai).
- Offline: solid red, not working today.
Pages that carry the trio: Staff, Scouting, My Ladies, Organize, the Captains tab, and the bench-swap / hire / captain-pick modals.
Why the predictor exists
Earnings settle at 09:00 Thai and the first venues don't open until 13:00 Thai, so for four hours every morning there's no live presence data. The arrival predictor uses each girl's last 30 days of attendance to produce a probability that she'll clock in today, and surfaces it as a hollow ring on her dot so you can plan today's roster without flying blind. The estimate is replaced with a real solid-green dot the moment her venue opens and POS confirms she's there.
⚡ Optimize Roster
One-click rebalancing for your roster. Two flavours, depending on which page you click it from.
Single-bar Optimize (Staff page)
The ⚡ Optimize roster button on the Staff page does a within-bar swap: any active staff who didn't work today trade places with bench staff who did. Ladies swap with ladies, cashiers with cashiers. No transfers across bars, no releases, just a clean rotation so tomorrow's report is built from people who actually showed up.
- Skips freelancers (they keep their slot regardless)
- Streaks reset on swapped staff (same as a manual bench swap)
- Idempotent, running it twice in a row is a no-op once the roster is already optimal
Portfolio Optimize (My Ladies / Organize)
The ⚡ Optimize roster button on the My Ladies tab and on the Organize tab is the bigger hammer, it rebalances every bar in your portfolio in priority order:
- Concentrates the best squad left-to-right (or top-to-bottom on My Ladies). The first column / topmost bar gets the highest-synergy lineup, the next bar gets the second-best, and the rightmost / bottom bar collects leftovers.
- Pulls venue-mates across bars, if you have 12 ladies from one venue spread across 3 bars, they all consolidate on whichever bar lands first in the priority order, unlocking the synergy bonus.
- Cashiers follow the ladies, once each bar's dominant lady-venue is set, cashiers from that same venue are preferred for that bar (so a Cat Flaps-heavy bar gets Cat Flaps cashiers).
- Bench offlines, promote onlines, staff who didn't work today drop to bench; bench staff who did get promoted into the active slots they freed up.
- Redistributes present freelancers, freelancers currently at venue are spread across the bars you've picked instead of being stuck at their original bar. Locked freelancers stay pinned to where you locked them.
- Releases offline freelancers, freelancers carry no salary cost, so any who didn't work today are dropped to free up the slot for tonight's claims.
- Streaks reset on every transferred staff member (matches the existing swap behaviour).
Priority order on the Organize tab comes from the column dropdowns left-to-right; on the My Ladies tab it's whatever order the bar sections render top-to-bottom. The whole rebuild is one transaction, if anything fails, nothing changes.
Pick & Fill controls
On Organize the bar columns now show a tick-order priority badge next to each picked bar (1, 2, 3, …) so you can see the order Optimize will use them. Re-tick a bar to move it to the end of the queue.
An 💡 Only use currently working toggle sits at the top of the Pick chooser. When on, Optimize only considers staff whose presence dot is currently green (Confirmed or Predicted) and ignores everyone Offline. Useful when you want tomorrow's rosters built from people who'll actually show up rather than a clever theoretical lineup full of last-week's staff.
🆓 Freelancers
Freelancers are ladies who aren't currently on any team and have no salary. Running low on cash? They're your lifeline, free to hire, and the poorer your bar, the more drinks they deliver.
How it works
- Instant hire. Tap + Hire Freelancer on the Staff page (or from the bar-group page). She joins your roster immediately, no waiver queue, no 09:00 Thai wait, no contested claims.
- Each bar has 5 freelancer slots, separate from your salaried roster.
- Freelancers earn revenue like any other lady, but you keep 100%, no wage at all.
- One per group. If you own multiple bars in the same group, a freelancer can only be on one of them at a time, same exclusivity rule as salaried hires.
Bankroll-tiered drinks boost
Instead of a waiver-wire contest, the advantage for poorer bars is now baked into the simulation: every freelancer's nightly drinks are multiplied by a tier based on your bar's current balance.
| Your balance | Freelancer drinks multiplier |
|---|---|
| Under ฿1M | × 2.0 |
| Under ฿10M | × 1.5 |
| Under ฿50M | × 1.2 |
| ฿50M and above | × 1.0 (no bonus) |
The multiplier is checked per day against your live balance, so the boost scales down naturally as you grow. It stacks with Captain and Triple Captain: a captained freelancer on a sub-฿1M bar is 2.0 × 2 = 4× drinks (6× with Triple Captain).
The old waiver-claim system (daily claim cap, 09:00 Thai processor, poorest-bar-first queue, pending claims) was retired once the bankroll multiplier gave poorer bars a fairer edge without scarcity contests.
😴 Fatigue
Fatigue tags reflect how many nights in a row a staff member has worked at their real venue, they're read from the same live POS data that drives your earnings. They are informational only: there is no output penalty or simulation modifier attached to any fatigue state. Tired and Burnt Out staff earn the same as Fresh staff.
Because fatigue is based on real-world attendance, benching a staff member does not reset or reduce their fatigue, if they're still working at the venue IRL the counter keeps climbing. Use the tags as a heads-up about how hard someone is working in the real world, not as a cue to bench them for a performance boost.
📈 Form
"Form" is how a lady is doing right now versus her longer-term baseline. Look for the ▲ Trending up / ▼ Fading indicators in Venue Scouting, top 5 girls whose 7-day average is ±15% off their 30-day average. Each lady card also carries a sparkline of recent nights so you can eyeball form at a glance.
🏷 Tag glossary
Every lady on your roster, in scouting results, or on a captain pick shortlist picks up small colour-coded badges. Each one summarises a specific fact about her so you don't have to dig into her profile. Here's what they all mean.
Fatigue tags
Driven by how many consecutive nights the staff member has worked at their real venue (IRL POS data). No output penalty applies at any level, these are informational only.
| Tag | Trigger | Meaning |
|---|---|---|
| Fresh | 0 consecutive days worked IRL | Had a night off at the venue recently. |
| OK | 1–10 nights in a row IRL | Working regularly. No impact on earnings. |
| Tired | 11–29 nights in a row IRL | Working a long stretch IRL. No impact on earnings. |
| Burnt out | 30+ nights in a row IRL | On a very long run at the venue. No impact on earnings. Benching does not reset this, it resets only when they take a night off IRL. |
Form tags
Driven by her drink-level mix across the last 7 nights.
| Tag | Trigger | Meaning |
|---|---|---|
| 🔥 Hot | 3+ "High" drink nights in the last 7 | On a tear, captain / matchup material right now. |
| ⚖ Steady | 3+ "Medium" nights with at most 1 "Low" | Reliable backbone of the roster. |
| ↕ Mixed | At least one "High" and one "Low" in the last 7 | Boom-or-bust, fine depth, risky for captain. |
| 🧊 Cold | 4+ "Low" / no-show nights and zero "High" | Struggling. Bench or consider dropping. |
| 🆕 New | Fewer than 2 worked shifts in the last 7 | Not enough data yet, give her a few nights before judging. |
Roster-state tags
| Tag | Trigger | Meaning |
|---|---|---|
| ❤ +X% | 1% per full week since hired_at, capped at +20% |
Loyalty bonus, flat drink-output buff that builds over time. Selling resets it. |
| 🏝 until {date} | Week Off training active | She's resting, 0 drinks until the date shown, then returns with +3 loyalty weeks. Cost ฿10,000. |
| 🎓 training until {date} | Train in House active (฿0 upfront, 10% drink tax for 7 days) | Stays on roster earning normally; bar takes a 10% cut of her drink revenue. Returns with +2 loyalty weeks. |
| 🔗 {venue} | Bar Intro Night active (฿20,000 training, 7 days) | Adds +1 to the introduced venue's synergy count (one intro per target venue is counted). |
| 🎖 CAPT | She's today's captain pick for this bar | Earns a captain bonus if she performs. Set via Captain Pick. |
| 🔥 ΓN (streak) | 3+ consecutive "High" nights | Streak bonus, +5% of base drink sales (drinks × ฿160) per night beyond the 3rd, stacks across ladies, capped at +50%. |
Freelancer odds labels
Shown on the scouting freelancer list, a quick take on how likely she is to put in a good night if you book her.
| Tag | Trigger | Meaning |
|---|---|---|
| 🔥 Hot pick | >100 total drinks in the last 30 days | Top freelancer, expect strong output, book early. |
| 👍 Good odds | 50–100 drinks in the last 30 days | Solid bet for the night. |
| ✨ Easy win | <50 drinks in the last 30 days | Cheap, low-risk slot-filler. |
❤ Staff Loyalty
Every full week a salaried lady stays on your roster grants her +1% drink output, capped at +20% (≈20 weeks to reach the cap).
- Loyalty is per bar, selling, firing, OR transferring her to another bar in your group resets the clock for the destination. Creates a real hold-vs-flip decision and stops you from laundering loyalty across your empire.
- The refund-tier clock is anchored separately to her original hire date, so a transfer doesn't accidentally reset your sell-back percentage.
- Freelancers don't build loyalty (they're one-night gigs).
- Benching keeps loyalty intact, she's still on this bar, just on the bench. The ♥ pip shows on benched rows so you can see what you'd lose by transferring.
- Week Off and Train in House training both gift additional loyalty weeks (+3 and +2 respectively).
Staff Training
Three paid training actions for any salaried lady or cashier via the 🎓 Train button on the roster page. Week Off and Train in House are mutually exclusive, you can't stack both on the same staff member at once.
| Action | Cost | Effect | Best for |
|---|---|---|---|
| 🏝 Week Off | ฿10,000 | She sits out 7 days (0 drinks) and returns with +3 loyalty weeks credit. The 7 days off naturally clear her fatigue streak. | Burnt-out staff, the time off is a fatigue cure with the loyalty gift on top. |
| 🎓 Train in House | ฿0 upfront + 10% drink-revenue tax for 7d |
She stays on the active roster earning normally for 7 days. The bar takes a 10% cut of her drink revenue as the training fee (shows as a separate line on Earnings). Returns with +2 loyalty weeks credit. | Healthy earners you don't want off the floor, e.g. before a matchup night or while she's on a streak. Net positive ROI after ≈5–6 weeks for an average girl. |
| 🔗 Bar Intro Night | ฿20,000 | For 7 days she contributes +1 staff count toward an introduced venue's synergy threshold (in addition to her home venue). One intro per (bar, target venue) is counted, intro-ing the whole team to the same venue won't stack. | Pushing a near-miss venue (e.g. 6/7) over a synergy tier without paying market value for a real hire. |
Find it: Green ❤ +X% badge next to every lady on the overview, roster, bar group, scouting, hire swap modal, and bench rows.
🎓 In-Training filter chip
A dedicated 🎓 Training filter chip sits at the head of the roster filter row on both mobile and desktop. Tap it to narrow the list to staff currently in any of the three training states (Week Off, Train in House, Bar Intro Night active). When nobody on your roster is training the chip greys out so you know there's nothing to filter to.
💰 Team Value
Each lady and cashier has a dynamic market value that recalculates daily at 9am Thai time using three weighted inputs:
- 30-day avg drinks (40%), Raw performance over the last month. The core signal.
- Roster count (35%), How many managers have her on their team. High demand = higher price.
- Consistency (25%), Days worked out of the last 30. Reliable staff are worth more.
Values range from a floor of ฿1,000 to a cap of ฿500,000. Popular, high-performing, reliable ladies get expensive, but you might find undervalued gems. Your team value is the sum of all your staff at current market prices, a useful measure of the asset base you've built up.
- Look for the ↑ and ↓ arrows to spot price trends
🔥 Streaks
When a lady hits "High" performance for 3+ nights in a row, she goes on a hot streak. Streaks earn you bonus revenue on top of your normal earnings.
- Streaks activate at 3 consecutive "High" nights
- Each qualifying girl adds +5% of base drink sales (drinks × ฿160) per streak night beyond the threshold, not gross revenue
- A 3-night streak = +5%, a 5-night streak = +15%, a 7-night streak = +25%
- Multiple girls can streak at the same time, bonuses stack
- Total streak bonus is capped at +50%
- One bad night (Medium or Low) resets that lady's streak to zero
Ladies on streaks show a 🔥 badge with their streak count next to their name on the Ladies and Dashboard pages.
🔍 Scouting
The Scouting page is your analytics hub for evaluating ladies before you hire them. Every lady across all venues has a detailed profile showing:
Try it β Scout a lady- 30-Day Performance Chart, A bar chart showing daily performance levels over the last 30 days
- Attendance Heatmap, Calendar-style grid showing which days she worked
- Day-of-Week Patterns, See which days she's most reliable
- Consistency %, How often she shows up for work
- Average Level, Her typical performance tier
- Days Worked, Total days out of the last 30
Filters
- My Bar / Free Agents, Venue, Avg Level, Days Worked, and Sort controls.
- 🖥 Desktop shows them inline as filter pill rows above the list. 📱 Mobile consolidates them into a Filters button that opens a bottom sheet with a live "N results" counter, easier to spin through many filter combos on a small screen.
Venue Scouting Trees
Pay ฿25,000 per venue to unlock deep intel, Football-Manager style. Unlocked venues reveal:
- Best day-of-week across the last 30 days
- ▲ Trending up, top 5 girls whose 7-day avg is ≥15% above their 30-day avg
- ▼ Fading, top 5 girls whose 7-day avg is ≥15% below
Duration: unlocks are permanent, pay once per venue and the intel stays available to your bar for the life of the account.
New on Scouting
- Server-persisted shortlist, survives reloads and follows you across devices.
- Compare Selected modal, side-by-side candidates with best-in-row highlighting. 🖥 Desktop: tick the Compare box on any card; a floating bar appears once you have 2+ selected (up to 3). 📱 Mobile: tap the + on a card to add it (up to 4), then tap Compare in the sticky bottom bar to open the stats matrix.
- Saved filter views, save your favourite filter combos.
- Hottest-venue banner, which venue is trending hottest right now.
- Fit-score sort, a computed "how well does she fit your roster" score, the default sort.
- "vs worst: better than [name]" badges on each lady, for a quick floor comparison with your current roster.
- Confirmed / Predicted / Offline presence pill trio on every list, mirrors the staff page. See Staff presence. The trio acts as a filter: tap a pill to hide rows in that bucket. Defaults to Confirmed + Predicted on (Offline off) at every hour, so the list always starts with people likely to be at venue tonight. An empty-state card appears if all rows are hidden by your pill choices.
- Rostered 📍 badge on staff already placed at one of your other bars (or at this bar). Previously these rows were hidden from hire / freelancer / cashier pickers; now they show with a ROSTERED label and the π chip so you can see where she already is. Not-rostered candidates sort first so new hires bubble up. Rostered rows also opt out of the cert-pill filter so they always remain visible regardless of presence.
- Time-based presence, the dot honours the morning blind-spot (hollow ring 09:00–13:00 Thai for predicted arrivals) instead of going grey.
- Roster-status header above the type tabs, at-a-glance summary of how many candidates match your active filters before you scroll the list.
- Expand all / Collapse all pill on the Views row, flips the per-card 30-day history block on every card on the current page in one click. Choice is remembered per browser. Accounts older than 3 days default to expanded; brand-new accounts get the tighter collapsed view to avoid a wall of charts on day 1.
Staff profile pages
Every lady, freelancer and cashier has her own profile at /scouting/<type>/<venue-slug>_<name-slug>. Any staff name across the app is a link to her profile, roster rows, grid tiles, Synergy Recommendations, feed posts, earnings report, group pages. Hover over a name to see the dotted underline.
Each profile shows:
- Portrait + name + venue + role tag
- Status pills: on your roster / benched / group conflict / can't afford
- Consistency %, days worked, avg & best level, market value
- 30-day heatmap with legend
- Day-of-week pattern grid
- Role-appropriate Hire buttons (Lineup, Bench, Cashier slot, Claim free agent), only shown when the action is valid for your capacity and balance
- A β Back button that returns to wherever you came from
After a successful hire from a profile, you're sent back to the page you came from so you don't lose your place.
📋 Shortlist
On the Scouting page you can shortlist any lady you're considering hiring. Click the 📋 Shortlist button on any card to save her; click again to remove. Shortlisted staff show up in a dedicated saved list so you can:
- Compare candidates side-by-side via the Compare Selected modal.
- Watch their form over a few days before committing.
- Pounce when their market value dips.
The shortlist is per bar, server-persisted, and survives reloads and device switches. There's no slot limit; it's purely a watchlist with no commitment and no spend. Find it at the top of the Scouting page (filter chips include a Shortlist toggle to show only saved candidates).
Shortlist counts can subtly influence the market-value display on Scouting (popular candidates show as higher-demand) but your specific picks are never shown to other players. If you want a cross-bar bookmark instead of a per-bar one, see Girlfriends.
🔄 Returners
League-wide situational awareness for salaried ladies who are likely to be on shift today. The page is at /staff/returners and lives as a sub-tab off the Staff section.
- 🆕 Just started today, top-of-page section listing ladies who have just appeared in the upstream POS roster within the last 10 minutes. The staff poller checks every 10 minutes for brand-new hires upstream, so a new face at a real venue lands here within ten minutes of her first shift starting. Pure first-mover territory.
- Predicted, ladies the arrival predictor thinks will clock in today based on her 30-day rhythm, but who haven't shown up yet. Card sits with a hollow green dot.
- Confirmed, she's already clocked in at her venue today. Solid green dot.
- Live polling, the page auto-updates the dots from hollow to solid as ladies arrive through the day, no reload needed.
- Hire button, every card has a quick Hire action. If your active roster is full, the lady is hired to the bench so you don't lose her to a rival while you free a slot.
- Venue filter, narrow to one Pattaya venue if you're hunting a specific roster.
Returners is the fastest way to pounce on a great lady the moment she's working again (or starting for the first time), without trawling Scouting. Same privacy rules as everywhere else, no per-lady drink numbers shown.
🧾 Total Cost of Ownership
Market value is the hire price, but what actually matters is the total cost of ownership (TCO) over a week or season: hire cost + wages paid + opportunity cost vs a cheaper alternative, minus refund you'd get on release.
- Ladies take 60% of their drink earnings as wages, high producers keep costing you more the better they do.
- Refunds taper (100% → 75% → 50%) so impulse hires get expensive fast.
- Freelancers have zero TCO beyond the roster slot, they're pure upside.
The Finance page breaks wages out per lady per night so you can audit TCO retrospectively.
💰 Revenue, Wages & Earnings
Every day, your team's real-life drink sales are tallied up. Your daily income is calculated in four steps:
Step 1: Gross Revenue
Each drink your team sells earns ฿160 at base rate. Gross revenue is base drink sales plus every active modifier from the breakdown, venue event, team synergy, group synergy, themed nights, ring-the-bell boost, weekly event, prestige, captain ×2 / Triple Captain ×3, streak bonus, seasonal theme, minus any active dirty tricks (Police, Bad Review) and bankroll tax.
Every percentage modifier (synergy, themed night, bell, police, etc.) is computed as a percentage of base drink sales (drinks × ฿160), not of the running total, so the labelled percentages stay honest and bonuses don't compound into 2×+ cascades.
Step 2: Deduct Wages
- Ladies: Take 60% of their individual drink earnings. If Bad Review is active, wages are computed at the reduced ฿120 rate.
- Cashiers: Earn ฿500 per shift just for showing up, plus ฿80 per drink (50% of each ฿160). A rostered cashier with zero drinks still costs ฿500. Per drink the bar keeps ฿80.
- Freelancers: Cost nothing, pure profit
- Wage Strike chip: waives all lady + cashier wages for the active week.
Step 3: Streak Bonus
Streak bonus is computed off base drink sales (drinks × ฿160), not gross. Already factored into Gross Revenue above.
Step 4: Final Daily Income
This amount is added to your bar's balance at the end of each day. If you have no cashier, your bar earns nothing that day.
Earnings History
The Finance page gives you a full breakdown of your bar's daily financial performance. Select any date to see:
- Total drinks sold and gross revenue
- Lady wages, cashier wages, and net profit
- Venue event bonuses and active synergies
- Streak bonuses
- Individual performance levels for each team member
👔 Manager upkeep (6+ bars)
Past your first 5 bars, every additional bar pays ฿5,000/day off its daily gross as a manager / district-licensing line. The 5 oldest bars on your account are free, only bar 6 onwards pays. Renders as a 👔 Manager upkeep row on the daily report. See Upgrades.
Bankroll tax (over ฿20M)
To stop rich bars from snowballing indefinitely, a soft bankroll tax kicks in once a bar's balance exceeds ฿20,000,000. It taxes only your daily gross earnings, never dips into your existing balance.
- +1% tax on gross for every ฿10M your balance is above the threshold
- Capped at −50% of daily gross, no matter how much you're hoarding
- Spend, transfer out, or reinvest and the tax drops back down next day
It's deliberately soft, you keep earning and winning, you just don't compound infinitely past the cap.
What's on the Earnings page
- Lifetime line chart, cumulative earnings across the life of the bar.
- Week / Month / Year rollups in a single switcher.
- Biggest swing factor callout, the modifier that moved your number most on a given night.
- Loss-narrative helper, on losing nights, a plain-English explanation of what dragged it down.
- Share to Feed, post a rich embed of a big night.
🏦 Bank
If you own multiple bars, you can transfer funds between them using the Bank.
- Open the Bank page and click + New Transfer
- Select the destination bar (must be another bar you own)
- Enter the amount, funds are deducted from your active bar and credited to the destination bar instantly
- All transfers are logged so you can see your sent and received history
What's new on Bank
- 30-day cashflow chart and a category breakdown (wages, hires, sabotage, upgrades, etc.).
- Group bank interest, funds sitting in the group bank now earn +0.1% per day.
- Upcoming bills forecast with per-lady wage rows, so you can see what's going out tomorrow.
- Quick-transfer presets, 10% / 25% / 50% / all.
📱 Bill Scan (PromptPay QR)
Scan the PromptPay QR on a real-world bar bill with your phone's camera and your in-game balance is credited at 10× the bill amount. So a ฿1,000 bill drops ฿10,000 into your bar. The QR's merchant phone number is the key, we match it against a whitelist of supported venues and credit the right bar automatically.
Supported venues
All 13 real venues are wired up. The PromptPay phone slot on each venue's QR is a deliberate 9-bit binary string (every digit is a 0 or a 1), so the recipient number can't collide with a real Thai mobile number and a misscan can't accidentally pay a stranger.
- 0066 0000 00001 → Maggie's Resort
- 0066 0000 00010 → Maggie's Darkside
- 0066 0000 00011 → Maggie May's
- 0066 0000 00100 → Maggie's Agogo
- 0066 0000 00101 → Maggie's Beer Bar
- 0066 0000 00110 → Maggie's Jomtien
- 0066 0000 00111 → Bradley's
- 0066 0000 01000 → Brasshouse
- 0066 0000 01001 → Catflaps
- 0066 0000 01010 → Camel Toe
- 0066 0000 01011 → Club Fate
- 0066 0000 01100 → Free Willy
- 0066 0000 01101 → Throbin Wood
If you scan an unknown phone number the scan is logged but no balance is credited, ping an admin if your venue should be on the list.
How the matching works
- Your phone decodes the EMV QR and extracts the merchant phone (e.g.
0066222222222). - The app looks up that phone in the venue map and queries the POS API for today's closed bills at that venue.
- The scanned bill amount and time are matched against the POS bills list to anti-fraud check, then credited to your active bar.
Privacy: Only the phone number, amount and a hashed bill reference leave your device. The POS data is already on our server, the scan just tells us which bar to credit.
⬆ Upgrades
Spend your hard-earned baht to improve your bar:
| Upgrade | Cost | Effect | Max |
|---|---|---|---|
| 🪑 Bar Stools | ฿100,000 | +1 lady slot per stool | 5 (10 with Double Unit) |
| 🏗 Double Unit | ฿500,000 | +10 lady slots, +2 cashiers & +5 more bar stools | 1 |
| 🧊 Beer Fridge | ฿75,000 | +1 bench slot per fridge | 5 |
| 🃏 Extra Trick Slot | ฿150,000 | +1 dirty trick per week | 5 |
| 🎱 Pool Table | ฿10,000 | Places a pool table in your 3D bar interior. Wins pay ฿3,000. Requires Double Unit. | 1 |
| 🎲 Dice Cup | ฿10,000 | A dice glass on the bar, customers challenge the ladies to a game of Shake (1-6 dice). | 1 |
| 🔊 Sound System | ฿10,000 | Wall-mounted speakers, 10 genre options. Cosmetic. | 1 |
| 📋 Hype Board | ฿10,000 | A portrait promo board on your side wall, upload your own poster to advertise events or happy hours. Cosmetic. | 1 |
| 🛵 Soi Scrambler (transport) | ฿80,000 | A scooter parked outside your bar. Walk up, press E, ride the world at 3× walking speed. | 1 |
| 🏍 Sukhumvit Superbike (transport) | ฿350,000 | Trade up from the scooter to a sport bike, 5× walking speed. Requires Soi Scrambler. | 1 |
| 🦙 Rideable Moo Deng (transport) | ฿500,000 | A chunky pink pygmy hippo, saddled and parked outside your bar. 3× walking speed (same as the Scrambler, the joy is in the model not the speed). Requires Sukhumvit Superbike. | 1 |
| 🪑✨ Golden Barstool | ฿2,500,000 | +1 lady slot. Endgame upgrade, gives you that one extra seat to round out a venue cluster (e.g. 5× Full House). Requires Double Unit and 1M lifetime drinks. | 1 |
| 💃 Go-Go Dancing Poles | ฿700,000 | Brass poles around the bar floor. +1% drink revenue per pole, doubled if your Vibe is Nightclub or Dive Bar. | 2 |
| 👑 VIP Curtained Area | ฿1,500,000 | Roped-off booth with a curtain rig. +5% drink revenue, flat (vibe-agnostic). | 1 |
| ⚖ Lawyer on Retainer | ฿1,200,000 | Defensive. 50% chance to halve incoming dirty trick damage (Police, Bad Review). Inbox toast fires when the lawyer earns his fee. | 1 |
| 🪙 Tea Money | ฿1,500,000 | Defensive. 15% chance an incoming dirty trick reflects on the attacker, they take their own hit. Dual notifications fire (you win, they lose). | 1 |
| 🍺 Beer Card | ฿5,000,000 | Real-life beer card. Pick up at one of our Pattaya bars; arrange on Discord. | 1 per account |
| 👕 Bar T-Shirt | ฿7,500,000 | Embroidered tee with your bar's logo on the chest and motto on the back. Pickup at one of our Pattaya bars, design + size arranged on Discord. | 1 per account |
| 🍺✨ Engraved Pint Glass | ฿10,000,000 | Full-size pint glass with handle, your bar name engraved. Kept behind the bar at the bar of your choice, or take it home. Arrange on Discord. | 1 per account |
🛵 Transport: picking which vehicle spawns outside your bar
Once you own two or more transport upgrades (Soi Scrambler, Sukhumvit Superbike, Rideable Moo Deng), a chip-row picker appears on the Upgrades page. Tap any chip to set that vehicle as your bar's active ride. The picker writes to a per-bar setting and the 3D world re-renders so the chosen model is the one parked outside your bar; the others stay in storage.
- One active ride per bar, switch any time, no cooldown.
- The vehicle still costs what it costs. The picker doesn't refund you for the others, it just controls which model shows up in the world.
- Speed is the same on the Scrambler and Moo Deng (3×). The Superbike is the speed pick (5×). Moo Deng is the flex pick.
👔 Manager Upkeep (recurring cost)
Past your first 5 bars, every additional bar you own pays ฿5,000/day in operating costs (manager salary, district licensing) deducted from that bar's daily gross. The 5 oldest bars under your account are free, so you only start paying upkeep on bar 6 onwards. Renders on the daily report as a 👔 Manager upkeep line. A soft cap on infinite empire-building, adding a 20th bar isn't pure upside.
🌟 Whale cosmetics
Two late-game money sinks visible on the leaderboard, pure status, no power.
- Bar Motto (฿10M), a 40-char free-text tagline for your bar. First purchase charges; edits are free after that. Shows on your brochure and Bar T-Shirt back-print.
- Founder Title (฿20M), a preset prestige pill rendered next to your bar name: Founder / Pioneer / Veteran / Magnate / Pillar / Legend. Pick one.
Upgrades page refresh
- Upgrades are now categorised: Capacity · Combat · Cosmetic · Real-world.
- ROI is calibrated to your actual 14-day earnings, not a generic average.
- ⭐ Best value now, a recommended card highlights the upgrade with the fastest payback for your bar right now.
- Bar Completion tier, hits "Legendary" at 80%+ completion.
- Danger Zone is folded away by default (reset, retire, sell, delete) so you don't click it by accident.
- Bar Customisation card, rename, recolour, change logo from one place.
🏁 Bar Completion
"Bar completion" is how built-out your venue is vs its maximum configuration. A fully completed bar has:
- Double Unit purchased (+10 lady slots, +2 cashiers)
- All 10 Bar Stools + the late-game Golden Barstool (max lady capacity 31)
- All 5 Beer Fridges (bench cap 10)
- All 5 Extra Trick Slots (8 tricks/week)
- Pool Table + Sound System + Hype Board + Dice Cup installed in 3D
- A full salaried roster (31 ladies, 4 cashiers) + 5 freelancers
The Upgrades page shows your completion progress. Completion isn't just vanity, bigger roster caps unlock higher synergy tiers and more drink volume per week.
👑 Prestige & Retirement
Retire a bar to gain a lifetime account-wide drink earnings bonus. A good way to reset a stagnant empire for compounding meta-progression.
- Wipes the retired bar's balance, roster, chips, venue scouts, and matchup history.
- Adds +2% drink earnings to all your current AND future bars, for the lifetime of the account. The bonus shows up as a separate "👑 Prestige bonus" line on the Earnings breakdown and never decays.
- Stackable up to prestige level 5 (max +10% drink earnings, locked in for good).
- Raw drink counts and per-staff wages are not affected, the bonus is paid out as a flat % of gross drink revenue on top. Leaderboards (which rank by raw drinks) and the privacy-safe staff performance buckets stay clean.
- Requires owning at least 2 bars, you can't retire your only one.
- Each level unlocks a cosmetic facade tier (standard → bronze → silver → gold → neon → fireworks) for your bars in the 3D world.
Find it: Upgrades page → purple "👑 Prestige" panel with "Retire this bar" button. The button now shows the +% account gain and your new account total directly, so there's no guesswork before you commit.
🚫 Retire Criteria (Anti-exploit)
Retirement used to be a one-click reset button, tempting to abuse. Now a bar must clear all five criteria before you can retire it:
- You own ≥2 bars (you can't retire your only one).
- The bar is ≥14 days old.
- It has earned ≥5,000 lifetime drinks.
- It has banked ≥฿500,000 lifetime net earnings.
- It owns ≥2 upgrades.
The Upgrades page shows a live checklist with a per-criterion progress bar so you can see at a glance how close the bar is to eligibility.
🧾 Balance Ledger
Every change to your bar's balance, daily revenue, hires, sabotage costs, chip payouts, transfers, refunds, even the rare admin compensation grant, writes a row to a central ledger with the source, delta, and resulting balance. Nothing moves silently.
If a number on Earnings or Bank looks wrong, post in the Discord and we'll trace it through the ledger. The ledger is append-only and never edited after the fact, so it's the source of truth for where every baht went.
⚔ Head-to-Head Matchups
Every week during a season, your bar is matched against another bar for a head-to-head drink battle.
- The bar whose team sells more total drinks that week wins
- Wins and losses are tracked on your record
- You'll never be matched against your own bars
- If there's an odd number of bars, one gets a bye week, counts as a free win
Check the Matchup page to see your current opponent, live drink totals, and match history.
What's new on Matchup
- Momentum chart, a running delta of drinks traded between you and your opponent through the week.
- Predicted finish with variance band, a range, not just a point estimate.
- Daily contribution split, how each bar's total drinks broke down per day of the week (bar-level aggregate, no per-lady numbers).
- Inline chip activation is gone from this page (chips now live on Boosters).
Rookie AI Opponent & Rookie Bonus
Brand new players used to get stomped by tycoons on week one. Now, your first season matchup is automatically scheduled against "Rookie's Place", an AI-owned bar, tagged [AI] in the league table. Easy confidence-building win.
On top of that, any bar under 14 days old gets a 1.5× multiplier on matchup win bonuses, and the same 1.5× applies to playoff wins when you're either a rookie bar or facing a declared rival.
📆 Regular Season
- Seasons run for several weeks with weekly matchups
- All bars with complete teams (10+ ladies + cashier) are automatically enrolled
- Your win-loss record determines your playoff seed
- Tie-breaker is total drinks scored across the season
- 3 Double Gameweeks per season, pick one day each to have your drinks count twice
Check the Season page for current standings and seeds.
Extras on the Season page
- My Journey, a rank-over-time chart showing your trajectory week by week.
- Playoff & relegation zones, shaded bands on the standings table.
- Season archive selector, jump back to any past season's final table.
- Weekly awards rollup, Bar of the Week, Sniper (biggest upset), Fortress (best defence), Biggest Mover. Scroll to see past weeks.
🏆 Playoffs
When the regular-season schedule (e.g. 4 weeks) finishes and every matchup is resolved, the league automatically rolls into playoffs. Here's how the back end of the season actually works:
Seeding
- Top 4 bars by record are seeded #1–#4. Tiebreaker is cumulative drinks across the regular season, if four bars all finish 4–0, whoever sold the most drinks across those weeks gets seed #1.
- Every bar outside the top 4 is flagged eliminated, they keep playing for daily revenue and prestige but stop appearing in the bracket.
The Bracket
- Semi-finals (2 days): Seed 1 vs Seed 4, Seed 2 vs Seed 3. Whichever bar sells more drinks across the two days wins.
- Final (1 day): The two semi-final winners face off. Same format, a single day of head-to-head drinks, highest total wins.
- Playoff wins pay a base bonus per round, 1.5× if you're a rookie bar (under 14 days) or facing a declared rival.
Post-season is intentionally compressed: a 14-day regular season wraps inside roughly 17 days end-to-end (vs the older 28-day shape with full week-long playoff rounds). Keeps the run-in tight and gets the next season started faster.
Champion
- The bar that wins the final is crowned Season Champion, gets a ฿500,000 bonus, a Discord milestone post, and any champion-tier achievements.
- The season is marked inactive once the champion is crowned. The next season is created manually by an admin, there's no automatic rollover. New seasons enrol every bar with a complete roster (10+ ladies and 1+ cashier).
Playoff rounds are shown with special badges on the Matchup and Season pages.
🏆 Bar of the Year
Once the season's playoff bracket settles, the league rolls into a final ceremony page that hands out seven category awards across every active bar. Total prize pool is ฿325,000, paid into bar balances through the ledger. Each category winner picks up a permanent Hall of Bars pill rendered on their public bar brochure forever.
Try it → The latest ceremonyThe seven categories
| Award | Criterion | Bonus |
|---|---|---|
| 🏆 Drink Lord | Highest lifetime drinks sold this season. | ฿75,000 |
| 👑 Captain Whisperer | Most matchup wins where the captain hit a HIGH bucket. | ฿50,000 |
| 🔥 Phoenix | Biggest recovery: lowest mid-season rank to highest end-season rank. | ฿50,000 |
| 🐢 Soi Voice | Most up-voted Letters to the Editor across the season. | ฿35,000 |
| 🌟 Rookie of the Year | Best result by a bar created <30 days before season start. | ฿50,000 |
| 🎉 Bar Name MVP | Most votes on the Pattaya Turtle Hall of Fame name ballot during the season. | ฿25,000 |
| 💥 Soi Stirrer | Most successful Dirty Tricks landed (after counters), and most rivalry wins. | ฿40,000 |
The ceremony page
- Confetti animation on landing the first time. A toggle disables it for future visits.
- Each winner gets a Pattaya Turtle one-liner about their win.
- The page is permanent and shareable at
/awards/<season_id>so each year's hall is preserved. - The Discord webhook (if a group has one configured) auto-posts the full results once on settlement.
Per-staff drink counts are not exposed in any category, including Drink Lord (bar-level totals only). Categories that depend on captain performance use bucket-level qualifiers, not raw numbers.
📊 Leaderboard
The Leaderboard ranks all bars across five different views:
- Daily: Yesterday's top performers by total drinks sold
- Weekly: Total drinks sold over the last 7 days (rolling window)
- Revenue: Total gross revenue earned across all days
- Earnings: Total net earnings (revenue minus wages), shows who's actually profitable
- Avg/Day: Average revenue per day, evens the playing field between new and old bars
The top 3 bars on each leaderboard get gold, silver, and bronze medals.
Beyond the main drinks/revenue tables there are three extra tabs:
- Groups: Bar groups ranked by your choice of seven sort options (see below). Needs 2+ bars in a group to appear.
- Achievements: Bars ranked by how many achievements they've unlocked.
- 😂 Funniest: Every bar name in the league rated 0–100 for humour by the Pattaya Turtle's resident comic-AI, with a one-line rationale. Pure status, no cash prize, but the top of the table is a who's-who of the league's best bar names. Refreshed daily.
Group leaderboard sort options
Mobile gets a chip row above the list, desktop gets clickable column headers AND explicit pills above the table.
| Sort | Ranks by |
|---|---|
| ฿ Balance | Combined balance across every bar in the group + the group bank. |
| 🍻 Drinks (week) | Total drinks across the group for the current matchup week. |
| 😈 Notoriety | Combined notoriety across the group, the dirtiest empires. |
| 🏆 Wins | Combined matchup wins. |
| 📊 Avg balance / bar | Total balance divided by bar count, fairer for small groups vs whales. |
| 🏘️ Bar count | Pure size, who's built the biggest empire by venue count. |
| 👑 Empire score | (bar_count × ฿10,000,000) + total balance. Treats each owned bar as ฿10M of "score" so a 20-bar empire with modest treasuries outranks a single-bar whale sitting on ฿100M. The all-rounder rank. |
Extras on the leaderboard
- Rank-delta column, see who climbed and who slid since yesterday.
- Sparklines on every row, a 7-day micro-chart of drinks next to each bar.
- "Your rank" trend chart, your own rank over time, pinned at the top.
- Top Bell-Ringers mini-board, who's spread the most love this season.
- Follow button, star bars you want to keep an eye on.
🔮 Projected Finish
On the Matchup page, the Projected Finish shows where your drinks total will land at the end of the week if you keep your current pace. It's calculated as drinks-so-far ÷ days-elapsed × 7.
Alongside the point estimate you get a variance band (low / high) derived from your 14-day daily-drinks standard deviation, wider band means your output is less predictable. A confidence label ("Comfortable lead", "Could go either way", etc.) compares your projection against your opponent's.
It's a projection, not a prediction. Stack chips, book a Double Gameweek, or fire a well-timed Police Call and you can blow right past the low end, or fall short of it.
🌱 Newcomer & Underdog Bonuses
The league works hard to keep new and small bars in the fight. Three overlapping boosts tilt the playing field toward the bottom of the table.
Rookie bars (first 14 days)
- ฿100,000 One Week In achievement, survive a full week and the achievement card pays the credit straight into your balance.
- 1.5× matchup win bonus for any bar under 14 days old, including playoff rounds.
- Your first season matchup is always scheduled against the AI "Rookie's Place" (see Matchup).
Underdog bonus (bottom 3 bars in the league)
On leaderboards with 6+ enrolled bars, the three poorest bars by balance earn a drink-revenue boost:
- Poorest bar: +20%
- 2nd-poorest: +15%
- 3rd-poorest: +10%
If you climb out of the bottom 3, the bonus lingers for 7 more days (a grace window) so you're not punished for winning. Drop back in and it refreshes.
Rivalry bonus
Beating a declared rival pays 1.5× the normal matchup bonus, the game rewards picking an enemy and chasing them down.
📖 Rivalries & H2H Storylines
Each bar can flag any number of rivals, no cap. ฿50,000 per add, paid from the active bar's balance. Beating any of your rivals in a head-to-head matchup banks 1.5× the normal win bonus.
How rivalries work
- Personal flag. Rivalries are one-sided, only YOU see your bar's list. Two players can have totally different rivals; A's rival might be B, while B's rival is C.
- The 1.5× bonus is the attacker's bonus. When you beat a bar you've flagged as rival, you bank 1.5× the win bonus. Whether THEY have flagged YOU doesn't matter.
- Only you can clear your own flag, nobody can end your rivalry on your behalf.
- AI bars (e.g. Rookie's Place) never appear in rivalry-declaration lists.
- The +Watch button on a Suggested-rival card on the Feed declares a real rivalry (with a confirm modal at the ฿50,000 fee).
Nemesis nicknames
When you flag a rival, the league generates a tabloid-style nickname for the pair (“the South Pattaya Pretenders”, “the ฿40 Showdown”). The nickname is cached per-pair so both bars see the same one, and it shows up on:
- Your bar's public brochure subtitle when this rivalry is live.
- The match recap page when the two of you fight.
- The dedicated rivalry storyline page header.
- Pattaya Turtle headlines about your rivalry.
If the generator returns something you genuinely don't like, hit Reroll nickname on the rivalry storyline page. Costs ฿5,000 and is one-shot per Thai day per pair.
The Rivalries hub
List/management view of all your rivals with H2H records inline. Click into any rivalry for the dedicated storyline page:
- Big H2H score card (wins – wins)
- Momentum indicator based on the last 4–5 matchup winners
- 📅 Matchup Timeline, every past matchup, winner, and relative margin % (never raw drink counts)
- 🎭 Trick Exchanges, every sabotage between the two bars with a running tally
Extras on each storyline page
- Narrative beats, the page auto-surfaces storylines like current streak, first-time win, closest-ever matchup, and dominance (75%+ win rate).
- Momentum pill based on the last 4–5 matchup winners.
- Next scheduled encounter, the week number and days-until-you-meet-again for the next time you're paired in a matchup.
- Season-by-season breakdown, per-season H2H record across every season you've both played.
- Taunt-to-feed buttons, post pre-written jabs straight to the Feed.
Find it: Sidebar → Compete → Rivalries. From any rivalry's storyline you can also click 📖 View H2H Storyline → on the matchup page.
🗳 Mayor of Soi Sabotage
A 17-day seasonal election running parallel to the normal season. Pay ฿250,000 to file, then each evening pick up to 5 cabinet members from your active roster. A slice of their nightly drink revenue diverts to your slush fund, with a twist: your worst-earning staff are your best politicians. Top 3 slush totals on Day 17 split the prize pool 60 / 25 / 15.
Filing
- Filing window: 7 days. Days 0–3 the entry fee is ฿250k. From day 4 onwards it doubles to ฿500k. The filing fee goes straight into the prize pool, so an early field has a smaller pot than a late field.
- Eligibility. You can file if your bar has ≥ 500 lifetime drinks, ≥ 3 starter girls, ≥ 1 cashier, and is ≥ 7 game-days old. Bars below the thresholds don’t see the election UI at all (it’s hard-hidden, not just locked).
- Pick 3 manifesto pledges when you file (see the manifesto section below). If you win, those three become your decree menu, one decree per day for the 7-day mayoral term.
- Withdrawing forfeits your filing fee, the money stays in the prize pool for everyone else.
Cabinet
Each evening the panel offers a picker for tomorrow’s cabinet. Five roles, one staff member each:
- 💰 Treasurer, cashier slot. Unlocks “Cook the books”.
- 👔 Campaign Manager, girl slot. Unlocks “Big rally”.
- 📣 Communications Director, girl slot. Unlocks “Smear ad”.
- 🚪 Field Director, girl slot. Unlocks “Door knock”.
- 🎙 Press Secretary, girl slot. Unlocks “Damage control”.
Picks lock at 09:00 Thai time and apply for that day. If you skip a day, yesterday’s cabinet rolls forward (filtered for staff still on your active roster). Only starters count, benched and freelancers are excluded.
Slush calculation
The 09:00 Thai daily roll computes the diversion for every active candidate. The formula is bar-aggregate, you only ever see the totals, never per-staff breakdowns:
- For each filled cabinet role on that day, the sim takes that staff member’s drink revenue from the day’s report.
- 65% of that revenue is diverted off the bar’s books toward your slush fund.
- The diverted figure is multiplied by a roster-rank yield:
- Top tier (your highest earners over the rolling 14-day window): ×0.5. She’d rather work the floor.
- Middle tier: ×1.0. Steady political fuel.
- Bottom tier (your worst earners): ×2.5. Underused energy makes great campaign volunteers.
- The current week’s campaign event may apply an extra multiplier on top.
- Contributions from all five roles are summed.
- Daily floor (campaign donations). If your earnings-based slush is below the floor, the difference is topped up so daily-action wagers stay meaningful even on a quiet trading day. The floor is ฿55,000 at full strength, scaling with cabinet roles filled (5/5 = 100%, 4/5 = 80%, 3/5 = 60%; below 3 filled there is no floor at all, which kills the file-and-ignore exploit). It also tapers across the 17-day season: Days 1–4 at 100%, 5–9 at 85%, 10–13 at 70%, 14–17 at 50%. The better of (earnings-based slush) and (floor) wins; high-performing cabinets still beat the floor and feel rewarded.
- The result is added to your slush_total.
The picker doesn’t show you which tier each staff member is in, figuring out who your worst earners are is the strategic core of the game.
Privacy note: only bar-level aggregates ever leave the server. The slush total per candidate is public; per-staff contributions, drink counts, and earnings are never displayed in any UI or API response.
Weekly campaign events
The 17-day campaign rotates through themed weeks. The current week’s event shows as a purple banner under the hero on the panel, and applies real mechanical changes:
- 🗳 Primary Week (days 0–6), cabinets earn a +10% yield bonus on diverted earnings.
- 💥 Smear Season (days 7–13), smear ads cost 10% of slush instead of 20%.
- 🔥 Endgame Frenzy (days 14+), Big Rally jackpot probability doubles to 20%.
- 🧳 Tourist Surge (longer seasons only), door knock returns +30% instead of +20%.
- 📵 Press Blackout (longer seasons only), Damage Control shields you for 48 hours instead of 24.
Daily action
Once per day you can fire one action. Each is gated on whichever cabinet roles you’ve filled today, if a slot is empty, the matching action is hidden:
- 📒 Cook the books (Treasurer), wager 50% of slush. 55/45: that half doubles back, or vanishes. Net ±50% of slush. The dramatic swing.
- 📢 Big rally (Campaign Manager), wager 50% of slush. 10% chance of 5× jackpot (20% during Endgame Frenzy), 45% of 1.5×, 45% lost. The comeback button.
- 💥 Smear ad (Communications Director), pay 20% of slush (10% during Smear Season). 55% chance of hitting a nominated rival for -25% of theirs. If the target has Damage Control active, the ad bounces.
- 🚪 Door knock (Field Director), wager 10% of slush, guaranteed +50% return on the wager (+5% of slush per use, +8% during Tourist Surge). The reliable daily grind.
- 🛡 Damage control (Press Secretary), pay 5% of slush. Smear-immune for 24 hours (48 during Press Blackout).
Manifesto pledges
You pick 3 of 9 pledges when you file. They show as chips on your candidate card so other players can see your platform. If you win, those 3 become your decree menu, one decree per day for the 7-day mayoral term. The Pattaya Turtle runs a flavour headline on the feed when a decree drops.
Pledges fall into three categories: vanity (boost your own bar), rival (target another candidate), and soi-wide (affects every other candidate but not you).
| Pledge | Category | Effect when fired as a decree |
|---|---|---|
| 🗿 Statue of Myself | Vanity | Your bar's balance credited +฿500,000. |
| 🪧 Rename the Soi | Vanity | Pure flavour. Pattaya Turtle headline announces the soi is renamed after your bar for the term. No money, no slush change. |
| 🎤 Public Apology | Vanity | Pure flavour. Pattaya Turtle runs an apology headline. No money, no slush change. |
| 📋 Eternal Audit | Rival (pick target) | Target bar's balance debited −฿200,000. If the target is also a candidate, their slush is reduced by 10%. Target gets an inbox FYI. |
| 🚑 Health Inspection | Rival (pick target) | Target bar's balance debited −฿100,000. If the target is also a candidate, their slush is reduced by 5%. Target gets an inbox FYI. |
| 🔕 Bell Curfew | Rival (pick target) | If the target is a candidate, their slush is reduced by 5%. Target gets an inbox FYI. (No actual bell-ringing block, the curfew is in name only.) |
| 🍺 ฿100 Chang Tuesdays | Soi-wide | Every other active candidate's slush goes up by ฿50,000. You pay nothing. |
| 🇬🇧 UK Flag Day | Soi-wide | Your slush drops by ฿200,000 (floored at 0); every other active candidate gains ฿20,000 slush. |
| 🎤 Mandatory Karaoke Hour | Soi-wide | Every other active candidate's slush goes up by ฿15,000. You pay nothing. |
Decree limits: one decree per (candidate, day). Anti-rival decrees require a target that isn't your own bar. There is no separate cash cost or cooldown beyond the once-per-day rule, decree money flows are exactly the deltas above.
Election panel widgets
The Election tab on Compete (and the Mayor's Cabinet entry from your Staff sub-nav) renders the same panel:
- Hero, countdown, your slush total, your rank, your slogan, your three pledge chips.
- Weekly event banner, this week’s theme + active mechanical effect.
- Decisions strip, a row of CTA chips that pulse when an action is ready, your cabinet has empty slots, or a decree is unfired.
- Cabinet picker, tomorrow’s 5 slots. Each staff option shows a 7-night decorative strip indicating recent activity buckets (high / medium / low / no-sale / off), but never raw counts.
- Today’s action menu, the 2×2-ish grid of available actions with cost and odds.
- Mayoral decree menu, sitting mayors only, drawn from their 3 manifesto pledges.
- Pledges card, full descriptions of your three picks, with the predicted effect if elected.
- Leaderboard, sorted by slush total, with a progress bar and pledge chips per candidate.
- 14-day trend, per-bar daily slush gain sparklines for the top 8 candidates. Bar-aggregate only.
- Yesterday’s movers, top 10 slush gainers from the previous Thai day, combining cabinet diversion + actions. Bar-aggregate only.
- Your form guide, a 14-cell heatmap of your daily slush gain. Hover for the day, the delta, and the action you fired.
- Rivalry log, smears sent and received, with date and outcome.
- Past mayors, a hall of fame of previous winners.
Election day
- Polls close on Day 17 at 23:59 Thai time.
- Settlement runs on the next 09:00 Thai roll. Top 3 split the pool: 60 / 25 / 15.
- If fewer than 3 candidates filed, the unfilled prize slots redistribute proportionally to the candidates who did file.
- The winner gets a permanent Past Mayor badge on the Profile page and a 7-day mayoral term.
- During the 7-day term the winner can issue one decree per day, drawn from their 3 manifesto pledges.
- The next election season auto-rolls immediately after settlement, so the crown overlaps the next campaign’s opening week.
Strategy notes
- Fill all 5 cabinet roles. The daily floor scales with roles filled: 5/5 = 100%, 3/5 = 60%, < 3 = no floor. Even a cabinet of zero-drinks staff at 5/5 banks roughly ฿55k on Day 1.
- Bottom-tier yield is the biggest lever above the floor. Putting a top earner in a cabinet role costs you double: she generates less slush AND her drink revenue is being diverted off your bar’s books. Use girls and a cashier you suspect are lower in the rolling-14-day rank to clear the floor and bank real upside.
- Door Knock is the safe daily grind. Guaranteed +5% of slush (+8% during Tourist Surge). Compound it across 17 days and you’ll roughly double a starting ΰΈΏ55k floor without ever risking a loss.
- Damage Control is cheap insurance. 5% of slush for 24h smear immunity is a hedge worth taking when you’re leading.
- Cook the Books is the dramatic swing. ±50% of slush on a 55/45 flip. Use when you’re middle-of-pack and bored, or as a Hail Mary at the end of the season.
- Big Rally is the comeback button. 50% wager, 10% chance of a 5× jackpot (20% during Endgame Frenzy), 45% of a 1.5× payout, 45% lost. At ΰΈΏ55k slush a jackpot pays +ΰΈΏ110k.
- Smear is asymmetric. You spend 20% (10% in Smear Season) for a 55% chance to remove 25% of the target’s slush. EV is positive when you’re behind, neutral-ish when you’re ahead.
- The whole loop is ~30 seconds a day. Open the panel, swap tomorrow’s cabinet if needed, fire one action, close.
Privacy invariant
Per-staff drink counts, per-staff revenue, and per-staff slush contributions are computed entirely server-side and never reach the browser. Every public-facing election surface, leaderboard, panel widgets, drama feed, push messages, decree headlines, uses bar-level totals only. The 7-night cabinet-picker strip uses high / medium / low / no-sale / off buckets, never the underlying counts. Reverse-engineering an individual staff member’s drinks from any public number is mathematically not possible across a multi-role cabinet.
Endorsements (the Day-1 path for new players)
The ฿250k filing fee locks brand-new players out of running for office, but they can still play the election. Endorse any candidate from their card on the Election panel. If your candidate finishes top-3 on settlement day, you take a share of a 5% kickback pool capped at ฿250,000, paid into your bar balance through the ledger with an idempotent source.
- One endorsement per player per cycle. Swap before settlement if you change your mind.
- Endorsers of each winning candidate split the per-candidate pool evenly, weighted only by candidate finish (winner pool largest, third smallest).
- No effect on slush. Endorsements are pure prize-pool participation, they don't move a candidate's standing.
Mayoral Policies (the 14-day post-election effect)
After the election settles, the new mayor picks one policy from a menu of seven. The policy stays active for 14 days, applied as an additive % onto the league-wide drink-revenue base. Mayoral term is over before the policy expires, so a mayor's reign casts a shadow well past the cabinet-swap deadline.
| Policy | Effect |
|---|---|
| 🗓 Tuesday Tourist Tax | Tuesdays only, all bars: −5% drink earnings. |
| 👮 Soi Crackdown | Top 3 bars by lifetime drinks: −3% drink earnings. |
| 💰 Cashier Solidarity | Cashier wages: +฿50/shift across the league. |
| 🍻 Drinks for Democracy | All bars: +2% drink earnings. |
| 🌈 Pattaya Pride | Bars with 5+ same-venue staff: +3% drink earnings. Stacks with the Trio / Squad / Full House synergy ladder. |
| 🐢 The Turtle Knows | Bars mentioned in a Pattaya Turtle Letter to the Editor that week: +5% drink earnings for the next 7 days. |
| 🍹 Free Shot Friday | Fridays only, all bars: +8% drink earnings. |
Policy choice is published on the feed and shown as a banner across every Compete panel for the duration. The Earnings line item shows a dedicated 🗳 Mayor's policy row each night.
🃏 Dirty Tricks
Why just build your bar up when you can knock the competition down? The Dirty Tricks system lets you sabotage other bars with offensive actions.
Attack / Defend / Intel tabs
The Dirty Tricks page is split into three tabs (mobile + desktop). The notoriety strip stays above the tabs since it affects both attack cost and defend raid risk.
- 🗡 Attack, your offensive workflow: revenge credits, weekly budget, target picker, scheduling, the trick grid, and your queued + outgoing log.
- 🛡 Defend, incoming threats: Security Guard + CCTV cards, active-debuff warning, incoming-attacks log. If your bar is currently under attack and missing defences, the page auto-opens on Defend instead of Attack.
- 🔍 Intel, the wider battlefield: your offensive footprint stats (lifetime attacks, favourite trick, damage dealt), the Most Ruthless leaderboard, and the public sabotage log.
🎲 Random target spin wheel
Next to the target search on Attack there's a 🎲 button that picks an eligible rival at random and animates a brief reel of names before settling. Skips bars already at this week's per-target cap, and shows ⚖ (instead of 🚫) on bars you hold a revenge credit against, since revenge bypasses the cap. The wheel never lands on a wasted credit.
How It Works
- Each of your bars has 3 trick slots per week (resets every Monday 9am Thai), buy Extra Trick Slot upgrades (max 5) to expand up to 8 per week per bar. Multi-bar players get a separate pool per bar.
- Each trick type has a 72-hour cooldown per bar. After your bar plays Call the Police, that bar can't replay Call the Police for 72 hours, but it can still play Bad Review, Poach, Ladyboys or Happy Hour. Different bars in the same account can play the same trick type at the same time.
- Per-target weekly cap: across all your bars combined, you can land at most 2 tricks per week on the same victim. Stops a multi-bar player permanently locking down one rival.
- One of each trick type, per target, per day: a given debuff can only sit on a bar once a business day. If someone else has already played Bad Review on a target today, you can't stack a second one.
- You can target any bar, matchup opponents, friends, the league leader. The exceptions: you can't target your own bar (Happy Hour is the self-buff for that), and a target who has already activated their Security Guard cleanse today is immune for the rest of the day.
- Tricks apply to tonight's revenue calculation (the next 9am Thai sim run).
- You need enough balance to afford the trick's cost (notoriety can multiply that cost up to 2×, see Notoriety).
- Execute: the dropdown defaults to Now, one click fires the trick tonight. Pick Tomorrow / In 2 days / In 3 days / Custom date to queue it in the Tricks Queue for a future business day instead.
- Target stays selected after a play, chain multiple tricks on the same rival without re-picking from the dropdown.
Requirements to unlock
- At least 500 lifetime drinks earned by your bar
- At least 3 starter ladies on your roster (freelancers don't count)
- At least 1 cashier hired
There's no separate balance gate to unlock the page, you just need to be able to pay each trick's individual cost when you fire it.
Available Tricks
| Trick | Cost | Effect |
|---|---|---|
| 🚨 Call the Police | ฿40,000 | Target bar takes a −30% hit on base drink sales (drinks × ฿160) for one night. Doesn't compound on themed nights / synergy / bell, it's a flat % of base, not gross. |
| 💃 Poach a Freelancer | ฿75,000 | Target's top freelancer contributes 0 drinks that night |
| ⭐ Bad Review | ฿20,000 | Target's per-drink rate drops from ฿160 to ฿120 for one night, applies to every drink (including captain-doubled, freelancer-boosted, event-boosted), so −25% across the board. |
| 🍻 Happy Hour War | ฿25,000 | Your bar gets +30% of base drink sales tonight (self-buff). Like every percentage modifier, computed off (drinks × ฿160), not gross. |
| 🏳 Send the Ladyboys | ฿25,000 | Target's synergy bonuses disabled for one night |
Rebalance note: Costs came down across the board so tricks are accessible to more bars; Happy Hour's self-buff went up to +30% to match.
🎭 Notoriety
Every dirty trick you play raises your notoriety. High notoriety has two costs:
- Cost multiplier: +10% per point, capped at 2× (serial saboteurs pay double).
- Police raids: at 4.0+ points, a daily ramping chance of a self-inflicted −20% revenue night. The risk starts near 0% at 4.0 and climbs linearly to a 30% cap at 8+ points, your own dirt catches up with you.
- Decay: −0.5 points per day, a couple of quiet days clears most of a single trick's heat.
| Action | Points |
|---|---|
| Any offensive trick (police, bad review, poach, ladyboys) | +1.0 |
| Happy Hour War (self-boost) | +0.25 |
Decays 0.5 points/day, so a single offensive trick clears in two quiet days and one aggressive week clears in roughly a week of non-play.
Find it: Dirty Tricks page → the 🎭 Notoriety pill at the top.
📹 CCTV
CCTV is a one-time ฿25,000 defensive upgrade on the Dirty Tricks page. Once installed, whenever your bar gets sabotaged you receive a Discord notification naming the attacker instead of them staying anonymous. It also enables Revenge Credits. Pair it with a Security Guard to go from passive target to organised retaliator.
💂 Security Guard
The Security Guard is a one-time ฿50,000 defensive upgrade. Once per week you can activate your guard to cleanse all active dirty tricks against your bar. Resets every Monday. Use it strategically when multiple debuffs stack on you in the same week, one activation can rescue an entire matchup.
⚖ Revenge Credits
When your bar has an active CCTV defence and gets sabotaged, you're granted a revenge credit against the attacker. Within the next 48 hours you can play one trick against them completely free:
- No balance cost
- Bypasses your weekly trick limit
- Doesn't add to your notoriety (it's a justified counter)
Find it: Dirty Tricks page → crimson "⚖ Revenge Credits" banner at the top whenever you have an active credit.
🧾 Tricks Queue
All your played tricks (active + resolved) appear in a queue on the Dirty Tricks page so you can see what's still in-flight, what resolved last night, and how many weekly slots you have left.
Changed your mind? A trick scheduled for a future day stays pending until the 9am Thai sim on its day, you can cancel it up until that moment for no cost. The trick's price is only charged when it fires; cancelling a pending schedule debits you nothing and refunds nothing because you were never billed. Tricks executed immediately (today) are already paid and live, no take-backs.
You can have up to 3 tricks queued at once, cancel one to free a slot if you need to book another.
🗞 Public Sabotage Log
Every dirty trick between two bars (last 14 days) is shown publicly on the matchup page. Attacker and target names are clickable → takes you to their public brochures.
Your Happy Hour self-boosts and Guard Cleanses don't appear (they aren't between-bar plays).
Find it: Matchup page → "🎭 Dirty Tricks, public log (last 14 days)" collapsible strip above the league table.
🎉 Boosters (formerly Playbook)
The Playbook page has been renamed Boosters and moved to /boosters. The old /events URL still redirects, so existing bookmarks and help links keep working.
The page now splits at the very top into two top-level tabs:
- 🍻 Events, everything that lifts tonight's drink earnings: themed nights, the chip rack, Tonight's Stack, Buy a Round. Default tab.
- 📡 Marketing, the long-game Channels skill tree (see the Channels section below). A separate economy that pays a small daily drink-earnings line you accumulate over weeks, not nights.
Under the Events tab the rest of the booster surface is organised into three sub-tabs:
- Now, everything live tonight: venue events, a themed-night booking panel with cost-benefit numbers, and a chip-scarcity indicator.
- Book, book themed nights up to 3 days in advance instead of only tonight.
- Calendar, the 7-day upcoming venue-event schedule plus your own booked themed nights, at a glance.
Chips have also been moved out of the Matchup page and onto Boosters, so activation lives with the rest of your buff toolkit.
⚡ Tonight's Stack panel
A live breakdown of every bonus active tonight is pinned above the sub-tab nav (so it shows on every Boosters tab). It mirrors build_bar_daily() exactly, the projection never disagrees with the 9am settlement.
| Source | Behaviour |
|---|---|
| Themed nights | Capped (+40% combined; halved to +20% during Wage Strike). Ladies' Night and Tourist Bus also have a 7-day per-event cooldown. Progress bar shows how close you are to the cap. |
| Group synergy | Capped at +10% (reached at 6+ bars). Progress bar shown. |
| Streak bonus | Capped at +50% across all on-streak ladies. Progress bar shown. |
| Venue synergies | Uncapped, listed per venue (Trio +3% / Squad +6% / Full House +10%, stack across venues). |
| Happy Hour War | +30% self-buff if you played it tonight, uncapped. |
| Bell rings received | +15% per ring, uncapped, listed with the ringers. |
| Active chips | Triple Captain / Bench Boost / Wage Strike / Wildcard, listed as badges. |
The panel rolls up to a single number, the Tonight: +X% chip on the Home page links straight to it so you can audit the projection before bedtime.
🍻 Buy a Round (self-bell)
The Buy a Round button used to live on /compete. It's now on Boosters, sitting just under Tonight's Stack so it's visible on every sub-tab. Same +15% boost, same weekly-per-bar cooldown, same disabled-state with reason text on cooldown. See the Ring the Bell section for cost and rules.
Group boosters (bar group only)
If you own 2+ bars, the Bar Group → Boosters tab adds bulk actions across all your bars in one click:
- Bulk Buy-a-Round, fire Buy a Round across every selected bar at once. Cost is computed and shown per bar before you confirm.
- Themed-night bulk booking matrix, book the same themed night on multiple bars in one form. Useful for syncing a Bar Crawl across the whole group on the same night.
- Bulk chip activation, fire the same chip on every selected bar.
- Birthday Party rule-based bulk, auto-pick a celebrant on every bar according to a rule (e.g. "longest-tenured girl") instead of clicking through each one.
📡 Channels (Marketing)
The Marketing top-level tab on /boosters opens a long-game skill tree built around five real Pattaya media characters arranged in a pentagon around your bar. Wire up to a Channel, invest in the products that Channel sells (a sticky thread, a Saturday feature, a meetup night), and a small daily marketing line shows up on your Earnings breakdown the next morning. It's a separate economy from themed nights and chips, with its own currency (points), its own pacing (weeks not nights), and its own cap that's tuned for the long game.
The cast
Each Channel is a character with a bio, a tagline, a colour, and a tree of 4-5 products in tiers radiating outward from their hub. They're real Pattaya media archetypes turned up to eleven, so read their bios on the Pulse intro (or the Channels page itself) before you spend a single point.
| Channel | Character | Speciality |
|---|---|---|
| 🔵 Cruisin' Pattaya | Cruise · 22 years running his own bar | The honest, hardest-working YouTuber in the city. Heavy reliable coverage; his Friday flagship is the single biggest weekly hit in the cast. Saturday and Friday are his big days. |
| 🟣 Pattaya Junkies | Brendan Hedges · forum owner since 2003 | The bitter one. 300 angry users, a 63-page Why-We-All-Hate-Hedgey megathread, and a sticky thread you can absolutely pay for. Mon sticky, Wed AMA, Fri Best Bar of the Junkies. |
| 🟢 Cuckoo Does Pattaya | Cuckoo · 487 subscribers, six weeks left | The desperate one. Says yes to everything. Smallest reach, biggest enthusiasm. Cheap, eager, multi-product Channel because he'll do anything. Mon meetup, Tue pity review, Thu pub crawl. |
| 🔴 The Pattaya Brunch Club | Kickback Mack · 50k Facebook group | The corrupt one. Charges ฿15-25k for a positive feature and ongoing retainers for sustained favourable coverage. Biggest audience, most transactional. Sunday free posts, Monday feature, daily retainer. |
| 🟡 NewDelhiTV | Vic & Barty · English-Scottish presenter duo at the Maharaja Bar | The two-handed one. 12,000 fiercely loyal expats who tune in for the bickering, not the reviews. Wed midweek, Sunday Show, daily takeover. |
The tree
Your bar sits at the centre of the canvas. Around it, the five Channel hubs ring the bar like a pentagon. You spend points to activate nodes:
- 1 point to connect a Channel (the small node between your bar and that Channel's hub). Required before you can buy any of that Channel's products.
- 2-4 points per product in tiers radiating outward. Tier 1 products cost 2 points, tier 2/3 cost 3, the deepest (tier 4) costs 4. Later tiers require their predecessor in the same Channel to be active first.
- Bridges (2 points) connect two adjacent Channel hubs once you've activated both. Unlocks cross-Channel content.
- Synergy nodes (4 points) sit on bridges and unlock co-features, e.g. Cruise × Vic & Barty Saturday cross-promo. Requires the bridge first.
Each Channel's spindle has its own visual shape so the five Channels feel mechanically distinct: Cruise has a converging stem, Brendan a linear chain with a side branch, Cuckoo a trident off T1, Mack a classic Y, Vic & Barty a linear-then-Y.
Where points come from
Points are awarded automatically. There's no buy-points-with-cash path.
- Starting bundle: +3 points the first time you open the Marketing tab. Enough to open one Channel and pick its first product, or spread across two Channels.
- Bar-age milestones: +1 at Day 7, Day 30, Day 100, Day 365.
- League week: +1 every Sunday since your starting bundle landed. Drip-fed forever.
Everything goes through a ledger, so a respec gives every point back and the totals are auditable on the diary panel.
What activated nodes pay out
Every active product node contributes a small weekly drink-earnings percentage, applied on the day of the week the Channel actually broadcasts. A Saturday Cruisin' Friday flagship fires on Fridays, Brendan's Monday sticky fires on Mondays, a Daily node fires every day. The sim aggregates everything that fires today, scales it by your payout tier, and adds a single 📡 Marketing line to that day's Revenue Breakdown on /finance.
At full spec (every node lit) the design target is about 5% of your weekly drink revenue, capped hard so the line never dominates.
Payout tiers (the underdog ladder)
The marketing economy is tuned to help newer and smaller bars more than mature ones. The boost multiplier and the cap both shift with your bar's age and how many bars your account owns.
| Tier | Boost | % cap | ฿ / day cap |
|---|---|---|---|
| Single-bar account, Day 1-14 (newbie) | 4× | 25% | ฿15,000 |
| Single-bar, Day 15-60 | 3× | 20% | ฿12,000 |
| Single-bar, Day 61-180 | 2× | 15% | ฿10,000 |
| Single-bar, Day 180+ under ฿100k/day | 1.5× | 12% | ฿10,000 |
| Single-bar whale (≥ ฿100k/day) | 1× | 8% | ฿10,000 |
| 2-3 bar account | 1× | 8% | ฿6,000 / bar |
| 4-5 bar account | 0.8× | 7% | ฿5,000 / bar |
| 6-9 bar account | 0.6× | 6% | ฿4,000 / bar |
| 10+ bar account | 0.5× | 5% | ฿3,000 / bar |
The Marketing line for the day is the smallest of three values: (a) scaled percentage × boost × revenue, (b) the % cap × revenue, (c) the absolute ฿/day cap. So a whale single-bar maxed out on every node still tops out around ฿10,000/day, while a Day-3 newbie running the same spec sees four times the boost.
The Marketing Diary
A side panel on /channels shows which nodes fired today, what each one paid into your marketing line, your current tier pill, the daily cap status, and a multi-bar warning banner if you're 6+ bars. The diary reads directly from daily_marketing_modifier(), so what you see is what tomorrow's Finance breakdown will show.
The Pulse intro
The first time you open the Marketing tab you get the Pulse, a ToK-style two-column intro: cinematic slideshow with voiceover on the left, expandable Channel bios on the right. Same flow as the Bar Owner School intro, same 5-second auto-advance, same Replay card that lives on the Boosters page forever after. Voiceover ships for all 5 Channels plus a Pattaya Turtle reporter doing the framing. If the audio fails the slide auto-advances after a short fallback timer.
🎲 Venue Events
Real events happening at real bars are synced daily and affect your revenue. These are actual events, pool competitions, fight nights, live music, ladies nights, and more.
- Venue events give a revenue boost to ladies and cashiers from that specific venue
- Each event has a configurable modifier (e.g. +15%)
- Recurring weekly events are automatically matched
- Multiple events at the same venue on the same night stack multiplicatively
- Only staff from the event's venue get the boost, other venues are unaffected
Check the Events page for today's venue events, the upcoming 7-day schedule, and a 15-day history.
🍺 Mid-evening Events
Between 19:00 and 23:00 Thai, choose-your-own-adventure cards drop into your inbox at irregular intervals. Each card is a quick narrative beat happening at your bar with a 2–3 option choice; the option you pick bakes a small modifier into tomorrow's drink earnings. The underlying drink count, the one that drives the league and matchups, is never changed by these cards.
- Up to 2–3 events per bar per night, randomised per bar with a 35-minute minimum gap.
- 90-minute TTL per card. If you don't decide, the system auto-picks the “soft-pass” default. For most events the default is the free option, but four events default to the paid option because the free alternative would cost you tomorrow's drinks. Those four can debit your balance while you're offline, marked “auto-charge” below.
- Cards live in your Inbox (To-do tab) and on the Home action list. Tap to expand and pick.
- Modifiers stack with the Last-call minigame into the same ±15% nightly cap on tomorrow's drink earnings (never on the drink count itself, the league number is sacred), so a perfect night can lift a hot streak meaningfully without runaway compounding.
- Inbox-only, never push. Web Push is reserved for girlfriend presence.
- Bank ledger row on a paid choice is labelled with the event name (e.g. “⚡ Generator call-out (power flicker)”) so you can trace any debit back to the card.
Full event list
Every event has a free option. The table shows the paid choice and what it buys you. Effects are added to tomorrow's drinks (capped at ±15% stacked with Last Call). Free alternatives are summarised so you can see what you're paying to avoid.
| Event | Paid choice | Cost | Benefit | Free alternative |
|---|---|---|---|---|
| 🇬🇧 British tourist at the door | Free birthday shot | ฿2,000 | +2% drink earnings tomorrow | Chat him up (no effect) |
| 🔔 Rival rang their bell | Ring back | ฿3,000 | +5% drink earnings tomorrow | Ignore (no effect) |
| 🤵 Bachelor party walk-in | Comp the first round | ฿5,000 | +3% drink earnings tomorrow | Let them sit (no effect), or upsell gamble (50/50 +5% or -2%) |
| ⚡ Power flicker (auto-charge) | Pay generator company | ฿1,500 | Avoids -3% drink earnings tomorrow | Light candles (-3% drink earnings) |
| 🛵 Scooter clipped your sign (auto-charge) | Wave it off, give him water | ฿500 | +1% drink earnings tomorrow | Demand payment (+0.5 notoriety) |
| 🚐 Tour-guide kickback deal | Pay the kickback | ฿4,000 | +4% drink earnings tomorrow | Decline (no effect) |
| 🔊 Neighbour noise complaint (auto-charge) | Send him a free drink | ฿800 | Avoids -2% drink earnings or +0.5 notoriety | Turn music down (-2% drink earnings), or ignore (+0.5 notoriety) |
| 🎂 Regular's birthday surprise | Order a cake | ฿1,200 | +4% drink earnings tomorrow | Sing happy birthday (no effect) |
| Comp a round of shots | ฿2,500 | +3% drink earnings tomorrow | (same free option above) | |
| 🎧 Freelance DJ offering a set | Hire him for the hour | ฿2,000 | +3% drink earnings tomorrow | Stick with playlist (no effect) |
| 📦 Stocktake came up short (auto-charge) | Let it go, write it off | ฿1,000 | Avoids -1% drink earnings (or -2% +notoriety) | Investigate (-1% drink earnings), or make a scene (-2% drink earnings, +0.5 notoriety) |
Free-only events
Four events never debit your balance regardless of which option you pick. The trade is always between a small drink-earnings bonus, a small drink-earnings penalty, or a notoriety bump.
- 🚬 Cashier wants a smoke break: cover for her (+1% drink earnings) vs tell her to wait (-1% drink earnings).
- 📸 Rival posted a photo of your bar empty: respond on the feed (+1 notoriety), book a themed night, or ignore.
- 🥊 Drunk tourist starting trouble: kick him out (+1% drink earnings), send the cashier to calm him (60/40 +2% or -3% drink earnings), or pretend not to see (-2% drink earnings).
- 🚌 Songtaew driver wants to park: free water (+2% drink earnings), charge ฿200 (no effect), or send him away (+0.5 notoriety).
Offline-player worst case
The per-night cap is 2–3 events. The four auto-charge events (power flicker, scooter dent, noise complaint, stocktake) total ฿3,800 if every one of them fires on the same night, so a fully-offline player is exposed to roughly ฿1,500–฿3,300 of auto-debits on a bad evening. Open the inbox in the 19:00–23:00 Thai window if you'd rather make the call yourself.
🍻 Last Call Minigame
A 30-second whack-a-mole. Four customer tiles, a glass appears, you tap it before it shrinks to nothing and the customer walks. Open it any time from the 🎮 games picker in the header (same place as Connect 4, Dice, and Pool).
- Score → modifier. Served / missed maps to a small (±2%) modifier on tomorrow's drink earnings. Perfect game bakes in the upside, choke and you eat the downside. The drink count that drives the league is never changed.
- First play of the Thai business day counts (the day runs 09:00 Thai → 09:00 Thai). Replay as many times as you like after that, but extra plays are practice rounds and don't affect tomorrow's drink earnings.
- Stacks with mid-evening events into the same +/- 15% nightly cap on drink earnings.
- Desktop tip: keys 1, 2, 3, 4 serve tiles 1 to 4.
🎟 Themed Nights
Book a themed night for tonight to shape your outcome actively instead of waiting on random weekly events.
| Event | Cost | Effect |
|---|---|---|
| 💃 Ladies' Night | ฿5,000 | +50% drink revenue tonight (clipped to the +40% cap when stacked). Wages scale naturally with revenue, no extra multiplier. One per 7 days. |
| 🚌 Tourist Bus | ฿5,000 | +40% drink earnings tonight, only fires if you have 8+ active girls. One per 7 days. |
| 🍖 Hog Roast | Free | Feeds the crew, resets fatigue for every staff member at the bar (everyone reads Fresh tomorrow). Also blanks the visible 7-day form trail for days on or before the roast; the trail refills naturally as new days roll in (real history is preserved, only the rendered trail is clipped). Once per 7 days. Cosmetic for now (fatigue has no penalty wired up); pure flavour. |
| 🎱 Pool Tournament | ฿4,000 | +25% drink earnings tonight and a +10% buzz carry-over tomorrow night. The only event with a two-night tail. |
| 🍻 Bar Crawl | ฿8,000 | +20% drink earnings at every bar in your group tonight, one booking covers the whole crew. Requires a 2+ bar group. |
| 🎂 Birthday Party | ฿2,000 | Pick one staff member, +25% drink earnings for 3 consecutive nights, but ONLY on nights they actually work. No-show, no boost. |
One booking per event per bar per day. Multi-night events (Birthday Party, Pool Tournament tail) auto-fan-out into the right future days.
Stack cap, +40% combined
Stacking themed nights is capped: the combined revenue boost across every active themed night cannot exceed +40% on any single night. Ladies' Night (+50%) on its own already hits the ceiling, and Ladies' Night plus Tourist Bus (+40%) is well past it, so a second event on the same day usually adds nothing.
- Normal cap: +40% combined
- Cooldowns: Ladies' Night and Tourist Bus each have a 7-day per-event cooldown, so the +40% peak is a 1–2 nights/week event, not a nightly play. Pool Tournament, Bar Crawl, Birthday Party and Hog Roast remain free to book any night
- Wage Strike active: cap halves to +20%, the trade-off for the zero-wages chip is a smaller themed-night ceiling so wage-free weeks can't compound with a revenue stack
- The earnings breakdown shows ", at cap" next to the Themed Night line when you're at the ceiling, so you know a further booking would waste the cost
Find it: Boosters → Chips tab → "🎟 Book a Themed Night" panel. Bookings are AJAX, you stay on the page and get a toast confirming the booking. Ladies' Night and Tourist Bus bookings also announce in Discord.
Change your mind? A booking queued for a future day can be cancelled. Click the × on the "Pre-booked for …" badge before 9am Thai on that day and you get 80% of the cost refunded, a 20% catering-cancellation fee stays. Once the 9am sim on that day has run, the booking is live and cannot be cancelled.
🃏 Season Chips
Chips are special one-shot powers granted at the start of every season. You have 4 chip types × 2 tranches = 8 chips per bar per season.
Try it β Activate a chipTranche 1 must be used by the end of week 6 or it expires. Tranche 2 unlocks from week 7 and lasts until season end. Don't hoard, unused chips vanish.
| Chip | Effect |
|---|---|
| 🃏 Wildcard | 100% refund on every release/fire for the whole season week (normally partial). Lets you restructure your squad without sell penalties. Changes persist, your roster stays as you leave it. New hires still cost money. |
| 🎯 Wage Strike | All lady and cashier wages waived for the seven days of the active week, your bar keeps 100% of drink revenue. No roster juggling needed. |
| 👑 Triple Captain | Your captain earns 3× drinks instead of 2× for one night. |
| 💪 Bench Boost | For one night, every benched staff member contributes drinks as if they were on the active roster. |
🎯 Wage Strike, the pure-profit week
Wage Strike is the rebuilt Free Hit. Old Free Hit was a roster-shuffle chip that was strictly worse than Wildcard, and had a money trap where hires made during the week were deleted at revert without refund. Gone.
New mechanic is dead simple:
- On activation: the chip flips on for the current season week.
- Every day of that week: both lady and cashier wages are calculated at zero. Your dividends jump by roughly the wage line you'd normally pay.
- At the end of the week: nothing to clean up, wages resume automatically on the next day.
Your daily Earnings report will show a “π― Wage Strike active” credit line equal to the wages you saved, right next to the usual breakdown.
Side effect, themed-night cap halves
While Wage Strike is active, the themed-night stack cap drops from +40% to +20%. So if you were planning to stack Ladies' Night + Pool Tournament during a Wage Strike week, only the first ~+20% will land. Plan around it: either book modest themed nights (one small event), or save the chip for a week without big bookings.
When to play it
- A big week for your roster. Your ladies are in form, you expect strong drinks, Wage Strike converts more of that into kept revenue.
- Stacked with Triple Captain or a Double Gameweek. Higher gross → more wages would normally come off → more you save.
- You have an expensive roster. High-salary ladies = higher wage waiver = bigger chip value.
- NOT a heavy themed-night week. The +20% cap throttles big stacks, Wage Strike pairs better with weeks where wages are the dominant cost, not weeks where you'd normally book themed nights.
Wildcard vs Wage Strike
- Wildcard = restructure your squad without sell penalties. A roster tool.
- Wage Strike = take home a week of drink revenue with no wage costs. An earnings tool.
- They don't overlap, pair well if you want to use one tranche for restructuring and the other for cashing in.
Find it: Boosters page → "Season Chips" block.
Release/Replace refunds
Wildcard is now the only chip that pushes release/replace refunds to 100%. Wage Strike doesn't affect refunds at all.
🎰 Weekly Game Events
Each matchup week, there's a 70% chance a random game event fires that applies a revenue modifier to targeted bars for the duration of that week.
- Events are revealed at the start of each matchup week
- Current roster of events: Bar Crawl (+25%), Celebrity Visit (+50%), Lucky Night (+30%), Tourist Boom (+15%), Rainy Season (−10%), Police Crackdown (−20%)
- Some target a single bar, others hit every bar in the league
- The active event is shown on your Dashboard and Matchup pages
- Events reset when the new matchup week begins
⚡⚡ Double Gameweeks
Three Double Gameweeks (DGWs) are auto-scheduled per season at evenly spaced weeks. During a DGW, each bar picks one day whose drinks count twice toward their matchup total.
- The pick is permanent for that DGW once locked in, choose wisely.
- Pairs beautifully with Triple Captain and Bench Boost played on the same day.
- Upcoming DGW weeks are listed in the matchup page even when one isn't currently active, so you can plan ahead.
Find it: Matchup page → purple banner with a 7-day picker when a DGW is live.
💦 Seasonal Themes
Real Thai holidays automatically boost every bar's revenue and swap the site banner:
| Window | Theme | Boost |
|---|---|---|
| Apr 13–16 | 💦 Songkran | +10% |
| Nov 14–16 | 🪔 Loy Krathong | +8% |
| Dec 28–Jan 2 | 🎆 Countdown Week | +12% |
| Feb 9–12 | 🧧 Chinese New Year | +8% |
No configuration required, the server picks up the date and applies the multiplier + banner automatically. Revenue breakdowns show "Seasonal" as a dedicated line.
Find it: Overview page banner whenever a window is active.
📣 Feed
The Feed is your cross-bar social timeline. It mixes player chat (top-level posts, replies, reactions, reposts) with auto-event cards the game emits (matchup results, championships, dirty tricks, achievements, prestige resets, marketplace sales, themed-night bookings, buy-rounds, day milestones, Soi Sabotage drama, and more). Click any bar name to jump to its public brochure (every bar has one at /bar/<slug>, shareable anywhere, no login required, showing logo, owner, prestige, facade tier, a privacy-safe lifetime bracket, matchup record, championships, rivalry wins, achievement count, longest-tenured signature staff, beef wins, and trophy cabinet).
Posting
- Composer at the top with quick-chip openers: Brag (pulls your latest achievement), Trash talk, Stat-flex (real numbers from last night), Cheers (random teammate), Challenge a bar (your active rival or top of your location), and @everyone (pings every player active in the last 5 min).
- @-typeahead for bar mentions and #hashtags, both in the composer and in every reply form.
- π· Image upload, attach a photo to any post or reply. Pillow validates the file, strips EXIF, resizes to 1280px and saves as WebP. 10 MB raw cap.
- π GIPHY GIF picker, search and attach an animated GIF. Server downloads, re-encodes as animated WebP, and stores it locally so the post is self-contained.
- Edit your own posts and replies, βοΈ icon next to the timestamp. Edits propagate live to anyone viewing the feed and tag the post (edited).
- Delete your own, π next to the edit pencil. Cascade-deletes replies, reactions, the on-disk image, and any ghost notifications. Reposts of a deleted post flip to a placeholder.
- π Repost / quote, click the repost icon on any post or reply and the composer auto-stages a quote chip. Add commentary or post bare. Reposts of reposts resolve to the deepest original. If the original is edited later, every repost updates live.
- β© Reply to a reply, flat-thread style. Pre-fills @author so it's clear whom you're addressing.
- Reactions (π₯πππ) on top-level posts AND replies. Reactions sit in their own pill cluster; Reply and Repost are separate labelled actions to the right.
Live, ordered by activity
- Polls every 15 seconds while the tab is visible. New posts and replies fade in; reply count on the parent auto-increments. Polling pauses when the tab is hidden.
- Latest-activity-wins ordering, posting OR receiving a reply bumps a thread to the top, exactly like Facebook or iMessage. No artificial own-post stickiness.
- Hottest sort by default, score = recency Γ event-type weight + reactions + personal boost (active rival +5, your group +3, same location +2, same vibe +1). Sort dropdown cycles Hottest β Big moves β Newest. A diversity throttle stops more than 1 same-category card running back-to-back.
- Digest cards, when 4 bars all hit Day 100 or 5 bars all bought Double Unit, they collapse into one card ("π° 4 bars bought Double Unit: Frodo, Chang, +2 more"). Click to expand the member list with each bar's specific action and timestamp.
- Pagination, the feed renders 30 posts; Load more at the bottom fetches the next 20 chronologically older.
π₯© Beef of the Day
Hero card on the desktop feed pairs two bars in a daily matchup, picked from the most-reacted active rivalry across the league or, failing that, the closest rank gap among top-5 bars in your location. Vote once per day for whichever bar you back. Voting closes at the next 09:00 Thai roll, the bar with more picks wins, and the winner banks a permanent π₯© badge on their public brochure. Ties skip the badge.
Sidebar widgets (desktop)
- π’ Online now, every player active in the last 5 minutes (one row per account, your own bars hidden). Click a row to drop their @-mention into the composer.
- π Trending bars, top 10 by engagement in the last hour.
- βοΈ Suggested rivals, who's hit you with tricks, who's just above you on the leaderboard, who shares your vibe nearby. The +Watch button declares a real rivalry (with a confirm prompt) at the standard ΰΈΏ50,000 fee.
- π {Your Location} Top 10.
- Prompt of the Day for when nothing's happening.
Notifications
- Mention toasts, when someone @-mentions you anywhere in the app a toast slides in (bottom-right on desktop, top banner on mobile). Tap to jump to the post. Auto-fades after 12s. Polls every 30s while the tab is visible.
- Reply and repost toasts fire on the original author with the post's image as a 44px thumbnail.
- Bell deep-linking, every feed/mention/reply/repost notification in the bell dropdown jumps you straight to the post and briefly highlights it.
Spam protection
- Post button locks for 30s after a successful top-level post with a visible countdown. Replies bypass the cooldown so genuine conversations flow.
- Sliding-window rate limits, top-level posts capped at 1/30s + 8/5min + 30/hr; replies at 1/3s + 30/5min. Each violation returns an inline error chip below the textarea.
- Identical-content dedup, the server silently swallows the same body posted twice from one bar inside 60s.
- The composer disables on click so a double-click can't double-post.
🐢 The Pattaya Turtle
The Pattaya Turtle is the game's in-world satirical newspaper, and it's entirely reader-written. Every story on the front page is a Letter to the Editor that another player filed and the community voted up. There's no algorithmic digest, no auto-generated front page, just whatever the league has been talking about that day. It lives under News → The Pattaya Turtle in the sidebar.
Try it → Today's editionThe daily edition
Open the Turtle and you get a newspaper-style page: a masthead with today's date, a lead story (the published letter with the most votes today), and a Letters to the Editor leaderboard listing every other published story with its vote count. Tap any headline to open the full article in a newspaper-styled modal, cream paper, double-rule masthead, Playfair Display body type, drop cap on the first paragraph. Archive editions are reachable at /turtle/<yyyy-mm-dd> and shown as a "Past editions" strip at the bottom.
The lead and leaderboard are scoped to the day you're looking at, so an archive edition shows the stories that were live on that day, not today's votes.
Letters to the Editor · submit a take
Anyone can file a story. Tap Submit a take on the Turtle page and the composer asks for a headline (up to 200 characters) and an article body (up to 5,000 characters, roughly a thousand words). Submissions land in a moderation queue; once published, they appear on the public Turtle page and start collecting votes.
- 3 letters per player per day, hard limit. The composer shows your remaining count.
- 100 letters per day league-wide, soft cap to keep the queue readable. Once full, the composer shows "Letters Bag is full, try again tomorrow."
- Community voting, every published letter has a +1 button. One vote per player per letter per day. Whichever letter is leading at any moment is the lead story.
- Manual curation. Steven reads the queue and publishes the ones worth running. No length-or-blank check beyond the basics; the game has no profanity filter and never has had.
Generate a Turtle headline about your bar
Separate from the Letters system, the home page has a "📰 Generate Turtle headline" button. Tap it to have the Turtle write a satirical one-liner about your bar's last 24 hours on demand. Returns the headline plus a shareable PNG with the masthead. One success per bar per Thai day so it stays a treat rather than spam. Two follow-up actions appear on success: post the headline to the feed, or copy the share link. This is a personal share-card, it doesn't go into the public Turtle edition.
💕 Girlfriends
Bookmark ladies (and cashiers) you like and get a ping in your inbox when they're working tonight. A lightweight "favourites" layer, completely independent of your bar roster and wages. Nothing a girlfriend does affects gameplay; it's just a way to keep an eye on people across every venue.
How it works
- Open
/girlfriends, every lady and cashier from every venue across Pattaya. - Click the heart / + Add girlfriend button on any card to save her. Click again to remove.
- Filters: search by name (or venue on mobile), filter by venue, and Saved only to show just the ones you've bookmarked.
- Sorted by consistency (days worked in the last 30, more reliable first), then name.
- Girlfriends are scoped per-bar. Saving Pond on your Catflaps bar doesn't save her on your Brasshouse bar, each bar has its own watchlist and gets its own push notifications. Switch bars in the header to see each list.
Presence notifications
Each time the presence poller runs (every ~15 minutes), any saved girlfriend detected on shift today fires a 💕 FYI notification into your Inbox, "Aom is working tonight at Catflaps". One notification per girlfriend per day per bar, so you don't get spammed. FYI notifications auto-clear when you open the Inbox.
PWA push (opt-in)
Girlfriend detection is the only feature in the game that sends a Web Push / PWA notification. If you've installed the game on your phone and allowed notifications, the first time a saved girlfriend clocks in for the day you'll get a system-level alert (the kind that lights up your lock screen). Tapping it opens your Girlfriends page deep-linked to the right bar. Everything else, captain reminders, matchup updates, chip expiry, stays in-app only so push fatigue never earns us an uninstall.
What it costs
Nothing. No slot limit, no balance deduction, no wage obligation. Shortlisting a hundred girlfriends is fine.
Girlfriends vs Shortlist vs Roster
| Layer | Scope | Costs you | Effect |
|---|---|---|---|
| Girlfriends | Your whole account (cross-bar) | Free | Inbox ping when present |
| Shortlist | Per bar | Free | Candidate tracking for future hires |
| Roster | Per bar | Hire fee + nightly wages | Actually earns revenue |
Privacy: Girlfriends are a personal bookmark list, nobody else can see who you've saved. Unlike the bar-level Shortlist (which can influence market-value displays on Scouting), Girlfriends is purely client-facing and never leaks into any public endpoint.
Find it: Sidebar → 💕 Girlfriends.
🏅 Achievements
Complete missions to earn achievements and bonus cash rewards. There are 50+ achievements across 6 categories. Highlights below, the full list with progress bars is on the Achievements page.
Milestones
- 🌅 First Night, Complete your first day of business
- 📅 One Week In / 🗓 Monthly Regular / 💯 Century Club, Survive 7, 30, 100 days (+฿100k / ฿250k / ฿1M)
- 🏘 Empire Builder / 💎 Tycoon / 🎩 Monopoly, Own 3 / 5 / 10 bars in a group (+฿100k / ฿500k / ฿2M)
- 🏰 Mogul / 🛕 Magnate / 👑 Kingpin, Own 15 / 20 / 30 bars in a group (+฿4M / ฿8M / ฿15M). The empire ladder past 10 for the truly committed.
- 👑 Legacy Begins / 🏆 Veteran / 🎖 Living Legend, Reach prestige level 1 / 3 / 5
- 🗳️ Past Mayor, win the Mayor of Soi Sabotage election, permanent badge on the Profile page.
Earnings
- 💰 Millionaire / 💎 Diamond Hands / 🏦 Bar Tycoon, Reach ฿1M / ฿5M / ฿10M balance
- 🪑 Home Improvement, Buy your first upgrade
- 🏗 Going Big, Expand to a double unit
- 🍺 Cheers!, Redeem your first beer card
- 🤝 Stronger Together, Earn your first group-synergy bonus (+฿10k)
Roster
- 🔥 Heating Up / On Fire / 🌋 Unstoppable, 3 / 7 / 14-night hot streak (+฿5k / ฿25k / ฿100k)
- 👥 Full House, Fill your roster to max capacity (+฿10k)
- ✨ Synergy Seeker / ⚡ Double Synergy, 1 or 2 active venue synergies
- 🌍 Talent Scout, Draft from 5+ different venues
- ❤ Loyal Hire / Devoted, Reach +10% / +20% loyalty on any lady (+฿10k / ฿50k)
- 🏝 Take a Break / 🔗 Cross-Venue Vibes, First Week Off or Bar Intro training
- 🔎 Intel Gathered / 🗺 Cartographer / 🧭 Know Your Town, Unlock scouting intel on 1 / 5 / every venue
Combat
- 🏆 First Victory / ⭐ Hat Trick / 👑 Season Champion, Win 1 / 3-in-a-row matchups, plus a full season title
- ⚔ Group Victory, Win your first group matchup (+฿25k)
- 🃏 Playing Dirty, Use your first dirty trick
- Chip achievements, Play your first chip, a Wildcard, a Wage Strike, a Triple Captain, a Bench Boost
- 🎭 Notorious, Hit 4+ notoriety (police start raiding)
- ⚖ Served Cold, Redeem your first revenge credit
- 🎯 Pick Your Enemy / 🔥 Rival Sweep, Declare a rivalry, then win 3 matchups vs the same rival
- 🤖 First Blood, Beat the Rookie AI on your first matchup
Social
- 💃 Ladies' Night / 🚌 Bus Me There, Book a themed night (+฿5k each)
- 🔴 Four in a Row / 🎲 Hustler, Win your first Connect 4, then 5 lifetime wins
- 🎱 Pool Shark, Win your first pool game
Seasonal
- 💦 Songkran Survivor, Trade through a full Songkran holiday (13–16 April, +฿15k)
Story arcs (the personality achievements)
A second tier of achievements rewards specific story-ish moments the league throws at you. Most are one-shot, all post a flavour line to the Pattaya Turtle when you unlock them:
- 💢 Rude Awakening, beat a bar whose name made the Pattaya Turtle Hall of Fame ballot.
- 👮 Cleared by the Boys in Brown, survive a Police trick at notoriety 5+.
- 🐢 In the Paper, get a Letter to the Editor that mentions you by name published in the Turtle.
- 👥 Squad Goals, hit a Full House synergy on two bars in the same group, same week.
- 👑 King of the Hill, hold #1 on the leaderboard for 7 consecutive days.
- 🍹 Drinks for Democracy, be sitting mayor when your own policy is in effect.
- 🎭 Counter Puncher, halve an incoming group raid by counter-pledging in time.
- 🎉 Cabinet Reshuffle, fill every cabinet slot with staff from the same venue.
- 🏝️ Hometown Hero, stack 7+ ladies from a single venue (Full House) for 14 consecutive days.
- 🐍 Crossed Streams, captain three different ladies to a HIGH bucket in one week.
- 🍻 Bar of the Year nominee, finish top 3 in any Bar of the Year category.
- 🏆 Hall of Bars, win any Bar of the Year category.
- 🦙 Hippo Owner, buy the Rideable Moo Deng.
Check the Achievements page to track your progress. Checked automatically during daily processing.
New Achievements UX
- Next Up, the 3 achievements closest to unlocking, surfaced at the top.
- Category tabs and rarity % on every card (how many players have it).
- Player-favourite, pin up to 3 achievements to show on your public brochure.
- Progress bars on every measurable locked achievement.
- Gamer Score rollup, an aggregate score across all your earned achievements.
✨ Venue Synergies
Stack ladies and cashiers from the same venue to unlock synergy bonuses. These give a percentage boost to your total revenue. Freelancers do not count towards synergies.
Try it β Build synergies| Synergy | Requirement | Revenue Bonus |
|---|---|---|
| Trio | 3+ ladies/cashiers from the same venue | +3% |
| Squad | 5+ ladies/cashiers from the same venue | +6% |
| Full House | 7+ ladies/cashiers from the same venue | +10% |
Higher tiers replace lower ones, if you have 5 from one venue, you get +6% (not +3%). But you can stack synergies across different venues.
🔗 Bar Intro Night, the soft-bonus path
For ladies whose home venue isn't the one you're trying to stack, buy a 7-day Bar Intro Night at ฿20,000 to add +1 staff count toward an introduced venue's synergy threshold (in addition to their home venue).
- One intro per (your bar, target venue), intro-ing five ladies to the same venue still only adds +1 to that venue's count. The buff is a near-miss nudge (e.g. 6 → 7 unlocks Full House), not a way to fabricate a synergy from thin air.
- The Staff page blocks buying a duplicate intro to a venue that already has one active on this bar, so you don't waste ฿20k.
Near-misses panel
The Team Synergy panel (mobile + desktop) shows a Near misses row listing every venue with 1–2 staff and how many more you'd need to unlock the next tier (e.g. Club Fate · 2 · +1 for Trio). Makes the path to a bonus visible instead of leaving you to count rosters by eye. Cashiers count toward synergy; burnt-out staff are included; freelancers are not.
🔔 Ring the Bell
See a bar on the leaderboard having a great day? Give them a shout-out by ringing their bell.
- Tap the 🔔 icon next to any bar on the Leaderboard
- Ringing a bar's bell gives them a +15% boost on base drink sales (drinks × ฿160) for the day. Like every percentage modifier, computed off base, doesn't compound on top of themed nights / synergies.
Restrictions (the full list):
- Requires at least 500 lifetime drinks on your bar to unlock, newbies can't ring yet
- You can ring one bell per day (Thai business day, resets 9am Bangkok time), choose wisely
- The daily limit is per user, not per bar, if you own multiple bars, they share the one-per-day quota
- You can't ring your own bar's bell
- You can't ring a bar in your own group (but cross-group is fine, no “bigger bar” or mutual-bell rule)
- No size or rank restriction, small bars can ring the biggest bars on the board, and vice versa
Buy a Round (self-bell)
Need a boost and nobody's ringing? Buy a Round lets you ring your own bell by paying for the drinks yourself. Same +15%-of-base-drink-sales boost as a normal bell.
- Cost: 8% of last night's gross revenue, with a ฿5,000 floor for quiet nights / new bars. Big-earning bars pay more for the same boost.
- Cooldown: one self-bell per bar per week (7 days).
- Counts as your daily bell, you can't self-bell and also ring someone else's bar the same day.
Find it: Boosters → sits right under Tonight's Stack so it's visible on every Boosters sub-tab. (It used to live on /compete; that was moved when chips and self-bell were consolidated onto Boosters.)
🧾 Revenue Breakdown
On the Overview and Finance pages, your nightly revenue is broken down into each modifier line so you can see exactly where the money came from, and which mechanics are actually moving your number:
- Base drinks × ฿160
- Captain 2× multiplier (or 3× with Triple Captain)
- Venue events (stacked multiplicatively)
- Synergies per venue
- Seasonal theme boost
- Themed Nights (Ladies' Night, Tourist Bus, Pool Tournament, Bar Crawl, Birthday Party, Hog Roast is cosmetic and adds no revenue mult)
- Weekly event modifier
- Prestige bonus (+2% per retired bar, lifetime, capped at +10%)
- Loyalty per-lady uplift (capped +20%)
- Streaks as a bonus on base drink sales (drinks × ฿160), capped at +50%
- Dirty trick debuffs if you got hit (Police: -30% of drink sales, Bad Review: rate ฿160 → ฿120)
- Bell +15% of base drink sales if someone rang you
- Minus lady wages, cashier wages, any notoriety raid penalty, and the bankroll tax if your balance is above ฿20M
If a number looks off, this is the first place to check.
📢 Discord & Alerts
Big moments in Pattaya get broadcast to the community Discord channel so rivals can react in real time. Alerts are intentionally one-line, enough to gloat or retaliate, never enough to leak private balances or per-lady drink counts.
Alerts that fire today
| Trigger | What posts |
|---|---|
| 🍸 Bar opens | New bar welcome message with owner and logo. |
| 🃏 Chip activated | Any of Wildcard / Wage Strike / Triple Captain / Bench Boost. |
| 💃 Ladies' Night booked | Which bar, what date. No cost leaked. |
| 🚌 Tourist Bus booked | Which bar, what date. Flavour reminds people about the 8-girl floor. |
| 🍖 Hog Roast / 🎱 Pool Tournament / 🍻 Bar Crawl / 🎂 Birthday Party | Bar, event, date and a one-line flavour. Cancellations also post. |
| 💦 Seasonal window opens | Songkran, Loy Krathong, Countdown Week, Chinese New Year, once per year per theme. |
| 🔔 Bell ring | Target bar tagged so the community sees incoming support. |
| ⚔ Rivalry declared | Both bar names, the 1.5x matchup bonus flag. |
| 📹 CCTV catches a trick | Defender has CCTV → attacker named and the trick named. Without CCTV, attacks stay anonymous. |
| ⚖ Revenge credit redeemed | Avenger, original attacker and the trick used. |
| 💂 Security Guard hired | So rivals know cleansing is available. |
| 📹 CCTV installed | So attackers know they'll be named. |
| 🏗 Double Unit expansion | Major strategic investment. |
| 🃏 Extra Trick Slot bought | Signals someone is scaling up sabotage capacity. |
| 💸 Marketplace purchase | Buyer, target bar, sale price. |
| 👑 Bar retired | New prestige level and champion titles (if any). |
| 📣 Rare achievements | Century, Champion, Tycoon, Empire Builder, not every achievement, just the headliners. |
| 🏆 Weekly awards | Matchup winners, bonus payouts. |
| 📊 Daily digest | Top-5 bars and biggest movers, once a day at 9am Thai. |
| 🎲 Weekly random events | Bar Crawl, Rainy Season, Celebrity Visit, etc. |
| 🗳 Mayor election action fired | When a candidate fires a daily action (Big Rally, Smear Ad, Cook the Books, Door Knock, Damage Control), an in-character Pattaya Turtle headline drops in the channel. |
| 🗝 Mayoral decree issued | Sitting mayor fires one of their three manifesto pledges as a decree, posted with a Pattaya Turtle flavour line. |
What deliberately stays silent
- Hiring / firing staff, too frequent, too boring.
- Feed posts, reactions, replies, that's already a social space, no need to echo into Discord.
- Bench swaps, training, notification acks, settings, music style changes.
- Scheduled tricks (they announce when they fire, not when queued).
- Cosmetic upgrades (pool table, dice cup, sound system).
Privacy: No bar's balance, daily/weekly earnings, or per-lady drink counts are ever broadcast. The digest uses buckets and ranks rather than raw ฿ totals for non-winning bars.
❔ Help Tooltips
The small ? icons scattered across dense panels used to open a new browser tab for every click. Now they pop an inline tooltip bubble right next to the control, explaining what the thing does in two sentences.
Each tooltip includes a "Learn more →" link that deep-links to the relevant section of this docs page, so a single click gets you the explanation and a second click gets you the full context without losing your place.
Bonus: there's now a themed 404 page with CTAs back into the main app, in case you do manage to break a link.
❓ Questions?
Stuck on something that isn't covered here, or just want to shout about a huge matchup win? Drop it in the Feed, every bar owner can see and react. The devs read it too.
Quick FAQ
When do days process? Yesterday's data is processed automatically at 9am Thai time (UTC+7) every day. Revenue, wages, matchup scores, streaks, events, synergies, and market values all update at that time. Freelancer hires are instant and take effect the next processed day.
What happens if I run out of money? Your bar keeps running but you won't be able to hire new ladies, buy upgrades, or create new bars. Pick up freelancers (they're free!) and wait for a good event night.
Can I start over? Yes. Go to your Profile page and use the Reset Account button at the bottom. You'll need to type "delete" to confirm.
What's the Beer Card? It's a real reward. Earn ฿5,000,000 in-game, buy the Beer Card upgrade, and redeem it for an actual beer card at any Marine Entertainment venue. One per account, like every real-world prize.
❓ FAQ
Can I sell my bar?
Yes, list it on the Marketplace from the Upgrades page (minimum ฿500,000 listing price; bar must have earned 2,000+ lifetime drinks). Buyers pay from their active bar's balance and inherit your lifetime stats; only the roster wipes. Try it β
What happens when I retire?
Retiring deletes the bar (balance, roster, chips, matchup history all gone) and gives every other bar you own (and any future bar) a +2% drink earnings bonus. The bonus is lifetime, it stays on your account permanently and never decays. Stack up to prestige level 5 (max +10%, locked in for good). Raw drink counts and wages are unchanged, the bonus shows up as a separate Prestige line on the Earnings breakdown. See the Prestige section for full criteria and details.
How do chips reset?
Season chips are split into two tranches. Tranche 1 must be used by the end of its window or they expire; Tranche 2 unlocks later in the season. At the end of every season all chips reset. See Season Chips. Try it β
Why did my earnings drop?
The Revenue Breakdown on the Finance page shows every modifier stacked, a dirty-trick debuff, a missed captain pick, or a bad synergy mix are the most common culprits. Try it β
When do days process?
Yesterday's data processes automatically at 9am Thai time (UTC+7). Revenue, wages, matchup scores, streaks, events, synergies, and market values all update then. Freelancer hires are instant, the next processed day counts their drinks.
What's the Beer Card?
A real-world reward. Earn ΰΈΏ5,000,000 in-game, buy the Beer Card upgrade on the Upgrades page, and redeem it at any Marine Entertainment venue. One per account, the cap is shared across every bar you own.
Can I start over?
Yes. Go to Profile and hit Reset Account, you'll need to type "delete" to confirm.
How do I join or leave a Bar Group?
Groups auto-form when you own 2+ bars. From the Bar Group page, use the Settings tab to edit, invite or disband. Try it β
Why am I always on the wrong bar after I log in?
You shouldn't be, anymore. Logging back in lands you on the last bar you were managing, not whichever bar happens to have the lowest id. The active-bar choice is persisted whenever you switch via the dropdown, the marketplace, the group page, or any URL with ?bar=<slug>.
What's the difference between a Shortlist and a Girlfriend?
Shortlist is per-bar, lives on Scouting, and is for ladies you're considering hiring. Girlfriends is per-bar but cross-venue, lives on /girlfriends, and pings your inbox (or push, if installed) when a saved lady clocks in. They serve different jobs.