smart_virtual_platform (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.

Note that there are multiple machine config examples here. They’re just included to show different options. You wouldn’t actually use more than one.

#config_version=5

virtual_platform_start_active_switches:
  - trough1
  - trough2
  - trough3

smart_virtual:
    simulate_manual_plunger: True
    simulate_manual_plunger_timeout: 3s

coils:
    outhole:
        number: C09
        default_pulse_ms: 20
    trough:
        number: C10
        default_pulse_ms: 20
    trough2:
        number:
    plunger:
        number: 1
    device1:
      number: 2
    device2:
      number: 3
    coil1:
      number:
    coil3:
      number:
    coil4:
      number:
    device3_c:
      number:
    device4_c:
      number:

switches:
    switch1:
      number:
    switch2:
      number:
    switch3:
      number:
    start:
        number: 1
        tags: start
    outhole:
        number: 2
    trough1:
        number: 3
    trough2:
        number: 4
    trough3:
        number: 5
    plunger:
        number: 6
    playfield:
        number: 7
        tags: playfield_active
    device1_s1:
      number: 8
    device1_s2:
      number: 9
    device2_s1:
      number: 10
    device2_s2:
      number: 11
    device3_s:
      number: 12
    device4_s:
      number: 13
    trough2_1:
      number:
    trough2_2:
      number:
    trough2_3:
      number:
    plunger2:
      number:

drop_targets:
   left1:
     switch: switch1
   left2:
     switch: switch2
   left3:
     switch: switch3
     reset_coil: coil3
     knockdown_coil: coil4

drop_target_banks:
   left_bank:
     drop_targets: left1, left2
     reset_coils: coil1
     reset_events:
       drop_target_bank_left_bank_down: 1s

ball_devices:
    outhole:
        tags: drain
        ball_switches: outhole
        eject_coil: outhole
        eject_targets: trough
        confirm_eject_type: target
        debug: true
    trough:
        tags: trough, home
        ball_switches: trough1, trough2, trough3
        eject_coil: trough
        eject_targets: plunger
        confirm_eject_type: target
        debug: true
    plunger:
        tags: home
        ball_switches: plunger
        eject_coil: plunger
        debug: true
    device1:
        ball_switches: device1_s1, device1_s2
        eject_coil: device1
        eject_targets: device2
        confirm_eject_type: target
        tags: home # has to be home or attract will collect the balls
    device2:
        ball_switches: device2_s1 #, device2_s2
#        eject_coil: device2
#        eject_targets: device2
        confirm_eject_type: target
        mechanical_eject: true
    device3:
        tags: home
        entrance_switch: device3_s
        eject_coil: device3_c
        ball_capacity: 3
        auto_fire_on_unexpected_ball: False
        debug: true
    device4:
        tags: home
        entrance_switch: device4_s
        eject_coil: device4_c
        ball_capacity: 3
        entrance_switch_full_timeout: 500ms
        auto_fire_on_unexpected_ball: False
        debug: true

    trough2:
        tags: drain, trough, home
        ball_switches: trough2_1, trough2_2, trough2_3
        eject_coil: trough2
        eject_targets: plunger2
        confirm_eject_type: target
        debug: true
    plunger2:
        ball_switches: plunger2
        mechanical_eject: True
        debug: true
#config_version=5

machine:
  balls_installed: 5
  min_balls: 1

virtual_platform_start_active_switches: s_trough_1 s_trough_2 s_trough_3 s_trough_4 s_trough_5

switches:
  s_start:
    number: s13
    label:
    tags: start, player, high_score_select
  s_ball_launch:
    number: s11
    label:
    tags: plunger, player
  s_shooter_lane:
    number: s27
    label:
    tags:
  s_trough_1:
    number: s31
    label:
    tags:
    type: NC
  s_trough_2:
    number: s32
    label:
    tags:
    type: NC
  s_trough_3:
    number: s33
    label:
    tags:
    type: NC
  s_trough_4:
    number: s34
    label:
    tags:
    type: NC
  s_trough_5:
    number: s35
    label:
    tags:
    type: NC
  s_trough_jam:
    number: s36
    label:
    tags:
    type: NC
  s_standup:
    number: s38
    label:
    tags: playfield_active

coils:
  c_trough_eject:
    number: c01
    label:
    tags:
    default_pulse_ms: 25
  c_plunger_lane:
    number: c03
    label:
    tags:
    default_pulse_ms: 25

ball_devices:
  trough:
    tags: trough, home, drain
    ball_switches: s_trough_1, s_trough_2, s_trough_3, s_trough_4, s_trough_5, s_trough_jam
    eject_coil: c_trough_eject
    confirm_eject_type: target
    eject_targets: shooter_lane
    jam_switch: s_trough_jam

  shooter_lane:
    ball_switches: s_shooter_lane
    eject_coil: c_plunger_lane
    player_controlled_eject_event: sw_plunger

playfields:
    playfield:
        default_source_device: shooter_lane
        tags: default
#config_version=5

config: test_smart_virtual.yaml

virtual_platform_start_active_switches:
  - device1_s1