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.


Related Config File Sections

Believe it or not, the playfield in MPF is technically a ball device. This is needed since MPF wants to know where all the balls are at all times, so it needs to know which balls are “in” the playfield device.

TODO: Add a picture of a playfield

The playfield is also responsible for tracking balls that “disappeared” from it without going into other devices—-a process which kicks off the ball search. The default playfield ball device (called playfield) is created automatically based on settings in the mpfconfig.yaml default configuration file. Most machines only have one playfield, though if you have a mini-playfield or a head-to-head machine then you can configure additional playfield devices.

Ball tracking and ball search is performed per playfield in MPF. Therefore, most devices in MPF belong to one playfield and mark it as active when they see a ball. You should configure the exact playfield for every device as soon as you have more than one playfield in your machine. Otherwise, MPF will complain about unexpected balls (e.g. you will see unexpected_ball_on_(name) events), ball search might at the wrong time and ball tracking might go haywire. To transfer balls you can use playfield transfer or ball devices. A ball device might capture from one playfield and eject to another.

Playfields are configured in the playfields: section of the configuration file.

Monitorable Properties

For dynamic values and conditional events, the prefix for playfields is device.playfields.<name>.

Balls which will be available eventually. If a ball is requested it will be included in available_balls but not in balls until it arrives.
The number of balls on the playfield.