I hadn't considered layers between floors. Ok so new plan. I made an array called "FloorNames" that holds the names of the floor layers.
The function ChangeFloor(direction) is called with the parameter "up" or "down". It gets the index of the current floor in the array. If param(0) = "up" and you're not on the top floor then it calls the function ChangeLayer("layerName") with the name of the next floor in the array.
If param(0) = "down" and you're not on the bottom floor then it calls ChangeLayer("layerName") with the name of the previous floor in the array.
The ChangeLayer("layername") function moves the player to the layer given and activates the fade group.
And then the FadeTopFloors group loops through the array and fades the layers that come after the current layer.
I don't know if this is easier or harder to understand.
OpPASS%20v1-1-7_edit.capx