Skip to content

The MPF Monitor

The MPF monitor is a graphical app that connects to a live running instance of MPF and shows the status of various devices. (LEDs, switches, ball locks, etc.) as well as a running list of recent MPF events. You can add a picture of your playfield and drag-and-drop devices to their proper locations so you can interact with your machine when you're not near your physical machine and/or for developing your game. MPF Monitor is also great when you have more than one person working on your MPF code but your physical machine is at one person's house. :)

The MPF Monitor can run on Windows, Mac, and Linux. It uses PyQt6 (Python bindings for Qt6) for its visual framework.

Here's a screen shot of it in action:

Note

The MPF Monitor is not a full pinball simulation with physics or moving balls or anything. But it does enough that you can use it to do real work on a machine when that machine is not nearby.

image

Video about developing your game without hardware:

Features

  • Connects to a live running instance of MPF.

  • Automatically discovers all the pinball mechs and devices in the game.

  • Device state is updated in real time in the "Devices" window.

  • MPF events and their keyword arguments are posted in real time to "Events" window.

  • You can add a photo of your playfield and then drag-and-drop LEDs, lights, and switches from the device tree onto the playfield.

    • LEDs (circle icons) show their color in real time.
    • Lights (circle icons) show their brightness in real time between black and white.
    • Switches (square icons) show their state (green = active, black = inactive).
    • More device types will become "draggable" in the future.
  • Left-click on a switch to "tap" it (activate & release). Right-click on a switch to "toggle" it (change its state and hold it).

  • Devices added to the playfield image are saved & restored when you restart the monitor.

  • Window sizes, positions, and which windows are open are remembered and restored on next use.

  • You can start the monitor and leave it running, and it will automatically connect (and disconnect/reconnect) to MPF as MPF starts and stops.

Road Map Features

MPF Monitor is very rough at this point. (Really more of a proof-of-concept.) We plan to add more features, including:

  • More details for events, including listing registered handlers & making it so you can sort, search, and clear the list.
  • Adding all the "game logic" stuff, including modes, shots, shot groups, shot profiles, logic blocks, timers, ball locks, multiballs, achievements, etc.
  • Add shows (running shows, step they're on, priority, etc.)
  • Add players information (show all player variables and their values)
  • A "snapshot" button that can dump the entire current state to a file for debugging later
  • Export position (x/y) settings of widgets back to the MPF config
  • Connect to MPF-MC to get information about slides, displays, widgets, etc.
  • Add color controls to the playfield image to set brightness and color saturation
  • Add buttons to enable/disable different types of devices (think of it like "layers" for the playfield image.
  • Show additional properties from the selected device (Click a device to see it's full information.)
  • Change debug levels of various devices dynamically
  • Save the config / layout with a specified file name
  • Add multiple playfield views which could each have different devices
  • Set colors, shapes, rotation, & sizes of devices (so inserts can be the right shape). Allow configurable "off" colors which can include opacity and "glow" so inserts look like real lights.
  • Allow all devices to be added to the playfield image, with custom representation (diverters that animate, flippers that animate, etc.).
  • Device state change history that shows what properties changed and when.
  • Default (mostly blank) playfield image if no playfield image is specified
  • Configurable default options (folder location, playfield image name, etc.)

Next Steps

installation running devices-and-using


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