Privacy Policy — Mahjong Table VR

Graphikate Private Limited, Singapore · Effective 7 July 2026 · Updated 24 August 2026

Mahjong Table VR is built to run without collecting your data. There are no accounts, no analytics, no advertising, and no tracking. We do not sell or share any personal information, because we do not hold any. There are two exceptions, both described below: whether you own the optional Online Pass purchase, which the Meta platform tells us, and a report you choose to send us about another player.

What stays on your device

Your display name, avatar choice, table-height preference, sound mix and other settings are stored in your browser's local storage on your own device. A random identifier is also stored locally so that if you disconnect from a friend's table, you can rejoin the same seat. None of this is sent to us.

Multiplayer and voice chat

There are two ways to play with other people. A friends table is one you open or join with a room code you share yourself. A public table is one you are matched into with players you do not know, by pressing "Play with people online". Both work the same way technically; the difference is who ends up at the table, and public tables carry the mute and report controls described below.

Playing with other people uses peer-to-peer WebRTC connections. Your game actions, name and avatar are sent directly to the other players at your table, and a third-party signaling service (PeerJS) briefly relays connection details such as room codes and network addresses to establish those connections. Game data and voice audio travel between players, not through our servers, and are never recorded or stored.

The microphone is used only if you enable voice chat, and only to stream your voice to the players at your table. If you decline the microphone permission, voice chat works in listen-only mode. You can mute or leave at any time.

Conduct at shared tables, and what reporting a player does, are covered in the house rules & terms.

Muting and reporting other players

At any table you can mute an individual player. Muting happens entirely on your own device, takes effect immediately, and is not announced to anyone.

You can also report a player. Reporting mutes them and blocks them permanently on your device: they are silenced automatically if you ever meet again, and if you are hosting they cannot reconnect to your table. That block is stored only on your device. Reporting also sends us a short message so that we can see when the same player is reported by several different people. That message contains the reported player's display name, the random device identifier described above for both you and the player you reported, the room code, the app version and the time. It does not contain any audio, any game content, or anything you have said — we do not record voice chat, and cannot listen to a table. Reports are read by us and are not shared with anyone else or used for any other purpose.

In-app purchases (Meta Horizon Store version)

The version of the app installed from the Meta Horizon Store offers one optional, one-time in-app purchase called Online Pass. The purchase is made through Meta's platform: Meta handles the checkout, payment and billing, and we never receive your name, payment details or billing address. To unlock the feature, the app asks the Meta platform (via the Digital Goods API) whether your Meta account owns Online Pass, and receives only a yes-or-no ownership status. That status is the only purchase-related data made available to us, it is used solely to enable the feature, and it is not combined with any other data, shared with anyone or used for any other purpose. Meta's handling of your account and purchase data is described in Meta's privacy policy.

Apart from this ownership status, we do not receive any user data from Meta. If we ever request access to further Meta platform data, this policy will be updated first to say exactly what is collected and why.

Hosting

The app's files are served by Cloudflare Pages, which keeps standard, short-lived server logs (such as IP addresses) to operate the service. We do not use those logs to identify you.

Children

The app is not directed at children under 13 and does not knowingly collect personal information from anyone.

Changes and contact

If this policy changes, the new version will be posted at this address with an updated date. Questions: annie@graphikate.com.