This is the documentation the latest work-in-progress version of MPF!

This is the documentation for MPF 0.56, which is the “dev” (next) release of MPF that is a work-in-progress. This is probably ok, and means you’ll be on the latest, cutting-edge version of MPF.

However, if you want a more stable version, select the v:stable version from the lower-left corner of this page, which is the most recent version that is not getting new updates.

If you are new to MPF, we have recently rewritten the installation process which only applies to this “latest” 0.56, so you probably want to stay here because the prior installation process doesn’t work on the latest OS and Python versions.

Ball Tracking

Keeping track of where all the balls are at any given time is a big part of a pinball. There are four components that make up MPF’s ball tracking and management system:

  • The Ball Controller, which is a core MPF module that manages everything.
  • Individual Ball Devices (troughs, locks, etc.) which track how many balls they’re currently holding, request new balls, eject balls, etc.
  • The Playfields device which is a special type of ball device that tracks how many balls are loose on the playfield at any given time.
  • Individual Diverters which are integral in routing balls to devices that request them.

These four components are active at all times—regardless of whether or not a game is in progress. In other words, if MPF is running, it’s tracking balls.

Note that tracking the number of balls on a playfield is somewhat complex. See the How MPF tracks the number of balls on a playfield guide for important details about how this works in MPF.