Skip to content

Troubleshooting

It is held — it failed its last launch and was taken off deliberately, so you can tell “not tried yet” from “does not work”. Press T for the tray, which names the reason.

Put the .zip in the table’s own pinmame/roms/ or your shared PinMAME roms/ folder, still zipped, then open the table in OpsLink and press Forget this verdict. That press is not optional: a held table is kept off the wheel, so there is no other way to prove the fix. If you add the ROM through the table’s own Files section instead, the verdict is cleared for you. Full steps: ROMs and nvram.

A table that used to find its ROM cannot any more

Section titled “A table that used to find its ROM cannot any more”

Look for an empty pinmame/roms/ in that table’s folder. The moment that folder exists, Visual Pinball stops consulting your shared ROM folder for that table. Put the ROM in it, or delete it.

The backglass or DMD is in the wrong place

Section titled “The backglass or DMD is in the wrong place”

Work down this list. It is ordered by how often each one is the answer.

  1. Read the run log — it says whether vPinOps wrote anything, and which DMD mode you got.

    Every launch logs two lines:

    projecting Guns N' Roses: B2SHideGrill=0, Priority.ScoreView=3, BackglassDMDOverlay=0
    layout -> Guns N' Roses: Written (1 global, 0 per-table, dmd=Unknown)

    Read the second line first. Written means vPinOps configured this launch; UpToDate means everything it wanted was already correct. Either way it ran.

    Neither line there at all? Nothing was configured, and that is your answer.

    dmd= is not your DMD choice. It is which kind of DMD window vPinOps has seen this table open before, learned from Visual Pinball’s own log. dmd=Unknown means it has not seen this table run yet, and says nothing about your settings.

    These lines say whether, not where. The rectangles and display names are not in the log, so a position you cannot find here is not evidence of anything. Carry on down the list.

  2. Check which DMD choice this table is on.

    The DMD is a screen. What plays on it is a choice, not a detection, and it is the usual answer when the DMD is not what you expect.

    The three choices:

    • VPX score view — Visual Pinball’s own plain dots.
    • The backglass’s own DMD artwork — the artist’s DMD panel, with the live score in the slot they drew for it. A backglass that has no DMD artwork falls back to the plain score view.
    • The backglass hosts it — for a two-screen cab with no DMD monitor. The score is drawn into the backglass itself and the separate window is switched off.

    Two places set it, and the table’s own wins. The table’s page adds Follow the global setting, which is where a table starts out. So: one table wrong and the rest right, that table has its own setting; all of them wrong, the global one is.

    Settings also has Leave VPX alone, which writes nothing and keeps whatever you set in Visual Pinball’s own F12.

  3. If the backglass is hosting the DMD, its position is Visual Pinball’s, not ours.

    vPinOps supplies no coordinates for that case — Visual Pinball works out where the dots sit inside the artwork. If they land slightly off, that is the backglass file to fix, not a setting here. Two backglasses by different artists can behave differently for this reason.

  4. Confirm your Visual Pinball build.

    Screen configuration is written as ini keys that only Standalone reads. On the older VPinballX.exe those keys land nowhere and it looks like our bug. Settings shows the path — check it names the build you meant.

No backglass at all, or no DMD at all, on every table

Section titled “No backglass at all, or no DMD at all, on every table”

Visual Pinball’s plugins ship switched off, and a plugin that is off does nothing, silently. vPinOps switches on the three every table needs, PinMAME, B2SLegacy and ScoreView, the first time it launches a table, where nothing has chosen them. So if this happens on every table, one of two things is true:

  • Somebody turned one off. A plugin set to off in Visual Pinball’s F12 menu is left off; vPinOps never argues with a choice. Turn it back on there.
  • The table needs a plugin that is not one of the three. Some tables want FlexDMD or AlphaDMD for their display. Those are yours to turn on, in F12 while a table is running.

Detail: the plugins.

A PuP pack loads, then says it cannot find its own files

Section titled “A PuP pack loads, then says it cannot find its own files”

The pack’s folder is not named what the table’s script expects. A table’s script names its pack folder exactly, and a pack that arrived inside a download wrapper lands under the wrapper’s name, one level from where Visual Pinball looks. It loads, reports its screens, and then logs PlayFile not found for files that are plainly on disk. Rename the folder under pupvideos/ to the name the script uses, which is usually the ROM name. When you add a pack through the table’s Files section, vPinOps tells you if the name does not look right.

A black screen, or an app that looks frozen, when a table launches

Section titled “A black screen, or an app that looks frozen, when a table launches”

Check [Player] RefreshRate in VPinballX.ini is not blank. Blank makes Visual Pinball ask for refresh rate 0, fail to build its sync device and raise an error dialog underneath its own full-screen shields, where you cannot see it or dismiss it.

Put your display’s real rate in it.

Not a missing file, and re-checking will not fix it — some tables need a patched script on Standalone. Name it after the .vpx and drop it alongside: the sidecar step.

  1. The Windows firewall. Port 7833, inbound, TCP, private profile. If the first-run prompt was dismissed, the address never answers. This is the most common cause by a distance.
  2. Same network. OpsLink is local by design — guest Wi-Fi and cellular cannot reach it.
  3. The password. One set in Settings lives in config.json and always wins over the remote-password file, which is never rewritten.

It is already running. vPinOps deliberately outlives its own windows, so closing a window does not quit it — and while it runs it holds port 7833, which is what stops the next copy. Quit it from the tray icon.

A half-finished upload appeared on the wheel

Section titled “A half-finished upload appeared on the wheel”

Something renamed .inbox and took the dot off. Folders beginning with a dot are skipped by the library scan; that is the entire mechanism. Put the dot back.

That is the design — it names every file it could not place, with the reason. The common ones: an archive it will not open for you, a ROM (which belongs in your PinMAME folder), audio, and media whose filename does not say which surface it is for. See what it leaves for you.

The Windows run log shows â€" where a dash should be

Section titled “The Windows run log shows â€" where a dash should be”

Cosmetic. The log is written UTF-8 and the console reads the system codepage. The content is correct; only the punctuation is mangled.