HM3: Load/Save issues

I'm making progress on de-buggifying the load/save functions of HM3. I cleaned up some of the layering issues and an odd bug where if you had an item with a pattern assigned to it, and then tried to load a character who also had that same item with a pattern, the load would fail and all the layers would be totally hosed up.

But, before I go on, I wanted to ask what other big bugs you've had with loading and saving that I need to be aware of, so please let me know in the comments what you've encountered.

46 Responses to HM3: Load/Save issues

  1. Me, Myself & I says:

    I found that custom colors do not load.

  2. ams says:

    Here are a couple of issues;

    When I’ve used a pattern selection ( not the item option but the one beside line color and transform), saved and then reloaded, the pic will come out with the pattern selected all over the background. I don’t know if this is the same problem you described above. I guess everyone knows that the more you use these pattern selections, it lags the response time on actions to your picture.

  3. Tim says:

    I have experienced the same issues as ams and Me, Myself & I.

    I’ve also notice load issues. After working on a character, sometimes I get the “sticky item” glitch, where a specific item cannot be deleted or moved.

    So I save the character, hoping to save the work I’ve done, when I reload the character I notice some items either disappear from the canvas or randomly swaps out with another item within the same set.

    I hope this helps, Jeff.

  4. Violet says:

    I had a custom colors issue too. Where it would not show up again after I saved and reopened.

    But that isn’t as big a problem as when I was working on a character, the layering suddenly wouldn’t budge on an object/the object would not delete, and even saving and trying to go back to it won’t correct it. It is just unusable and I have to delete the file and start over with a previous version. (If one exists.)

    Then there is the thing where random objects appear upon opening a file. I have this one character, where every single time I open him, even after multiple saves, a certain armored top pops up. Unlike the above issue, I can just click it to go away, so that’s good.

    Also, I dunno why, but sometimes when I open a file, my character’s head it gone. Not the face parts, just the head. Not a huge deal, I just pop a new one on, but strange.

  5. Violet says:

    Oh, and I have seen the same “swapped” item problem as Tim. Sometimes in conjunction with the “sticky item” or the “randomly appearing item” glitch. It is almost always from the same item section and of the same exact size of whatever else came from that section last.

  6. ams says:

    Masked items when reloaded unmask or disappear altogether.

  7. ams says:

    Items revert to the “singles” setting when “multiples” was selected before save.

  8. ams says:

    Sometimes background items pop back to the front when reloaded.

  9. Tristan says:

    when loading a character that uses an iten in more than on set e.g. an item from male standard and male alternative it would load the item that in the same place in a different set.

  10. Quark says:

    Related to what ams said about the reverting to “singles” status,I sometimes find out that the number of items used becomes “0” whenever I delete without having switched to “multiples” beforehand,which someties freezes the option.
    Also,why do I sometimes get something like “%NaN” while loading a full project,freezing HM3 and not allowing me to load the project as if it was corrupt?
    I hope I can get my previously saved projects sometime.

    P.S. I hate the “random/sticky item” glitch.Especially as it makes me start from scratch/the last saved project.

  11. NEON_N64 says:

    Ok, here are the problems I’ve noticed (most of them have been mentioned already).

    1) Masking issues:
    Quite often the masked items are unmasked or masked into another item, this often makes it look like they just disappeared. I use masking a lot, so for me this is the main issue.

    2) Swapped items:
    If you’re working on a character and then get the sticky item bug, save and then load, the sticky item is sometimes replaced with another item in the same position in a different section. For example: The second item in the first row of Item right/Blades is replaced by the second item in the first row of Item right/Blades2. Some other times the sticky item remains sticky after loading.

    3) Single/multiple option:
    This valued is not saved, it always remains as Single, this can cause some regrettable tragedies T_T

    4) Layering:
    Sometimes the layer of some items is changed. This is more evident when a background is moved to the front.

    5) Custom colors:
    They’re not saved. I don’t know if this is technically a bug or just a missing feature. Anyway, it’s not a big deal but it would be nice if we could save them.

    6) Color2 alpha:
    It is not saved.

    Well, those are the problems I can remember right now, I hope it helps.

    Here are a couple of examples of finished characters (screen caps taken before closing HM) and their loaded versions (screen caps of the same character right after saving and then loading).

  12. Tuldabar says:

    When I use the mask feature and save, then reload the masked item becomes invisible. It’s still up on the que, but it seems gone. I make another one and delete it to bring the first up. If I save and reload multiple times however, eventually the masking sticks.

    I’ve had the same problem with patterns, but I have noticed it primarily with patterns applied on the right hand and foot.

    Hope that helps.

  13. Jake says:

    If I’m working on multiples characters at once, using different tabs, a lot of times it only saves from one of the tabs and the others are lost.

    Masking always seems to fall apart whenever I load a saved character. It’s really difficult to describe what happens.

    Something I’ve noticed that isn’t really a save issue is that one of the mouths (the one below the pipe), doesn’t load if you click on its center. It’s very strange.

    By the way, you think at some point each of the items could be named? It would be easier to talk about SidewaysMouth1 than to try to describe it.

  14. Fabien says:

    The major saving bug is : if you have modified the size of your character, HM3 reset to the default size if you save on JPEG.

  15. Ceawlin says:

    Not sure if this is a bug, but the program is centering its view on the exact vertical center of the central figure/body. I wanted a leaning, just off-center character portrait, but the software keeps recentering the picture, causing all of the background items to be tilted so it can make my portrait stand up straight.

    Also, when transforming the size of most objects, it flips them back to their original angle.

  16. The Eric says:

    One character i saved will only load all the way up to 100%, and then stop. It usually stops on Foot-Female. I was using a bunch of multiple resized and relocated Insignias if that could cause it.

  17. Jeff Hebert says:

    Thanks for those reports folks, they’re very helpful!

    If anyone has a saved character that always — every single time — causes one of these bugs, I’d love to have a copy. Please send the .sol file to and I should be able to load it up on my system. That way I can open it in programming mode and see exactly where the problem happens.

    The bug I fixed yesterday MIGHT have fixed some of these problems. What was happening was, I’d load a character with BackgroundShapes26 in it and the up-gradient Pattern applied to it. I’d immediately try to load another character that ALSO had that background and pattern, and the pattern would fail to load. That would cause all the layering to go screwy, with the figure behind the planet and the floor over everything, and the gradient Background would throw a (non fatal) error whenever you moused over it.

    If I took the pattern off of the first loaded character, the second loaded fine.

    Ultimately it turned out that I was using the wrong variable in the bit of the load script that puts the pattern in place. Putting the correct variable in made everything load in the proper order with no errors.

    That’s what I think is happening in the cases where your character comes up with the layers all wrong, or the missing head — it choked loading a pattern and never finished the next step, which is layering everything properly. Or it choked on the pattern and never finished loading all the other items.

    I think the problem with loading the wrong item from the wrong set is something different; I haven’t started working on that yet.

    Anyway, if anyone has a saved character with a reproducible loading problem, I’d love to get my hands on it.

    Thanks again for the feedback!

  18. Violet says:

    @Jeff: I have two ready examples of both the sticky layer/item problem and the file with the random top that keeps appearing after multiple saves. But how do you isolate the .sol files for those certain characters?

  19. Connor S. says:

    Yeah, I always have that problem if I mask or pattern something.

  20. Jeff Hebert says:

    You don’t need to isolate them, just send the whole .sol file and tell me which characters are doing what, that’ll be great.

  21. Violet says:

    @Jeff: Well, I did that right then. Hooray for me. The file with “archer” in the name is also one with a disappearing head glitch, in case you wanna see that in action.

  22. Chisoph says:

    I hate that. It’s so annoying!

  23. Dionne Jinn says:

    That sticky item followed by random item when reloading is usual problem with me too. I get it most often when dealing either with bodies or with tops. Patterns and masks tend to get messed up too from time to time when loading.

  24. Jeff Hebert says:

    OK folks, I have uploaded a super secret version JUST FOR TESTING to By virtue of having participated in this thread you are the only ones getting a notice about this.

    On the down side, you won’t have access to any of your old saved characters with this version. On the plus side, you won’t be able to screw up any of your old saved characters with this one either — they’re totally separate. So you can fool around on this knowing that you won’t hurt anything.

    What I’d like you to do if you get a chance is to play around with it, trying to break it, specifically for loading and saving characters. See if you get any of the load failures, the layering not loading like it’s supposed to, the wrong item coming up, that sort of thing.

    Note that there’s nothing NEW in this version except for the backend bit of code that was responsible for layering loaded characters.

    As an added bonus, though, there’s no surrounding stuff and you get to use it full-screen, as big as your monitor will handle. That’s how I have it at home and it’s really nice.

    So, let me know what you find out and enjoy the big version! Just be aware that it’s subject to being taken down or revamped without notice, so don’t get too attached to your creations and be sure to save your PNGs or JPGs.

  25. Worf says:

    @Jeff: I’ve just spent the last hour trying to break the layering while loading and saving and haven’t been able to do it. So at least that part appears to be ok. Masking on the other hand….. 😉

  26. Jeff Hebert says:

    So they’re layering all right but the masking is still busted? Meaning, when you have a bunch of items with masks on them, then load, the masks are gone?

  27. Nick Hentschel says:

    In contrast to the original respondent (1), I’ve been having a GREAT time using custom colors! As for what *has* been a problem, you’re headed very strongly in the right direction:

    – There are times when, trying to Save, he machine will sometimes remove a whole BUNCH of components, and not let me add anything.

    – Sometimes a Saved character won’t load right, either spraying on component’s Pattern all over the image, or loading the wrong part, or loading the layers in the wrong order.

    – Sometimes, a masked component won’t be visible when a drawing loads, even though it’s officially”selected.” (This happens to my ranger’s bow a lot.)

    – There are times when i can’t delete a component: I hit “X,” and it doesn’t go anywhere. Often, this can be a prelude to being frozen out.

    – Mouse control of the Mask and Copy Colors functions is often… imprecise.

    – I’ve recently had the program keep taking me back to one, particular component that it’s stuck on (say, Hair), despite my clicking on something else. I’ve also had one component’s drop-down menu (Fonts) refuse to disappear from the screen, even as I selected other functions.

    That’s about everything that I can think of in one sitting; I know it’s a lot.

  28. Violet says:

    I’ve had that same menu issue a bunch recently, though it slipped my mind earlier. Say I am trying to go to misc items, I will click on that, but the drop down category menu is for tops. In fact, no matter what I click on, this glitch always takes me to tops.

  29. Worf says:

    @Jeff: You sly dog! Did you make any alterations to the masking part of saving/loading??? I was going to create an example for you of the masking loading all wrong and suddenly it all works fine (the earlier saved stuff loads wrong, but if I create if from scratch it saves and loads correctly).

  30. Worf says:

    Now considering that fixed, my two biggest problems are the hardest to find because they’re intermittent. Locking up (always a big bummer) and the sticky items (which I can SOMETIMES get around, but other times requires restarting and/or saving which was a big issue up to now) 😉

  31. Jeff Hebert says:

    The masking and the layering for loaded items happen in the same little section of code, and that’s what I rewrote. So hopefully they are both improved.

    The problem with previously saved characters is that they might have gotten messed up during creation due to other bugs, then saved properly with the wrong data, if that makes sense. In that case, loading them won’t make any difference even with the new methods because they’re loading correct data that happens to be wrong.

    The sticky items is the Big Bertha of the bugs. That’s the main thing I need to figure out. And as you say, it’s hard because it’s intermittent, those are always the worst to try and track down.

    I think the basic problem is that I am not being careful enough about how I am tracking what items get added when, and I’m not being rigorous enough at some point in the code about making sure that changes are tracked properly. So somewhere along the line that item gets shuffled out of the tracking array and the program doesn’t know what it is.

    So basically, once I feel good that the loading and saving is working (at least, with the features that are there), I can rewrite the code that tracks changes and see if that helps.

  32. Dionne Jinn says:

    Wow. Someone else (27 and 28) had that menu bug as well. I thought it was only my Internet connection acting up, since that bug used to appear when the connection was suddenly lost during editing. But if others are having it too, it just might be something in the program itself. Or I’m not the only one with a faulty Internet… Either way, that bug drives me crazy when it appears.

  33. Gene says:

    Haven’t read through the thread completely, but I’ll throw in another ‘vote’ for sticky items. Totally random, can never reproduce it. Sometimes it happens in the first couple items, sometimes not till the end, or it could happen anytime between.

    Usually have to save and reload the character to salvage it.

    But like I said, I haven’t noticed a pattern to it.

  34. Panner says:

    Adding an item you want to mask before you add the item you want to mask it to is always bad news. To reproduce, try the example below.

    Mystery of the half-masked belt
    -Start hm3c clean.
    -Load Belts-Standard and add the top left belt. Give it some random colors.
    -Load Body-FemaleStandard and add the top left body. Give it some random colors.
    -Select the belt (click it or go through menus), mask it to the body.
    -Save file as ‘a’.
    -Load file ‘a’.

    The belt will now be in a half-masked state. It will be visible, but the line color is completely transparent. The belt is no longer restricted to the contour of the body (ie masked). Attempting to mask the belt to the body again will make it ‘pop out’ and return to a normal, unmasked state.

  35. Jeff Hebert says:

    That’s great stuff, Panner, thank you! Excellent troubleshooting and explanation, I really appreciate it.

    Thanks to the excellent description, I was quickly able to identify the problem, and have now uploaded a new heromachine3c.swf that should fix it. Give it a try (although you might have to clear your browser’s cache for the new version to make the new version operative).

    I just tried it in a different browser that hadn’t loaded 3c before and confirmed it was working.

    Thanks again Panner!

  36. Jeff Hebert says:

    Actually, a bit of further testing showed that the initial Panner fix broke layering again. So I changed it up and I think both layering and masking should now be working properly.

    As a bonus, the “Multiples” and “Single” setting should now be accurate for loaded characters.

  37. Panner says:

    No problemo, Jeff, I’m more than happy to help out. I just made this character in one session, saved it, loaded it (clean load), and everything was masked just the way I left it. This is awesome, great job.

  38. CPrime says:

    Jeff, I’ve mentioned to you the issue of selecting items by clicking on them when you have items from more than one subcategory within the same category. While yes, it can be avoided mostly by not clicking directly on items, it is awfully inconvenient to not be able to use one of the most convenient functions of the program.

  39. Dionne Jinn says:

    What is the function of that lock that can be found in the preview pictures alongside the number of objects, removal button and layering buttons? I have never noticed that it would actually do anything. Is it just that I don’t know how to use it properly?

    That new, secret test versions seems to work rather randomly for me. With one picture it layers everything correctly and masks work perfectly. With another picture it messes up everything.

  40. Jeff Hebert says:

    Dionne Jim (39): That was intended to be so you could prevent that particular item from being changed, so you didn’t accidentally delete it or recolor it or whatever. The main thing was so that down the road if Random All is implemented it wouldn’t be changed. Or it wouldn’t be removed with a “delete all” command.

    It doesn’t work yet, but it’s there as a placeholder.

  41. Jeff Hebert says:

    OK, I just uploaded a patched version of HM3c that includes an extra check to make sure the set for the item you’ve chosen is in fact the correct one. I am hopeful that this will address the problem CPrime mentioned most recently in comment 38, and the menu problems people up-thread remarked on.

    You can replicate the problem yourself, actually. Using the main HeroMachine 3 version:

    1. Load any item from a slot that has more than one set. For instance, load the first item in Background-Shapes.
    2. Apply a pattern to that item from the Pattern tab. For instance, choose the first pattern, the hexes.
    3. Change to a new set in that same slot. For instance, choose to load Background-Sky.
    4. Select the “Multiples” button.
    5. Add an item from the new set. For instance, add the Moon.
    6. Apply any pattern to that item. For instance, I added the round gradient to the moon.
    7. Save as any name you like.
    8. Clear the stage (using Clear All).
    9. Load the file you just saved.
    10. Click on the first item you added (the rectangle in my example). The preview boxes corresponding to that item’s set will appear (the Shapes in my example).
    11. Add a new item from that set. For example, add the star.
    12. Try to click on the star and move it around. It will be stuck and the set selection menu changes to Sky, when it should be Shapes.

    You’ve now created a dead, “stuck” item. You can move the other two items around on the stage, color them, delete them, or whatever you like, but not the stuck one.

    This was important because it was the first time I was able to reliably replicate the bug. That let me bring it into the programming environment and see what was happening.

    Basically there’s a bit of code that activates whenever you click on an item, that says “Hey, we changed items. Make sure everything else matches this item.” However, the variable that holds “What set for this slot is the active one” was not getting updated.

    You could tell that by the way the set menu switched back to “Sky” instead of “Shapes” when you clicked the star. The program thought that the active set for the “Background” slot was “Sky”, even though it was showing the menu set for “Shapes”. Thus when you tried to add item whatever from the Shapes set, it would actually try to add that same item number from Sky and get confused. The resulting item would get placed but it had the wrong name, so the program couldn’t reference it.

    As a result, I have added a line that says “We changed items, so take the set associated with this item and make sure it’s the active one for this slot.” And now, if you’ll try the exact same set of steps in HM3c, you will find that the item is no longer stuck, and the set menu not only shows the proper set for that item, but stays selected.

    Let me know how it’s working for you.

    Assuming no major problems, I’ll push this to the live HM3 version in a day or two.

  42. Panner says:

    Found something Jeff. The new version doesn’t take kindly to double clicking preview boxes. Reproducing example below.

    Sticking your nose where it doesn’t belong
    -Start hm3c clean.
    -Load Nose-Standard.
    -(Optional) Go to Headshot view.
    -Click the preview box for the top left nose.
    -Click the preview box for the top left nose again. The control bar on the preview box will disappear.

    The nose is now soft-sticky and cannot be deleted. It can be made super-sticky and immune to all kinds of interaction by adding another nose, deleting the new nose, and switching to a different Slot/Set. Saving and reloading will return the bugged nose to normal.

  43. Jeff Hebert says:

    AWESOME work, thanks so much Panner! I need to institute a Troubleshooter of the Week award, and you’d definitely be the first recipient.

    I’ve now uploaded a corrected version of heromachine3c that works properly. I appreciate your pointing out the problem and providing such clear steps to replicated. Made crushing the bug much easier.

  44. spidercow2010 says:

    I’m understanding nearly none of this, except that it’s clearly chock-full of awesome, and let me add my thanks for Panner’s yeoman service to the cause.

  45. Worf says:

    Now can we get this live? I’m itching to make some radical alterations to a character I was working on and I’d like to submit him to the next open critique…….

  46. Jeff Hebert says:

    Worf, yes, I’m making some tweaks to the mechanics of how the Save/Load box itself works — I noticed when using Violet’s generously-provided .sol file that the box where you see all your characters’ names is awfully small.

    So I’ve increased the size of that, and while I am in there I am making it so the scroll arrows work the way every other set of scroll arrows in the world work (i.e. you click on the one pointing down and the boxes move up) instead of having it backwards like I did it.

    I’m also making it so if you’re at the top of the list, the up arrow grays out and doesn’t keep scrolling the file list, and ditto for the bottom arrow if you’re at the end of the list.

    I eventually want to put one of those scaling scroll bars you can drag up and down too, but that will have to wait.

    I should go live with this in an hour or so.