A lane off Street 271, Phnom Penh, twenty to seven in the evening. School let out an hour ago and eleven of your eighteen seats are already taken. A boy flattens a 2,000 riel note on the counter and asks for an hour. The next one in line holds up his phone with ABA open, waiting for you to turn the QR stand around.
Two customers, same price. Two completely different jobs for your counter.
Almost everything written about opening a net house in Cambodia stops at the shopping list. Rent near a school, eighteen machines, a router, one air-con unit, a sign with your shop name in Khmer and English. Then the shutter goes up and the real work starts, and the real work is keeping eighteen seats earning while the money arrives as cash, as QR and as credit somebody topped up last Tuesday.
Rows of PCs filling up at a Phnom Penh net house in the early evening
What a net house sells that a phone doesn't
Cambodia plays on phones. Mobile Legends, Free Fire and PUBG Mobile are what most of the people walking past your door already have installed, and they can play them sitting on a plastic stool at home for nothing. So the old pitch is gone. Nobody is paying you for access to the internet any more, because the internet is in their pocket and the data package is cheap enough.
What they cannot get at home is everything else.
A 24-inch screen instead of a 6-inch one. A real mouse. A line that can pull down a 60GB update before Friday instead of chewing on it for three days. Air-con at four in the afternoon in April. And a table where five friends sit together and shout at each other, which is the actual product and the reason the seats in the middle of the room fill up before the seats against the wall.
Once you see it that way the floor plan changes. Two blocks of five or six seats facing each other earn more than eighteen seats in a straight line against a wall, because groups pay for the group, not for the chair. On the PC side the titles that keep a Cambodian room busy are Valorant, CS2, League of Legends and CrossFire, which local players will call Mission Against Terror if they came to it through the mobile version. Wild Rift pulls in the MLBB crowd who want a bigger screen.
Keep one or two seats near the counter for the person who just needs to print something or fill in a form. They pay for fifteen minutes and they come back. A net house that can also print, scan and top up a phone is the shop people remember when they need something at short notice, and that memory is worth more than the forty cents the print job earned.
The counter runs in two currencies
Here is the thing that catches out anyone who has run a shop somewhere else: you price in dollars and you get paid in riel, and both of those are correct at the same time. The board on the wall says what an hour costs in dollars. The boy hands over a riel note. You give change in riel at roughly 4,000 to the dollar, because small dollar notes are scarce and nobody wants coins.
Which means your price points are not free. They have to land where one note covers them cleanly, or every single transaction turns into arithmetic while three people wait behind. Rates vary street by street across Phnom Penh, Siem Reap and Battambang, so the useful exercise is not reading an average, it is walking into the three closest shops to yours and writing down what they charge. Then price against them. (A net house two streets away with better chairs and worse internet is not your competitor on price, and pricing as if it were is how rooms end up cheap and empty at the same time.)
The deeper fix is to stop making change at all.
A prepaid balance does that. The customer tops up, the balance sits on their account, and time comes out of it by the minute while they play. No change, no coins, no rounding argument at eleven at night when the shop is full and the kid swears he only played forty minutes. Nobody argues with a number. This is the part the cafe management side handles for you, along with who they are, what they played and what they have left.
The balance follows the person, not the seat. When seat 9 has the mouse that sticks and the customer moves to seat 14, his minutes move with him and nobody has to write anything down.
One detail that decides whether the whole thing works: set your top-up discount tiers on riel notes, not on dollar amounts. A tier at 20,000 riel is one note. A tier at $5 is not, and your staff will be doing conversion in their head forty times a night until they quietly stop offering it. In practice the shops that get this right see the same customers top up bigger amounts less often, which is exactly what you want.
Diagram showing cash and QR top-ups feeding one member balance billed by the minute
What changes when the money arrives by QR
Scan-to-pay is no longer the modern option in Cambodia. It is the default. KHQR runs on the Bakong system, it has been around since 2022, and by 2026 more than 1.5 million merchants across the country accept it, from riverside noodle carts upward. It handles riel and dollars both, and ABA Pay is the rail most of your customers will be using.
For a net house this changes something that sounds small and isn't. The cash drawer stops being your record of the day.
It also changes what a busy hour feels like. Cash takes ten seconds and a bit of counting; a QR top-up takes four seconds and then a pause while both of you wait for the confirmation to appear, and that pause is where a distracted staff member forgets to put the amount into the system at all.
Half your top-ups now land in a bank app and never touch the counter, so at closing you are comparing two numbers instead of counting one: what the bank shows received today, and what the system shows topped up today. When those two agree, the day is clean. When they don't, you want to find the gap that same night, while the person who was on shift is still standing there.
(And yes, check that the staff are actually recording the top-up at the moment the QR clears, not five minutes later when the queue dies down. Five minutes later is where the gaps come from.)
Small thing, learned the hard way: stand the QR sign up facing the customer instead of laying it flat on the counter. A code lying flat under a ceiling fan, with glare on it from the tube light, makes every customer lean over and hunt for focus. Stood upright at the edge of the counter, they scan it without breaking stride.
The hours nobody pays for
A net house near a school runs on the school timetable, not on office hours. The lunch break brings a rush around half eleven that lasts until one. The real rush starts when class ends and holds until eight or nine. Mornings are close to dead, and Sunday behaves like a different business altogether.
Dead mornings are not wasted time. They are the only block in the week when you can update games, wipe down keyboards, check which fans are making noise and count what you actually have in the drawer, without anyone waiting.
Then there are the weeks where the whole country moves. Around Khmer New Year in April, and again at Pchum Ben, students go home to the provinces. If your shop sits near a university in Phnom Penh, those weeks empty out. If your shop is in a provincial town, those same weeks are the busiest of your year, because everyone came home and there is nothing else to do in the afternoon heat.
To be fair, this is one of the few things about the business that is genuinely easy to plan around. You know the dates a year ahead. Owners who run two shops, one in the capital and one back home, end up with two peaks that never collide.
Air-con or PCs: what eats the power bill?
The air-con. It isn't close.
Electricity in Cambodia runs around US$0.15 per kWh, with residential tariffs in the range of 610 to 730 riel per kWh and medium commercial customers on EDC transformers sitting near 718 riel. That is high for the region, and it lands on a business that has to stay cold from ten in the morning until late at night or people walk out.
So the money is not in switching off a PC here and there. It is in not cooling an empty half of the room. Through the slow middle of the day, move the customers you do have into one block of seats, shut down the rest from the admin panel, and run the air-con on that zone only. It feels petty the first time you do it. It stops feeling petty when you see a month of it.
The part people get wrong is deciding which seats are idle by looking at the room. Eyes say the floor is half full. The panel says four sessions are active and six machines are sitting logged in with nobody in the chair, which is a different number and the one you can act on.
Rainy season adds the other tax. Cuts are short but they are frequent, and a server that goes down mid-session takes the whole floor's timing with it, so a UPS on the server and the switch is not optional equipment. Sessions that were running when the power dropped should still be there when it comes back, with the right minutes left on them, because the alternative is eighteen arguments in the same ten minutes.
On hardware I am deliberately not naming models, because anything specific enough to be useful goes out of date faster than this article will. For a current list that fits eighteen seats and what is actually on sale in Phnom Penh right now, ask the live chat team and they will put one together.
Patch night on a shared line
One business line. Eighteen machines. A 60GB update that dropped this afternoon.
If you let all eighteen pull it at once, you have lost the evening, and if it happens on a Friday you have lost the best evening of the week. Everyone who has run a room like this knows the feeling of walking the row at midnight checking whether machine 12 stalled at 71%.
The way out is to stop downloading the same file eighteen times. With a diskless setup the machines boot from a single image kept on the server: you update that one copy, restart the floor, and every seat comes back identical without anyone touching a keyboard. CCBoot is the piece that does this part, and it sits underneath the billing side rather than replacing it. There is already a Cambodian venue running its floor this way if you want to see the shape of it.
Even without changing anything, schedule the big pulls for the dead morning. That is what the dead morning is for.
Server, switch and UPS in the back room of a small Cambodian game shop
The shift ends with a number
Counter staff in this business are usually young, often related to you, and rarely there for three years. That is normal and it is not a problem, as long as the shop does not depend on what any one of them remembers.
Per-shift reports do that. Whoever is on duty closes their shift, the numbers come out for that shift alone, and the next person starts clean. Takings, top-ups, sessions, hours sold. If something is off, it is off inside one six-hour window with one name on it, which is a much shorter conversation than a month-end mystery.
Cambodia makes this easier than most places because everyone already lives on Telegram. The shift report screenshot goes into the group, you see it from wherever you are, and nobody has to install anything new or learn a workflow. It also means a net house owner can be at a wedding in Kampong Cham on a Saturday and still know what the room did between six and midnight, which is the whole reason for doing any of this.
Close the shift before the person leaves. Not after. After is a message at eleven at night and a shrug the next morning.
What the software costs for an 18-seat net house
Per seat, per month, priced in US dollars:
Plan | Monthly | Annual |
iCafeCloud | 2.50 USD | 2.00 USD |
iCafeCloud + CCBoot | 4.00 USD | 3.20 USD |
Annual payment works out to a 20% discount. For eighteen seats on the annual plan that is 36 dollars a month for the billing side, roughly 144,000 riel, or 57.60 dollars a month if you take the diskless part as well. Put next to your power bill and your rent, it is the smallest line in the whole operation, and the only one that hands you numbers back instead of consuming them. The full per-PC pricing is on the site.
Trying it costs nothing. A trial licence starts at ten PCs, runs 15 days, and extends to 30 on request. The licence comes through Telegram or WhatsApp, so activation stays inside an app you already have open. Behind it there are more than 3000 venues across 90-plus countries and support running 24 hours a day, which matters on a Saturday night when the room is full and something needs an answer now.
Worth doing the sum in riel as well as dollars before you decide, because that is the currency the shop actually breathes in: 144,000 riel a month, spread across eighteen seats, is about 8,000 riel per seat. Most net house owners can say instantly whether a seat earns that back in a week, and the answer is usually yes before Wednesday.
Honestly, the fastest way to judge any of this is not to read about it. It is to run it on part of your own floor for two weeks and look at what comes out.
Start with one row
Take ten machines. Two weeks. At the end, look at three numbers and nothing else.
How many paid hours each seat actually sold, against how many hours it sat powered on. How far apart your bank app total and your top-up total ended the week. How long patch night took compared to the last one you did the old way.
If those three numbers say what you expected, you already know what to do with the rest of the room. If they say something else, better to find that out on ten machines in April than on all eighteen in October.
Apply for a trial licence, put it on one row, and let your own net house tell you the answer.




