Back in the C2 days, I built a hacky little plugin that allowed me to load the contents of another layout into the existing running layout. I could choose to load everything from the layout and it would map the layers from the loading layout to the running layout's layer names. Or I could single out a particular layer to load from and load into. It was very useful for a variety of games, such as...
Stitching together a random set of scenarios:
I used it to stitch together random gameplay scenarios. For example, it's an endless randomly generated game except the content is a series of scenarios that are picked from and each scenario was setup as a separate layout. Therefore each of these layouts were never "run" themselves, they were simply loaded. The height of the scenario was used to also inform the main running layout of where to stitch the next layout.
Loading scenes in an adventure game
This one may sound more abstract but it was just another application of the plugin. I would load "cinematic" scenes that were prepared as separate layouts and have them appear in the main running layout.
What I'm wondering is, do I need to build another plugin in C3? Or is this now possible through some new event API in C3 or via Scripting that I don't know about?
At the most basic level, all I really need is a way to read the contents of another layout, its layers and its instances. If I could read properties of the other layout and the layers as well as the instances, that'd be even more powerful.
Alternatively, is there a way in the Scripting API, to access the JSON that represents the initial game data?