File information

Last updated

Original upload

Created by

Kregano

Uploaded by

Kregano

Virus scan

Safe to use

Tags for this mod

85 comments

  1. Kregano
    Kregano
    • premium
    • 13 kudos
    Locked
    Sticky
    Troubleshooting guide:

    Mod Install:

    • Install IZarc
    • Install ModTek if you don't have it
    • Find your BATTLETECH/Mods/ folder
    • Paste SkillTreeRebuild.zip in BATTLETECH/Mods/
    • Right click SkillTreeRebuild.zip and select "Extract Here"

    Find Logs:

    • Go to BATTLETECH/Mods/ folder
    • Open .modtek folder
    • Find battletech_log.txt

    Posting Logs in Error Report Comments

    • Read the BBCode implementation of spoilers here
    • Open battletech_log.txt
    • CRTL+A to select all
    • CRTL+C to copy
    • Click "Add Comment on this page"
    • Write down what your problem is, what version of the mod you are running, what ModTek you have, and anything else you think might help
    • Write out the spoiler tags
    • CRTL+V to paste the log data inside the spoiler tags. IMPORTANT: Make sure the cursor is between the ] and the [/ to ensure you don't break the tags.
    • Submit comment
  2. Twilit1985
    Twilit1985
    • member
    • 0 kudos
    Not working. I only have 3 mods: IRBTModUtils, ModTek, SkillTreeRebuild

    Spoiler:  
    Show

    ModTek v0.7.7 -- 27.03.2025 20:29:46
    Loaded config.
    Loaded cached load order.
    ModTek 0.7.7
    Expanding manifest ModTek:
    :StreamingAssets
    IRBTModUtils 2.0.0
    Expanding manifest IRBTModUtils:
    :StreamingAssets
    Loaded assembly IRBTModUtils (v2.0.0.0)
    Invoking 'Mod.Init(String modDirectory, String settingsJSON)' using parameter dictionary
    Error: While invoking 'Mod.Init', an exception occured
    System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeLoadException: Could not resolve type with token 0100008a (from typeref, class/assembly HarmonyLib.Harmony, 0Harmony, Version=2.10.1.0, Culture=neutral, PublicKeyToken=null)
      at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
      at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <d7ac571ca2d04b2f981d0d886fa067cf>:0 
       --- End of inner exception stack trace ---
      at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <d7ac571ca2d04b2f981d0d886fa067cf>:0 
      at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <d7ac571ca2d04b2f981d0d886fa067cf>:0 
      at ModTek.Util.AssemblyUtil.InvokeMethodByParameterNames (System.Reflection.MethodInfo method, System.Collections.Generic.Dictionary`2[TKey,TValue] paramsDictionary) [0x0014c] in <4229a79d5cf54a2e8dab7ed217b30bd8>:0 
      at ModTek.ModTek.LoadAssemblyAndCallInit (ModTek.ModDefEx modDef) [0x0019c] in <4229a79d5cf54a2e8dab7ed217b30bd8>:0 
    Warning: Skipping load of Skill Tree Rebuild because one of its dependencies failed to load.
    Adding Mod Content...
    Loaded type cache.
    Doing merges...
    Loaded merge cache.
    Syncing Database...
    Loaded db cache.
    Adding dynamic enums:
    Processing sound banks (0):
    Gathering IRBTModUtils->Disable influence. My state:True fail:Fail to call init method
     Skill Tree Rebuild state:True fail:Warning: Skipping load of Skill Tree Rebuild because one of its dependencies failed to load.
    Gathering ModTek->Disable influence. My state:True fail:no
    Gathering Skill Tree Rebuild->Disable influence. My state:True fail:Warning: Skipping load of Skill Tree Rebuild because one of its dependencies failed to load.
    Gathering IRBTModUtils->Enable influence. My state:True fail:Fail to call init method
     I'm depends on:
     Conflicts:
    Gathering ModTek->Enable influence. My state:True fail:no
     I'm depends on:
     Conflicts:
    Gathering Skill Tree Rebuild->Enable influence. My state:True fail:Warning: Skipping load of Skill Tree Rebuild because one of its dependencies failed to load.
     I'm depends on:
      IRBTModUtils state:True fail:Fail to call init method
     Conflicts:
    FAIL LIST:
    IRBTModUtils fail Fail to call init method
    Skill Tree Rebuild fail Warning: Skipping load of Skill Tree Rebuild because one of its dependencies failed to load.
    depends on IRBTModUtils should be loaded:True but it is not cause enabled:True and fail:True due to Fail to call init method
    Finishing Up
    20:29:47 - Done. Elapsed running time: 0,9146613 seconds

    1. Kregano
      Kregano
      • premium
      • 13 kudos
      From the log you put up, you need to update your ModTek to a version higher than 0.8.
  3. LeviathanTheEnvy
    LeviathanTheEnvy
    • member
    • 0 kudos
    Is there a way to get this to work for BTAU?
    1. Kregano
      Kregano
      • premium
      • 13 kudos
      I would have to see if ModTek's newer versions support load order and what BTAU is doing with its skill implementation.

      It MIGHT be possible to just replace any files they have in an Abilfier folder, but if you're looking for a combined skill tree, that'll require some work.
    2. LeviathanTheEnvy
      LeviathanTheEnvy
      • member
      • 0 kudos
      I tried just removing Abilifier and addijg this mkd like I did with BEX but it threw up an error. You think replacing everything in Abilifier folder with things from this mod might work? 
    3. Kregano
      Kregano
      • premium
      • 13 kudos
      I would try replacing everything BUT the actual Abilifier DLL, just due to the chance that there's some dependency issues.

      I would also have a backup of the BTAU Abilifier on hand, in case there's some settings that need to get swapped.
  4. ProtoSoldier
    ProtoSoldier
    • member
    • 0 kudos
    Stupidly OP mod, once you level up Gunnery tree and get to shoot through armor - you just pick UAC5 guns (or at very least UAC2/PPC) and just shred everything. LRM15/20 Also become very OP with both missilier and through-armor, just one-shotting everything below 40T weight, and 2-3 shotting mediums/heavies.

    Some balancing is definitely has to be done: either same perks on enemies (but then everything is broken); or tune done perk to not make it OP, but just decent.
    1. Kregano
      Kregano
      • premium
      • 13 kudos
      Are you playing vanilla? Because yes, it's OP for vanilla, but not OP for stuff like Expanded Arsenal or BEX.
    2. ProtoSoldier
      ProtoSoldier
      • member
      • 0 kudos
      But nowhere in description is it said that this mod is balanced for other mods.
      And i will try extended-whatever later to see how broken shooting through armor is there.
  5. shadowofdoom1000
    shadowofdoom1000
    • member
    • 0 kudos
    Hello I got stuck at mission preparing. I'm using your mod with Expanded Arsenal.
    What should I do to resolve this?
    1. Kregano
      Kregano
      • premium
      • 13 kudos
      Please follow the pinned troubleshooting guide, especially the part about logs.

      Without further details, it sounds like it might be the campaign crashing issue that's solved by downloading the optional ModTek injector file.
  6. LeviathanTheEnvy
    LeviathanTheEnvy
    • member
    • 0 kudos
    I get an Abilifier error when trying to get this to work. I am playing BEX and a few mods require Abilifier to run. What should I do to resolve this because I'd really like to use your mod.
    1. Kregano
      Kregano
      • premium
      • 13 kudos
      Do you mind posting the error message?

      As far as I know, BEX doesn't have any Abilifier implementations. Do you mean BTA?
    2. LeviathanTheEnvy
      LeviathanTheEnvy
      • member
      • 0 kudos
      I figured out what I was doing wrong. I had some mods not updated while others were updated. So I can remove Abilifier, Ability Realizer, and that Custom Pilot Decorator mod and your mod replaces all 3?
    3. Kregano
      Kregano
      • premium
      • 13 kudos
      It'll replace Abilifier, Ability Realizer, and Retrainer, since they are all incorporated. (Skill Tree Rebuild is basically a fork of Abilifier, and the latest version of Abilifier has Ability Realizer and Retrainer integrated into them).
  7. zerohalo100
    zerohalo100
    • supporter
    • 0 kudos
    I love the idea of this mod and at first I was really enjoying it, but as I nearly completed a career run using it I was getting bored. I was absolutely wrecking assault lances with my meager three heavies and medium with the difficulty set to hard. I'm trying to make sure it's your mod that turned my team into metal-crushing monsters.

    1. Is there anything that passively increases evasion? My mechs almost never get hit, even when they have no evasion pips.
    2. Are there settings you've exposed in the json that can minimize the number of passive skills gained? For example, I love the choices my pilots get but some of the abilities that were previously choices now are passively given (like breaching shot). To me, that definitely feels OP and I'd like to turn it off.

    I use the "Better" line of mods, plus yours.
    1. Kregano
      Kregano
      • premium
      • 13 kudos
      Which version of the mod are you using? Could be the Morale changes.

      Can't really control whether traits are applied (except via tags), but I can retune the Evasion Boost trait. That might be making it too easy.

      That said, if you're sticking with vanilla mechs, that might be the problem.
    2. zerohalo100
      zerohalo100
      • supporter
      • 0 kudos
      Which version of the mod are you using? Could be the Morale changes.

      The latest, v0.6.0

      Can't really control whether traits are applied (except via tags), but I can retune the Evasion Boost trait. That might be making it too easy.

      Could you elaborate on the tagging or is that too complex to go into? I'm guessing you're referring to something available to you via the API to do what you're doing?

      That said, if you're sticking with vanilla mechs, that might be the problem.

      Yeah, just vanilla. How is that a problem? I recently started a Hyades Rim playthrough with the Community Asset Bundle but I haven't installed your mod (yet) because of the issues I was having with my mostly vanilla playthrough.
    3. Kregano
      Kregano
      • premium
      • 13 kudos
      Could you elaborate on the tagging or is that too complex to go into? I'm guessing you're referring to something available to you via the API to do what you're doing?
      If you go to the EffectDataExtensions.JSON file, you'll see a lot of status effect entries with sections like this:
      "Pilot": {
      "MustMatchAll": false,
      "TargetCollectionTagMatch": [],
      "TargetCollectionNotMatch": [
        "pilot_turret_d3",
        "pilot_turret_d5",
        "pilot_turret_d7",
        "base_skills_only"
      ]
      }

      These effects will apply to all pilots except the ones with these tags, with "base_skills_only" being a tag I apply to a lot of procedural pilots in order to keep them from spawning with them.

      I'll get to the reason why I do that later.

      Yeah, just vanilla. How is that a problem? I recently started a Hyades Rim playthrough with the Community Asset Bundle but I haven't installed your mod (yet) because of the issues I was having with my mostly vanilla playthrough.
      So I do my testing with Better Combat, and did most of the development with just a vanilla + Better Combat install. It's designed to counter the game's tendency to make a single mission a 45+ minute affair, which I personally find to be a draining experience outside of a Flashpoint finale or something.

      Since installing the Expanded Arsenal mod, I've discovered that any mod pack that adds units and pilots may become unbeatably difficult due if NPC pilots spawn with the full set of passives and Better Combat's Better OPFOR integration pushing the enemy spawns towards higher difficulties. So if you're having an easy time, that's because the limited roster of vanilla mechs doesn't allow Better OPFOR to make the game insanely difficult.
    4. zerohalo100
      zerohalo100
      • supporter
      • 0 kudos
      That helps, thank you for explaining. I was using Better OpFor with your mod, but I didn't have any new mechs or equipment from mods so that could explain it. 

      Ironically, I enjoy the 45 minute games because they always get my brain going and my blood pumping. But I like the idea of being able to better customize my pilots to make the level of strategy even deeper. Sounds like fundamentally you and I have different ideas of fun, but that's to be expected, we're not clones. :) 

      Any chance you could expose some variables in mod.json to allow some tweaking? Or is there anything already in there I could fiddle with that could just use a little documentation?
    5. Kregano
      Kregano
      • premium
      • 13 kudos
      Any chance you could expose some variables in mod.json to allow some tweaking? Or is there anything already in there I could fiddle with that could just use a little documentation?
      Honestly, what you'll want to do is go the Abilities folder, then Traits, and find TraitDefEvasionBoost.JSON. Open it in Notepad++/Visual Studio Code/some other software that can edit JSONs, and replace the EffectData array with this:
      "EffectData" : [
        {
      "durationData": {
      "duration": -1,
      "stackLimit": 1
      },
      "targetingData": {
      "effectTriggerType": "Passive",
      "effectTargetType": "Creator",
      "showInTargetPreview": false,
      "showInStatusPanel": true
      },
      "effectType": "StatisticEffect",
      "Description": {
      "Id": "StatusEffect-HitDefense-Light",
      "Name": "Light Mech Defense Bonus",
      "Details": "This pilot has a +4 defense against being hit by any attack.",
      "Icon": "uixSvgIcon_ability_EvasionBoost"
      },
      "nature": "Buff",
      "statisticData": {
      "statName": "ToHitThisActor",
      "operation": "Float_Add",
      "modValue": "4.0",
      "modType": "System.Single",
      "targetCollection": "Weapon"
      }
        },
        {
      "durationData": {
      "duration": -1,
      "stackLimit": 1
      },
      "targetingData": {
      "effectTriggerType": "Passive",
      "effectTargetType": "Creator",
      "showInTargetPreview": false,
      "showInStatusPanel": true
      },
      "effectType": "StatisticEffect",
      "Description": {
      "Id": "StatusEffect-HitDefense-Medium",
      "Name": "Medium Mech Defense Bonus",
      "Details": "This pilot has a +3 defense against being hit by any attack.",
      "Icon": "uixSvgIcon_ability_EvasionBoost"
      },
      "nature": "Buff",
      "statisticData": {
      "statName": "ToHitThisActor",
      "operation": "Float_Add",
      "modValue": "3.0",
      "modType": "System.Single",
      "targetCollection": "Weapon"
      }
        },
        {
      "durationData": {
      "duration": -1,
      "stackLimit": 1
      },
      "targetingData": {
      "effectTriggerType": "Passive",
      "effectTargetType": "Creator",
      "showInTargetPreview": false,
      "showInStatusPanel": true
      },
      "effectType": "StatisticEffect",
      "Description": {
      "Id": "StatusEffect-HitDefense-Heavy",
      "Name": "Heavy Mech Defense Bonus",
      "Details": "This pilot has a +2 defense against being hit by any attack.",
      "Icon": "uixSvgIcon_ability_EvasionBoost"
      },
      "nature": "Buff",
      "statisticData": {
      "statName": "ToHitThisActor",
      "operation": "Float_Add",
      "modValue": "2.0",
      "modType": "System.Single",
      "targetCollection": "Weapon"
      }
        },
        {
      "durationData": {
      "duration": -1,
      "stackLimit": 1
      },
      "targetingData": {
      "effectTriggerType": "Passive",
      "effectTargetType": "Creator",
      "showInTargetPreview": false,
      "showInStatusPanel": true
      },
      "effectType": "StatisticEffect",
      "Description": {
      "Id": "StatusEffect-HitDefense-Assault",
      "Name": "Assault Mech Defense Bonus",
      "Details": "This pilot has a +1 defense against being hit by any attack.",
      "Icon": "uixSvgIcon_ability_EvasionBoost"
      },
      "nature": "Buff",
      "statisticData": {
      "statName": "ToHitThisActor",
      "operation": "Float_Add",
      "modValue": "1.0",
      "modType": "System.Single",
      "targetCollection": "Weapon"
      }
        },
        {
      "durationData": {
      "duration": 2,
      "ticksOnActivations": true,
      "useActivationsOfTarget": true,
      "ticksOnEndOfRound": false,
      "ticksOnMovements": false,
      "stackLimit": 1,
      "clearedWhenAttacked": false
      },
      "targetingData": {
      "effectTriggerType": "OnActivation",
      "effectTargetType": "Creator"
      },
      "effectType": "StatisticEffect",
      "Description": {
      "Id": "StatusEffect-EvasionBoost",
      "Name": "EVASIVE CAP INCREASE",
      "Details": "This unit can have up to 2 extra evasive charges from movement.",
      "Icon": "uixSvgIcon_ability_phantom"
      },
      "statisticData": {
      "statName": "MaxEvasivePips",
      "operation": "Int_Add",
      "modValue": "2",
      "modType": "System.Int32"
      },
      "nature": "Buff"
        },
        {
      "durationData": {
      "duration": 2,
      "ticksOnActivations": true,
      "useActivationsOfTarget": true,
      "ticksOnEndOfRound": false,
      "ticksOnMovements": false,
      "stackLimit": 1,
      "clearedWhenAttacked": false
      },
      "targetingData": {
      "effectTriggerType": "OnActivation",
      "effectTargetType": "Creator",
      "showInStatusPanel": true
      },
      "effectType": "StatisticEffect",
      "Description": {
      "Id": "StatusEffect-EvasionBoostTick",
      "Name": "EVASIVE MOVE EXTRA",
      "Details": "This unit generates 2 extra EVASIVE charges from movement actions."
      },
      "statisticData": {
      "statName": "EvasivePipsGainedAdditional",
      "operation": "Int_Add",
      "modValue": "2",
      "modType": "System.Int32"
      },
      "nature": "Buff"
        }
      ]

      If the toned down version is too strong for you, you can set them all the hit defense effects to 0, or just delete them from the JSON.
  8. aHedgehog
    aHedgehog
    • member
    • 2 kudos
    version 4.5 works fine but version 5.0 fails to load.

    Spoiler:  
    Show
    07:41:44.7234001 ModTek [LOG] "Skill Tree Rebuild" 0.4.5
    07:41:44.7234066 ModTek [LOG] Added mod custom resource type 'CustomSVGIcon'.
    07:41:44.7266425 ModTek [LOG] Loaded assembly Abilifier (v1.4.1.4)
    07:41:44.7285894 ModTek [LOG] Invoking 'Abilifier.Mod.Init(String directory, String settings)' using parameter dictionary
    07:41:44.7428994 ModTek [WARNING] While invoking 'Mod.Init', an exception occured
    System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Newtonsoft.Json.JsonReaderException: Invalid property identifier character: <. Path 'StatusEffect-HitDefense-Light.TargetCollectionsForSearch.Unit', line 285, position 0.
      at Newtonsoft.Json.JsonTextReader.ParseProperty () [0x00077] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.JsonTextReader.ParseObject () [0x000d8] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.JsonTextReader.Read () [0x00053] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.JsonReader.ReadAndAssert () [0x00000] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x000b6] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary (System.Collections.IDictionary dictionary, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonDictionaryContract contract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, System.String id) [0x00252] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x00316] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue (Newtonsoft.Json.Serialization.JsonProperty property, Newtonsoft.Json.JsonConverter propertyConverter, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, Newtonsoft.Json.JsonReader reader, System.Object target) [0x00061] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject (System.Object newObject, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonObjectContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.String id) [0x00268] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0015c] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary (System.Collections.IDictionary dictionary, Newtonsoft.Json.JsonReader reader, Newtonsoft.Json.Serialization.JsonDictionaryContract contract, Newtonsoft.Json.Serialization.JsonProperty containerProperty, System.String id) [0x00252] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x002a8] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0006d] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, System.Boolean checkAdditionalContent) [0x000db] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.JsonSerializer.DeserializeInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00053] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.JsonSerializer.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00000] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.JsonConvert.DeserializeObject (System.String value, System.Type type, Newtonsoft.Json.JsonSerializerSettings settings) [0x0002d] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.JsonConvert.DeserializeObject[T] (System.String value, Newtonsoft.Json.JsonSerializerSettings settings) [0x00000] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Newtonsoft.Json.JsonConvert.DeserializeObject[T] (System.String value) [0x00000] in <bcfe3779d9974effb214d2a48329f488>:0 
      at Abilifier.Patches.EffectDataExtensionManager.Initialize () [0x0001e] in <b8804fb14997435c9a28d58bd363f188>:0 
      at Abilifier.Mod.Init (System.String directory, System.String settings) [0x0011a] in <b8804fb14997435c9a28d58bd363f188>:0 
      at (wrapper managed-to-native) System.Reflection.MonoMethod.InternalInvoke(System.Reflection.MonoMethod,object,object[],System.Exception&)
      at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00032] in <d7ac571ca2d04b2f981d0d886fa067cf>:0 
       --- End of inner exception stack trace ---
      at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00048] in <d7ac571ca2d04b2f981d0d886fa067cf>:0 
      at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <d7ac571ca2d04b2f981d0d886fa067cf>:0 
      at ModTek.Util.AssemblyUtil.InvokeMethodByParameterNames (System.Reflection.MethodInfo method, System.Collections.Generic.Dictionary`2[TKey,TValue] paramsDictionary) [0x00123] in <4bd30be9e4834befb94de9c6c037bc61>:0 
      at ModTek.Features.Manifest.Mods.ModDefExLoading.LoadAssemblyAndCallInit (ModTek.ModDefEx modDef) [0x001a0] in <4bd30be9e4834befb94de9c6c037bc61>:0 
    Location Trace
      at ModTek.Features.Manifest.Mods.ModDefsDatabase+<InitModsLoop>d__8.MoveNext () [0x00000] in <4bd30be9e4834befb94de9c6c037bc61>:0 
      at ModTek.UI.ProgressPanel+ProgressBarLoadingBehavior+<RunWorkList>d__20.MoveNext () [0x00000] in <4bd30be9e4834befb94de9c6c037bc61>:0 
      at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00000] in <9a6ceb7f013a4a599806f492fc789483>:0 
    07:41:44.7429057 ModTek [WARNING] Fail to call init method
    1. ElevatorEleven
      ElevatorEleven
      • member
      • 0 kudos
      I get this too with 5.0. Went with version 4.5 and it works, but it means I've got the white portrait bug. Anyone know how to fix just the white portrait bug on its own? Like what can I copy out of the 5.0 to fix just that without breaking anything else?

      EDIT: 
      ~later~
      Hey I did it! With some good ol unga bunga cave man Trial And Error.
      at least I think so. for now. For anyone else who can't use 5 and wants to use 4.5 but not get the broken portrait bug,

      Things I copied over from the 5.0 zip into my SkillTreeRebuild folder that is otherwise straight from 4.5:
      BATTLETECH\Mods\SkillTreeRebuild\Abilities\Traits\TraitDefEvasionBoost.json
      BATTLETECH\Mods\SkillTreeRebuild\Abilities\Traits\TraitDefSpotterExpert.json
      BATTLETECH\Mods\SkillTreeRebuild\Icons\uixSvgIcon_ability_EvasionBoost.svg
      BATTLETECH\Mods\SkillTreeRebuild\Abilities\AbilityDef_NetAttack.json

      I think that's all of them. Not sure if any other icon paths are busted. I'll update here if I encounter any more.
    2. skypatel7
      skypatel7
      • supporter
      • 1 kudos
      thanks this solution is working for me
  9. Arguss
    Arguss
    • member
    • 0 kudos
    Hey great mod for BEX, but I have a question about JackAll and Longshot?

    Where is it specified to which weapons these bonuses are applied? Both their AbilityDef_.json files are almost identical.

    I was wondering since I was trying to figure out whether Longshop also applies to Very Long(AC5) and Extreme(AC2) range weapons as well? And if it's based on their category in the mechbay tooltip or if it's simply their optimal range or something?

    Edit, ow and is there a way to lock the abilities of the remaining skill trees after you've selected two, like it's in vanilla?

    Thanks :)
  10. jtwizzy
    jtwizzy
    • member
    • 0 kudos
    Anyone Test the latest release 0.5.0 on Campaign?
    1. Kregano
      Kregano
      • premium
      • 13 kudos
      If you're having issues with the mod on a fresh install of it, check the ModTek/Injector folder to see if the AbilifierEffectDataInjector.dll file is there.

      If not, DL the ZIP with the injector in it and unzip it in your BattleTech/Mods folder.
  11. xrazergx
    xrazergx
    • supporter
    • 0 kudos
    Great mod but, like the person below, I am getting a white portrait pilot after having too many skills (6+). I would post my log but the page crashes every time I try (21k lines). No worries if you'd rather not deal with it but either way wanted to thank you for your work, well done. 

    Modtek 4.1
    Game version 1.9 all 3 DLCs
    Mod version 0.4.5
    1. Kregano
      Kregano
      • premium
      • 13 kudos
      Try version 0.5.0 of the mod. It should solve the problems.

      If not, let me know where (Gunnery, Piloting, Guts, Tactics) and what level you start seeing problems.