Logo Platform
logo amplifiers simplified

[Help] Adding a new custom Hero

Reply
Copied to clipboard!
9 years ago
Nov 1, 2015, 10:41:18 AM
Greetings, this is my first post. I've lurked and read countless info on here for weeks and months - but I just cant fix this issue so I'm here to ask for some help.



I want to create mods for this game, and am skilled at doing so (many complex / scripted mods for Oblivion including overhauls --- and other games, etc); but this modding system / engine just seems to be broken + very limited. I'm very eager to see better support for it of course.



Anyway right now I am trying to do something quite simple: create custom heroes for each faction. "Legendary heroes" sort-of-speak.



So, starting with Rage Wizards I created the following heroes:

**UnitProfiles[Hero].xml**

[CODE]













































































[/CODE]



Now I added these 2 heroes to the creation stack when creating a game as Rage Wizards:

**FactionTraits[Affinity].xml**

[CODE]





[/CODE]



Then I added their namespaces so they get an in-game name:

**UnitProfileNames[Hero].xml**

[CODE]





%HeroNameRageWizardsHero1Version1Title

%HeroNameRageWizardsHero1Version2Title

%HeroNameRageWizardsHero1Version3Title







%HeroNameRageWizardsHero2Version1Title

%HeroNameRageWizardsHero2Version2Title

%HeroNameRageWizardsHero2Version3Title



[/CODE]



Then I package all these files into a new mod: "RageWizards" --- and go into my game and enable the new mod, and create a new game.



After starting the new game -- I get 2 armies stacked on eachother -- with the new custom heroes correctly in there.

(A minor bug: there is no "unit card" (graphic) of the heroes. It is just an empty space. However the heroes are there and everything works fine.)

So whats the problem?

Well here's the amazing / dumbfounding part: if I save the game --- and then load the game --- the heroes have disappeared.....?!?!?!?!

Happens everytime.

I have tried tweaking values in the definitions so many times - doesnt matter.



If I save the game with the heroes - I can open the Game.xml file and find them just fine. Everything seems to be perfect.

But if I exit the game, and re-load the save - the heroes are gone. If I save the game after reloading it, and then check the Game.xml file --- the heroes are indeed gone and no longer in the game.xml file.





So the only way to actually add a new hero seems to be to create one --- and then play a game all the way from start to finish without loading.......???????



See, this kind of problem is the culprit of a really broken game engine. The XML you've setup for this game engine should support modding quite well and easily - but it doesnt.

There are lots of hidden things going on which we cannot see, change, or even figure out what they are to try and find work-arounds.





Without modding, this game fails at reaching its amazing potential.

Which is an utter shame because I find the game design here and the work put into this - worthy of a game that can become one of the 4x greats of all time.

Fix the modding system please, your livelihood as a game studio depends on it. I think you know that, just as well as we players know it too.



In the meantime - care to explain why this is happening?
0Send private message
9 years ago
Nov 1, 2015, 11:47:40 PM
I hate to ask a question like this, but did you load the mod prior to loading the game? The game's mod system doesn't load one by default. The "heroes disappearing" part sort of makes sense if you tried to load a modded game without the necessary mods installed. You can see that the devs put in some UI that makes it look like the game knows which mod is required for a given savegame, but that doesn't seem to have been actually implemented.



You didn't mention making new entries in SimulationDescriptors[UnitProfile].xml, but that seems to be necessary. If you make a reference to a new SimulationDescriptor, you need to define what that is somewhere. This will also give you a chance to define base attack/defense/etc. values which are different from other heroes, if you like.



Edit: Actually, the portraits being missing is a related issue. You need to make new entries in Gui/GuiElements[Heroes].xml to define your hero's large/small icons and some sort of tooltip. The tooltip should be localized, so you should edit the relevant EF_Localization_Assets_Locales.xml as well. For testing purposes, it's not necessarily wrong to just go ahead and type your tooltip in your local language in the GUI files. That's what I do for my mods so far, except when I'm importing other modders' assets which are already localized.



Generally, every new anything in the XML needs to be named/declared (base XML varies) then have a SimulationDescriptors
  • .xml entry, and a GuiElements
  • .xml entry. There's also the localization files for each language you want supported.
  • 0Send private message
    9 years ago
    Nov 2, 2015, 8:55:26 AM
    brainiac1530 wrote:
    I hate to ask a question like this, but did you load the mod prior to loading the game? The game's mod system doesn't load one by default. The "heroes disappearing" part sort of makes sense if you tried to load a modded game without the necessary mods installed. You can see that the devs put in some UI that makes it look like the game knows which mod is required for a given savegame, but that doesn't seem to have been actually implemented.





    Fair question of course --- but yes, I did load the mod before loading the game. Actually, this is something the devs did quite well ==> if the correct mods are not loaded for a savegame, then the savegame is grayed out. You cannot save over it, or load from it. Good feature.





    You didn't mention making new entries in SimulationDescriptors[UnitProfile].xml, but that seems to be necessary. If you make a reference to a new SimulationDescriptor, you need to define what that is somewhere. This will also give you a chance to define base attack/defense/etc. values which are different from other heroes, if you like.





    THANK YOU, THANK YOU, THANK YOU!

    I had no idea that this file was needed.



    I have updated this file now with the following code in my mod:



    [CODE]







































    [/CODE]



    It now works fine.

    My previous savegames however still dont work - but I created a new game, played 2 turns, saved, loaded, and my heroes were in-tact.





    Edit: Actually, the portraits being missing is a related issue. You need to make new entries in Gui/GuiElements[Heroes].xml to define your hero's large/small icons and some sort of tooltip. The tooltip should be localized, so you should edit the relevant EF_Localization_Assets_Locales.xml as well. For testing purposes, it's not necessarily wrong to just go ahead and type your tooltip in your local language in the GUI files. That's what I do for my mods so far, except when I'm importing other modders' assets which are already localized.



    Generally, every new anything in the XML needs to be named/declared (base XML varies) then have a SimulationDescriptors
  • .xml entry, and a GuiElements
  • .xml entry. There's also the localization files for each language you want supported.




  • Cheers - but I actually did put in an entry in the Gui/GuiElements[Heroes].xml file already:

    [CODE]



    %UnitProfileRageWizardsHeroArmyTitle

    %UnitProfileRageWizardsHeroArmyDescription















    %UnitProfileRageWizardsHeroCityTitle

    %UnitProfileRageWizardsHeroCityDescription











    [/CODE]



    Can you tell me if this is wrong?

    I assumed that these are dynamic-created bitmaps, since the pathname has it in there, so they each need a unique namespace.

    NOTE: I also tried using **** which is the same as the RageWizardsHero1 profile uses. This didnt work. I tried again using it this way - still doesnt work. (Yes also tried in TITLE and DESCRIPTION tags the Hero1 profile ID but I have no idea if that changed anything --- the graphic is still empty in any case)







    LESSON LEARNED:

    Every new element added requires an entry in SimulationDescriptors
  • .xml file somewhere.
  • 0Send private message
    9 years ago
    Nov 2, 2015, 11:38:45 AM
    Generaly, a SimulationModifierDescriptor need a path. I dont know if it work without (never tested). But with wrong path, i've had some problems. One of my traits with wrong path didnt make game crash, but just inactivate effect of my custom trait. So path is probably necessary.



    Example:



    [CODE]Path="EmpireTypeMajor/Garrison/ClassUnit"/>[/CODE]
    0Send private message
    9 years ago
    Nov 2, 2015, 1:47:08 PM
    Enchanteur wrote:
    Generaly, a SimulationModifierDescriptor need a path. I dont know if it work without (never tested). But with wrong path, i've had some problems. One of my traits with wrong path didnt make game crash, but just inactivate effect of my custom trait. So path is probably necessary.



    Example:



    [CODE]Path="EmpireTypeMajor/Garrison/ClassUnit"/>[/CODE]




    Thats not necessary on this one, because it already declares the namespace in the parent tag **Name="UnitProfileRageWizardsHeroArmy"**
    0Send private message
    ?

    Click here to login

    Reply
    Comment