• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.
No joy, same error. I also tried deleting "Ammunition_Flamer,AmmunitionDef,data/ammunition/Ammunition_Flamer.json,8,2018-02-27T00:45:27.5745247Z,2018-04-05T01:11:43.6715758Z,,,False,0,False" from the VersionManifest. Same error occurred regardless. It's like the game is expecting that a Flamer (at least one) must have ties to the Ammunition_Flamer section.
Sorry if this is late, but it's not just any flamer, but specifically the Olympus Flamer. I tried creating a "sub-par" Vehicle Flamer in my own Flamer mod and giving that one the ammo requirements. It still created the infinite loading ring of doom when trying to access a mech Refit. However, adding ammo back to the Olympus Flamer -and ONLY the Olympus Flamer- mystically fixed the issue, even though the "Vehicle Flamer" had an ammo count.

Did you ever find a solution to this?
 
About ready to start my new campaign.
stockawesome.jpg
stocklocust.jpg


Some modification
Sensor mods for cockpit (Cockpits mods & Target equipment)
-increase the invo size for the head slot to 3 so that the 2 could be carried; modded target mods to by restricted by head and reduced to 0 tonnage
-made to be standard issue for stock mechs

One mech one chassis - mech salvage with multiple variants (outside of SLDF versions) will default to the most most common type; LCT-1V, CN9-A, etc
-hardpoints altered on the default chassis to accomodate the variants
(naming of the salvage and on-screen is still a little wonky);

-Weapon Upgrades changes -
+weapon are arguably only nominally better; I changed the advantages are only half (damage, stability) and gain of 1 heat for every upgrade;
-Removed accuracy for lasers; gave pulse lasers +4 accuracy to differentiate from regular lasers
-changed to TT values for AC2 and AC5 increasing stability damage and accuracy to balance
-change Manufactures with some references to weapon diversity mod however did not add any weapons (edited the names for manufacture but kept the json file names ie Pontiac 100 on AC20_1_Federated file)
https://forum.paradoxplaza.com/foru...t_weapon-diversity-mod.1099053/#post-24255221

Other minor adjustements; Dragon increased to 200 stability, Highlander half DFA damage, Spider and Quickdraw increase in melee damage

So now
-so scout mechs with rangefinder +100m, +200m, +300m (instead of 25,50,100) have a role to play for scouting and targetting; (Base sensor range changed back to default 300 m)
-most/some? stock mechs have the correct "named" weapons; HBG-4G with KaliYama AC20
-salvaging for a mech name a little faster with variants combined
 
Using Addendum for VersionManifest
Ok you 'orrible lots. I realised most of you are going modtek/ btml, I'm just old fashioned.

Anyway, with help from hbs_pnkElephant, I managed to get the addendum functionality to work. So mods can now put all their defs into a single CSV, and add a single line to the VM to link all of the content in. One line for each CSV.

This makes old fashioned mods much cleaner and neater; generally a good thing.

I've tested this in both Skirmish and (with the relevant MDD work) in Career, so both works. Main game should too.

As usual there are a few things to look out for, so:

1. Your Mod Manifest must be be a CSV with the standard field headers; you can have ONE Header line, but that has to be at the top, above the standard field headers, like so (as of v1.3.2):

Code:
THI_SSW_Mod_Manifest_1.3
id,type,path,version,addedOn,updatedOn,removedOn,assetBundleName,assetBundlePersistent,assetBundleCRC,<IsTemplate>k__BackingField,addendum

You then follow up with the normal declarations, and remember that last comma on the last line. Remember there cannot be additional header lines.

Also, painfully obvious, save the file.

2. To add this file into the VersionManifest, it's basically a definition declaration, with 3 major difference:
  • The line must be in the FIRST block of the VM. Putting it at the bottom won't work. For simplicity, I'd suggest putting it as the first line under the field headers (i.e., from Line 2 of the file).
  • The type field must be CSV.
  • The addedum field must be set to true.
So, the example from above would be declared as so:

Code:
id,type,path,version,addedOn,updatedOn,removedOn,assetBundleName,assetBundlePersistent,assetBundleCRC,<IsTemplate>k__BackingField,addendum
THI_Mod_Manifest,CSV,mods/THI_Mod_Manifest.csv,1,2018-03-06T18:42:53.7186911Z,2018-04-05T01:11:43.6755740Z,,,False,0,False,True
THI_X_Mod_Manifest,CSV,mods/THI_X/THI_X_Mod_Manifest.csv,1,2018-03-06T18:42:53.7186911Z,2018-04-05T01:11:43.6755740Z,,,False,0,False,True
chrPrfMech_atlasBacker-SBA,Prefab,Assets/Resources/UnlockedAssets/Prefabs/chrPrfMech_atlasBacker-SBA.prefab,79,2018-03-06T22:48:44.0360671Z,2018-12-04T20:29:02.5740043Z,,chrprfmech_atlasbacker-sba,False,4214366826,False,False
...
...

The example above is to show that you can declare two or more addendum CSVs and get both to load. This has been tested in Skirmish, but should work in Career (with usual MDD work).

So for those of you still interested in doing the basic work, this is a way to keep things as clean as possible.
 
I had NOT noticed the new addendum field... sweet!

Thanks for spending the time figuring it out... and a special thanks to HBS for putting it in! :)

I'm guessing you still can't define the same ID twice... is that correct, or is it allowed with one of the definitions overriding the other?

(And if you don't know the answer to that question, don't worry about it... I'll try it myself sooner or later. Just thought you might know from the testing you've already done.)
 
I'm guessing you still can't define the same ID twice... is that correct, or is it allowed with one of the definitions overriding the other?
You still can't define the same ID twice at the moment, but there might be some changes in future patches. There's some signs that HBS is thinking about that problem at the moment.
 
Unit not acting Bug and one triggering point.
Oh HO! Fun "Bug". Or Feature, depending on your perspective.

There had been talk about some occasions when the enemy AI units in missions would do nothing but brace, but AFAIK there's not that much in investigations into it. Well... I ran full into that one, which had the symptoms but the trigger in this case is probably unique to my case.

So yeah, symptoms are the game will progress but the enemy AI would not move or attack. As it turned out, I had AI logging turned on, so.. opportunity!

What actually happened is this error in the normal output_log.txt:
Code:
DirectoryNotFoundException: Could not find a part of the path "D:\Programs\Steam\steamapps\common\BATTLETECH\AI_Logs\bh_THI\SSW_Assassin_Pilot_e3e3_2019_01_03_22.18.15_r01_p05.txt".
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0

What the...?!? :eek:

Well.. that mech is from my mod, but why was it trying to write a subdirectory? I don't use "/" or "\" in my ID definitions or anything critical. In fact, the relevant block from that mech is here:
Code:
    "Description": {
        "Cost": 3686014,
        "Rarity": 3,
        "Purchasable": true,
        "Manufacturer": "Tetsuhara Heavy Industries/ Solaris Skunkwerks",
        "Model": null,
        "UIName": "THI/SSW Assassin ASN-21",
        "Id": "THI_SSW_mechdef_assassin_ASN-21",
        "Name": "THI/SSW Assassin",
        "Details": "",
        "Icon": "uixTxrIcon_panther",
    },

Oh. OH.

Remembered I said I had AI logging turned on? So.. that AI logging apparently uses the Name field of the definitions as a filename. :rolleyes: So, yes, I need to go resanitize my files.. again.

It gets better.

So, the system took a string that got treated as a file directory extension, so the logging system took a hard dump, but that hard dump ended up over at the AI behaviour section, where that hard dump took the brains out of the AI.
Code:
AI Behavior Tree Error in Tick for sequence0004 : System.NullReferenceException: Object reference not set to an instance of an object
  at SequenceNode.Tick () [0x00000] in <filename unknown>:0
  at BehaviorNode.Update () [0x00000] in <filename unknown>:0

That apparently neutered the brains, ALL the brains, because the AI logs for those that managed to log came out like this:
Code:
Round: 0
Phase: 0
Unit: Blackjack
Unit GUID: ab9e2bfb-f6c4-4b4b-b540-957dcfc48a27.0
Pilot Callsign: Pilot
Lance: Lance d9a28c08-abdb-42bb-a140-ad3927d1f8cf.Lance
Team: Target
Role: Undefined
evaluating behavior tree for Blackjack dynamic role: Brawler
in update completed for clearSensorLock0000 with result Success.
NULL order info.
Two key thing -- first, an Undefined Role. Typically most mechs have a role defined, especially one included in the base game. The second thing is NULL orders. One or the other led down the merry path where the Mech decides it has no order, and, in the nicest behaviour so far, defaults to a BRACE order. And so the Mech just stands there and do nothing.

"The AI returned NULL orders. Bracing, instead."

It gets better.

Null Reference Exception/ Null Pointer Exceptions are downright insidious, because they can lead to a cascading series of problem. This particular one eventually went somewhere and crashed my display drivers, hard. Windows had to step in and restart them:

Code:
d3d11: failed to create staging 2D texture w=128 h=128 d3dfmt=28 [887a0005]
d3d11: failed to create staging 2D texture w=128 h=128 d3dfmt=28 [887a0005]
d3d11: failed to create buffer (target 0x1 mode 1 size 18560) [0x887A0005]
d3d11: failed to create buffer (target 0x2 mode 1 size 1416) [0x887A0005]
d3d11: attempt to lock null buffer
d3d11: attempt to lock null buffer
UI went straight out and while I can hear the game in the background, the UI is dead, Jim. Had to kill the entire program.

So yeah. Sanitize your UI Name and Name fields!