No worries, the two setups are doing the same job in different ways, so I think it’s easier to pick one than to merge them.
With a switch per item, every table needs its own page for every item you might walk up carrying, and there’s nowhere to store what the customer actually ordered. What I’d probably do instead is trade the Has Coffee / Has Cake / Has Pizza switches for a single variable. Each table drops back to one page and random orders become possible.
Pick a free variable, say 0011 Carrying. 0 is empty hands, then 1 = Coffee, 2 = Sandwich, 3 = Burger, 4 = Salad, 5 = Cake, 6 = Eggs, 7 = Pizza. Keep that list written down somewhere, you’ll be checking it constantly.
Your Cake event turns into this:
Conditional Branch : Variable 0011 Carrying == 0
Text : You picked up a slice of Cake!
Control Variables : 0011 Carrying = 5
Change Actor Images : (carrying cake)
: Else
Text : Your hands are full already!
: End
Every other food event is that same block with a different number, so you can copy the event and change the two spots.
Then give each table its own order variable, say 0012 Table 2 Order. When the customer sits down, Control Variables → 0012 → Random 1 to 7 picks their dish. The table page becomes:
Conditional Branch : Variable 0011 Carrying == Variable 0012 Table 2 Order
Play SE
Control Variables : 0011 Carrying = 0
Change Gold : + whatever the dish pays
Control Self Switch : A = ON
Change Actor Images : (empty hands)
: Else
Text : That's not what I ordered!
: End
In the Conditional Branch window that’s the Variable tab, and the second box has a radio to switch it from Constant over to Variable, which is what lets you compare the two.
Your page 2 with Self Switch A and the “you’ve already served them” message carries over as is, no change needed there.
For the customer telling you what they want, branch on 0012 in their talk event, one branch per number, and show the matching text. It all hangs off that same numbering once it’s set.