Ok, this is a good place to put this info, because I think it's important for modders to see, but I don't want to start a wave of complaints to HBS on the matter.
Be very careful about deploying mods.
The issue I've found while working on my mods is.. best describe with the following:
1. Say you worked out the necessary to introduce a new mech or a new weapon into the game. It works and you can see it in the Skirmish game, and can use it to equip other mechs in the Mechlab. You make up a whole bunch of new mech builds and saves them in the game.
2. A few days later, you decide to rework some aspect of the mod, and for some reason, needed to remove the mech/ weapon. You code up your new work perfectly and loads up the game, and try to go into Skirmish or MechLab.
3. The game goes into stunlock. Checking the logs, you see things like this:
4. Try as you might, you can't get the game to go into Skirmish/ Mechlab. You are now faced with the option of a reinstall, which will wipe your campaign progress.
The reason for this (IMO) potentially dangerous behaviour is that when you modify a mech build and save it, the game save it into the internal DB or some save file that we don't currently have any idea where it is. That isn't bad, it's a good thing. It lets us save our favorite broke builds to repeatedly bring up to beat people over the head with.
The bad thing, and unknown to most of you, is that whenever Skirmish or Mechlab starts up, it does a basic verification check against ALL saved builds, and start generating warnings such as the above when they find mech builds that doesn't work. The worse part is that it doesn't ignore these, but goes into stunlock.
Since these builds are not in JSON and is actually likely in a DB somewhere, we can't manually remove these entries. The solution I went with (since it's my mods and I know what the heck I did), was to reinstate the missing entries that the system is complaining about, and try the Skirmish and Mechlab. Once those are working, I go through the entries and delete any that contains the bad material. And then I can remove the unwanted Manifest entries. If that sound like a lot of work, yes it is.. well actually not that bad since I have certain habits. But that's because I know the crap that I'm working on.
But imagine if you are a basic user who heard of this great mod and you download but found it not as great as you felt it to be. You remove the mod and then the whole game locks up on you. You reinstall and lose all progress in the main game. How'd that make you feel about the mod creator?
Also, bear in mind MP Skirmish needs both clients to be on the same basis. That usually implies players would add/ remove mods regularly.
I know putting this up can have a chilling effect on mods, but you guys do need to know this before too many mods are released and people start having games that freeze up on them. So think carefully how you want to handle a case when your mod has to be removed from an installed game.
Be very careful about deploying mods.
The issue I've found while working on my mods is.. best describe with the following:
1. Say you worked out the necessary to introduce a new mech or a new weapon into the game. It works and you can see it in the Skirmish game, and can use it to equip other mechs in the Mechlab. You make up a whole bunch of new mech builds and saves them in the game.
2. A few days later, you decide to rework some aspect of the mod, and for some reason, needed to remove the mech/ weapon. You code up your new work perfectly and loads up the game, and try to go into Skirmish or MechLab.
3. The game goes into stunlock. Checking the logs, you see things like this:
Data.DataManager [ERROR] LoadRequest for THI_WD_Weapon_LaserPulse_Medium of type WeaponDef has an invalid manifest entry. Any requests for this object will fail. (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
Data.DataManager [ERROR] LoadRequest for THI_WD_AmmunitionBox_LBX10C of type AmmunitionBoxDef has an invalid manifest entry. Any requests for this object will fail. (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
Data.DataManager [ERROR] LoadRequest for THI_WD_AmmunitionBox_LBX10C of type AmmunitionBoxDef has an invalid manifest entry. Any requests for this object will fail. (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
4. Try as you might, you can't get the game to go into Skirmish/ Mechlab. You are now faced with the option of a reinstall, which will wipe your campaign progress.
The reason for this (IMO) potentially dangerous behaviour is that when you modify a mech build and save it, the game save it into the internal DB or some save file that we don't currently have any idea where it is. That isn't bad, it's a good thing. It lets us save our favorite broke builds to repeatedly bring up to beat people over the head with.
The bad thing, and unknown to most of you, is that whenever Skirmish or Mechlab starts up, it does a basic verification check against ALL saved builds, and start generating warnings such as the above when they find mech builds that doesn't work. The worse part is that it doesn't ignore these, but goes into stunlock.
Since these builds are not in JSON and is actually likely in a DB somewhere, we can't manually remove these entries. The solution I went with (since it's my mods and I know what the heck I did), was to reinstate the missing entries that the system is complaining about, and try the Skirmish and Mechlab. Once those are working, I go through the entries and delete any that contains the bad material. And then I can remove the unwanted Manifest entries. If that sound like a lot of work, yes it is.. well actually not that bad since I have certain habits. But that's because I know the crap that I'm working on.
But imagine if you are a basic user who heard of this great mod and you download but found it not as great as you felt it to be. You remove the mod and then the whole game locks up on you. You reinstall and lose all progress in the main game. How'd that make you feel about the mod creator?
Also, bear in mind MP Skirmish needs both clients to be on the same basis. That usually implies players would add/ remove mods regularly.
I know putting this up can have a chilling effect on mods, but you guys do need to know this before too many mods are released and people start having games that freeze up on them. So think carefully how you want to handle a case when your mod has to be removed from an installed game.