About This File
π― VPX Achievement Watcher
A companion app for Visual Pinball X (VPX) that adds modern achievements, live overlays, and challenges by reading VPinMAME NVRAM data.
ββββββββββββββββββββββββββββββ
Features
ββββββββββββββββββββββββββββββ
π Dashboard
Your control center at a glance:
Β
β’ System Status: Is the watcher running? Is VPX active?
β’ Session Summary: Two cards side by side:
Β Β β¦ Last Run: Last table played, score, achievements unlocked, and date
Β Β β¦ Run Status: Live status indicators (green/yellow/red) for Table, Session, Cloud, and Leaderboard connection
β’ π¬ Notifications: Clickable feed with alerts for leaderboard ranks, beaten achievement records, missing VPS-IDs, and available updates. Unread count shown on tab badge. Clear All button to dismiss
β’ π Setup Status: Checklist that verifies your setup is complete β Player Name set, Cloud Sync enabled, VPS-IDs assigned, Maps loaded, Overlays configured, and Widget Controls bound. Red/yellow/green indicators with direct links to fix missing items. Shows "β
All set!" when everything passes
β’ Quick Actions: Restart Engine, Minimize to Tray, Quit
ββββββββββββββββββββββββββββββ
π€ Player
Your personal player profile and summary:
Β
β’ Player Level: Current level and XP progress bar based on unlocked achievements
β’ Prestige System: Reach Prestige 1β5 by unlocking 2000 achievements per star (β β β
)
β’ Level Table: All levels from Rookie to VPX Elite with their achievement thresholds
β’ π
Badges: 37 collectible badges earned through gameplay milestones β unlock achievements, complete challenges, reach levels, accumulate playtime, and more
β’ Display Badge: Choose which badge icon appears next to your name on cloud leaderboards
ββββββββββββββββββββββββββββββ
π Progress
Track your achievement progress per table:
Β
β’ Select Table: Dropdown with all played tables (ROM-based and custom/non-ROM tables)
β’ Global Achievements: Cross-table achievements like total playtime, tables played, manufacturer milestones β with progress bars (e.g. 12/25)
β’ Per-Table Achievements: Each achievement listed with status (β
unlocked / π locked)
β’ βΉοΈ Info Links: Click the info icon on any achievement to see its unlock condition, VPS table info, and unlock timestamp
β’ Rarity Tiers: Common, Uncommon, Rare, Epic, Legendary β color-coded based on how many cloud players have unlocked each one. Rarity legend shown below progress bar
β’ Custom Table Progress: AWEditor-created achievements are tracked separately with their own progress view
ββββββββββββββββββββββββββββββ
π Records & Stats
Records every round played, session duration, and scores in the background:
Β
β’ π Global NVRAM Dumps: Full raw NVRAM data overview per table β all fields and values in a multi-column table
β’ π€ Player Session Deltas: What changed during your session β actions, score differences, playtime, and field-by-field changesΒ
ββββββββββββββββββββββββββββββ
βοΈ Cloud
Global cloud leaderboard for achievement progress:
Β
β’ Category: Achievement Progress leaderboard per table
β’ Search: Enter a table or ROM name with autocomplete (resolves table titles to ROM keys)
β’ Fetch: Load the leaderboard β ranked list with progress bars, medals (ππ₯π₯), player badges, date, and βΉοΈ VPS info links
β’ VPS Info Dialog: Click βΉοΈ on any leaderboard entry to see linked VPS table details and achievement breakdown
Β
π‘ Tip: You can find your personal 4-digit player ID in the "System" tab. Make a note of it! If you ever install Watcher on a new PC, you can use it to restore your cloud progress.
ββββββββββββββββββββββββββββββ
βοΈ Score Duels
Challenge other players to direct score duels on the same table!
Β
The Score Duels tab is organized into 4 sub-tabs:
Β
π― My Duels
β’ π¬ Incoming Invitations: Inbox for duel challenges from other players β accept or decline with one click
β’ π Do Not Disturb: Toggle to stop receiving new duel invitations
β’ βοΈ Start New Duel: Pick an opponent and table, then send a challenge
β’ π Auto-Match: Join the matchmaking queue β automatically matched with a player who shares at least one table (by VPS-ID). Search times out after 5 minutes
β’ π’ Active Duels: Overview of all running duels with status, time remaining, and cancel option
β’ π Duel History: Past duel results with opponent, table, scores, and date
Β
π Global Feed
Live feed of all active and recently completed duels across all players.
Β
π Leaderboard
Top 50 players ranked by duel wins. Shows Rank, Player Name, Wins, Losses, and Win Rate (%). Players need at least 3 completed duels to qualify. Your own row is highlighted with a β
. Medals for top 3: π₯π₯π₯.
Β
π Tournament
4-player single-elimination knockout tournaments:
β’ Join Queue: Enter the tournament matchmaking queue (30 min timeout)
β’ Auto-Matching: When 4 players sharing at least one table are queued, a tournament is automatically created
β’ Bracket: 2 Semifinals β 1 Final, all played on the same randomly selected table
β’ 2 hours per match β each duel has a 2-hour time limit
β’ Notifications: In-app alerts for tournament start, elimination, final reached, and final result
β’ History: Completed tournaments are saved locally with your placement (π Winner, #2, #3-4)
Β
π¬ Tournament Chat: Live chat for tournament participants β real-time messages
ββββββββββββββββββββββββββββββ
π¨ Appearance
Customize the look and feel of the entire application, organized into 5 sub-tabs:
Β
πΌ Overlay
β’ Global Styling: Font family, base font size, and overlay scale slider (30β300%)
β’ Widget Placement & Orientation: Place and save screen positions for each overlay independently. Each widget has Portrait Mode (90Β°), Rotate CCW, Place, and Test buttons:
Β Β β¦ Main Stats Overlay (with auto-close option)
Β Β β¦ Achievement Toasts
Β Β β¦ System Notifications
Β Β β¦ Status Overlay (cloud/leaderboard feedback, can be disabled)
Β Β β¦ βοΈ Duel Notifications
β’ π Switch All β Portrait/Landscape: Toggle all overlay orientations at once
β’ π Overlay Pages: Enable/disable individual overlay pages β Page 1 (Highlights & Score) is always active; Page 2 (Achievement Progress), Page 3 (Cloud Leaderboard), Page 4 (VPC Leaderboard), Page 5 (Score Duels) can be toggled
β’ Custom Background: Place an overlay_bg.jpg/png next to the executable for a custom overlay background
Β
π¨ Theme
β’ Active Theme: Select and apply a color theme from the dropdown
β’ Color Preview: Live preview of Primary, Accent, Border, and BG colors
β’ Overlay Preview / Test: Test Main Stats Overlay and Achievement Toast with the current theme
β’ Available Themes: Full list of all themes with icon, name, and description
Β
π Sound
β’ Enable/Disable: Master toggle for sound effects
β’ Volume: Slider (0β100%)
β’ Sound Pack: Choose from multiple packs (Zaptron, Vex Machina, Retro, etc.)
β’ Events Table: Per-event enable/disable toggle and preview button for each sound event
Β
β¨ Effects
β’ GPU-accelerated visual effects with automatic CPU fallback
Β
πΎ Mascots
β’ π Trophie (GUI Mascot): Lives in the bottom-left corner of the main window
β’ π± Steely (Desktop Overlay Mascot): A metallic chrome pinball that lives on your desktop as an always-on-top overlay. Reacts to game events
β’ Skins: Multiple visual skins for both mascots
β’ Personality: Unique speech bubbles, reactions, memory, and a "bickering" system between them
β’ Portrait Mode: Steely supports 90Β° rotation for cabinet screens
ββββββββββββββββββββββββββββββ
πΊ VPC Weekly Challenge
View Discord's Weekly Challenge directly on the overlay (view only).
ββββββββββββββββββββββββββββββ
πΉοΈ Controls
Configure hotkeys and input bindings for the overlay and challenges:
Β
β’ Supports keyboard keys and joystick buttons
β’ Bindings for overlay toggle, duel accept (left), duel decline (right), and system tray show/hide
β’ π‘ Flipper buttons or MagnaSave buttons work best
ββββββββββββββββββββββββββββββ
πΊοΈ Available Maps
Browse all supported tables and their NVRAM map status:
Β
β’ β NVRAM Map = achievement tracking supported
β’ β No NVRAM Map = not supported yet
β’ π Local = .vpx file found in your tables folder
β’ Filter by local tables with NVRAM maps, search by name or ROM
β’ Assign VPS-IDs to link tables to the Virtual Pinball Spreadsheet database
β’ View table author extracted from .vpx file metadata
ββββββββββββββββββββββββββββββ
π― AWEditor β Custom Achievement Editor
Create custom achievements for tables that don't use VPinMAME ROMs (Non-ROM / Original tables):
Β
β’ π Tables: Scan your tables directory for tables without NVRAM maps
β’ βοΈ Codes: Analyze table scripts, detect events, and create custom achievement rules
β’ Export: Generates VBScript + JSON files β the table writes trigger files that the watcher detects instantly
β’ Full Script Export: Zero manual work β AWEditor inserts all FireAchievement calls automatically
ββββββββββββββββββββββββββββββ
βοΈ System
The System tab has 2 sub-tabs:
Β
βοΈ General
β’ π€ Player Profile: Set your display name and 4-character player ID. Identity fields are locked while Cloud Sync is active
β’ βοΈ Cloud Sync & Backup:
Β
Enable/disable Cloud Sync (validates player name and ID against cloud for uniqueness). Auto-Backup toggle, manual Backup to Cloud, and Restore from Cloud (restores achievements, VPS mapping, and CAT progress)
β’ π Feedback & Bug Reports: Report bugs or suggestions directly from the app
β’ π Admin Login: Log in as chat moderator for Tournament Chat moderation (admin only)
Β
π§ Maintenance
β’ π Directory Setup: Configure BASE, NVRAM, and Tables directories
β’ Repair Data Folders: Fix broken or missing data directories
β’ Force Cache NVRAM Maps: Re-download and cache all NVRAM map files
β’ π Update Databases: Force re-download of index.json, romnames.json, vpsdb.json, and VPXTool
β’ β¬οΈ Watcher Update: Check GitHub for newer releases β downloads and installs the Setup automatically with release notes preview
ββββββββββββββββββββββββββββββ
π‘οΈ Fair Play & Anti-Cheat
To keep the leaderboards fair, local saves and scores are protected by hash signatures.
Matches and tournaments use a feature called NVRAM tracking. Restarting from Ball 1, pressing F3, or restarting the VPX Player will result in disqualification.
ββββββββββββββββββββββββββββββ
Data Sources
The Achievement Watcher uses the following open-source projects and data sources:
Thanks to this people:
β’ NVRAM Maps by tomlogic β https://github.com/tomlogic/pinmame-nvram-maps
β’ vpxtool by francisdb β https://github.com/francisdb/vpxtool
β’ VPC Data by emb417 β https://github.com/emb417/vpc-data
β’ VPS Database by VPS Team β https://github.com/VirtualPinballSpreadsheet/vps-db
β’ Visual Pinball & PinMAME β https://github.com/vpinball
With version 2.1:
User Feedback
Create an account or sign in to leave a review
You need to be a member in order to leave a review
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now