OpenHeroSelect (Includes support for XML2 and the MUA 36 & 50 Character Mods!)

Started by Tony Stark, June 09, 2019, 03:59PM

Previous topic - Next topic
oh damn... so even tho it works with 50 character roster, i cant have a default 50 just show up? there's no way to automatically load the XML characters from the 50 roster mod? i have to just fill up the remaining 15+ spaces manually? (sorry extremely new to this)

another question- now that ive got antman working, lets say i wanna add Punisher, do i just do the same process? swap the Punisher code into the herostat cfg? do i have to start with a fresh, unmodded herostat xmlb? or does it just rewrite/save over the current one thats already modded with antman?

Yes you'll need to add those extra characters. It's not too difficult but you would need to get the herostat info for them which usually comes with character mods, or you can use the xmlb decompiler to get it, there are tutorials for that.

Yes you can add Punisher to the same herostat.cfg. The list of names at the top is what determines which characters and what order they're added in to the herostat. So if you have 60 names at the top and you're using the 50-character version, it'll set up the first 50 characters named at the top.

Hello to everyone!!
I'm having a problem with open hero select, whenever I add 27 modded characters + defaultman the MUA Game.exe closes after the legal text screen, If only 26 characters + defaultman are added the game works perfect (Already check that the added characters are not causing problems). After a little tinkering with the files, the problem, I think, is in the herostat.engb , if I remove this piece of code the game works perfectly with 27 characters + defaultman :
        "stats": {
            "autospend": "support_heavy",
            "body": 1,
            "characteranims": "00_testguy",
            "charactername": "defaultman",
            "level": 1,
            "menulocation": 0,
            "mind": 1,
            "name": "default",
            "skin": "0002",
            "strength": 1,
            "team": "enemy",
            "talent": {
                "level": 1,
                "name": "fightstyle_default"
            }
        }

Does anybody knows what this is happening?  Or what I'm I doing wrong?

Yes there are issues with defaultman in certain configurations, it needs to be fixed, and will be in the next major update.

Quote from: Tony Stark on March 23, 2021, 12:52AM
Yes there are issues with defaultman in certain configurations, it needs to be fixed, and will be in the next major update.

Thanks!!

Quote from: Tony Stark on March 23, 2021, 12:52AM
Yes there are issues with defaultman in certain configurations, it needs to be fixed, and will be in the next major update.

I tested with 50, 36, 33 and 27 heroes and only got the defaultman once out of six or so times with 33 heroes. I used the defunct 36 roster hack, except for the 50 heroes setup (probably doesn't make any difference). The game usually works without defaultman in the herostat, but since the new limit allows it, he could be included in the setups where we need the hack anyway (more than 27).
As phix wrote already: Without roster hacks (27 heroes limit), the defaultman should not be included. His info is a bit confusing to me because i understand he has defaultman included (which is not the case and might cause issues I don't know).

Quote from: ak2yny on March 24, 2021, 02:14PM
I tested with 50, 36, 33 and 27 heroes and only got the defaultman once out of six or so times with 33 heroes. I used the defunct 36 roster hack, except for the 50 heroes setup (probably doesn't make any difference). The game usually works without defaultman in the herostat, but since the new limit allows it, he could be included in the setups where we need the hack anyway (more than 27).
As phix wrote already: Without roster hacks (27 heroes limit), the defaultman should not be included. His info is a bit confusing to me because i understand he has defaultman included (which is not the case and might cause issues I don't know).

To clarify, when I used openheroselect without roster hacks (27 heroes limit), the program includes automatically defaultman, which is causing the crashing issue. If I remove defaultman from the herostat.engb it solves the problem

It's finally here, OpenHeroSelect v3!

Completely rewritten from the ground up, OpenHeroSelect is more extensible and powerful than ever, with the ability to define separate stats files, separate rosters, and configure OpenHeroSelect to work with your setup! All characters from OCP v2.3 are included and it's even got a snazzy new icon! Give it a try, you can download it here, as always: https://github.com/TheRealPSV/OpenHeroSelect/releases/latest/download/OpenHeroSelect.7z

(Also solves the defaultman problem)

Hey, I absolutely love the new functions and appearance.
I tested it today and successfully created my first roster with it. Now, there are some limits that aren't mentioned yet.

1) OHS v3 only supports JSON (Raven-Formats only) and XML (XMLB-compile only). If you have a herostat, you'll first have to rename them to XML.
     (I hope we'll see an update at some point that allows us to use TXT files too).
2) OHS v3 doen't support any other lines (except spaces and empty lines, I think) than the required herostat code. This means that you'd have to erase any other lines (like the hero's name on top) before renaming and moving/copying the herostat file.
     (I hope we won't have to do that in some future update anymore. Skipping lines until the proper herostat beginning would be an easy feature to include in the program.)
3) OHS v3 only supports a full roster (I believe). If you want to test a single character, you have to use an existing roster.cfg and add it to the top (or anywhere above the line of the stage layout limit).
     (I hope that I'm wrong and somehow it's possible to use a not full roster).
4) OHS v3 supports JSON/Raven-Formats format, but this means that it takes its time to convert everything to JSON format.
    XMLB-compile is no longer part of the program, but it seems like some more Python libraries are, which increases the size of the program significantly.
     (No mod up to this date includes a herostat in JSON format. I don't see why OHS primarily works with JSON... just to slow it down?)
5) OHS v3 doesn't support the old herostat.cfg from earlier OHS versions or HeroSelect anymore. You'll have to split it first (a tool is included).
     (I'm disappointed by this removed function.)

I also want to mention some requirements: ... really, there are no requirements. Except, be aware that defaultman adds to the limits. If you don't have a roster hack, you must not include defaultman (or use any other option than 27), otherwise the game will crash. The original game certainly came with it, but it only had 23 characters (not counting the hidden Colossus and Moon Knight). If you have a roster hack, you can always include defaultman.
And maybe something else: To change your roster, you currently have to add your hero by adding the filename of the hero's herostat to any CFG file in the roster folder. Unfortunately there is no easier way right now.




This version is new, so don't be alarmed if I'm reporting a bug here:
The program tells me that I can paste the MUA path. It didn't work for me. I tried to paste several times, but nothing happened. When I enter the path manually, there is a bug when I reach the end of the window: With each new line, the prompt message and current characters of the path are inserted on the new line. It's confusing. Entering the path works perfectly though.
(I wonder if you could add an option to take single settings from the config.ini, by pressing enter without input.)

This is not a bug, but: XMLB, FREB, GERB, and ITAB are useless. A modded game is only possible in English. I can give more insight if you want to learn more about translations of MUA.




I'm not so happy about the big size of the program. Simplifying it to use the old format and only support JSON to XML should reduce the size, shoudn't it? (I know XML doesn't support special characters, but this was never a problem...)

Quote from: ak2yny on April 21, 2021, 07:09AM
Hey, I absolutely love the new functions and appearance.
I tested it today and successfully created my first roster with it. Now, there are some limits that aren't mentioned yet.

I'm glad you're finding it useful. I can explain some of these issues, others do seem to be things that may need to be fixed.

Quote1) OHS v3 only supports JSON (Raven-Formats only) and XML (XMLB-compile only). If you have a herostat, you'll first have to rename them to XML.
     (I hope we'll see an update at some point that allows us to use TXT files too).

This is actually possible, thinking about it. It'll take some work but I think it's doable.

Quote2) OHS v3 doen't support any other lines (except spaces and empty lines, I think) than the required herostat code. This means that you'd have to erase any other lines (like the hero's name on top) before renaming and moving/copying the herostat file.
     (I hope we won't have to do that in some future update anymore. Skipping lines until the proper herostat beginning would be an easy feature to include in the program.)

I can't remember if I added comment lines but if not, I'll look into it. If I do add comments, the format will be different from the old version. If you're talking about skipping lines inside the individual stats files, I can look into this but because I'm letting the python plugins handle those files, it could add extra time to the way it processes everything if I have to have the main code also modify the file.

Quote3) OHS v3 only supports a full roster (I believe). If you want to test a single character, you have to use an existing roster.cfg and add it to the top (or anywhere above the line of the stage layout limit).
     (I hope that I'm wrong and somehow it's possible to use a not full roster).

Unless there's a bug, this shouldn't be the case. You should be able to make a one-character roster with no problem.

Quote4) OHS v3 supports JSON/Raven-Formats format, but this means that it takes its time to convert everything to JSON format.
    XMLB-compile is no longer part of the program, but it seems like some more Python libraries are, which increases the size of the program significantly.
     (No mod up to this date includes a herostat in JSON format. I don't see why OHS primarily works with JSON... just to slow it down?)

There are a few reasons for this. nikita488's json to xmlb converter is more flexible, and more importantly, in-keeping with the principles of OpenHeroSelect, is open source, so I can include its source code with the project's source code. The speed is an issue, but this is actually coming more from the fact that the character stats are individualized, so it has to process each individual file.

Quote5) OHS v3 doesn't support the old herostat.cfg from earlier OHS versions or HeroSelect anymore. You'll have to split it first (a tool is included).
     (I'm disappointed by this removed function.)

Unfortunately this is unavoidable, but it shouldn't hold you back. The new format is functionally equivalent and allows you to define multiple rosters without defining multiple characters so you can quickly switch between them.

QuoteI also want to mention some requirements: ... really, there are no requirements. Except, be aware that defaultman adds to the limits. If you don't have a roster hack, you must not include defaultman (or use any other option than 27), otherwise the game will crash. The original game certainly came with it, but it only had 23 characters (not counting the hidden Colossus and Moon Knight). If you have a roster hack, you can always include defaultman.

This is a good point to include in the help files.

QuoteAnd maybe something else: To change your roster, you currently have to add your hero by adding the filename of the hero's herostat to any CFG file in the roster folder. Unfortunately there is no easier way right now.

Unfortunately there really isn't a simpler way. Editing with a text editor really is the easiest way to do this.

QuoteThis version is new, so don't be alarmed if I'm reporting a bug here:
The program tells me that I can paste the MUA path. It didn't work for me. I tried to paste several times, but nothing happened. When I enter the path manually, there is a bug when I reach the end of the window: With each new line, the prompt message and current characters of the path are inserted on the new line. It's confusing. Entering the path works perfectly though.
(I wonder if you could add an option to take single settings from the config.ini, by pressing enter without input.)

Yeah this seems to be a bug with Node, I don't know if I can fix that, but the config idea is promising.

QuoteThis is not a bug, but: XMLB, FREB, GERB, and ITAB are useless. A modded game is only possible in English. I can give more insight if you want to learn more about translations of MUA.

Yes, I really just kept that for legacy reasons since the original HeroSelect would generate all those.

QuoteI'm not so happy about the big size of the program. Simplifying it to use the old format and only support JSON to XML should reduce the size, shoudn't it? (I know XML doesn't support special characters, but this was never a problem...)

I'm really not happy about the filesize either, but this is more to do with the Node runtime. I could theoretically cut it down by including the splitter as part of the main program but that would require some re-architecting.



v4

OpenHeroSelect v4 is here! This version adds support for X-Men Legends II, improves the UI, and cuts the filesize in half!

Download it here, as always: https://github.com/TheRealPSV/OpenHeroSelect/releases/latest/download/OpenHeroSelect.7z

Hello there.
I'm a newbie and not speaking english as a mother-tongue (french) and I would like to mod my MUA but I'm lost and don't want to do an error.
I'm having the game with the OCP2.3 and the 50 roster mod. I have downloaded OpenHeroSelect, Alchemy5andtools, characters mods, booster and skins.
I would like to replace 27 out of the 50 characters available (I don't mind if it's definitive) but I don't want to try and retry errors (would be harder to fix).

Where could I ask a step-by-step tutorial ? I'm following the tutorial topic but I don't know how to match it with OperHeroSelect.