I just tried this out for the first time. Amazing shit right here.
I think a proper plugin system would be awesome for v2.1 even if it was Mac only (plugins made in Cocoa). REALbasic supports something called IPC which is more appropriate than regular sockets and I bet Cocoa supports this too.
Instead of having to launch the plugin and do all this other crap, the plugin would be rebundled from a .app into a new .scplugin format that you would add to a Plugins folder. Inside the bundle would be a file that describes all of the methods that the plugin adds to the game, including their parameters and return types so that they can be added to auto-complete.
In addition the game would support getting and setting variables by the plugin, as well as access to almost any method that the game has access to.
If a game uses a plugin it would be bundled into the game automatically, launched when the game starts and exited when the game stops.
In this model the plugin would be persistent and have it's own memory etc like a normal program. There's also another way we could do it that doesn't involve IPC at all but would actually be even cooler and closer to the REALbasic model. Instead of a program you would be writing a dylib. The dylib would expose a number of generic functions that would be identical between all SC plugins. REALbasic can weak link to libraries and I could set it up to weak link to say, 50 different plugins named SCPlugin1.dylib, SCPlugin2.dylib, etc. so up to 50 dylib plugins would be supported. Instead of using IPC Sockets (with a latency of maybe 1 ms) we could just use declares/method calls with a much smaller latency... just an idea I've been throwing around in my head.
Another idea I had for really really easy to make plugins would be SCMethodBundles which would be nothing but a group of methods that you save out of a project into a file, and then drag into the Plugins folder of SC. If you use any of the methods then it would link in the whole bundle. You still have to worry about overlapping variables though, consider this problem which can happen even in a regular game using methods:
FOR i = 1 to 10
SOMEMETHOD
NEXT
SOMEMETHOD Code:
FOR i = 1 to 5
PRINT "Hello"
NEXT
That code will cause infinite loop.