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.
In short
Section titled “In short”- One folder per table. Name it
Title (Manufacturer Year)— e.g.Medieval Madness (Williams 1997). - Put the
.vpxinside 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 ownpinmame/roms/. - A
.vpxon 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.
The folder, in full
Section titled “The folder, in full”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 usedYou 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.
Where the library itself lives
Section titled “Where the library itself lives”| Platform | Suggested |
|---|---|
| macOS | ~/vPinOpsData/tables/ |
| Windows | C:\vPinOpsData\tables\ |
| Linux | ~/vPinOpsData/tables/ |
- Naming and the companion rule — how a
.directb2sfinds its table medias/and the surface prefixes- ROMs, nvram and high scores