Setting Up and Troubleshooting 99math Con
The connection side of 99Math is one of those things that seems trivial until five minutes into a lesson and half your class can't get in. I've spent more time than I care to admit wrestling with join codes, network restrictions, and the occasional browser cache problem that nobody catches right away. 99math Con, or the connection workflow for the platform, is essentially the student-teacher pairing system that lets kids join a live game session through a room code. The mechanism is simple on the surface: teacher launches a game, gets a four-digit code, students type it in at play.99math.com and you're set. The reality is messier than that.
99math Con Step-by-Step
Start by having your students on the right page. Not the app, not the mobile version — the desktop web interface at play.99math.com. The mobile app behaves differently under network stress and has caused more join failures in my experience than anything else. If your school uses Chromebooks, make sure students are on the Chrome browser and not some locked-down educational app wrapper that blocks pop-ups or session cookies. Once everyone is on the correct page, launch your game from the teacher dashboard. Select the assignment, hit start, and you'll see a large join code displayed prominently. That code expires after about fifteen minutes of inactivity, so don't walk away from the board. I learned that the hard way during a observation lesson when the code timed out mid-explanation and I had thirty restless students staring at a dead screen. Students enter the code, click join, and they appear in the lobby. You can see them show up in real time on your dashboard. Wait until every student is in before starting the round. The platform doesn't force you to wait, but if you launch while someone is still connecting, that student gets a significant lag disadvantage and the game state can desync for them entirely.
What Actually Breaks and How to Fix It
Network segmentation is the number one killer of smooth joins. If your school puts students and staff on separate VLANs or has firewall rules that block WebSocket connections, the join will appear to work on the student side but the game will never actually load. I encountered this specifically last year when our IT department reconfigured the guest network. Students could reach play.99math.com and the code accepted, but the game canvas stayed white. The workaround was straightforward: I had students connect to the staff SSID instead of the student one for the duration of the math game. It took twenty seconds to communicate and solved the problem completely. Another edge case that bites people occasionally: browser extensions. Ad blockers, privacy tools, and even some school-mandated monitoring extensions will strip the WebSocket frames that 99Math relies on for real-time sync. I figured this out when one particular student consistently failed to join while every other kid in the class connected without issue. Turned out his profile had a monitoring extension active that wasn't on anyone else's machine. Telling him to disable it for the session fixed it immediately. There's also a caching issue worth knowing about. If a student previously joined a game on a specific device and then tries to join a different game on the same browser without clearing their session, the old connection state can persist and cause a conflict. The fix is a simple hard refresh — Ctrl+Shift+R on Windows or Cmd+Shift+R on Mac — which forces the browser to pull a fresh session instead of serving a stale cached one.
Get the Full Details

Practical Limits You Should Know About
The platform handles roughly sixty simultaneous players per game comfortably. Beyond that, you'll notice latency creep in, especially on round transitions where the server pushes the next problem set to all clients at once. I've run games with seventy students and it was noticeably choppy. Stick to fifty-five or under if you want a clean experience. There's also no way to pause a live game once it starts. If you need to stop for a discussion or a break, the students keeping playing and you can't rewind their scores. This catches a lot of teachers off guard. Plan around it. If you think you might need to pause, finish the round first, then address whatever came up. If your network situation is really restricted and 99Math won't connect reliably, the most practical fallback I've found is running the same style of practice through a shared Google Doc with timed problem sets. It's not interactive, but it works on any connection and the students still get the drill practice. Not ideal, but functional when the platform is blocked.
A Few Things Nobody Tells You
The join code is the same for the entire class — there's no individual code system. That means if a student shares it outside the classroom, anyone with the code can join and see the game state. It's not a security risk in any serious sense, but it does mean you shouldn't post the code on a public class page or share it in an open chat channel. Keep it on the board or in a private message. Another thing: the platform does not save individual attempt history across different game sessions in a way that's easily exportable. If you need to track whether a student improved on specific skill sets over time, you're going to need to take screenshots or manually record results. I ended up building a simple spreadsheet template where I log scores after each session and it's been the only way I've found to actually see progress trends across a semester. Finally, if you're running games on a projector or smartboard and the join code is hard to read from the back of the room, there's a settings toggle in the teacher dashboard that enlarges the display mode. It's buried under the game options and easy to miss. Use it. The difference between kids seeing the code and squinting at it is the difference between a smooth start and two minutes of "what's the number again?"