Sadly, you cannot pick the Sacred Lotus seeds from the flowers. I so wanted to jump in that pool and start clicking on them, just like the good old days in the Imperial City. Sadly, you cannot even get in the pool.
I discovered where the Arcane Archer's stats were, with a little help on Obisidian's official Pillars 2 forums. They are in the LAXG subfolder. Apparently it is one of the additions in a later patch. So I was able to easily mod out the -5 accuracy penalty for non-Imbued arrows.
Speaking of which, I have been spending some weeks now modding. There are no official modding tools. But most of the things you would want to mod are in a bunch of json files. It is a plain text format, and you can open them with any text editor. But they will look like a fearsome wall of text. It is best to use an advanced editor, like
Notepad++. It has a
json view plugin you will want to add.
Then go to your Pillars of Eternity II Deadfire\PillarsOfEternityII_Data\Exported\Design\gamedata folder. Or go to one of the LAX folders you will see off the Pillars of Eternity II Deadfire\PillarsOfEternityII_Data folder. Those are all the additions from patches and dlcs. The files will be named *.gamedatabundle. Open them with Notepad++. Select the entire document with Ctrl + A. Then go to the menu bar up top, and click on Plugins -> Json View -> Format Json. That will reformat the document into something readable.
From that point on it is just a matter of finding what section of code you want and changing it. You can just modify the gamebundle files directly. But it is better to create a mod.
This forum thread is a great resource for how to make a basic mod. I created a template that I use for every mod I create. Then I just copy and paste that to my Override folder and start filling in the blanks.
For example, the Arcane Veil Modal mod I created looks like this:
manifest.json =
CODE
{
"Title" : {
"en" : "Arcane Veil Modal"
},
"Description" : {
"en" : "Makes Arcane Veil a Modal Ability"
},
"Author" : "SubRosa_Florens",
"ModVersion": "1.0",
"SupportedGameVersion" : {
"Min" : "1.1.0",
"Max" : "10.0.0"
}
}
I saved a picture of the Arcane Veil icon from the wiki, resized it, and renamed it Thumb.png and put in my mod folder. You see that in the game where you can turn the mods on and off.
The main file (you can name them anything so long as they have the .gamedatabundle suffix) is Arcane_Veil.gamedatabundle =
CODE
{
"GameDataObjects":[
{
"$type": "Game.GameData.GenericAbilityGameData, Assembly-CSharp",
"DebugName": "Arcane_Veil",
"ID": "93c081c1-7177-4380-83cf-0deec9c7fd69",
"Components": [{
"$type": "Game.GameData.GenericAbilityComponent, Assembly-CSharp",
"KeywordsIDs": ["ad3de01a-e7a8-4a5e-9ec3-7d858d1ffea7",
"d0748495-899c-4db1-a2e1-d474ed455e7d"],
"DisplayName": 26,
"Description": 315,
"DescriptionTactical": -1,
"UpgradeDescriptions": [],
"UpgradedFromID": "00000000-0000-0000-0000-000000000000",
"Vocalization": "GenericSpellCast1",
"Icon": "gui/icons/abilities/wizard/arcane_veil.png",
"UsageType": "None",
"UsageValue": 0,
"AbilityClassID": "acfd1303-4699-4939-91eb-6ac46d4af0bd",
"AbilityLevel": 2,
"IsPassive": "false",
"StackingRuleOverride": "Default",
"TriggerOnHit": "false",
"IsModal": "true",
"ModalGroupID": "00000000-0000-0000-0000-000000000000",
"IsCombatOnly": "false",
"IsNonCombatOnly": "false",
"HideFromUI": "false",
"ShowStatusEffects": "false",
"HideFromCombatLog": "false",
"UniqueSet": "None",
"NoiseLevelID": "82bc1ce9-3a81-41ca-a61a-cc1f73a53de7",
"DurationOverride": 0,
"OverrideEmpower": "Default",
"ClearsOnMovement": "false",
"CannotActivateWhileInStealth": "false",
"CannotActivateWhileInvisible": "false",
"ActivationPrerequisites": {
"Conditional": {
"Operator": 0,
"Components": []
}
},
"ApplicationPrerequisites": {
"Conditional": {
"Operator": 0,
"Components": []
}
},
"DeactivationPrerequisites": {
"Conditional": {
"Operator": 0,
"Components": []
}
},
"PowerLevelScaling": {
"ScalingType": "Default",
"BaseLevel": 0,
"LevelIncrement": 1,
"MaxLevel": 0,
"DamageAdjustment": 1,
"DurationAdjustment": 1,
"BounceCountAdjustment": 0,
"ProjectileCountAdjustment": 0,
"AccuracyAdjustment": 0,
"PenetrationAdjustment": 0
},
"StatusEffectKeywordsIDs": [],
"StatusEffectsIDs": [],
"RandomizeStatusEffect": "false",
"VisualEffects": [],
"SelfMaterialReplacementID": "00000000-0000-0000-0000-000000000000",
"AttackID": "2c13d833-12a8-48aa-acd1-0e7ae75cacab",
"AITargetingConditional": {
"Conditional": {
"Operator": 0,
"Components": []
},
"Scripts": []
},
"AudioEventListID": "f0cc2e6f-77db-4bfb-b691-4cc3bf3a730e",
"GrantedViaScript": "false"
},
{
"$type": "Game.GameData.ProgressionUnlockableComponent, Assembly-CSharp"
}]
},
]
}
I basically copy and pasted the entire Arcane Veil entry from the vanilla abilities.gamedatabundle file. You don't have to copy and paste it all. But I am not very good at figuring out how many of those trailing brackets I need when I try to pare it down. If you miss any, your mod won't work. I did manage to pare it down with my Arcane Archer mod to just this:
ArcaneArcherFixes.gamedatabundle =
CODE
{
"GameDataObjects":[
{
"$type": "Game.GameData.StatusEffectGameData, Assembly-CSharp",
"DebugName": "Arcane_Archer_SE_AccuracyPenalty",
"ID": "bed4d99f-8d93-4a8e-b1e7-b3765a31cbf0",
"Components": [{
"$type": "Game.GameData.StatusEffectComponent, Assembly-CSharp",
"StatusEffectType": "AllAccuracy",
"OverrideDescriptionString": 687,
"OverrideDescriptionStringTactical": -1,
"UseStatusEffectValueAs": "None",
"BaseValue": 0,
}]
},
]
}
Since I am already using the
Ranger Unleashed mod that some other fixes and tweaks the Ranger class, I just added my new gamebundledata file into that.