All-you-can-eat formats — Thai mookata, hotpot, Japanese buffet — live or die on two numbers: how long a table sits, and how many people sat at it. Get those right and the format prints money. Get them loose and you are giving away a third of your covers to guests who stayed two hours on a ninety-minute price.
Three mechanisms, not one
The mistake is treating this as a single “buffet mode”. It is three separate things, and they fail differently.
The timer is a property of the table. When the table is opened you record the head count and the start time. The floor map then counts down, shows the elapsed time on the table card, and turns the card red when the seating runs over. The host sees which tables are due without walking the floor.
The price is a dish. Make the buffet itself a per-person item — one line for adult, one line for each child tier if you use them. Open the table for two adults and three children and the correct covers are on the bill from the start. This also means the buffet shows up properly in your sales reports instead of hiding inside a manual total.
Child pricing is where markets differ and you should decide deliberately: some restaurants band by age, others by height, and both are common. Configure whichever one you actually print on the menu.
Extra time and extra people are items. A table that wants another thirty minutes gets a chargeable “extra 30 minutes” item added. A table that gains two more people gets two more covers added, and the buffet portions follow automatically. Both are ordinary lines on the bill.
The rule underneath: never touch the total
Do not let a server type a new grand total. The moment the amount is edited by hand, three things break at once — the day’s sales figure stops matching the dishes sold, your best-selling report goes wrong, and you lose the audit trail that tells you whether the extra thirty minutes was charged or forgotten. Manual total edits should be a manager-level permission at most; see stopping voids and price changes.
Rounds, waste charges and the pass
If you cap dishes per round, that is a check at ordering time. If you charge for uneaten food, that is another chargeable item. Both are configurable — but neither is collectable unless the rule is printed on the menu in the local language before the guest sits down. In some markets it must be printed in a specific language to be enforceable at all. The system can charge it; whether you may is a local question.
On the kitchen side, mark rounds so the pass can time the second wave separately rather than treating twenty dishes as one ticket. See kitchen tickets and stations.