Combo Switches ("flipper cancel", etc.)
Related Config File Sections:
MPF contains support for "combo switches" which are special combinations of switches that post events when they're hit together.
The most basic example of this is the "flipper cancel" combination,
where a player can cancel a show or bonus by hitting both flippers at
the same time. In fact MPF contains built-in support for the flipper
cancel combo. If you add the tag left_flipper
to your left flipper
switch, and right_flipper
to your right flipper switch, then whenever
the player hits both flippers at the same time, an MPF event called
flipper_cancel will be posted.
Combo switches are also used for things like different kinds of skill shots. For example, in Attack From Mars, if the player hits the launch button, the ball is launched into the pop bumper area, but if the player holds down the left flipper button while pressing the launch button, the ball gate (Bally part A-17796) in the upper playfield is raised and the ball is allowed to pass through and is delivered to the flippers for an attempt at a super skill shot. The left flipper + launch button combination is something you can enable with MPF's combo switches.
MPF's combo switches also generate events once both switches are hit together, then one switch is tapped while the other is held in. This can be used to scroll through certain information screens with one button while the combo is active.
You can set various timing options for combo switches, including how close together the two switches have to be hit to count as a combo, how long they have to be held, and how long they have to be released.
Built-in flipper cancel combo
MPF's mpfconfig.yaml
(the built-in machine config that's merged in
with all machine configs) includes the following section:
combo_switches:
both_flippers:
tag_1: left_flipper
tag_2: right_flipper
events_when_both: flipper_cancel
This means if you tag add tags: left_flipper
to your left flipper
button and tags: right_flipper
to your right flipper button, you'll
get an event flipper_cancel posted anytime the player has both flipper
buttons pushed in which you can use to cancel shows or whatever else you
want to do. If you want to change or override this (perhaps you want to
set a max_offset_time:
to make sure this event is only posted if the
player hits the flipper buttons within 500ms, then you can copy and add
this section to your own machine config file and it will overwrite this
default config.
Here is an example of using flipper_cancel to cancel a show:
switches:
s_flipper_left:
tags: left_flipper
number:
s_flipper_right:
tags: right_flipper
number:
shows:
mode_intro:
- duration: 5
slides:
mode_intro_slide:
widgets:
- type: text
text: Hit 50 switches to light jackpot
color: white
font_size: 100
show_player:
start_mode_intro_show:
mode_intro:
loops: 0
events_when_stopped: mode_intro_show_ended
flipper_cancel:
mode_intro:
action: stop
##! test
#! post start_mode_intro_show
#! advance_time_and_run .1
#! assert_slide_active mode_intro_slide
#! hit_switch s_flipper_left
#! hit_switch s_flipper_right
#! advance_time_and_run .1
#! assert_slide_not_active mode_intro_slide
The start_mode_intro_show will play for 5 seconds unless both flipper buttons are pressed which will cancel the show.
Monitorable Properties
For
dynamic values and
conditional events, the prefix for combo switches is
device.combo_switches.(name)
.
state
: String which reflects what state this combo switch is in. Options wil be one of the following: inactive, both or one.
Related How To guides
Related Events
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