It's a berserker mode for Shadow Pokémon. It provides an increased critical hit rate, but the Pokémon may disobey orders like high-level foreign Pokémon, and it hurts itself with confusion damage at the end of each turn. Calling at it (a command which replaces "Run" during trainer battles if the Shadow type exists) snaps it out of Hyper Mode.
It's called Hyper Mode in Colosseum, and Reverse Mode in XD. There are slight differences between the two, and in Essentials, it works like Reverse Mode plus an increased critical hit rate.
I see how that script works. Pretty basic, and as you say, wouldn't let more than one person use it at the same time. It's certainly the right kind of thing to be doing. Obviously more options can/should be added at a later stage.
One possibility to expand your system, in lieu of an actual database, is to include a timestamp in your GTS file which is noted and compared. Actions can only go through if the timestamp doesn't change between downloading the file before you start and downloading it again immediately before trying to upload a new version. This does mean more downloading (probably more of a problem than it's worth), but it would shorten the "multiple people can't use this" timeframe to just the short gap between trying to complete an action and actually doing it. There's also figuring out how to get the timestamp (from some online source, obviously).
But anyway, MySQL would be a better option than that. Once a database has been created, it's quite simple to use (again, so long as you know the commands). Beyond that, it's just a matter of knowing how you want to use it. For example, I imagined each trade would have its own unique ID, and the player's trades' IDs would be saved in their game for a quick way of checking up on them. I thought old trades could be left in the database (marked as "completed") until the admin cleaned it up every so often (there would be debug options for database management), rather than your "delete immediately when done" approach.
I've written a small GTS script, when I was messing around with trade systems somewhere around 4 months ago. I've done the transfer of data via GTS.rxdata which worked pretty well. Unless more than one person used this GTS system simultaneously (mainly downloaded or uploaded files at the same time) they wouldn't have the same results. This was the only problem that I encountered, but given that this was an experimental, primitive and easy way to do it, it worked pretty well.
Regarding MySQL, getting a host is the problem, and that's what I was talking about too. Free hosts mainly like to host just basic web-sites, not some online data storage or transfer facility. But that would be the problem of the users of the system. If they want online functions they'd either have to invest time or money for that, some effort has to come from their side for things like this.
I've only thought about making a GTS, not battles or other trading options (are there any?). Whatever I say is based on those thoughts.
Bearing in mind that I know nothing about networking, I can think of two main ways to go about online battles. The first is to make direct connections between two computers, perhaps via Hamachi or something; actual finding of opponents is not included, which is the only problem. The second is to use the MySQL database (used for the GTS) to hold information about each action, including the randomness calculations and so forth made by the "host" player.
I'm sure it wouldn't be that difficult to actually set up the scripts which read/write/search a MySQL database, so long as you knew the available commands and how it should be laid out (I'm good at the latter). Everything else is a GUI. It's also probably more convenient to have both battles and the GTS in the same place. The database could even hold a scoreboard or something, if you went mad with the features.
The big issue, as far as I can see, is finding somewhere you can upload a MySQL database to, preferably for free. I can't imagine it would get a huge amount of traffic, but still, I've heard servers don't like hosting them.
There are several ways to go, but I thought MySQL would be an easier method for the first dive. While I was doing my research on the matter I found RMXOS which allows for good communication between the games, but is based on the client-server principle much like Pokemon Essentials: Online and NetPlay, hence requiring its own server GUI. From what I've read, it allows for differen kinds of data sharing between RMXP games, so it could be tweaked and used within Essentials. I'm not 100% sure right now, but these were the general impressions I got. But like I said in the thread, this method would require a dedicated machine to run alongside the game, which I know I wouldn't want.
I was posting in that thread at the same time as you, actually.
I'd be interested in discussing those kinds of features with someone who actually knows something. You suggested MySQL, and I've thought it was the way to go for a while (I know practically nothing about how to use them, but I hear they're useful). I can imagine how to lay out systems and information, and generally how the system should/would be used, which is a start.
It may just be a thought exercise for me, though; I don't know how much I'd actually want to create.
I know, I know. I wasn't expecting you to do any less. Btw, I wrote something in the "Online Essentials Discussion" thread. If you want to bounce ideas around, I'd be interested. I was recently working on making something like Online Battles and Trades.