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.


The concept of events is one of the most important concepts in MPF. MPF is an event-driven framework, and just about everything is either posting and event or responding to an event that was posted.

There are several important concepts about events in MPF that you should understand:

Event Reference

Here’s a list of all the “built in” events that are included in MPF and the MPF MC. Of course your own machine could include custom events that aren’t on the list here.

Every event in MPF is just a string of text. You’ll see that in many cases, the actual event that’s posted has a slight variation of the event text, typically incorporating something about which mechanism or logic device posted the event.

For example, the switch event called (name)_active will replace the “(name)” part of the event text with the actual switch name. So the when a switch called s_left_slingshot is activated, it will posted an event called switch_s_left_slingshot_active.