Install on macOS
macOS does everything. The wheel, import, screens, OpsLink and Steam games all run here today.
There is no installer and no runtime to install first. It is an app you copy.
Install it
Section titled “Install it”-
Download the macOS build from Releases and drag
vPinOps.appto your Applications folder. -
Open it.
Nothing appears full-screen yet. You get a status icon in the menu bar, top right. That icon is how you talk to vPinOps from now on — it is also the only way to quit it.
It creates
~/.vpinops/on this first run: your config, your run log, and a generated OpsLink password. -
Open Settings from the menu bar icon and check the network.
That window does one job: it makes OpsLink reachable. Port, password and Listen on — that is everything this window holds, deliberately, because those three are exactly what you cannot fix from a phone that cannot connect.
Leave all three as they are unless something else already wants port
7833. -
Check your phone can reach it.
The run log names the address every time it starts:
remote: LISTENING on http://0.0.0.0:7833 (open http://192.168.4.58:7833)Open that in any browser on the same network. Sign in with the password in
~/.vpinops/remote-password, then change it in Settings — it is generated to be typeable on a phone, not to be strong. More: connecting to OpsLink.If the Mac answers itself but nothing else can reach it, check macOS’s firewall in System Settings → Network → Firewall.
-
In OpsLink, open Settings and point it at your stuff.
Settings → Where your stuff lives. Press Fill these in for me and it fills in the suggested layout for you:
- Tables →
~/vPinOpsData/tables - VPX settings →
~/vPinOpsData/visualpinball - PinMAME and Your content as well
Then set VPX yourself — point it at
~/vPinOpsData/visualpinball/app/VPinballX_BGFX.appusing Browse…. The button deliberately leaves this one alone: vPinOps does not install Visual Pinball, so it will not write a path to a file it has not checked is there. It is also the one path you cannot skip — without it the page says Not ready to play.Change any of them — an existing library, an external drive — nothing refuses to work if you ignore the suggestion. Nothing is saved until you press Save settings, and folders under your content root are created for you when you do.
- Tables →
-
Set the two macOS display settings a cabinet needs.
In System Settings → Desktop & Dock:
setting value Automatically hide and show the menu bar Always Automatically hide and show the Dock on -
Now put some tables in it.
That works the same on every platform, so it lives in one place: Importing.
What ended up on your disk
Section titled “What ended up on your disk”~/Applications/vPinOps.app the program. Ours. Replaced wholesale when you update.~/vPinOpsData/ your content. Never touched by an update. tables/ one folder per table pinmame/ the shared ROM fallback .inbox/ tables sent from another device land here visualpinball/ Visual Pinball's own settings visualpinball/app/ Visual Pinball itself~/.vpinops/ your config, your run log, your OpsLink passwordThe split is ours versus yours, not programs versus data. Visual Pinball is yours, which is why it sits under the content root rather than beside our program. The updater may only ever write inside the program, and uninstalling is deleting it.
Getting a cabinet’s screens right
Section titled “Getting a cabinet’s screens right”The display settings above are the macOS half. Where the playfield, backglass and DMD actually go is screens and layout — vPinOps writes those keys per table, immediately before launch, so a table that wants a different arrangement gets one. If a window lands somewhere wrong, the run log names exactly what was written.
Where things are
Section titled “Where things are”| The program | ~/Applications/vPinOps.app |
| Your content | ~/vPinOpsData/ |
| Config | ~/.vpinops/config.json |
| Run log — read this first when anything is wrong | ~/.vpinops/last-run.log |
| OpsLink password | ~/.vpinops/remote-password |
| Uploads waiting to be imported | ~/vPinOpsData/.inbox |
| Visual Pinball’s own settings | wherever VPX settings points in Settings — by default ~/vPinOpsData/visualpinball/VPinballX.ini |
Updating and uninstalling
Section titled “Updating and uninstalling”Quit vPinOps from the menu bar icon, replace the app with the new one, start it again. Your content and your config are in the other two places and are not involved. To uninstall, quit it and delete the app — your tables are still yours.