How do you Open a door with pressure plates in a specific sequence?

An easy one could go like this:

The plate:

  1. Add a bool for the activate state. On overlap check if it was the player and if the bool is falso to then call a dispatcher with Self as a parameter.
Plate BP

Main graph:

setActiveState function:

The door:

  1. Add each plate to an array in the order you want them to be triggered and bind the dispatcher.
  2. Add an integer that will keep track of the triggered plates.
  3. From the bound event get the plate reference in the array, the reference should match the triggered plate. If it does then activate the plate and increment. If it fails then reset.
  4. On every activate check if the integer is equal to the last index of the array.
Door BP

Begin Play:

Bound event:

Reset function:


Plates

  • Idealy you want a base class for the include of the pressure plates. Interfaces work too.
  • I find it best to use the door class to manage the state of the plates.

Hope it helps.

2 Likes