Set up oncePriced the way your board reads

THE EVENING THAT DECIDES EVERY OTHER ONE

Setup is the one part of this product you do once, in a hurry, before you have any reason to trust it · and every number you get wrong here is wrong on every invoice afterwards. So it is built to be finished in an evening and corrected without fear.

Section by section

OPENING A CAFÉ, IN ORDER

Who you are, what tax you charge, what you charge for time, and only then the room and the people. The rate card below is live · move the clock and the rung, the bonus minutes and the overtime flag are computed by the same module a café's real sessions are billed through.

Northgate Arcade is invented. A café's setup is its commercial position · what it charges and what it pays staff to see · so no real one appears here.

Who you are

The name that leaves the building

What a customer sees, and what your own screens stop showing

Your business name goes on every invoice, and your timezone decides every day boundary, every happy hour and every report window after it · read shop-local rather than off whatever the server thinks the time is. Two switches then decide how much product you actually run: a café with no counter turns food and drinks off, and the whole till, menu and its analytics lines go with it.

  • check_circleBusiness name printed at the top of every invoice
  • check_circleA curated timezone list, with Detect filling it from the browser
  • check_circleOwner mobile and email live on the person · only they can change them
  • check_circleTurning food and drinks off hides it everywhere, and deletes nothing

What changesA pool hall that does not sell snacks stops looking at a till it will never use, without anyone having to explain that the feature is optional.

respawna.com / admin / setup

Business

Business profile

Business name

Northgate Arcade

Printed at the top of every invoice.

Location

Bengaluru

Detect fills this from the browser, and you can rename it.

Timezone

Asia/Kolkata

Every day boundary, happy hour and report window is read in this zone, not the server's.

Owner contact

Only that owner can edit it

Mobile and email live on the person, not the shop.

What the café shows

Sell food and drinksOff hides the till, the menu, the snack button and the F&B lines in analytics. It hides them · nothing is deleted.
Show LunaThe assistant in the corner. Café-wide, and it applies on the press rather than waiting for Save.

One form, one Save · except the two switches, which apply on the press because a café-wide capsule that waits for a form submit reads as broken.

What you charge on top

GST, or honestly nothing at all

Whether your invoices carry tax, and which tax

One switch decides whether invoices print a tax line. Off, they do not · a café that is not registered is not made to look like one that is. On, the rate is a field rather than a hardcoded eighteen, and place of supply is what decides CGST and SGST against IGST. Leave that blank and the first two digits of your GSTIN answer it for you.

  • check_circleCharge GST on or off, per café
  • check_circleRate is a free field · not everyone is on 18%
  • check_circlePlace of supply picks CGST + SGST over IGST
  • check_circleA default SAC for gaming time, blank if you would rather not

What changesRegistering later is one switch and one field, not a migration · turning GST off never throws away the GSTIN you already saved.

Business · tax

Tax & invoicing

Charge GST on invoicesOff, and invoices print no tax line at all. A café that is not registered is not made to pretend it is.

Rate

18%

A free field, not a hardcoded 18.

GSTIN · optional

29ABCDE1234F1Z5

Switching GST off later never loses it.

Place of supply

29 · Karnataka

This is what picks CGST + SGST over IGST. Leave it blank and the first two digits of the GSTIN decide.

On the document

Default SAC · gaming time

998439

Blank stays off the invoice rather than printing an empty field.

Invoice footer

Pre-filled, not blank

It ships with wording that works, so nobody has to invent it on day one.

The part that is really your business

You sell durations, not hours

What a customer is charged for the time they actually played

Nobody's board says one rate an hour. It says thirty minutes for eighty, an hour for a hundred and forty, and two players for something that is not double either. So a rung is the total for a whole duration, head count is its own column you type yourself rather than a multiplier the software guesses, and a cell you leave blank simply is not sold.

  • check_circleDurations down, head counts across · both are yours to set
  • check_circleRound up past a rung, or only count rungs fully reached
  • check_circleA grace window forgives overshoot, hard-capped at 30 minutes
  • check_circlePast the top rung the ladder keeps climbing instead of freezing

What changesYou price the way your board already reads, so nobody has to translate a printed card into an hourly rate that was never true.

Pricing · rate card

The rate card · durations down, players across

Duration1 player2 players
30 min ₹80₹140
60 min billed₹140₹250
90 min ₹195₹350
120 min ₹240₹430
180 min ₹330₹600

What the engine says · 65 minutes, 1P

Rung billed

60min

the duration they paid for

Bonus earned

0min

no tier reached yet

Session

₹140

straight off the card

Grace

7min

Overshoot inside this is free · capped at 30

Move the clock. The rung, the bonus minutes and the overtime flag are computed by lib/pricing.ts on this page · the same module the café's real sessions are billed through.

Quiet afternoons

Cheaper at four, and it stays cheaper

How a discount window behaves for somebody already playing

Happy hour is a second set of prices on the same durations, per day, in your own timezone. It is resolved once when the session starts and then locked for that session's life · walk in at half past three and the window closing at four does not reprice you halfway through. Bonus time is the other lever: play past a threshold and earn free minutes, with only the highest tier you reach applying.

  • check_circleWindows per day, in shop-local time, end exclusive
  • check_circleResolved at start and locked · a closing window never repriced a live session
  • check_circleA window crossing midnight is stored as two, and it tells you before you save
  • check_circleBonus tiers do not stack · the highest one reached wins

What changesYou can run a genuine afternoon offer without a member ever watching their price change under them mid-session.

Pricing · happy hours

Windows · shop-local, end exclusive

Mon12:00 – 16:00
Tue12:00 – 16:00
Wed12:00 – 16:00
Thu12:00 – 16:00
Fri12:00 – 15:00

The same ladder, happy prices

30 min

₹60

₹80

60 min

₹110

₹140

90 min

₹155

₹195

120 min

₹190

₹240

180 min

₹265

₹330

Bonus time · play this long, get these free

Past 120 min

+15min

Only the highest tier reached applies

Past 180 min

+30min

Only the highest tier reached applies

Day one

Photograph the board you already have

How long the worst part of setup takes

Typing a duration by head-count matrix for every game type is the reason a café stalls on day one. So point a camera at the price card on your wall and it reads the grid · durations down, head counts across. It refuses to invent a price it cannot see, and it will not guess a game type it cannot match. Nothing is saved until you have looked at every number.

  • check_circleReads a duration by head-count grid, not one flat hourly rate
  • check_circleThe photo is read and dropped · it is never stored
  • check_circleIt declines rather than inventing a number it could not read
  • check_circleOwner only, and nothing reaches the database before you save

What changesThe setup step most likely to end in a half-priced café becomes a review rather than an evening of typing.

Pricing · scan

photo_cameraStep 1Photograph the boardThe one already on your wall. It is read in the request and dropped · the image is never stored.
grid_onStep 2It reads the gridDurations down, head counts across · the same matrix the rate card wants, not one flat hourly rate.
fact_checkStep 3You check every numberNothing is written until you save. It refuses to invent a price or guess a game type it cannot match.

Owner only, and it holds back any game type that already has happy-hour prices · the two scopes share one set of durations, so a rewrite there could re-point prices you set by hand.

Reasons to come back

Points and plans, kept small on purpose

What you can promise a regular, and what the software will actually enforce

Loyalty is two numbers: what a point costs in spend, and what somebody gets for signing up. Food and drink never earns, because a snack is not loyalty to your floor. Membership plans bank hours and take a percentage off the rate card · those two fields do something mechanically, and the perk lines you write are printed on the member's card as promises you keep in person.

  • check_circleSpend per point and a welcome bonus · that is the whole earn model
  • check_circleGaming and membership spend earns, food and drink does not
  • check_circlePlans bank hours and discount the rate card
  • check_circleA plan cannot be deleted while anybody is still on it

What changesYou can tell a regular exactly what their membership does, because the two things it changes are the two things the software actually applies.

Pricing · loyalty and plans

Loyalty · the whole model is two numbers

Spend per point

₹10= 1 pt

Gaming and membership spend on paid invoices. Food and drink never earns.

Welcome bonus

500pts

Granted once at signup · zero means no bonus.

Redemption is fixed rather than tunable: 1,000 points is ₹100 of wallet credit, taken at the counter.

Membership plans

14 active

WEEKNIGHT

Monday to Thursday, after work

₹699/mo

6h banked · 5% off rate card

  • check_circleSix hours banked a month
  • check_circleWeeknight seat held to 8pm
  • check_circleQueue ahead of walk-ins
31 activeMost popular

ALL FLOOR

Any rig, any table, any day

₹1,299/mo

12h banked · 10% off rate card

  • check_circleTwelve hours banked a month
  • check_circleSwap stations mid session
  • check_circleOne house drink a visit
6 active

HEADSET

The VR bay, kept free for you

₹2,199/mo

10h banked · 15% off rate card

  • check_circleTen hours banked a month
  • check_circleVR bay reserved on request
  • check_circleGuest seat on tournament nights

Banked hours and the discount are the two fields that do something mechanically. The perk lines are printed on the member's card · they are promises a human keeps, and the product does not pretend to enforce them.

The room itself

Your floor, named the way you say it

How the grid on the Live Ops screen comes to exist

Every station has a name, a zone, a game type and a seat count from one to eight. Zones are whatever you call them, because a café that says IMMERSION LAB should not be made to pick MAIN FLOOR from a list. Add one and the sheet stays open, so a twelve-rig bay is one sitting. On Windows rigs, pairing a lock agent turns the countdown into something the machine itself enforces.

  • check_circleName, zone, game type and one to eight seats per station
  • check_circleRetire a station instead of deleting it · deleting waits until it is offline
  • check_circleA station cannot be retired out from under a live session
  • check_circleLock agents pair with a single-use code that is shown once

What changesThe floor on screen matches the floor in the room, including the names your staff already shout across it.

Stations

7 stations · 4 zones

RIG-01PC BAYPC / System Game1Plocked
RIG-02PC BAYPC / System Game1Plocked
RIG-03PC BAYPC / System Game1Psilent
PS5-01CONSOLE BAYPlayStation (PS5)4P—
PS5-02CONSOLE BAYPlayStation (PS5)4P—
VR-01IMMERSION LABMeta Quest VR1P—
POOL-01CUE SPORTSBilliards Table4P—

PC locking · Windows rigs only

Pairing code

15 min

Single use, shown once · only a hash reaches the database, so there is no showing it again.

Counted online

30 s

A rig that has not reported inside this reads as silent rather than as fine.

Consoles

Out of scope

A PS5 cannot be locked in software, and the empty state says so instead of implying it can.

Who opens what

Staff see the floor, not your margins

What a new hire can reach on their first shift

There are two roles. Staff run sessions, take payments, issue invoices and refunds and manage members, events and expenses. They cannot touch pricing, GST, loyalty or anyone's role, and that is enforced in the database rather than by hiding a button. On top of the role, each section can be switched off for one person · and switching it off closes the routes underneath it, bookmarks included.

  • check_circleTwo roles, and the invite screen says what each grants before you send it
  • check_circleTen per-person switches, including Luna, the assistant
  • check_circleA deny list · a section shipped next month is visible by default
  • check_circleApplies instantly, and an owner can never be restricted

What changesYou can hire for the counter without handing over your cost base, and without a conversation about which screens not to open.

Team

Two roles, and what each one gets

Staff

Run sessions, take payments, issue invoices and refunds, top up wallets, manage members, events and expenses.

Cannot change pricing, GST, loyalty rates, plans or anyone's role.

Owner

Everything staff can do, plus pricing, tax, plans and inviting further owners.

Per-section access · IMRAN

Live Ops
Food & Drinks
Members
Events
Billing
Expenses
Analytics
Shop IQ
Shop Setup
Luna

It is a deny list, not an allow list · everything is on until you switch it off, so a section that ships next month is visible to your existing staff rather than invisible until somebody remembers to grant it. Switching one off removes it from that person's sidebar and stops the routes under it opening, bookmarks included. Owners never get the pill, because an owner cannot be restricted.

The bit that lets you relax

A PRICE CHANGE CANNOT REACH A RUNNING SESSION

The single thing that makes setup survivable is that it is not permanent and not retroactive. When a session starts, the ladder it will be billed against, the happy-hour scope, the bonus tiers and the grace window are copied and frozen onto that session. Nothing you do afterwards reaches back.

lock_clock

Frozen at start

Rewrite the whole rate card at eight in the evening with a full floor. Every running session keeps what it began on.

schedule

Shop-local, always

Day boundaries and happy-hour windows are read in your timezone, not the server's · the bug that silently misprices every evening offer.

history

Retire, do not delete

Stations retire rather than vanish, and a plan somebody is on cannot be removed. Your history keeps its meaning.

In the console

FIVE TABS, ONE EVENING

respawna.com / admin / setup
Shop Setup on its pricing tab: a rate card reading six of six game types priced, loyalty at ten rupees a point with a five hundred point welcome bonus, and three membership tiers side by side with their monthly price, included hours and discount off the rate card.Shop Setup on its pricing tab: a rate card reading six of six game types priced, loyalty at ten rupees a point with a five hundred point welcome bonus, and three membership tiers side by side with their monthly price, included hours and discount off the rate card.
Asked before signing up

THE PRICING QUESTIONS

Can I price by the hour instead of by duration?expand_more

You can, by making your ladder one rung an hour · but almost nobody does, because almost no price board in India works that way. A rung is the total for a whole duration, so thirty minutes at ₹80 and an hour at ₹140 is expressible exactly as written. An hourly rate is the special case where every rung happens to be a straight multiple, and it is the case that loses you money on short sessions.

Do prices scale automatically when more people play?expand_more

No, and that is deliberate. Head count is a column you fill in yourself, not a multiplier. Real boards charge ₹60 for twenty minutes at one player and ₹180 for the same twenty minutes at four, which is three times rather than four · so the engine looks your price up instead of doing arithmetic on it. A head count you leave blank is simply not sold at that duration.

If I change my prices, does it change a session that is already running?expand_more

Never. A pricing snapshot is frozen the moment a session starts · the ladder, the happy-hour scope, the bonus tiers and the grace window · and it is that snapshot the session is billed against. You can rewrite your entire rate card at eight in the evening with a full floor and every running session keeps the prices it started on.

What happens when somebody plays past the longest slot on my card?expand_more

The ladder is extended one billing interval at a time at the marginal rate of your last real step, so an open session keeps climbing rather than freezing at the top price, and it is flagged as overtime on the invoice line so the counter can see what happened. If your ladder has a single rung or a flat tail, it falls back to that top rung's own average per-interval rate.

Does the price-card scanner just set my prices for me?expand_more

It reads your board into the same duration by head-count grid the rate card wants and shows you the numbers. Nothing is written to the database until you save · it refuses to invent a price it could not read, and it will not guess a game type it cannot match to one of yours. It is owner-only, and the photograph is read in the request and dropped rather than stored.

Can I stop a staff member seeing my expenses and profit?expand_more

Yes. On top of the Staff role, which already cannot change pricing, GST, loyalty or roles, each of the nine console sections plus Luna, the assistant in the corner, can be switched off for one person. It takes effect immediately and closes the routes underneath, so a bookmark to a hidden section does not open either. Owners cannot be restricted.

SET IT UP TONIGHT

Photograph your price board, check the numbers it reads back, and open tomorrow on your own rates.