Uses ModTek 0.7.7.4 https://github.com/BattletechModders/ModTek/releases cFixes can be used with the HBS mod loader, however DLC content will not be corrected. It's recommended to use this mod with ModTek.
Instructions: For older versions - Delete old cFixes folder in BATTLETECH\Mods Copy cFixes-1.9.1.1 in to the BATTLETECH\Mods folder.
cFixes is now updated to BATTLETECH 1.9.1 with DLCs. Any conflicts with cFixes and the current game version have been corrected. Fixes updated in to the stock game have been removed. See the readme.md for full changelog.
Highlights: Assigns missing AI and Lance tags to new base game and DLC units Corrects armor errors in the MAD-2R and CRB-27b Fixes errant MG hardpoints in PHX LA/RA Corrected ARC's SRM Stability Damage Bonus description (50% not 75%) Typo fixes to new events, contracts and DLC content Fixed internals and armor on new vehicles Corrected new pilot abilities and culled stock fixed pilots from mod
I am the author of UltraMod and I would like your permission to incorporate some of your fixes into my mod as my goal is to make UltraMod more TT/lore friendly. I won't be using your files directly but I would like use them as a reference to alter all of my own files. I have already noticed some of the 'bugs' you have corrected being present in my mod so I hope you don't mind me using your files to hunt these down. I can add a credit to my thanks page.
I don't believe so. When the first DLC came out, we were worried about that and got reports back that it worked fine. If you want to give this mod a try and report back on how it works now that would be great.
Here is a low risk way of checking something -
Make a new career. This is important as I don't want you to risk an existing save. Install cFixes via ModTek (this won't work with HBS loader) Load ONLY the new career and complete a contract or two and save/exit Uninstall cFixes Attempt to load that new career save If it fails to load, reinstall cFixes and attempt to load save
If it fails to load, once you have a save that had cFixes included, it must going forward. This is similar to how the HBS mod loader handles mods and saves. If you can add and remove cFixes without corrupting the save then it's totally safe for non-DLC users when used with ModTek. If it only loads if cFixes is present, then cFixes is adding some of DLC files (without you having the visual assets they won't appear) that the save will require to load going forward.
Using cFixes 1.9.1.1 & ModTek 0.7.7.4, none of the major mod packs
I'm seeing MAD-2Rs spawned for the OpFor. I'm not sure what's happening - I suspect that the SLDF mechs under cFixes\StreamingAssets\data\mech\ (except for 4N) will also show up given time.
Interesting, I can't initially replicate this but I do have something for you to check. Go to BATTLETECH\Mods\.modtek\Cache\BattleTech_Data\StreamingAssets\data\mech and open up the MAD-2R file. The .modtek cache folder is the final version your game gets after MT merges all your mods alterations together. In my cached MAD-2R file, at the bottom, where the tags are, I have one at the very end "BLACKLISTED" and this should prevent it from showing up in dynamic Lance spawners. If your file doesn't have BLACKLISTED that would be why, at least as far as I know it used to work in previous versions of the game.
My cached MAD-2R tag set looks like this, which is exactly the same as the stock file:
The cFixes file that touches the MAD-2R is located in BATTLETECH\Mods\cFixes-1.9.1.1\StreamingAssets\data\mech and the file only contains alterations to the "location" tree in the stock json, it does not add or remove any tags. I suspect another mod or possibly an edit to the stock file might be causing this, but I want to be sure it isn't cFixes first.
You can also check the modtek log at \BATTLETECH\Mods\.modtek\ModTek.log and search for MAD-2R and you can find out what mods are touching that file and in what order. Let me know what you find!
Thanks. I checked the cached version, the "BLACKLISTED" tag is present. Verified the install with Steam before re-running Modtek - the SLDF mechs from updates still spawn with lances. Will try a fresh install.
Somewhat related - checked the stock install files, the Grand Dragon 1G has "BLACKLISTED" in its tag by default, despite not being special in the game's position in the timeline. It spawns for me, but I'm not sure this would be the case for everyone.
Update: for some reason https://github.com/m22spencer/BattletechPerformanceFix prevents the blacklisted mechs from appearing
That's an odd one I can't say I've seen happen since I came back and played 1.9.1 with and without mods. Maybe you had some other mod that would allow BLACKLISTED units or equipment?
Yes, I don't recommend slapping this on over any of the big mod packs like BTE/BTA/RT/BR/etc as the devs for those packs usually have to curate these fixes in to their own files carefully. I've made them aware of this version and some already have integrated the fixes, but I can't recall what the status is for BTE. Just give them time and you'll likely see these worked in. If anything, contact the devs of those mods and ask if they updated to the latest cFixes.
I suspected as much. Thanks for confirming. Just have to be patient. Will look forward to the eventual updates, and especially to your next incarnation of your BetterAI as well.
This breaks with 1.8 and Heavy Metal. The error results in you not being able to take new contracts. I get the following error in the logs.
Uploading Crash Report Unity [ERROR] KeyNotFoundException: No ContractOverride entry in 'ContractOverrides' with id: 'C:\Users\marcus\Documents\My Games\BattleTech\mods\HBS\Cache\BattleTech_Data\StreamingAssets\data\contracts\capturebase\CaptureBase_AbandonedFactory.json'
KeyNotFoundException: No ContractOverride entry in 'ContractOverrides' with id: 'C:\Users\marcus\Documents\My Games\BattleTech\mods\HBS\Cache\BattleTech_Data\StreamingAssets\data\contracts\capturebase\CaptureBase_AbandonedFactory.json' at HBS.Data.DictionaryStore`1[T].Get (System.String id) [0x000a8] in <e1836ad313454eb4828ce697e61d02e0>:0 at BattleTech.SimGameState+<>c__DisplayClass442_0.<GetSinglePlayerProceduralContractOverrides>b__5 (System.String ci) [0x00010] in <e1836ad313454eb4828ce697e61d02e0>:0 at System.Linq.Enumerable+SelectIListIterator`2[TSource,TResult].MoveNext () [0x00048] in <1b13ba6391c74847bbc3eddc86df7eee>:0 at System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].ToList () [0x00030] in <1b13ba6391c74847bbc3eddc86df7eee>:0 at System.Linq.Enumerable.ToList[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x0001f] in <1b13ba6391c74847bbc3eddc86df7eee>:0 at BattleTech.SimGameState+<>c__DisplayClass442_0.<GetSinglePlayerProceduralContractOverrides>b__4 (System.Linq.IGrouping`2[TKey,TElement] c) [0x00049] in <e1836ad313454eb4828ce697e61d02e0>:0 at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] keySelector, System.Func`2[T,TResult] elementSelector, System.Collections.Generic.IEqualityComparer`1[T] comparer) [0x00095] in <1b13ba6391c74847bbc3eddc86df7eee>:0 at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] keySelector, System.Func`2[T,TResult] elementSelector) [0x00000] in <1b13ba6391c74847bbc3eddc86df7eee>:0 at BattleTech.SimGameState.GetSinglePlayerProceduralContractOverrides (BattleTech.SimGameState+ContractDifficultyRange diffRange) [0x000a2] in <e1836ad313454eb4828ce697e61d02e0>:0 at BattleTech.SimGameState+<StartGeneratePotentialContractsRoutine>d__425.MoveNext () [0x00103] in <e1836ad313454eb4828ce697e61d02e0>:0 at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00027] in <9a6ceb7f013a4a599806f492fc789483>:0 UnityEngine.MonoBehaviour:StartCoroutineManaged2(IEnumerator) UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator) BattleTech.SimGameState:GeneratePotentialContracts(Boolean, Action, StarSystem, Boolean) BattleTech.SimGameState:OnTargetSystemFound(AStarResult) PathFinder:Step() BattleTech.Starmap:Update()
Can confirm I've encountered the same issue. When you go to the contracts screen, you get an infinite loading progress wheel. Game doesn't crash, but you can't take any missions... basically, makes the campaign unplayable.
Version 1.6.1.1 is out PLEASE NOTE: This version requires ModTek 7.2 or greater and is meant to address file issues with the 1.6.x release of BATTLETECH.
Instructions: For older versions - Delete old cFixes folder in BATTLETECH\Mods Extract cFixes-to the BATTLETECH\Mods folder.
Make sure to remove the old cFixes folder, certain files have new stock values added in 1.5.0 and old releases would undo them. We have also moved to using the new ModTek merge features and file structures have changed. Initial load times have increased with additional files, over 250 .jsons are now corrected. After the initial load, ModTek's cache takes care of it.
Features:
The major feature in this round are cost adjustments from copy/paste errors. These have been corrected using HBS own cost calculation sheets and other errors like the HBK having 5 too much melee dmg. Huge thanks to HBS_RedMenace for the data!
The Flashpoint "White Lies" can now spawn in either career or campaign mode. These are in addition to a few other small fixes and the removal of fixes made stock by 1.6.2.
Lore corrections : such as changing "dropship" and "Dropship" to the BattleTech proper "DropShip"
Fixed missing [AMT] references in multiple Upgrade files
In addition to the large fixes, a number of smaller typos, formatting errors and missing amounts have been fixed. Overall, cFixes has grown to over 250 fixes to the stock .json files.
REMOVED files that have been fixed in BT 1.6.0-1.6.2
If you find any errors in these, or stock game files that we have missed, please let us know
PLEASE NOTE: This version requires ModTek 7.2 or greater and is meant to address file issues with the 1.6.x release of BATTLETECH.
Instructions: For older versions - Delete old cFixes folder in BATTLETECH\Mods Extract cFixes-to the BATTLETECH\Mods folder.
Make sure to remove the old cFixes folder, certain files have new stock values added in 1.5.0 and old releases would undo them. We have also moved to using the new ModTek merge features and file structures have changed. Initial load times have increased with additional files, over 250 .jsons are now corrected. After the initial load, ModTek's cache takes care of it.
Features:
Converted many files over to the new merging format used by ModTek 7.0+. Thanks for all you have done @mpStark!
Some Lore corrections : such as changing "dropship" and "Dropship" to the BattleTech proper "DropShip"
Fixed missing [AMT] references in multiple Upgrade files
In addition to the large fixes, a number of smaller typos, formatting errors and missing amounts have been fixed. Overall, cFixes has grown to over 250 fixes to the stock .json files.
REMOVED many files that have been fixed in BT 1.6.0
If you find any errors in these, or stock game files that we have missed, please let us know
47 comments
For BATTLETECH 1.9.1
Uses ModTek 0.7.7.4
https://github.com/BattletechModders/ModTek/releases
cFixes can be used with the HBS mod loader, however DLC content will not be corrected. It's recommended to use this mod with ModTek.
Instructions:
For older versions - Delete old cFixes folder in BATTLETECH\Mods
Copy cFixes-1.9.1.1 in to the BATTLETECH\Mods folder.
cFixes is now updated to BATTLETECH 1.9.1 with DLCs. Any conflicts with cFixes and the current game version have been corrected. Fixes updated in to the stock game have been removed. See the readme.md for full changelog.
Highlights:
Assigns missing AI and Lance tags to new base game and DLC units
Corrects armor errors in the MAD-2R and CRB-27b
Fixes errant MG hardpoints in PHX LA/RA
Corrected ARC's SRM Stability Damage Bonus description (50% not 75%)
Typo fixes to new events, contracts and DLC content
Fixed internals and armor on new vehicles
Corrected new pilot abilities and culled stock fixed pilots from mod
I am the author of UltraMod and I would like your permission to incorporate some of your fixes into my mod as my goal is to make UltraMod more TT/lore friendly. I won't be using your files directly but I would like use them as a reference to alter all of my own files. I have already noticed some of the 'bugs' you have corrected being present in my mod so I hope you don't mind me using your files to hunt these down. I can add a credit to my thanks page.
Here is a low risk way of checking something -
Make a new career. This is important as I don't want you to risk an existing save.
Install cFixes via ModTek (this won't work with HBS loader)
Load ONLY the new career and complete a contract or two and save/exit
Uninstall cFixes
Attempt to load that new career save
If it fails to load, reinstall cFixes and attempt to load save
If it fails to load, once you have a save that had cFixes included, it must going forward. This is similar to how the HBS mod loader handles mods and saves. If you can add and remove cFixes without corrupting the save then it's totally safe for non-DLC users when used with ModTek. If it only loads if cFixes is present, then cFixes is adding some of DLC files (without you having the visual assets they won't appear) that the save will require to load going forward.
I'm seeing MAD-2Rs spawned for the OpFor. I'm not sure what's happening - I suspect that the SLDF mechs under cFixes\StreamingAssets\data\mech\ (except for 4N) will also show up given time.
My cached MAD-2R tag set looks like this, which is exactly the same as the stock file:
"MechTags": {
"items": [
"unit_mech",
"unit_heavy",
"unit_release",
"unit_ready",
"unit_role_sniper",
"unit_range_long",
"unit_hot",
"unit_speed_low",
"unit_common",
"Davion",
"Kurita",
"Liao",
"Marik",
"Steiner",
"MagistracyOfCanopus",
"TaurianConcordat",
"BLACKLISTED"
],
"tagSetSourceFile": ""
}
The cFixes file that touches the MAD-2R is located in BATTLETECH\Mods\cFixes-1.9.1.1\StreamingAssets\data\mech and the file only contains alterations to the "location" tree in the stock json, it does not add or remove any tags. I suspect another mod or possibly an edit to the stock file might be causing this, but I want to be sure it isn't cFixes first.
You can also check the modtek log at \BATTLETECH\Mods\.modtek\ModTek.log and search for MAD-2R and you can find out what mods are touching that file and in what order. Let me know what you find!
Somewhat related - checked the stock install files, the Grand Dragon 1G has "BLACKLISTED" in its tag by default, despite not being special in the game's position in the timeline. It spawns for me, but I'm not sure this would be the case for everyone.
Update: for some reason https://github.com/m22spencer/BattletechPerformanceFix prevents the blacklisted mechs from appearing
Will updating this affect that setup?
BEX changes a lot of mech quirks, jumpjets, etc, so will this overwrite those changes?
Just have to be patient.
Will look forward to the eventual updates, and especially to your next incarnation of your BetterAI as well.
Thanks again for your excellent mods.
Uploading Crash Report
Unity [ERROR] KeyNotFoundException: No ContractOverride entry in 'ContractOverrides' with id: 'C:\Users\marcus\Documents\My Games\BattleTech\mods\HBS\Cache\BattleTech_Data\StreamingAssets\data\contracts\capturebase\CaptureBase_AbandonedFactory.json'
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 45)
KeyNotFoundException: No ContractOverride entry in 'ContractOverrides' with id: 'C:\Users\marcus\Documents\My Games\BattleTech\mods\HBS\Cache\BattleTech_Data\StreamingAssets\data\contracts\capturebase\CaptureBase_AbandonedFactory.json'
at HBS.Data.DictionaryStore`1[T].Get (System.String id) [0x000a8] in <e1836ad313454eb4828ce697e61d02e0>:0
at BattleTech.SimGameState+<>c__DisplayClass442_0.<GetSinglePlayerProceduralContractOverrides>b__5 (System.String ci) [0x00010] in <e1836ad313454eb4828ce697e61d02e0>:0
at System.Linq.Enumerable+SelectIListIterator`2[TSource,TResult].MoveNext () [0x00048] in <1b13ba6391c74847bbc3eddc86df7eee>:0
at System.Linq.Enumerable+WhereEnumerableIterator`1[TSource].ToList () [0x00030] in <1b13ba6391c74847bbc3eddc86df7eee>:0
at System.Linq.Enumerable.ToList[TSource] (System.Collections.Generic.IEnumerable`1[T] source) [0x0001f] in <1b13ba6391c74847bbc3eddc86df7eee>:0
at BattleTech.SimGameState+<>c__DisplayClass442_0.<GetSinglePlayerProceduralContractOverrides>b__4 (System.Linq.IGrouping`2[TKey,TElement] c) [0x00049] in <e1836ad313454eb4828ce697e61d02e0>:0
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] keySelector, System.Func`2[T,TResult] elementSelector, System.Collections.Generic.IEqualityComparer`1[T] comparer) [0x00095] in <1b13ba6391c74847bbc3eddc86df7eee>:0
at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] keySelector, System.Func`2[T,TResult] elementSelector) [0x00000] in <1b13ba6391c74847bbc3eddc86df7eee>:0
at BattleTech.SimGameState.GetSinglePlayerProceduralContractOverrides (BattleTech.SimGameState+ContractDifficultyRange diffRange) [0x000a2] in <e1836ad313454eb4828ce697e61d02e0>:0
at BattleTech.SimGameState+<StartGeneratePotentialContractsRoutine>d__425.MoveNext () [0x00103] in <e1836ad313454eb4828ce697e61d02e0>:0
at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00027] in <9a6ceb7f013a4a599806f492fc789483>:0
UnityEngine.MonoBehaviour:StartCoroutineManaged2(IEnumerator)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
BattleTech.SimGameState:GeneratePotentialContracts(Boolean, Action, StarSystem, Boolean)
BattleTech.SimGameState:OnTargetSystemFound(AStarResult)
PathFinder:Step()
BattleTech.Starmap:Update()
HBS changed a lot of stuff in the contracts and that's what broke. It should all be fixed now.
Version 1.6.1.1 is out
PLEASE NOTE: This version requires ModTek 7.2 or greater and is meant to address file issues with the 1.6.x release of BATTLETECH.
Instructions:
For older versions - Delete old cFixes folder in BATTLETECH\Mods
Extract cFixes-to the BATTLETECH\Mods folder.
Make sure to remove the old cFixes folder, certain files have new stock values added in 1.5.0 and old releases would undo them. We have also moved to using the new ModTek merge features and file structures have changed. Initial load times have increased with additional files, over 250 .jsons are now corrected. After the initial load, ModTek's cache takes care of it.
Features:
If you find any errors in these, or stock game files that we have missed, please let us know
Version 1.6.1.1 is out
PLEASE NOTE: This version requires ModTek 7.2 or greater and is meant to address file issues with the 1.6.x release of BATTLETECH.
Instructions:
For older versions - Delete old cFixes folder in BATTLETECH\Mods
Extract cFixes-to the BATTLETECH\Mods folder.
Make sure to remove the old cFixes folder, certain files have new stock values added in 1.5.0 and old releases would undo them. We have also moved to using the new ModTek merge features and file structures have changed. Initial load times have increased with additional files, over 250 .jsons are now corrected. After the initial load, ModTek's cache takes care of it.
Features:
If you find any errors in these, or stock game files that we have missed, please let us know
Think you can add functionality like he was trying with the Performance Fix?