How To: Multiple Themed Herostats/Executibles

Started by MelloMods, July 17, 2012, 03:58AM

Previous topic - Next topic
July 17, 2012, 03:58AM Last Edit: September 16, 2012, 06:02AM by Harpua1982
Custom Herostat Themes Tutorial
In this tutorial, I will teach you how to make multiple themed herostats that you can choose from w/out the use of heroselect.  Since I use a graphics emulator to play MUA, I cannot (or maybe I can, just haven't tried to) run my game from heroselect.  Instead, I have 3 different herostats that I can choose from by picking which executible to run. 

For Example: (images at bottom of post)

X-Men Ultimate Alliance - consisting of a full 27 character roster of all X-Men heroes.  Game starts w/ Cyclops, Jean Grey, Wolverine and Storm and offers me 10 new save spots.

Avengers Ultimate Alliance - consisting of 27 characters that are, or have some way, been affiliated w/ the Avengers team.  Starting characters include: Hulk, Capt. America, Iron Man and Thor.  This also allows me 10 brand new spots to save so I don't overwrite any saves from MUA or my other Custom Themed Games.

Brotherhood Alliance - consisting of 27 characters that are enemies of the X-Men.  Starting characters are:  Magneto, Sabretooth, Pryo and Toad.  Again, all new save spots.


All w/ one click of the executable, I can have access to all the characters I want.

TOOLS YOU'LL NEED:

INSTRUCTIONS:
  • Choose your characters/Theme - Simple as it sounds, this is probably the most important.  Open up a notepad and actually think about all the characters you want in the game and where you want them in the menuselect screen.  Sometimes I actually open up heroselect to see the menulocation layout, so I know who to put where.  If you have the Official Characters pack installed, you can choose up to 27 characters.  Also, be sure that all the characters that you are choosing are copied in your game folder.
  • Creating a herostat - With XMLBCUI,decompile your existing herostat(input xmlb) to your desktop (output xml). and hit "edit".  Now this part takes some time b/c you have to take each character's herostat that you want in your game, and place it over all the other existing herostat entries. OR, you may already have a herostat that you want to use.  Don't forget to assign "menulocation"... Once you've finished w/ editing it, compile your herostat to herostat.engb on your desktop.
    BTW, herostat.engb is located in:
    Activision/Marvel Ultimate Alliance/data.
  • Renaming your herostat - Now you need to rename your herostat.engb to something else.  This can be anything, as long as it contains the same amount of letters.  For example, instead of herostat, I have xmenstat.engb for my X-Men game.  For my Avengers game I have: avngstat.engb.  See, 8 letters.  Now place it in your game's data folder.  Remember the name of this file b/c it will be important later.
  • Choose your starting characters - Now you need to pick 4 starting characters.  To pick who the game starts with, you'll need to decompile charinfo.xmlb, which is located and the same folder you just put your NEW herostat.  Do the same as you did before and decompile it to your desktop and hit "edit".  Have a look in there, and you will find:

   hero {
   name = CaptainAmerica ;
   start_game = e3,normal,demo1,demo2 ;    <------------ This is the line that identifies this char starts.
   unlocked = normal, demo2 demo1 ;
   }

    Where it says "name" place your character's name, which you'll see in the herostat.  Not charactername, but name.  For example, Ms. Marvel's charactername is "Ms. Marvel" but her "name" is Warbird in her herostat.  You would want to put in "Warbird". Once you've done this, compile it to your desktop. Do this for all 4 characters.[/li]
  • Rename your Charinfo - Rename charinfo.xmlb to something similar to what you named your herostat.  For example, I have xmeninfo.xmlb instead of charinfo.xmlb and avnginfo.xmlb instead ect. ect. ect.  Remember this is .xmlb and not .engb.  Place this in your data folder w/ your herostat.
  • Hex Edit your Executible - Copy/Paste the executible you usually use to start the game (Activision/Marvel Ultimate Alliance/"MUA.exe" or "Game.exe") to your desktop.  Right click and go to properties. In the "General" tab, uncheck the Read-Only box.  Open up in a Hex editor.
    Search for the text string "herostat".  Type in the same name that you renamed your herostat. 
    Next, search for the text string, "charinfo".  Type the same name that you renamed your charinfo. 
    Next, search for the text string, "Activision\Marvel Ultimate Alliance\Save" (caps and spaces are important).  Rename "Marvel" to something else using the same amount of letters.  For example, I named mine to "X-Mens Ultimate Alliance".  You can also do this to "Activision\Marvel Ultimate Alliance\Screenshots.  This will create a new folder for your saves in My Documents.
  • Saving your EXE and playing your game - Once you have saved your hex edited executible to your desktop, rename the executible to anything you like.  I chose "X-Men Ultimate Alliance".  Right-click on it again, go to properties and check the "Read-Only" box in the General tab.  Next, copy/paste this in your Marvel Ultimate Alliance folder and start a new game.


X-Men Ultimate Alliance (xmenstat.engb/xmeninfo.xmlb)


Avengers Ultimate Alliance (avngstat.engb/avnginfo.xmlb)


Brotherhood Alliance (xbadstat.engb/xbadinfo.xmlb)

yeah, yeah...I've got some random mannequins in there as place holders, but I'm working on that.

EXTRA STUFF
Here, will be some extra things you can do to your executable to make it more unique and other revelations I've found along the way
  • team_bonus.engb - Let's say you wanted to update all your team bonuses w/ all the new characters you have in your X-Men Alliance game.  Simple, just de-compile the team_bonus.engb from the data folder. Edit said file to your liking. But when you compile it, be sure to name it something different (but w/ the same amount of letters, of course)  For this example, I would rename team_bonus.engb to xmen_bonus.engb.  Then, open up the executible in the hex editor, search the text strings for "team_bonus" and rename it to "xmen_bonus", as well.
  • Sim Missions - I haven't found very many custom Sim Missions yet, but perhaps this will maybe inspire some modders to do more sim missions.  I found "simulator.xmlb" in the executable, so I imagine I can rename it to something like, "xmenlator", or something like that.  More on this later....

Thanks:
  • Thanks to Nodoubt_jr and his XML2 Brotherhood Edition, Marvel Universe Edition and All X-Men Addition Mods for helping me gain insight into this subject.
  • Dark_Mark, and other users for the Official Characters Pack.
  • Thanks to Jeanfan321 for his team_bonus discovery.
  • Thanks to Blaw, Burning Rage and all the others that have submitted tutorials on the website.
  • Anyone I forgot to mention?

If anyone sees any errors in this tutorial or has anything to add, feel free to post below.

REMEMBER TO BACK UP ALL FILES BEFORE OVERWRITING ANYTHING.

^^view MelloMods' Mods^^

This is a really cool idea.  Thanks for posting such clear instructions.
Use this poll to tell everyone where you are from:

http://marvelmods.com/forum/index.php/topic,3929.msg73927.html#msg73927

WOW! This would be really useful for people who want like an X-Men Legends 3, and a MUA 2 roster!

Great job with the tutorial, I'm glad i could help in any way :)
Please search the forum before asking a question. I dont answer
PMs about modding, those questions should be posted in a public thread.
What im currently working on: http://marvelmods.com/forum/index.php?topic=2275.0
My mods are mine to booster/update, I will not give anybody permission to do it

This is really awesome! I need to try this out :) I am also happy to see Vertigo in the brotherhood thing, even if you never even played as her, it's cool to see her somewhere lol :D


MY SKINS                                                                                               MY MODS


Followed your instructions and everything works fine except that I only have 26 characters. For some reason the character in slot 96 does not appear when using hexed executable. I get 27 characters when I use Heroselect. Any ideas on what I'm doing wrong or how I can solve this issue? So far no luck looking for clues with search.

August 30, 2012, 04:25AM #6 Last Edit: August 30, 2012, 04:45AM by Harpua1982
Mine has 27, except for my X-Men team, which I know I'm missing slot 26 in the herostat.  Can you post the herostat you're using?

^^view MelloMods' Mods^^

don't post often. how can I attach herostat? inserting into post gives me error.

In notepad:
Edit/select all

copy

In Post:
paste

highlight all

Hit the # button (insert code)

Post

^^view MelloMods' Mods^^

don't have a code so here is the bottom of my herostat. All characters work except Hulk. I have him in location 96 (Heroselect style). Not sure if this is my problem or not.

   stats {
   autospend = bruiser_light ;
   body = 7 ;
   characteranims = 18_warmachine ;
   charactername = War Machine ;
   level = 1 ;
   menulocation = 26 ;
   mind = 8 ;
   moveset1 = moveset_flying ;
   name = Warmachine ;
   playable = true ;
   powerstyle = ps_warmachine ;
   scale_factor = 1.1 ;
   scaleattacks = true ;
   scriptlevel = 3 ;
   skin = 1802 ;
   skin_01_name = Classic ;
   skin_02 = 03 ;
   skin_02_name = Modular ;
   skin_03 = 04 ;
   skin_03_name = Iniative ;
   skin_04 = 05 ;
   skin_04_name = Ultimate ;
   sounddir = warmch_m ;
   strength = 6 ;
   team = hero ;
   textureicon = 13 ;
      Race {
      name = Mutant ;
      }

      Race {
      name = XMen ;
      }

      talent {
      level = 1 ;
      name = warmachine_p1 ;
      }

      talent {
      level = 1 ;
      name = grab ;
      }

      talent {
      level = 1 ;
      name = flight ;
      }

      talent {
      level = 1 ;
      name = block ;
      }

      talent {
      level = 1 ;
      name = might ;
      }

      talent {
      level = 1 ;
      name = ironman_grabsma ;
      }

      talent {
      level = 1 ;
      name = melee_moves ;
      }

      StatEffect {
      anim = flying ;
      bolt = Bip01 L Toe0 ;
      effect = char/warmach/ability_fly_hand ;
      fxlevel = 1 ;
      }

      StatEffect {
      anim = flying ;
      bolt = Bip01 R Toe0 ;
      effect = char/warmach/ability_fly_hand ;
      fxlevel = 1 ;
      }

      BoltOn {
      bolt = Bip01 Spine2 ;
      menuonly = true ;
      model = models/bolton/warmachine_weapons_off_DXT1 ;
      slot = ebolton_clawleft ;
      }

      talent {
      level = 1 ;
      name = fightstyle_warmachine ;
      }

   }

   stats {
   ailevel = 1 ;
   autospend = bruiser ;
   body = 7 ;
   canthrowally = true ;
   characteranims = 170_Hulk ;
   characteranimsclass = humanoid_large ;
   charactername = Hulk ;
   ignoreboundsscaling = true ;
   level = 1 ;
   menulocation = 96 ;
   mind = 4 ;
   name = Hulk ;
   playable = true ;
   powerstyle = ps_hulk ;
   scale_factor = 1.5 ;
   scaleattacks = true ;
   scriptlevel = 3 ;
   skin = 17001 ;
   skin_01_name = Classic ;
   skin_02 = 02 ;
   skin_02_name = Original ;
   skin_03 = 03 ;
   skin_03_name = Red ;
   skin_04 = 04 ;
   skin_04_name = Joe Fixit ;
   sounddir = hulk_m ;
   strength = 12 ;
   team = hero ;
   textureicon = 7 ;
      Race {
      name = Mutant ;
      }

      Race {
      name = XMen ;
      }

      talent {
      level = 1 ;
      name = hulk_power1 ;
      }

      talent {
      level = 1 ;
      name = healing_factor ;
      }

      talent {
      level = 1 ;
      name = no_grab ;
      }

      talent {
      level = 1 ;
      name = fightstyle_default ;
      }

      talent {
      level = 1 ;
      name = might ;
      }

      talent {
      level = 1 ;
      name = block ;
      }

      talent {
      level = 1 ;
      name = melee_moves ;
      }

   }

   stats {
   autospend = support ;
   isteam = true ;
   name = team_character ;
   skin = 0002 ;
   xpexempt = true ;
   }

}

Is there more than one character w/ the menulocation 96?

I had a similar problem, where only 26 characters where showing up.  The reason for that was b/c I was missing an entry for slot 26.

Make sure all you menulocations are filled and not duplicated.

If I could see your full herostat that would be helpful. (may take more than 1 post to include)


^^view MelloMods' Mods^^

September 05, 2012, 02:42PM #11 Last Edit: September 05, 2012, 02:53PM by BaddAzzYellaBro
All menu locations are filled from 1-27(96). I also have 5 other herostats with the same problem. (X Men, Brotherhood, Young X Men, Marvel, & DC). I have 26 characters with the character in menu location 96 not showing up. It maybe because I tried the quick way of editing the herostat.cfg inside Heroselect folder. I started the game with Heroselect and then edited the herostat.engb inside the data folder. I'll try manually editing the original herostat without using Heroselect and see if that works.

I also do not have defaultman at the beginning of my herostat:


XMLB characters {
   stats {
   ailevel = 1 ;
   autospend = bruiser_light ;
   body = 7 ;
   characteranims = 68_ironfist ;
   charactername = Iron Fist ;
   level = 1 ;
   menulocation = 1 ;
   mind = 8 ;
   name = ironfist ;
   playable = true ;
   powerstyle = ps_ironfist ;
   scriptlevel = 3 ;
   skin = 6802 ;
   skin_01_name = Classic ;
   skin_02 = 03 ;
   skin_02_name = Ultimate ;
   skin_03 = 04 ;
   skin_03_name = Tournament ;
   skin_04 = 05 ;
   skin_04_name = Modern ;
   skin_05 = 06 ;
   skin_05_name = Red ;
   skin_06 = 07 ;
   skin_06_name = Daredevil ;
   sounddir = ifist_m ;
   strength = 7 ;
   team = hero ;
   textureicon = 7 ;
      Race {
      name = Mutant ;
      }

      Race {
      name = XMen ;
      }

      talent {
      level = 1 ;
      name = grab ;
      }

      talent {
      level = 1 ;
      name = ironf_p1 ;
      }

      talent {
      level = 1 ;
      name = ironf_p6 ;
      }

      talent {
      level = 1 ;
      name = melee_moves ;
      }

      talent {
      level = 1 ;
      name = block ;
      }

      Multipart {
      health = 0 ;
      hideskin = batons_segment ;
      }

      Multipart {
      health = 0 ;
      hideskin = baton_hand_segment ;
      }

      talent {
      level = 1 ;
      name = fightstyle_ironfist ;
      }

   }

   stats {
   ailevel = 1 ;
   autospend = bruiser ;
   body = 7 ;
   canthrowally = true ;
   characteranims = 157_luke_cage ;
   charactername = Luke Cage ;
   ignoreboundsscaling = true ;
   level = 1 ;
   menulocation = 2 ;
   mind = 4 ;
   name = LukeCage ;
   playable = true ;
   powerstyle = ps_lukecage ;
   scale_factor = 1.1 ;
   scaleattacks = true ;
   scriptlevel = 3 ;
   skin = 15701 ;
   skin_01_name = New Avengers ;
   skin_02 = 02 ;
   skin_02_name = Hero for Hire ;
   skin_03 = 03 ;
   skin_03_name = Street ;
   skin_04 = 04 ;
   skin_04_name = Modern ;
   sounddir = lukeca_m ;
   strength = 10 ;
   team = hero ;
   textureicon = 5 ;
      Race {
      name = Mutant ;
      }

      Race {
      name = XMen ;
      }

      talent {
      level = 1 ;
      name = block ;
      }

      talent {
      level = 1 ;
      name = might ;
      }

      talent {
      level = 1 ;
      name = grab ;
      }

      talent {
      level = 1 ;
      name = lukec_grabsma ;
      }

      talent {
      level = 1 ;
      name = melee_moves ;
      }

      talent {
      level = 1 ;
      name = fightstyle_default ;
      }

      talent {
      level = 1 ;
      name = lukec_p1 ;
      }

   }

Now how many teams can we have ? Like is 3 the maximum or can we have as many as we want ?

Quoteit maybe because I tried the quick way of editing the herostat.cfg inside Heroselect folder. I started the game with Heroselect and then edited the herostat.engb inside the data folder.

The point of this tutorial is bypassing the program heroselect.  Since I can't use heroselect, I'm not sure how it will effect your game.  After following the tutorial, you should be able to run the game right from the executable you created.  You should edit the herostat.engb in the data folder and rename it to whatever you've hex-edited in the executable.

QuoteNow how many teams can we have ? Like is 3 the maximum or can we have as many as we want ?
As far as I know, you can have as many as you want, as long as you have a different executable calling upon different herostats and charinfo.

^^view MelloMods' Mods^^

We use the .engb herostat, not the .xmlb one ?