head2head (example config files)

Machine config examples

Here are some example machine-wide config files that show real-world examples of how these configs are used.

#config_version=5

playfields:
    playfield:    # remove default playfield
        _delete: True
    playfield_front:
        label: Playfield Front
        default_source_device: bd_feeder_front
    playfield_back:
        label: Playfield Back
        default_source_device: bd_feeder_back

switches:
  s_trough1_front:
    number:
  s_trough2_front:
    number:
  s_trough3_front:
    number:
  s_trough4_front:
    number:
  s_trough1_back:
    number:
  s_trough2_back:
    number:
  s_trough3_back:
    number:
  s_trough4_back:
    number:
  s_launcher_lane_front:
    number:
  s_launcher_lane_back:
    number:
  s_middle_front1:
    number:
  s_middle_back1:
    number:
  s_feeder_front:
    number:
  s_feeder_back:
    number:
  s_launcher_diverter_front:
    number:
  s_launcher_diverter_back:
    number:
  s_transfer_front_back:
    number:
  s_transfer_back_front:
    number:
  s_playfield_front:
    number:
    tags: playfield_front_active
  s_playfield_back:
    number:
    tags: playfield_back_active

coils:
  c_trough_eject_front:
    number:
  c_trough_eject_back:
    number:
  c_launcher_eject_front:
    number:
  c_launcher_eject_back:
    number:
  c_lock_figur_front:
    number:
    default_hold_power: 0.125
  c_lock_figur_back:
    number:
    default_hold_power: 0.125
  c_feeder_front:
    number:
    default_hold_power: 0.125
  c_feeder_back:
    number:
    default_hold_power: 0.125

ball_devices:
  bd_trough_front:
    ball_switches: s_trough1_front, s_trough2_front, s_trough3_front, s_trough4_front
    eject_coil: c_trough_eject_front
    eject_targets: bd_launcher_front
    tags: trough, home, drain
    captures_from: playfield_front
    ball_missing_target: playfield_front
    debug: true
  bd_trough_back:
    ball_switches: s_trough1_back, s_trough2_back, s_trough3_back, s_trough4_back
    eject_coil: c_trough_eject_back
    eject_targets: bd_launcher_back
    tags: trough, home, drain
    captures_from: playfield_back
    ball_missing_target: playfield_back
    debug: true
  bd_launcher_front:
    ball_switches: s_launcher_lane_front
    confirm_eject_type: switch
    confirm_eject_switch: s_launcher_diverter_back
    eject_coil: c_launcher_eject_front
    eject_targets: bd_feeder_back, bd_trough_back
    captures_from: playfield_front
    ball_missing_target: playfield_back
    debug: true
  bd_launcher_back:
    ball_switches: s_launcher_lane_back
    confirm_eject_type: switch
    confirm_eject_switch: s_launcher_diverter_front
    eject_coil: c_launcher_eject_back
    eject_targets: bd_feeder_front, bd_trough_front
    captures_from: playfield_back
    ball_missing_target: playfield_front
    debug: true
  bd_middle_front:
    hold_switches: s_middle_front1
    ball_switches: s_middle_front1
    confirm_eject_type: target
    hold_coil: c_lock_figur_front
    eject_targets: playfield_front
    captures_from: playfield_back
    ball_missing_target: playfield_front
    target_on_unexpected_ball: playfield_front
    debug: true
  bd_middle_back:
    hold_switches: s_middle_back1
    ball_switches: s_middle_back1
    confirm_eject_type: target
    hold_coil: c_lock_figur_back
    eject_targets: playfield_back
    captures_from: playfield_front
    ball_missing_target: playfield_back
    target_on_unexpected_ball: playfield_back
    debug: true
  bd_feeder_front:
    ball_switches: s_feeder_front
    hold_switches: s_feeder_front
    hold_coil: c_feeder_front
    eject_targets: playfield_front
    captures_from: playfield_front
    ball_missing_target: playfield_front
    eject_timeouts: 2s
    debug: true
  bd_feeder_back:
    ball_switches: s_feeder_back
    hold_switches: s_feeder_back
    hold_coil: c_feeder_back
    eject_targets: playfield_back
    captures_from: playfield_back
    ball_missing_target: playfield_back
    eject_timeouts: 2s
    debug: true

playfield_transfers:
    transfer_front_back:
        ball_switch: s_transfer_front_back
        captures_from: playfield_front
        eject_target: playfield_back
    transfer_back_front:
        ball_switch: s_transfer_back_front
        captures_from: playfield_back
        eject_target: playfield_front