Hmm thanks to some very clever code by R0J0hound, I managed to solve one problem.
Here is the .capx
I now have a spawner sprite that spawns rooms and connects them using a door.
All rooms from 1-4 are KeyLevel 0, which means they can be traversed freely, without a Key.
In order to go to Room#5 (Rooms 5-10 are designated KeyLevel 1) and beyond, you need Key#1, which will be generated in one of the first 4 rooms.
You can mouseover on rooms to see which KeyLevel they are designated to.