Bam Good Time Mahjong Online
Play American Mah Jongg, NMJL
Free · Designed for iPad. Not verified for macOS.
Real American Mah Jongg online on the current NMJL card. Practice against smart AI with no sign-up, or play friends at a private table. Not tile-matching solitaire.
Real American Mah Jongg — the authentic National Mah Jongg League (NMJL) game, not tile-matching solitaire.
Bam Good Time Mahjong Online is a true four-player American Mah Jongg game built on the official NMJL card. Learn the real game against smart AI, or play live with friends.
No solitaire. No tile-matching. This is the real game — Charleston, calls, jokers, and NMJL-card scoring.
--- PLAY NOW, NO ACCOUNT NEEDED ---
Jump straight into Practice against AI opponents — no sign-up required. Sign in free to save your progress, track your skill rating, and play online.
--- FEATURES ---
◆ Practice vs Smart AI
Play a full American Mah Jongg game solo against AI that follows real NMJL strategy — Charleston passes, calling tiles, joker exchanges, and scoring. The best way to learn or sharpen your game.
◆ Play Online with Friends
Create a private table, share the code, and play a live four-player match. Empty seats fill with AI opponents, so you can start a game anytime.
◆ Official NMJL Card
Every hand follows the current National Mah Jongg League card. Authentic rules, authentic scoring.
◆ Portable Skill Rating
Sign in and your rating follows you across practice, online play, and the wider Bam Good Time mahjong community — one identity, everywhere you play.
◆ Game History
Review past games and track your progress over time.
--- PART OF BAM GOOD TIME ---
The game connects to your free Bam Good Time account — the community platform for American Mah Jongg players, clubs, and leagues at bamgoodtime.com. Play online here, then bring your rating to in-person games and events.
--- FREE TO PLAY ---
The game is free to download and free to play. This is a game of skill — there is no gambling, no wagering, and no real-money play of any kind.
——— LEGAL ———
Terms of Use: https://bamgoodtime.com/terms
Privacy Policy: https://bamgoodtime.com/privacy
Standard Apple EULA: https://www.apple.com/legal/internet-services/itunes/dev/stdeula/
more If you just wanna practice without signing up, you have the option to do that. I just downloaded it and I am only two days in and for beginners it is a great option without being pressured. It really helps you learn the hands. I gave it three stars because I’m not using the entirety of the app yet.
If you just wanna practice without signing up, you have the option to do that. I just downloaded it and I am only two days in and for beginners it is a great option without being pressured. It really helps you learn the hands. I gave it three stars because I’m not using the entirety of the app yet.
It’s been great for practice. I don’t care about the phone number. The entire Google world has my phone number, blood type and first born. This is great practice and still a change at the practice level. It hasn’t glitched - not once. It does move pretty quickly.
It’s been great for practice. I don’t care about the phone number. The entire Google world has my phone number, blood type and first born. This is great practice and still a change at the practice level. It hasn’t glitched - not once. It does move pretty quickly.
Not going to provide my phone number to play any game.
Not going to provide my phone number to play any game.
Closing a table while it says "Finding you a table…" no longer leaves your board jumping between two games.
Swipe a suggested hand away and the next closest hand on the card takes its place.
The suggested hands list now says you can claim the last tile you need from a discard with Mahj.
The rules page now explains both Charlestons, the blind pass, and how to skip the second Charleston in a practice game.
Small fixes behind the scenes.
1.1.30 4d ago
At an online table with computer players, you now get up to 30 seconds to make a call, and the countdown shows the time you really have.
The turn timer shows from its very first second.
The "on your card" line now says which numbers the hand is played with.
If the game turns down a move, it says which move.
Small fixes behind the scenes.
1.1.29 Oct 10
Online, the Charleston now shows who has already passed each round.
Online moves land where you meant them: a pass, Skip or Call that arrives a moment late no longer counts toward the next one, and a quick second tap no longer sends a move twice.
A player who comes back to the table is no longer shown as a computer player.
If the game turns down a move, it now tells you why in plain words.
Long player names no longer hide under the Charleston card or the close button.
In practice, a hand that runs out of tiles ends right away.
Small fixes behind the scenes.
1.1.28 Oct 6
The Rules Reference has a new section on declaring Mah Jongg: when the game declares it for you, and how to claim a winning discard with the Mahj button.
If you tap a tile to swap for a joker before you've picked, the game now tells you to pick first.
Small fixes behind the scenes.
1.1.27 Oct 3
When a timer runs out in an online game, you now see which tiles were discarded or passed for you.
The tile you just drew is now marked in online games too.
The offer to rejoin a game now appears only while your seat is still held, and a game that ended while you were away says so.
Joining an online game after the app has sat idle now works, and a player name that is already taken no longer says your sign-in expired.
Voice callouts no longer freeze the board, and on iPhones with a notch the leave button no longer hides behind banners.
1.1.26 Sep 30
Fixed a crash that could happen when opening the app or coming back to it.
1.1.25 Sep 27
On iPad, the suggested hands panel now opens above your rack instead of covering the top of it.
Tidied up the last few places the app still showed our old name, and the Privacy Policy link now goes to bamgoodtime.com.
1.1.24 Sep 18
Behind-the-scenes improvements to online play reliability and to how we catch problems, so issues get fixed faster.
1.1.23 Sep 13
Understanding where players get stuck — anonymous milestone journal (see Privacy)
The call banner now says what your tap will do, so claiming a discard no longer feels like it happened on its own.
1.1.22 Sep 8
Fixes from your reports:
• If your sign-in for online play had expired, the app said multiplayer was "temporarily unavailable" and left you waiting. It now tells you your sign-in expired and points you at Sign Out, which is the thing that actually fixes it.
• The Reconnecting and Connection Lost labels no longer print on top of the tiles-remaining counter. That corner shows one thing at a time, so both are readable.
• The banner now says when a pung is being withheld behind a kong, instead of leaving you guessing why a call did not go through.
• The hand-suggestions icon is available from the first Charleston pass, not only after it.
1.1.21 Sep 7
AT THE TABLE
- Fixed a freeze in the Charleston. On a blind pass, if more than one player passed fewer than three tiles, the table could lock up and never advance. Those passes now complete normally, with every hand ending the pass at the size it started.
- When a discard cannot be called, the banner now names the reason. If one of your own exposed melds is what rules the call out, it says which one — for example, "Your soaps rule this out" — instead of only saying the call would kill your hand.
- If you are one tile short of being able to claim, the banner now tells you so.
1.1.20 Sep 1
A new look for the app, and the table left exactly as it was.
THE NEW LOOK
Menus, buttons, cards and lettering have all moved to a new typeface and a new colour scheme, with one corner radius, one shadow and one press feel across the whole app. There is a new app icon. The playing surface itself was deliberately not repainted, so the tiles, the racks and the board read exactly as they did before.
TEXT SIZE AND LEGIBILITY
- Fixed a bug where larger text settings were applied twice, so text could render far bigger than you asked for and run over the board.
- The wall counter no longer grows off the edge of the screen, and the phase banner no longer grows onto a player's name.
- On phone, the discard island now sits centred on the pile it belongs to rather than on the whole board.
- The Report and Rules buttons are measured against the space they actually occupy.
AT THE TABLE
- A club table finds your club's live table again.
- If another player calls Mah Jongg without a winning hand, your own legitimate call on that tile still stands.
- A dead hand can no longer swap for a joker, and a courtesy pass your partner declines now reads as declined.
- When a hand is out of play, the app says why instead of quietly dropping it, and shows the printed card line when the hand's name is not on the card.
1.1.19 Aug 31
Suggested hands stay on screen while you decide.
When you are weighing whether to take a tile for an exposure, the hands you could still be going for no longer disappear at the moment you need them most. They stay up while you decide, so you can see what the call costs you before you make it.
1.1.18 Aug 25
• Calling a pung or kong now tells you when it would spend a Joker — the button says so before you commit, so you can back out if you'd rather keep it.
• Fixed: on a left-handed layout, the action buttons could draw over your own seat label.
• Fixed: the end-of-round button sometimes named a round the table hadn't reached.
• Fixed: the verified-badge tooltip could take over the screen instead of tucking under the badge.
• App names now match what you see in the App Store.
1.1.17 Aug 23
Finding a hand on your card is easier. When a hand's name doesn't appear on the printed card — the lines that cover every odd or even number — we now show the line the card actually prints underneath it, in the suggestions list and on the winning-hand screen.
If you expose a tile and it ends a concealed hand you were building, the hand no longer disappears from your suggestions without explanation — it stays, marked, and tells you why.
When a match has already ended, reconnecting now says so instead of blaming your connection.
1.1.16 Aug 19
Same game, new name. We're now Bam Good Time Mahjong Online — the name of the community your rating already lives in. Nothing else moves: same game, same account, same rating.
Also in this update:
• The calling window no longer pauses when only bots owe a call.
• The joker-swap cue names the colour and the rack it came from.
• A single or pair slot now says it cannot be called, rather than only that a joker cannot fill it.
• Printed hand names follow the card's digit order.
1.1.15 Aug 18
Calling and claiming
• The banner that appears when a tile is called now opens the claiming rules, and lands on the right section, so you can check what a call allows without leaving the table.
• That banner no longer names buttons that aren't on screen, so what it tells you to tap is what you actually see.
1.1.14 Aug 12
Club tables
• Tapping a "come play" notification after that table has already started now seats you at a fresh table for your club instead of dead-ending on an error — and tells you what happened, so you aren't left wondering why the table looks different.
• When a table can't be joined, the app now explains why in plain language ("The game has already started", "This room is already full") instead of showing a technical error code.
Getting back into a game
• Fixed a batch of cases where rejoining could leave you stuck — a dropped connection, an incoming call, switching apps, or picking a game back up the next morning.
iPhone
• Hand tiles no longer overlap the controls beneath them on smaller screens.
1.1.13 Aug 9
Rules accuracy at the table. If another player calls Mah Jongg without a winning hand, your legitimate call on that same tile now stands instead of being lost along with theirs. A dead hand can no longer swap for a joker. And a courtesy pass your partner declines now reads as declined.
1.1.12 Aug 6
Concealed hands are easy to spot.
The suggestions panel now shows the card's concealed (C) marker, so you can tell a concealed hand from an exposed one without leaving the panel.
Plus interface cleanup and stability work under the hood.
1.1.11 Aug 2
Discarding is fixed.
Tapping a tile to throw it now works the way you'd expect. The Discard button stays on screen for your whole turn instead of appearing only after you pick a tile, and tapping the same tile twice no longer un-selects it — which is what made the button seem to vanish just as you reached for it.
The tile you just picked up now has a dashed green outline, so a gold outline always means "this tile is selected" and nothing else.
The card's colors are now in the app.
Hand suggestions used to print a pattern's name in flat text, which quietly threw away the thing the printed card uses to tell you what a line needs — color. A line like 77 88 777 888 9999 prints across three colors, meaning three different suits, but as plain text it looked like something you could build in one or two. Now every group is tinted to its suit slot the way the card prints it, so a three-suit line reads as three suits at a glance.
You can reach the rules without leaving your hand.
There is now a Rules button on the board, and it opens with a plain explanation of what you can and cannot take from a discard: you need a pung, a kong, or a quint, or Mah Jongg. A pair will not do it, a single will not do it, you cannot claim on your own turn, and a discarded joker can never be claimed by anyone for any reason.
Also fixed: if the app failed to reach our online service the moment it opened, online play used to stay unavailable for the rest of the session — it recovers on its own now. And on iPad the Report and Rules buttons no longer sit on top of the wall count or another player's name.
Thank you to the players who reported all of these. Every one of these came from someone writing in.
1.1.10 Aug 1
Rules fix — discarded jokers are safe again.
Under National Mah Jongg League rules, a joker in the discard pile can never be claimed by anyone, for an exposure or for Mah Jongg. That is exactly what makes throwing a joker a safe discard late in a hand.
A bug let another player claim a discarded joker to complete their hand. That is now blocked everywhere — practice games, online tables, and the bots.
Thank you to the player who reported it.
1.1.9 Jul 25
• Smarter AI opponents — the five practice difficulty levels now play more distinctly, each favoring its own set of hands.
• More reliable online play — joining a table no longer hangs if your connection drops.
• Performance and stability improvements.
1.1.8 Jul 20
Wall games now play the wall to full exhaustion, matching the official NMJL rules — a round no longer ends early while tiles remain to draw.
PRACTICE
• Quick Play now respects the difficulty you last chose instead of seating you with the weakest bots, and the lobby offers Expert and Master tables so a strong player can find a real challenge.
ONLINE
• Leaving a table can no longer hang.
• Returning from the background properly rejoins your match instead of stranding you.
• Fixed a Charleston bug that could stop you from adding your third tile to a pass.
• A bot filling a seat after someone leaves now keeps that player's name marked "(left)" instead of duplicating another player's name.
CARD
• Corrected a 2026 hand: the "2468" line with two dragons is exposable at 25 points, not concealed at 30.
1.1.7 Jul 19
Play with friends: text a link, tap to join. Your table waits for you — no more surprise bot games. Honest matchmaking countdowns.
Rules fixes, all found by players:
• When two people call the same discard, it now goes to whoever sits nearest in turn to the discarder — not to whoever had the bigger exposure.
• 1234 DDD DDD DDDD now scores correctly. Any of the three dragons can be your kong, and the run can be any suit.
• When you're holding tiles you could call but the call would leave your hand unwinnable, the table now tells you why instead of just staying quiet.
1.1.6 Jul 18
Closing a table while it says "Finding you a table…" no longer leaves your board jumping between two games.
Swipe a suggested hand away and the next closest hand on the card takes its place.
The suggested hands list now says you can claim the last tile you need from a discard with Mahj.
The rules page now explains both Charlestons, the blind pass, and how to skip the second Charleston in a practice game.
Small fixes behind the scenes.
more Version 1.1.30 4d ago
Data Linked to You The following data may be collected and linked to your identity:
Contact Info User Content Identifiers Usage Data Diagnostics