i'm sorry to tell but i stopped working on this experiment a while ago but i do have a another version in which is more simplified and usable and a save/load function can be implemented easily in it. But in this example save/load is almost impossible. Colour change can be done i think, there are events for that(maybe). You can even have sprites frames loaded at runtime giving the user ability to use his own sprites. My other example has this feature.
I'll upload it later maybe after an hour or two...going for classes