Skip to content

The folder layout

This is the Visual Pinball folder convention, not a vPinOps format. Lay your library out this way and the same table folder works on every machine you own.

  • One folder per table. Name it Title (Manufacturer Year) — e.g. Medieval Madness (Williams 1997).
  • Put the .vpx inside it, along with its companions (.directb2s, .ini, .vbs, …).
  • Frontend art goes in a medias/ subfolder, each file prefixed with its surface(Wheel) …, (Playfield) ….
  • A ROM goes in your shared PinMAME roms/ folder, still zipped — or the table’s own pinmame/roms/.
  • A .vpx on its own is always enough to appear in your library and be launched — vPinOps never skips a table it cannot identify. Whether it plays is Visual Pinball’s business: a table driven by a ROM needs that ROM, and one that is not will run on its own. Art, video and a backglass are enrichment and never a requirement.
Medieval Madness (Williams 1997)/
├── Medieval Madness (Williams 1997) VPW v1.0.1.vpx ← the table (the only required file)
├── Medieval Madness (Williams 1997) VPW v1.0.1.vbs ← external script, if the author ships one
├── Medieval Madness (Williams 1997) VPW v1.0.1.ini ← per-table VPX settings (window positions, …)
├── Medieval Madness (Williams 1997).directb2s ← backglass (B2S)
├── medias/ ← frontend art — vPinOps reads this
│ ├── (Wheel) Medieval Madness (Williams 1997).png
│ ├── (Playfield) Medieval Madness (Williams 1997).mp4
│ ├── (Playfield) Medieval Madness (Williams 1997).png
│ ├── (Backglass) Medieval Madness (Williams 1997).mp4
│ ├── (DMD) Medieval Madness (Williams 1997).png
│ └── (Loading) Medieval Madness (Williams 1997).mp4
├── music/ ← table music
├── pinmame/ ← per-table PinMAME overrides — read the ROM note before you use this
├── scripts/ ← shared script libraries the table pulls in
├── altsound/ serum/ vni/ ← alternate sound / colourised DMD packs
├── pupvideos/ ← PuP-Pack videos
├── cache/ user/ ← VPX-managed; leave them alone
└── Table Name.UltraDMD/ ← UltraDMD assets, if used

You do not need most of these. A folder with just the .vpx in it is a complete table as far as vPinOps is concerned — it shows up and it launches. What it needs to actually run is Visual Pinball’s business: a table driven by a ROM needs its ROM, and one that is not needs nothing else. The subfolders exist so that when a table ships extra assets, everything has an obvious home.

PlatformSuggested
macOS~/vPinOpsData/tables/
WindowsC:\vPinOpsData\tables\
Linux~/vPinOpsData/tables/