The Mission Pinball Framework (MPF)
Open source software for powering real pinball machines!
The Mission Pinball Framework (MPF) is a free Python-based pinball software framework that's used to run real pinball machines. It's compatible with virtually all modern pinball controllers and machines, and it's the most feature complete pinball software environment you'll find.
MPF is a complete pinball software package which runs on a computer inside your pinball machine. (It can run on Windows, Mac, Linux, or Raspberry Pi.) MPF controls all the electronics in the machine, including the lights, the solenoids (the things that make the balls move), the DMD if your machine has one, the LCD if your machine has one, the switches, and the motors. MPF uses simple configuration files to control the game logic, sounds, videos, effects, and everything else you need to create the rules for your game, including modes, multiballs, ball saves, scoring, and more.
MPF has been around since 2014, and it's been used to power hundreds of homebrew pinball machines and a few commercially-released ones. It's created by volunteers in their spare time.
- Works with many modern pinball control systems, including FAST Pinball, CobraPin, P3-ROC, and many more.
- Runs on Windows, Mac, Linux, and Raspberry Pi.
- Supports many types of pinball machines, including solid state, EM, and custom homebrew machines.
- Built-in support for many types of pinball mechs, including flippers, pop bumpers, slingshots, drop targets, spinners, and more. (See the complete list.)
- Supports many types of pinball displays, including DMDs, LCDs, segments, and mechanical score reels.
- Pinball logic built in for player management, game modes, multiballs, ball saves, tilt, shots, and more. (See the complete list.)
- Build your game with simple configuration files. (But you can also mix in your own custom code too, use as much or little of the config files as you want.)
- 100% open source and completely free to use.
See the Features page for a complete list of features.
What MPF is, how it works, how to install it, how to use it.
- How MPF works
- The MPF "Media Controller"
- Understanding MPF config files
- Config files versus "real" programming
- Running MPF
Pinball machines, control systems, and pinball mechs.
- Pinball Mechs
- Game Elements
- Machine Management
See the Tools page for links to several tools that help you work with MPF, including the MPF Monitor, a visual utility that connects to a live running instance of MPF and shows you the stream of events, device state, player variables, etc.
- Machine Variables
- Config File Reference
- Player Variables
- Game Variables
- Config Players
- MPF Errors from Log Files
- Example Games
Projects built on MPF
- MPF Users Google Group
- MPF discussion group on GitHub
- PinDevCon - The pinball developer conference, lots of MPF content!
- MPF Versions
- License & Copyright
- MPF Documentation authors
- Contributing to MPF's Documentation
- Help us to write it
- Contributing to MPF
Something missing or wrong? You can fix it!
This website is edited by people like you! Is something wrong or missing? Is something out of date, or can you explain it better?
Please help us! You can fix it yourself and be an official "open source" contributor!
It's easy! See our Beginner's guide to editing the docs.
Page navigation via the keyboard: < >
You can navigate this site via the keyboard. There are two modes:
General navigation, when search is not focused:
- F , S , / : open search dialog
- P , , : go to previous page
- N , . : go to next page
While using the search function:
- Down , Up : select next / previous result
- Esc , Tab : close search
- Enter : go to highlighted page in the results