Martin is talking about that neat little Hold Control and right-click an object while in the room editor. It brings up Creation event that only runs for that specific instance of the object you clicked on.
Very useful, IMO. I use it for room changing collision objects(or objRoomFlags as I like to call them). I only have one object in my current project that can change rooms. However, I can reuse it as I set variables in that special Creation code I told you about at the beginning. So, when Link touches any objRoomFlag object, the variables I set in that Creation code kick in:
Hold control and Right-click on object in room editor:
roomVariable = rm_house1;
newX = 234;
newY = 80;
cameraX = 90;
cameraY = 50;
The above is just random numbers, but I use those names.
Then when Link touches that specific instance of objRoomFlag:
var objTransitionOverlay;
global.linkX = newX;
global.linkY = newY;
global.cameraX = cameraX;
global.cameraY = cameraY;
objTransitionOverlay = instance_create(view_xview,view_yview,objTransition);
objTransitionOverlay.roomVariable = roomVariable; //the room we want tot go to after the fade out
Anyway, just giving an example. Pretty useful as you can reuse one object many times without duplicating it or writing more scripts and such. Another way is you can have one NPC object in the entire game. You go to that creation code and you can set behaviors for each individual instance in the room. You can have signs, people, animals, etc. all made from one object without making duplicates with individual code.
I opened someone's project here in ZFGC not too long ago and they had 100s of duplicate objects like that. I run 8GB of Ram and Game Maker took 700megs and once I ran the game, the game itself took over a gigabyte.
Those instances add up overtime. :/ That and 30megabyte images...jesus...
Sorry for going a bit off-topic.