Skip to content

_Boosts and Passives

NellsRelo edited this page Jan 17, 2024 · 14 revisions

To Insert/Remove Boosts, PassivesAdded, PassivesRemoved, or Requirements to/from a Progression/Feat, you have two options: The Config Method or directly calling the API

Config

{
  "FileVersion": 1,
  "Progressions": [
    {
      "UUID": "class-progression-uuid - use this or UUIDs, but not both",
      "UUIDs": ["first-class-progression-uuid", "second-class-progression-uuid"],
      "Strings": [
        {
          "Action": "Insert or Remove",
          "Type": "Boosts, PassivesAdded, PassivesRemoved, or Requirements",
          "modGuid": "UUID of required mod (Optional)",
          "Strings": ["Name of Passive or Boost/Requirement Function Call", "Another Name of Passive or Boost/Requirement Function Call"]
        }
      ]
    }
  ]
}

Note: "UUID" is for targeting a single Progression/Feat. "UUIDs" is an array, targeting multiple Progressions/Feats. This is used if you want your insert/removal action to target multiple Progressions/Feats with the same change.

API

The Compatibility Framework contains an API Endpoint to insert Boosts and PassivesAdded/Removed, allowing further compatibility among mods that deal with Progressions and Feats.

Adding Strings

Behind the scenes, these all work in the same way, so the same API call can be used for all of them, but for ease of use, I've added multiple endpoints that will call the same logic:

  • Api.InsertBoosts
  • Api.InsertPassives
  • Api.InsertPassivesForRemoval

Your object will look like this:

MyBString = {
  payload = {
    modGuid = "Your Mod's UUID as defined in meta.lsx",
    Target = "The Progression or Feat ID you're aiming for",
    FileType = "either Progression or Feat, defaults to Progression if not included",
    Type = "either Boosts, PassivesAdded, PassivesRemoved, or Requirements",
    Strings = {
      "Boost(1, 2, blah)",
      "OtherBoost(1)",
    }
  }
}

Removing Strings

Behind the scenes, these all work in the same way, so the same API call can be used for all of them, but for ease of use, I've added multiple endpoints that will call the same logic:

  • Api.RemoveBoosts
  • Api.RemovePassives
  • Api.RemovePassivesForRemoval
MyStringsToRemove = {
  Payload = {
    Target = "Feat or Progression UUID",
    FileType = "Either Progression or Feat, defaulting to Progression.",
    Type = "either Boosts, PassivesAdded, PassivesRemoved, or Requirements",
    Strings = {
      "Boost(1, 2, blah)",
      "OtherBoost(1),
    }
  }
}