Another huge problem with rm2k/3 is how pictures can be moved. Moving a picture requires knowing what number it is while in the programming step, instead of being able to move the picture based on the number in the variable. I remedied this in the tech demo by create an objected oriented system that used pictures as objects were created. So, for example, if a bush was hit, it would call the event, check to see the first available picture (lets say Picture 2), and then assign picture 2 to the bush animation. Lets say a rupee drops from the bush, the event would be called, and picture 3 would be assigned as a rupee. Lets now say that I shoot an arrow after I hit the bush, but before the rupee vanishes, the event would be called, and picture 2 is now free again to be used, so picture 2 is assigned to be an arrow.
The system is very useful to keep track of picture usage, and to create animations/objects of anything at any time.
This. I ran into that sort of problem a while ago and installed BananenJoe's DestinyPatch. It allows reference to a picture's actual X and Y coordinates and degrees of rotation, (not to mention adding a small scripting language). So I never actually made my own system to solve that. However, this dynamic allocation thing is really neat.
You can reference pictures by variable using Cherry's patches. Find it, download it, use it. Saves so many headaches.
Probably the most timesaving patch ever, but it doesn't have built-in pic ID allocation.
So the most 'advanced' thing I ever did was string together the Zelda meets Megaman battlesystem of Terra Nova. The RM2K engine is NOT MEANT to handle this sort of thing and I will NEVER use RM2K to do anything like this ever again. So many random issues all over the place, picture referencing being up there. Terrain ID was used to pretty much replace the entire default movement system. Also, the Call Event function is extremely useful. It can be used to nest commands for event movement into the actual enemy events to create a dynamic AI system where the sprite calls its own graphics functions while the daemon handles the communal AI. Also, having to make common events to handle data structures is a pain but not particularly hard. However, it leads to databases of thousands of variables. Oh, and between DestinyPatch and PicPointer, it came out looking very nasty: