Cabinet
Playfield, backglass and DMD on three physical displays, in a cab. The boxes you drag map onto the real machine.
You tell vPinOps where your playfield, backglass and DMD live. It writes the settings Visual Pinball reads — per table, immediately before it launches — so every table in your library comes up the same way.
All three work today. Pick the one that matches your room, not the one that sounds like the default.
Cabinet
Playfield, backglass and DMD on three physical displays, in a cab. The boxes you drag map onto the real machine.
Multi-screen desktop
Two or three monitors on a desk. Same idea as a cab, without the woodwork — the backglass takes a second monitor and the DMD a strip of it, or its own.
Single screen
One monitor. The playfield fills it, and the backglass and DMD are either off or composited. A first-class setup, not a fallback.
There are two ways, and most cabinets only ever need the first.
Open Screens in OpsLink. Each surface — playfield, backglass, DMD, topper — has its own card, and each card asks which monitor it lives on. Choose one and that surface fills that screen.
That is the whole job for the common case: one surface per monitor, each filling it. You can do it from your phone, standing at the cabinet or sitting somewhere else, which matters because a cab has no keyboard and its own screen may be sideways or showing a broken layout when you most need to fix it.
Some layouts need an exact rectangle rather than a whole screen: a DMD strip along the top of the backglass monitor, or a scaled-down cabinet on one desktop display. For those, open the screen designer on the machine itself and drag real windows to where you want them.
It has to be done there, and that is not a limitation we chose — you cannot drag a box onto a display you are not looking at. Everything else about screens can be done remotely.
A global layout covers the whole library, and most tables need nothing more. But some tables want a different arrangement, and Visual Pinball supports per-table settings — so vPinOps writes the keys for the table you are launching, at the moment you launch it, rather than making you keep one global compromise.
A few things live in Visual Pinball’s VPinballX.ini rather than in vPinOps, and the split matters:
hand-set one of ours and you will watch it change back.
Visual Pinball ships its plugins switched off. Nothing warns you. The table plays, and the backglass and DMD simply never appear — which reads like a vPinOps fault and is not one.
| you want | turn on |
|---|---|
| A backglass | B2SLegacy |
| A DMD | ScoreView, plus FlexDMD or AlphaDMD depending on the table |
| A ROM to load at all | PinMAME |
Turn them on in Visual Pinball’s own Live UI, or set Enable = 1 under each [Plugin.*] section of
VPinballX.ini.
RefreshRate blankPut your display’s real rate in [Player] RefreshRate — 60, or whatever your screen runs at.
Blank is not “use the default”. Visual Pinball asks the driver for rate 0, fails to find a display
mode, fails to build its sync device, and raises an error dialog you cannot see, because the
full-screen shields are drawn over it. What you get is a black screen or an app that looks frozen,
and nothing anywhere says why.
Leave these alone in the ini. vPinOps writes them immediately before a table launches, so an edit you make by hand is overwritten with nothing said.
PlayfieldFullScreen, BackglassFullScreen, ScoreViewFullScreen and TopperFullScreen —
always 0, so the box you drew is the one Visual Pinball honoursBGSet, the cabinet-versus-desktop view mode — that follows the mode you pick in Settings[Plugin.B2SLegacy], and
whether the grill is hidden — these are written only when you have set them; leave them alone
in vPinOps and whatever you chose in Visual Pinball’s own F12 stays putThe run log says whether vPinOps configured that launch at all:
layout -> Guns N' Roses: Written (1 global, 0 per-table, dmd=Unknown)Written means it configured this launch; UpToDate means what it wanted was already correct.
⚠ Neither the positions nor your DMD choice are logged — dmd= is which kind of DMD window this
table has been seen to open before, not a setting. So this tells you whether we wrote at all, and not
where anything was sent. Read last-run.log first; the path is on your platform’s install page.
More, including what to check in what order: the backglass or DMD is in the wrong place.