Mahjic Mahjong: Club & League
Event Scoring & Registration
Free · In‑App Purchases
The #1 app for running American Mahjong clubs, leagues, and events.
Whether you organize weekly games for 12 players or monthly tournaments for 200, Mahjic Mahjong gives you everything you need — registration, scoring, leagues, and member management — right from your phone.
Used by club organizers across the US and Canada.
——— FOR ORGANIZERS ———
◆ Events & Registration
Create events in seconds. Players register, join waitlists, and check in with a tap. QR code check-in available.
◆ Scoring & Leagues
Enter scores round by round. Track league standings with automatic rotation patterns and rankings.
◆ Member Management
Import contacts via CSV. Send SMS and email invitations. Manage your entire roster and directory.
◆ Series & Punch Cards
Sell multi-event packages. Players buy once, RSVP to each session. Punch cards for flexible attendance.
◆ Analytics & Payments
See attendance trends, revenue reports, and growth metrics. Accept payments through Stripe.
——— FOR PLAYERS ———
◆ Browse events and register in seconds
◆ Purchase series passes and punch cards
◆ Check in from your phone — no paper needed
◆ View game history and league standings
◆ Manage your profile across multiple clubs
——— GET STARTED ———
1. Create your free club at bamgoodtime.com
2. Download Mahjic Mahjong
3. Sign in and start managing
Free to download. Club plans from $19/month unlock unlimited events, analytics, and more.
——— LEGAL ———
Terms of Use: https://bamgoodtime.com/terms
Privacy Policy: https://mahjic.org/privacy
Standard Apple EULA: https://www.apple.com/legal/internet-services/itunes/dev/stdeula/
more This app has saved my wife an enormous amount of time and frustration and enable her to enjoy getting people together to play this wonderful game.
This app has saved my wife an enormous amount of time and frustration and enable her to enjoy getting people together to play this wonderful game.
Series events get more flexible: when creating a series, you can now choose whether buyers are enrolled in every session automatically, series pricing shows on series-only sessions, and "Can't Attend" no longer appears on opt-in series.
Also in this release:
• Venue mode: table cards show who's seated, and walk-in seats are now priced and settled correctly
• Leagues: standings recalculate after every completed league event
• Punch cards: members can repurchase a depleted punch card
• Chat: member names display correctly, and you can add members when creating a channel
• Club switcher: always tappable, with a quick exit back to your club hub
• Scramble: the challenge time option is now on by default
• Leads: people who are already members no longer appear as leads
• Free plan now includes 5 events per month
1.1.6 3d ago
Tournament brackets are here! Run single- and double-elimination tournaments with a visual bracket board — seed players, advance winners, and enter scores right from the bracket. Made a mistake? Admins can revert results and the bracket updates automatically.
Also in this release:
• Fixed a bug where toggling a member's membership status didn't save
• Bug fixes and performance improvements
1.1.5 5d ago
Bug fixes:
- Screenshots attached to in-app problem reports now capture your screen correctly.
- Challenge skill levels now show as "All Levels" instead of a second "Open" badge.
1.1.4 Jul 13
Bug fixes and improvements for club admins:
- The Pending Payments screen now also shows package purchases awaiting Venmo or cash payment, with a Mark Paid button for each.
- Marking a season package paid enrolls the player in all season events automatically.
1.1.3 Jul 12
Tournament scoring fixes, Scramble improvements, and new club management tools.
• Tournament scoring: tables without entered scores no longer record as zeros, and round score submissions are more reliable
• Tournament Control Center: action buttons stay visible and reachable
• The Scramble: smoother match starts, live challenge updates, and re-show your QR code anytime
• Leagues: add a description to your league so players know what to expect
• League scoring: score values can now be negative
• Event series: schedule two events on the same day, each with its own start time
• Packages: set purchase limits and choose a billing start date
• Venues: per-table schedules and pass redemption
• Add-ons: mark items as taxable
• Contacts: phone numbers stay in sync across your club
• Plus stability improvements and bug fixes
1.1.2 Jul 11
This release fixes several things you told us about, and adds Spotlight to your hub.
• Join a Table. The tab could not be closed on iPhone. It closes now. Thank you to everyone who reported this.
• Spotlight. Your hub and player dashboard now surface a featured card so you can see what is happening at a glance.
• Chat. Your own messages and reactions are now recognized as yours, so reactions toggle correctly and you are no longer offered as a mention candidate for yourself.
• Moderation. Remove and Mute controls now appear only for club admins and channel moderators, matching what the server actually permits.
• The Scramble. Fixed identity checks that could show the wrong state on your own row.
1.1.1 Jul 11
Club chat comes to players. Open your club's chat channels from the Chat tab, see unread badges, and get notified about new messages. The General channel opens by default.
Event tables: remove a single table from an event, with a warning first if that table already has scores.
Fixes: private club events now appear in the member event list. Check-in from an event page is more reliable. The contacts email preview shows the real branded message, and the event Tables controls no longer overflow on smaller iPhones.
1.1.0 Jul 9
League scoring fixes: every Scramble match now counts toward your weekly best scores, and scores can no longer overwrite an earlier match.
Table game fixes: players are no longer stuck on the game screen when a game ends, the Done button no longer freezes after submitting scores, and non-hosts get a Leave option during play.
League registration is more reliable, including after an interrupted signup.
1.0.42 Jul 7
This update rolls up a wide set of fixes and improvements:
• Faster, smoother in-app chat
• Leagues & The Scramble: scoring, standings, and roster fixes
• Guest passes, gift cards, and event registration polish
• CSV contact import improvements
• Various bug fixes and stability improvements
Thanks for using Mahjic!
1.0.41 Jul 4
This update improves score entry for club and league admins:
- Save and finalize scores anytime. We removed an old rule that blocked saving until a table's points balanced to zero, which does not fit cumulative league scoring.
- An event can now be finalized even when a player finishes with a score of zero.
Thank you for the feedback that helped us fix these.
1.0.40 Jul 1
Venue management comes to iPhone and iPad. Club admins can now run open-play sessions on the go: check players in, hold tables for arriving members, manage tables, and close days, all from your device.
Players get a new Settings screen to manage email preferences, verify a phone number, replay the welcome tour, and manage their account.
Monthly-pass session details now reflect your current billing period, plus reliability improvements throughout.
1.0.39 Jun 28
What's new in this release:
- Pending package and series signups now appear on the event check-in screen.
- Abandoned checkouts no longer clutter the Pending Signups card.
- You'll get a heads up when you schedule an event that overlaps another at the same venue.
- You can now add package add-ons during checkout.
- Fixed oversized member photos that could overflow the table seating cards.
- On iPad, the floating menu no longer covers the Edit button on event details.
- Save and Next buttons now stay pinned at the bottom of sheets so they are always reachable.
- Stability and polish updates.
1.0.38 Jun 24
What's new in this release:
- Reserve seats for guests when you book a venue table.
- Tap a venue slot to see who is seated, with member vs drop-in tags.
- Add your birthday in Edit Profile, and admins can see member birthdays in the member sheet.
- Clubs can now hide registration counts on event cards and detail pages.
- Standings show your first name and last initial for a bit more privacy.
- Card payment now appears as an option on honor-mode series and package purchases.
- Admins can set a per-club manual sales tax rate.
- Complete Profile now prefills from the info we already have on file.
- Stability and polish updates.
1.0.37 Jun 22
What's new in this release:
- New privacy controls: pick a screen name or hide your identity in club leaderboards and standings.
- Admins can set a club-wide privacy default and toggle public standings per league.
- Punch-card payment option when adding registrations, plus manual punch adjustment in package admin.
- Per-event NMJL reminder toggle and a sales-tax toggle for clubs that collect it.
- Honor-payment flow improvements: cleaner error surfaces and safer cancels for checked-in members.
- Avatar fix so profile photos render at the right size everywhere.
- Stability: crash fixes in series scheduling and signup questions, plus small polish updates.
1.0.36 Jun 16
Bug fix:
- Fixed an issue where the Yes/No buttons on event signup questions (like "Can you bring a set of tiles?") would not accept your answer, blocking registration. Tap Yes or No, and the app now records your choice correctly.
- Various stability improvements.
1.0.35 Jun 10
Bug fix: the Yes/No questions during event registration now correctly save your answer. Previously the buttons looked selected but the form would still ask you to answer them.
1.0.34 Jun 9
Guest passes for paid members are now available on iPhone and iPad.
• See your monthly guest-pass allowance and tap "Invite a Guest" to mint a new code on the spot.
• Codes your club admin assigns to you show up under "Assigned passes" with one-tap copy and share.
Reply to Order Up emails directly inside the app. Tap the link, write your reply, send.
Reliability fix for player photo uploads.
1.0.33 Jun 7
Event times now use each club's default time zone so cutoffs and check-in windows are accurate everywhere.
Other fixes:
• Honor "I've Paid" works again on iOS
• Single-select signup questions now save reliably
• Eligible Events sort chronologically on packages
• Clearer warning when org-level email templates apply to every event
• More robust auth recovery when sessions go missing
1.0.32 Jun 5
Paid members can now register $0 on opt-in member events when their club marks a package as a "Membership."
Other improvements:
• "Members register free" toggle on event and series payment setup
• Inline pre-flight on the event payment wizard catches missing Stripe/Formal setup earlier
• Membership badge on package detail pages
• League rotation labels: "Round" renamed to "Pattern"
1.0.31 Jun 3
Bug fix: Registering yourself with a friend on an honor-system event that accepts credit cards now shows a payment-method picker (Venmo, Cash, or Credit Card) so registration completes correctly. Solo registrations are unchanged.
1.0.30 Jun 2
Bug fixes and improvements.
1.0.29 May 31
Improved sign-in reliability and general bug fixes.
1.0.28 May 28
This release focuses on stability and polish.
Player improvements:
• Chat now shows sender avatars
• Edit your profile photo right from the profile screen
• Tap a member's phone number to call or text them
• Clearer messages when a one-time sign-in code runs into trouble
Admin improvements:
• Recently Deleted view to restore members you removed by mistake
• Dot legend on the seating chart so table assignments are easier to read
• Cancel pending package purchases from the app
• Waitlisted players are promoted automatically when you raise an event's capacity
• Read the full body of any sent email in email history
• Member search now matches a player's legal first name even when a nickname is shown
Stability:
• Fixed several rare crashes on launch, in profiles, and while editing records
• Event template and series time fields now use the AM/PM picker consistently
• General reliability improvements
1.0.27 May 26
This update brings desktop and mobile into full feature parity with the web app.
New on the player side:
• Add to Calendar on event detail (uses your system Calendar)
• Profile fields (phone, photo, social handles) now sync across every club you belong to
• My Challenges section in The Scramble (see every challenge you've sent or received)
• Universal Link tap from Camera now opens the right screen even on a fresh app launch
• Blocked Players view on desktop so you can manage who can match with you
New on the admin side:
• Guided Play queue: Pro+ clubs can accept player requests for guided sessions
• Refund button on the check-in list, wired straight to Stripe
• Late Cancellation Fee tracking: mark fees collected without leaving the check-in screen
• Optimistic-lock guards on member edits so two admins editing the same record don't overwrite each other
• Custom-domain QR posters honor your white-label domain
• Monthly Pass event type for recurring access
• Cancellation Policy section in the event form
• Wizard step order, copy, add-ons, and venue claim now match the web exactly
Subscriptions and billing:
• In-app Pro purchase now wires the upgrade through immediately
• Annual savings copy shows the actual math
• Account delete prompts you to cancel an active App Store subscription before completing
• Stripe Connect refund flow available from native admin
Auth and onboarding:
• Sign up with a one-time code straight from the native apps
• Plan picker in signup with monthly and annual options
• Marketing consent checkbox on profile completion
Bug fixes and parity tightening across:
• Settings, Danger Zone, Sign Out, Cancel Subscription
• Tournament register flow on both platforms
• Series and single-event wizard parity
• 4 native nav shells covered by drift-prevention guardrails
1.0.26 May 24
Better error messages when you reach your plan's events limit. Improvements to the private event share sheet and email previews. Tap feedback to let us know when something feels off.
1.0.24 May 13
Series events get more flexible: when creating a series, you can now choose whether buyers are enrolled in every session automatically, series pricing shows on series-only sessions, and "Can't Attend" no longer appears on opt-in series.
Also in this release:
• Venue mode: table cards show who's seated, and walk-in seats are now priced and settled correctly
• Leagues: standings recalculate after every completed league event
• Punch cards: members can repurchase a depleted punch card
• Chat: member names display correctly, and you can add members when creating a channel
• Club switcher: always tappable, with a quick exit back to your club hub
• Scramble: the challenge time option is now on by default
• Leads: people who are already members no longer appear as leads
• Free plan now includes 5 events per month
more Version 1.1.6 3d ago
Data Linked to You The following data may be collected and linked to your identity: