Okay, it's been a while since I've updated this post, so let me just fill everyone in on what's been changed:
First and foremost, there is now a proper file system for uploading images to the server. Every user has their own file system and can add files and folders as they like, as well as access some public resources for sprites and tilesets. You can access the file system by clicking on the "manage" button under any graphic viewer. I'll add new public images over time. This will also be used for managing other resources, like sounds and music.
The sprite graphic system is much more flexible as well. You can flip individual frames horizontally or vertically, letting you use smaller spritesheets. There are also a whole bunch of options for handling sprite directions, in addition to 4 cardinal directions you can use 4 diagonal directions, or even simplify sprites to only allow facing east and west. Both of these options, combined with horizontal flipping, let you create decent-looking sprites with much less effort.
Some options have been added to the "basic player interaction" menu for sprites, specifically the ability to transform the player into another sprite and back again. I did this because I want transformations into different creatures to be a major part of the game.
The combat system is still being fine-tuned, but here is a general rundown of how it will work:
Every combat-capable sprite has a list of techniques. Techniques are similar to functions in that they are basically a list of events, but with a few differences:
Techniques can be triggered by either the AI or by player controls (while transformed into a given sprite). Every technique has an independent cooldown timer and may have MP requirements, minimum and maximum range to a target before it can be triggered, and other conditions which must be met before it can be used.
A techniques is tied to an animation, and each frame of the animation (called "keyframes") can have its own list of events. Events include creating hitboxes, altering the user's stats, and changing momentum. Techniques can alter "poise" on a frame-by-frame basis, which basically amounts to "super armor". They can also have data for general cancels and canceling into other particular techniques.
Hitboxes have independent values for both damage and force.
As for the combat itself, every sprite may have, in addition to HP, a "poise damage" meter, which is increased by taking "force" hits and recovers over time. Every sprite may also have a flinch point, a stagger point, and a knockdown point. When poise damage reaches these points, the sprite will flinch, be knocked back (based on the remaining force of the attack divided by their mass), or fall down.
Sprites will also have "brain" meters. Brain damage will reduce a sprite's ability to recover poise, making it easier to stun them or send them reeling farther with powerful hits. (Sort of like Smash Bros, or maybe Punch-Out...?)
There may also be other meters, like blood, food, and stamina.
All of these stats will be optional and determined on a sprite-by-sprite basis; for example you can imagine a Koopa Troopa as being an extremely simple sprite with a "knockdown point" that allows it to be "flipped" with an attack, all the way up to a complex Dark Souls type enemy with specific stats for each of its various techniques, counters, and so on.