This Asset is Free, with the option to buy
Everything is available on pastebin here, or you can get it on github
I also have a really nice guide for it on my website.
You can go ahead and get this extension from there, and if you like it feel free to support me by buying the extension from this page ( basically buy me a coffee ), which gives you the added convenience of installing it directly into your projects.
Summary
Using this engine, you are able to very easily manage many controllers in a large game in an initiation script or room start event in the beginning of game loading.
When a controller is added to a room, the controller with have an instance of it created at room start. This removes the need of going into each room and managing a bunch of "invisible objects".
This system is comprised of 3 scripts:
*mcs_add_controllers( room(s), controller(s) ) * This is the meat and potatoes of the whole system, using this script you can add controllers to rooms by first specifying the room and the controller that goes into it.
You can also pass arrays of rooms/controllers into this script, for instance:
mcs_add_controllers([rm_start,rm_lvl1,rm_lvl2], [con_ingame,con_init]);
This example will add both of the controllers specified into all three rooms specified.
mcs_auto_add(slug) This is a pretty neat script, you specify a "slug" or a string that is a word or phrase that is shared across controllers and rooms and it will link them together.
For instance, let's say you have 2 controllers and 4 rooms, named as such:
Controllers - con_jungle_main - con_jungle_enemyspawn
Rooms - rm_jungle_start - rm_jungle_middle - rm_jungle_end - rm_jungle_secret
With the script used in the following way:
mcs_auto_add("jungle");
All of the controllers with "jungle" in the name will automatically be added to the rooms with "jungle" in their names.
mcs_remove_controller(room, controller) Using this script, you can remove a single controller from a room.
End User Licence Agreement (EULA).