MV - Olivia Horror Effects memory leak

● ARCHIVED · READ-ONLY
Started by Prescott 45 posts Page 1 of 3 View original ↗
  1. UPDATE: @Arthran has found the leak and patched it. Kudos!

    I think I have found a memory leak issue with the Horror Effects plugin from Olivia. Clearing an effect from the player does remove the effect visually, but it seems like every time a new effect is added it just drives up the memory usage more.

    I have an item in my game that, when equipped, causes a Glitch effect to occur every 10-20 seconds on the player. It clears after 30 frames. This was causing the game to crash within about 30 minutes.

    I tried testing it out without a parallel process event, just one event that would switch between giving you the glitch effect and removing it, and it seems to be the case that it indeed does continually increase memory usage by a few MB each time it is applied. I'm guessing the reason nobody has found this until now is simply because they're not trying to use it in a parallel process event xD Most people will probably not use it so many times that it would matter much.

    If anyone could take a look at the plugin for me, or perhaps offer a backup solution, it'd be sweet. I'd let Olivia know about it but I'm not quite sure how to contact them, as comments are disabled on their itch.io page for the plugin and it doesn't look like they have an account here from what I can see.

    It's fully possible that this could be an issue on my end as well, so if anyone else has the plugin and would test it so I can rule it out if it is indeed functioning correctly for you, it'd be awesome. I have heard of some people getting memory leaks before swapping to a newer version of nw.js so it's totally possible I just need to do that as well. It's just that I didn't start having this issue until I got to the point in my game where this item is acquired and testing it gave concrete results.
  2. So a few things:
    I realize this is a paid for plugin, but linking to it would still be helpful to others.
    On the note of it being paid, and this being Olivia; in all likelihood, this plugin is obfuscated and therefore no one except Olivia can patch any bugs.

    Hopefully you know enough about Javascript to know what proper code looks like. Try opening the plugin and see if it's all gobledigook. If it is, then it's been obfuscated and there is nothing we can do as far as patching the code.
  3. I don't know for sure, but I guess some people mamage to contact Olivia through the Visustella discord. Now I don't known if it was Olivia or Irina. Or even, if it is allowed to do that.

    Besides that, someone posted this same issue other day here on the forums.
    MV - OliviaHorrorEffects potential memory leak?
  4. TheAM-Dol said:
    So a few things:
    I realize this is a paid for plugin, but linking to it would still be helpful to others.
    On the note of it being paid, and this being Olivia; in all likelihood, this plugin is obfuscated and therefore no one except Olivia can patch any bugs.

    Hopefully you know enough about Javascript to know what proper code looks like. Try opening the plugin and see if it's all gobledigook. If it is, then it's been obfuscated and there is nothing we can do as far as patching the code.
    Olivia Horror Effects plugin. It does appear to be obfuscated, unfortunately. Didn't even think about that.

    Eliaquim said:
    I don't know for sure, but I guess some people mamage to contact Olivia through the Visustella discord. Now I don't known if it was Olivia or Irina. Or even, if it is allowed to do that.

    Besides that, someone posted this same issue other day here on the forums.
    MV - OliviaHorrorEffects potential memory leak?
    Oh interesting, didn't get a hit when I searched for it. Funny that it happened to both of us around the same time. Found their Discord and sent a message, guess I'll wait for a response.
  5. Prescott said:
    Olivia Horror Effects plugin. It does appear to be obfuscated, unfortunately. Didn't even think about that.


    Oh interesting, didn't get a hit when I searched for it. Funny that it happened to both of us around the same time. Found their Discord and sent a message, guess I'll wait for a response.
    Has there been any response? Been seeing this pop up in my project too.
  6. Aquin25 said:
    Has there been any response? Been seeing this pop up in my project too.
    No response. It's pretty unfortunate that seemingly the only way to contact Olivia for support on a paid plugin is extremely convoluted and probably not checked that often, if at all. Not even itch.io comments.
  7. @Prescott if it's any consolation, just know you aren't the only one who feels annoyed with how some devs treat their customers poorly.
    I had a similar event when I purchased a plugin from Aries, who had left a mf typo in the code. At the time, I didn't know, all I knew was that the plugin was causing my game to crash.
    I reached out to Aries on all the platforms they listed, plus some bonuses, and of course, my support request went unanswered.
    I had a friend look into, and they found the typo almost immediately. Thank god it wasn't obfuscated, but still to me this is nuts.

    I understand not wanting to support your plugins any more; lives moves on, etc. No big deal.
    But it's crazy to me that, if you aren't going to support your plugin any more, you'd still charge money for it....and obfuscate it. It just feels like there is a certain group of plugin devs who are all affiliated with each other in one way or another who really seem to hate their customers and think every one of their customers is a dirty rotten, code stealing pirate.

    Anyways, there's nothing we can do; I just was mentioning this that you aren't alone with this.
  8. Yeah, thankfully I'm just using the plugin for one thing that I can come up with a workaround for, but I still bought it only for that one thing to not work as intended. Even the comments on their YouTube videos are turned off. I sent a message to their Reddit account as well but it seems like they haven't been active there for a while either.

    If you're going to obfuscate code (while still putting in the terms that anyone can edit it for some reason), then at least have the decency to leave comments open for support. I wouldn't even say you have to answer every time someone says "hey how do I do X with your plugin" but I'd think that if there was a bug, you'd like to know.

    Even worse is that I can't comment to let OTHER people know, so they're probably going to waste their money and run into the issue eventually as well.
  9. Yeah, it seems profoundly uncool. If you're going to charge money for something, you should provide support.

    If it's abandonware, remove the price.
  10. I'm nowhere near an expert at reverse engineering obfuscated and minified code, but using de-minify tools does reveal that some information about the plugins architecture is still visible. Like function names and some variables are more obvious than others. That's how I was able to change some things about Olivia's weakness display plugin.
  11. StandardEnemy said:
    I'm nowhere near an expert at reverse engineering obfuscated and minified code, but using de-minify tools does reveal that some information about the plugins architecture is still visible. Like function names and some variables are more obvious than others. That's how I was able to change some things about Olivia's weakness display plugin.
    I'd try that out but I'd hate to break terms of service and screw my game over because of it. For me, it's not worth it when I can work around it. Doesn't mean I'm not disgruntled though.
  12. This is true, the guys do it without demonstration, they make mistakes in the prints, and in the end they disappear.
  13. Prescott said:
    I'd try that out but I'd hate to break terms of service and screw my game over because of it. For me, it's not worth it when I can work around it. Doesn't mean I'm not disgruntled though.
    The terms of service explicitly permit you to edit the code, as long as you don't change the parameters or help documentation, so you wouldn't be breaching the terms in any way.
  14. Prescott said:
    Even worse is that I can't comment to let OTHER people know, so they're probably going to waste their money and run into the issue eventually as well.
    My biggest peeve is that a certain team requires you to upload a project to drive to demonstrate an issue with a plugin. In other words they want (nay, require) you to do the issue isolation for them.

    So they obfuscate the code and don’t make functional specifications available, making DIY troubleshooting near impossible… and on top of that bug reporting is a real pain. I ended up giving up on using a paid plugin of theirs.

    Sorry for the off topic rant, but just wanted to say that I feel your pain.
  15. Arthran said:
    The terms of service explicitly permit you to edit the code, as long as you don't change the parameters or help documentation, so you wouldn't be breaching the terms in any way.
    PLEASE someone take advantage of this and look into things.

    You'd be doing a lot of people a lot of good here!!
  16. @Aquin25 That's presuming there's someone who's a sufficiently proficient coder to figure out how the plugin functions and find and fix the error and purchased the plugin in the first place.
  17. I guess you could replace the hex with fruit names, but that would be against the TOS, right?

    So for all practical purposes it’s nigh impossible to fix it yourself unless you have a positronic brain.
  18. Prescott said:
    I tried testing it out without a parallel process event, just one event that would switch between giving you the glitch effect and removing it, and it seems to be the case that it indeed does continually increase memory usage by a few MB each time it is applied. I'm guessing the reason nobody has found this until now is simply because they're not trying to use it in a parallel process event xD Most people will probably not use it so many times that it would matter much.
    The issue might actually be worse than this. I just tested the MZ version of this plugin, and it also seems to have the memory leak. However, there was no need to continually apply and remove the glitch effect. Just turning on the glitch effect once, and letting it stay on, caused my RAM usage to continually increase. I didn't time it super accurately, but as far as I could tell, it seemed like the memory usage ticked up at exactly the same rate that the glitch effect occurred.

    So the bad news is that, if the MV plugin is the same, then it's basically unusable. The maybe not so bad news is that, since the MZ plugin also has the issue, it can be reported to VisuStella, and when/if they fix the MZ plugin, *maybe* Olivia would go back and fix the MV plugin as well.

    Prescott said:
    I have heard of some people getting memory leaks before swapping to a newer version of nw.js so it's totally possible I just need to do that as well.
    In this case, it's definitely the plugin causing the memory leak, so updating NW.js will not fix the problem. However, it *would* likely alleviate the crashing.

    The version of NW.js that comes with MV is 32-bit, which means that it has a hard limit on how much RAM it can use. Exceeding that limit (in this case, 4 gigabytes) will cause the game to crash. If you were to upgrade NW.js to a 64-bit version, then that limit would be effectively removed. The memory leak would still exist, but instead of crashing, the game would likely just continue eating up memory until there is no space left in memory, at which point you'd probably start to observe performance issues. That's probably preferable to abruptly crashing, since it wouldn't necessarily cause your players to lose progress, but still just a band-aid fix to a serious problem.

    If you do decide to update NW.js, I personally recommend going for version 0.48.4. It's what we use in MZ, so it's fairly proven to be stable, and going much higher than that can lead to some potential plugin compatibility issues.

    werzaque said:
    I guess you could replace the hex with fruit names, but that would be against the TOS, right?

    So for all practical purposes it’s nigh impossible to fix it yourself unless you have a positronic brain.
    You can change the hex. The only thing that the TOU prohibits changing is basically the top section of the plugin, above the actual code.
  19. Arthran said:
    If you were to upgrade NW.js to a 64-bit version, then that limit would be effectively removed.
    Really? You wouldn't need to recompile the Game executable? The NW.js handles all of the memory stuff independently?
  20. Game.exe is actually just nw.exe renamed. Replacing that is part of the process of upgrading NW.js