-
-
Notifications
You must be signed in to change notification settings - Fork 0
Common questions and troubleshooting for the Pinball Accuracy Memory Trainer.
The Pinball Accuracy Memory Trainer helps competitive pinball players memorize flipper shot positions. By repeatedly recalling percentage values for different shots, you build muscle memory that translates to faster, more accurate decision-making during actual gameplay.
This project was created by Gary Brown, a competitive pinball player. The entire codebase was written using AI "vibe coding" — every line of code, build scripts, GitHub workflows, and documentation was generated by AI with human guidance and review.
Yes, completely free and open source under the MIT license. No ads, no subscriptions, no data collection.
No! The app runs entirely in your web browser. Just visit the live demo and start training.
Yes. Once you've loaded the app, it works offline. For guaranteed offline access, download the standalone HTML file which has everything embedded.
Any modern browser with ES6+ support:
- ✅ Chrome / Chromium
- ✅ Firefox
- ✅ Edge
- ✅ Safari
- ✅ Brave
- ❌ Internet Explorer (not supported)
Each percentage represents a position on the flipper:
- 5-15% — Tip of the flipper
- 50% — Middle of the flipper
- 85-95% — Near the base/post
- 0 (NP) — Not Possible from this flipper
Lower percentages = earlier timing / tip shots. Higher percentages = later timing / base shots.
This reflects how shots are spatially arranged on a pinball playfield. Shots on the left side of the table (hit with the left flipper tip) have low percentages. Shots toward the center/right (hit with the left flipper base) have higher percentages.
The same logic applies in reverse for the right flipper (decreasing values).
"Not Possible" — the shot cannot reasonably be made from that flipper. For example, a far-left orbit might be NP from the right flipper.
Click the trash icon (🗑) at the end of the shot row in the setup table.
Drag and drop! Click and hold on a shot row, then drag it to the desired position. A visual indicator shows where it will be inserted.
Yes! Click the export icon (⬆) to download your configuration as a JSON file. You can reload it later or share it with others.
- Click "+ Add Shot(s)"
- Select a table from the preset dropdown
- Click to load — shots and percentages are pre-configured
- Start with tables you know — Validate your baseline understanding
- Keep sessions short — 10-15 minutes daily beats occasional long sessions
- Use Random mode — Prevents bias toward favorite shots
- Gradually increase drift — Master low drift before adding challenge
- Do final recall tests — Measure true retention periodically
Drift simulates real-world variability. The hidden "truth" values you're recalling gradually shift during practice, preventing rote memorization and training adaptive recall.
In real pinball, your timing varies, flipper rubber changes, and conditions fluctuate — drift prepares you for this.
| Setting | Description |
|---|---|
| Initial Random Steps | How different hidden values are from your base percentages at session start (0-4 steps × 5%) |
| Drift Every N | How often values shift (every N attempts) |
| Drift Magnitude | Maximum shift per drift event (in 5% steps) |
| Color | Meaning | Error |
|---|---|---|
| 🟢 Bright green | Perfect | 0% |
| 🟢 Dark green | Slight error | 5% |
| 🟡 Yellow | Fairly off | 10% |
| 🔴 Red | Very off | 15%+ |
- Perfect (0% error): +10 points
- Slight (5% error): +5 points
- Fairly (10% error): +2 points
- Very (15%+ error): +0 points
- Adjustment bonus: Extra points for correcting in the right direction
- Manual: Good for focused practice on specific weak shots
- Random: Better for realistic training — you don't choose shots during a real game
We recommend Random mode for most practice, with occasional Manual sessions to target problem areas.
Quality over quantity. 10-15 focused minutes is more effective than an hour of distracted practice. End with a Final Recall test to measure retention.
Data is stored in your browser's localStorage. It can be lost if you:
- Clear browser data/cookies
- Use private/incognito mode
- Switch browsers
- Use a different device
Solution: Export your configurations regularly as JSON backups.
Try these steps:
- Refresh the page (Ctrl+F5 for hard refresh)
- Try a different browser
- Disable browser extensions (ad blockers can sometimes interfere)
- Check your internet connection (for the online version)
- Try the standalone version — download here
- Resize your browser window — The app is optimized for desktop/tablet
- Try fullscreen mode — Click the expand icon
- Zoom out — Use Ctrl+Minus or browser zoom controls
The app enforces ordering constraints:
- Left flipper must be strictly increasing
- Right flipper must be strictly decreasing
If your values violate these rules, they'll be auto-corrected. Reorder your shots or adjust values to comply.
Values must be:
- Multiples of 5 (5, 10, 15... 95)
- 0 for "Not Possible"
- Within the allowed range for that position (ordering constraints)
To completely reset:
- Open Developer Tools (F12)
- Go to Application → Local Storage
- Delete all entries starting with
pinball_ - Refresh the page
No. The app is 100% client-side. No data is ever transmitted to any server. There are no analytics, tracking, or network requests.
In your browser's localStorage, on your device only. Keys include:
-
pinball_rows_v1— Shot configurations -
pinball_driftEvery_v1— Drift frequency setting -
pinball_driftMag_v1— Drift magnitude setting - Various UI state keys
Yes! Use the export function to save your configuration as a JSON file. Store it wherever you keep important files.
Not automatically (there's no server). But you can:
- Export your configuration on Device A
- Transfer the JSON file (email, cloud drive, etc.)
- Import on Device B
Many ways!
- ⭐ Star the repo — Helps others discover it
- 🎰 Add presets — Submit configurations for pinball tables
- 🐛 Report bugs — Help improve quality
- 💡 Suggest features — Share ideas in Discussions
- 📝 Improve docs — Fix typos, add clarity
- 🔧 Contribute code — Bug fixes and features welcome
See the Contributing Guide for details.
See the Preset Contribution Guide for step-by-step instructions.
Open a bug report with:
- Steps to reproduce
- Expected vs actual behavior
- Browser and OS information
- Screenshots if helpful
Open a feature request or start a Discussion.
- GitHub Discussions — Ask the community
- Open an Issue — For specific technical questions
Didn't find your answer? Edit this page to add it!