_Boosts and Passives - BG3-Community-Library-Team/BG3-Compatibility-Framework GitHub Wiki
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),
}
}
}