Hey cow. Care to take a look at Call's Insinuator and its Smite Impudence? I do not and perhaps can not know how it works: whether it's just the Invoked Alignment(everything except viable for smiting) or whether it takes into account Alignment Axes too. You don't need to do anything, just take a look. I would do it myself, but there is no Patch Tool in Bag like there is in the modern Toyboxes. Again, I only need to know how it works / is implemented.
Is there any (easy) way to make Fly work like it should and make you immune to Swarm attacks? I mean, that is one of the solutions to the (Mandragora) Swarms in Tabletop, is it not?
Technically, it should also make you immune to ground based traps, but meh.
I found another Bug in CotW: the Spell Fiery Shuriken isn't tagged as a Fire Spell, which results in it not benefiting from the Fire Draconic Bloodline Arcanas, the Arsonists Slingstaff, the Ambrosial Attire of Arcane Annihilation and the Amulet of the Four Elements. Having the Rod of Flaming Vengeance adds the Fire Descriptor to it and enables the Damage again.
I have been away from the mod for a little while but I will try to resolve this next time I get a little bandwidth. The kid just started walking and my ability to pay attention to non-work non-baby things is limited.
Thank you very much for even thinking about it. I know how much Bandwith Children can need. Happy Holidays to you and your Family and a great Start into 2025!
Thanks for the kind wishes. Check out version 1.4.3 for the fix that adds the fire descriptor to the Fiery Shuriken spell and all its children abilities. Happy New Year to you too.
Do you think you would you be able to add an option to revert CotW's changes to Animate Dead and have them operate like vanilla and WOTR?
I feel the changes make the spell highly situational to useless and expensive to use and in the spirit of this mod enabling us to toggle things we otherwise can't in CoTW, I feel it would be a great addition.
Lesser Animate Dead in a similar vein would also be wonderful.
Generally the changes from Call of the Wild that I make optional are ones where that mod author made their own design decisions and therefore took the game further from the tabletop version of spells and abilities. I want to give players the ability to play as close to tabletop as possible with the options I give. Call of the Wild's version is closer to tabletop so your request is not the style of change that is generally a priority. However, I will give this a try at some point. How would you expect the interaction with Descrate to work with the toggle "AnimateDeadOriginalVersion" on?
I think with Desecrate making it 2d4+2 instead of 1d4+2 would keep the spirit of interaction alongside the profane bonuses with base Animate Dead. Lesser Animate dead the same with 2d3+1 instead of 1d3+1. Or only keeping the profane bonuses to the summoned skeletons as I'd worry about it being too strong.
Also it's very rad of you to consider implementing this since it is against the grain of being a tabletop translation I just think Owlcat's interpretation of the spell lends itself to actually being used and the spells are a big staple of the early game, those skelly bois are a big help in KM and WOTR.
A big reason I even use CoTW and mods like this are to update Kingmaker to being a bit more playable as it's extremely hard to go back to KM after WoTR. It just happens that the CoTW animate dead changes are one of the big unavoidable departures from the Owlcat experience with using these mods.
I found another faulty Feature in CotW: According to the Tooltip of the Blood Hunter Rangers Favored Target, it should apply the full Blood Hunter's Favored Target Bonus to Allies when using Hunter's Bond:
Additionally, the favored target ability always grants or uses a minimum of the blood hunter’s full favored target bonus for the purposes of effects that use the value of the ranger’sfavored enemy bonus. For example, a blood hunter grants his full favored target bonus to his companion when using the hunter’s bond class feature.
Holic's Implementation sadly only applies half the Favored Target Bonus.
Thanks again for still supporting Kingmaker with Mods!
Another Question/Request, which regards the Favored Class Mod: AFAIK Subraces should count as their "Parentraces", so Drow should count as Elves and Duergar should count as Dwarves but Holic implemented it in such a Way that Drow and Duergar only can pick FCB that are for them only and not the ones that their "Parentraces" can pick. Do you think you could create a Patch for that? I tried looking into Holics example to add own FCBs but I didn't manage to create a Fix myself.
Greetings does anybody know, if its possible to modify areas/maps somehow with unity? I would love to make a mod, where after you recreated something as the silvershield fortress for instance, the area changes to "reacreated an repopulated (with soldiers). This is only one thing, that disturbs my immersion a little. The game is so huge, that some minor aspects as responsivness were forgotten.
while neither being a Fix to CotW or Trick or Treat or being a Spell, I wanted to ask you if you could backport some Archetypes from WotR to Kingmaker? Sohei and Stigmatized Witch would be really nice to have IMO. (I know that KM doesn't offer Mounts but giving Sohei the Dog Animal Companion would fit the Master of the Hunt Flavor) Also thank you again for still supporting this Mod.
Another bug in CotW... in the file Time.cs the function createTemporalCelerity gives 2 (lv 1) / 3 (lv11) extra rolls for intiative instead of 2 / 3 in total. To fix this variable m.RollsAmount should be 1 in line 166 and 2 in line 176. Code is easy to fix but I really prefer Python where everything works out just by editing the code, can't get further than this by myself... Would be really great if you could fix this in your mod (or explain to me how to do this myself if you think that would be better use of your time).
This should be fixed in 1.3.9. You can take a look at how I solved it here: https://github.com/MangledMouse/KingmakerCustomSpellsMod its the most recent commit as of this post.
I just manually reset the RollsAmount for all BlueprintFeature components in the blueprints.txt of Call of the Wild that were generated by that method to be the correct numbers.
Explaining how to do it yourself would take some doing. You basically need to copy the template of the Main.cs file that my mod uses. I honestly don't remember exactly how I initially set it up because I had a lot of help from other prominent mod authors of the time like Holic92 and Spacehamster. I don't know if they ever hang out in the kingmaker mod making discord anymore but that's where I found them.
I use Microsoft Visual Studio Community 2022 which is free and works well for me.
I am reasonably happy resolving bugs like this in my mod since it feels a little weird to have multiple mods fixing other people's deprecated stuff. But if you'd rather have your own up and running so you can make whatever changes you want, I can appreciate that.
Thank you. That was really fast. Setting up visual studio to do what I want is always such a pain. I will see if I can do something about it (I have no idea how to do dll files). I would also prefer if bugfixes were in less amount of mods but I want to try to do some modding myself. Mod that adds some alternative racial traits to gnomes would be nice. They were totally excluded by other modders.
If you are looking to make your own mods for kingmaker I would reccomend starting here: https://github.com/WittleWolfie/OwlcatModdingWiki/wiki Or checking out the owlcat modding discord here: https://discord.gg/QpfEM8CH
Would you perhaps consider improving Dawnflower Anchorite's implementation in the game? The one from CotW is much different from tabletop version: https://aonprd.com/PrestigeClassesDisplay.aspx?ItemName=Dawnflower%20Anchorite
Instead of picking up Credence every two levels, CotW version instead boosts several aspects at the same time (while also taking away two Credence choices):
The tabletop version is less versatile, but it also offers more choices:
Focused Class Feature: Choose one of the following class features: animal companion, bane, bardic performance, blessings, channel energy, domain, favored enemy, favored terrain, sacred weapon, or wild shape. The character adds his Dawnflower anchorite class levels to his effective class level in one class of his choice for the purpose of determining the effects of the chosen class feature. This credence can be selected twice, but the Dawnflower anchorite must select a different class feature each time.
If changing the whole Credence system would be impossible, perhaps it'd be possible and/or more viable to simply add bardic performance to the Focused feature instead? There's an Evangelist Cleric archetype which sadly doesn't advance bardic performance with Focused, which it should in tabletop.
This, in turn, could open up more avenues for builds. It also feels like a very thematic choice.
I would like to implement this and may try again at a later date but even parsing the system of Bardic Performance to the point where I can get it working in a non Bard archetype is too much of a challenge for me at this point.
Great to hear, even if it'll be a challenge! By the way, is there a way to get it working with Bag of Tricks in the interim? I've tried to take a look in the Abilities tab, but bardic performance just doesn't show there.
I don't know if you can help but I've looked at the source code for CallOfTheWild and I have some sense of how that mod author added domain progression to Dawnflower Anchorite but I don't really see how it could work with bardic performance. The crux of the issue is that I can't find a BlueprintProgression component that maps to bardic performance as a whole. Here is the source code for CallOfTheWild: https://github.com/Holic75/KingmakerRebalance/ and here is source code for my mod: https://github.com/MangledMouse/KingmakerCustomSpellsMod
If you can parse them out to figure out what I ought to be doing I will make the change to the mod. Good luck!
I have a file which stores all the blueprintIDs in the game that one of the more senior modders shared with me at some point. I'm not sure if its hosted anywhere public at the moment.
I'm not a coder, but I took a look at it, and I figured we should start with the Evangelist class, here's what they have. I've highlighted portions that might possibly be connected to the progression table. Not sure if it's helpful at all, please let me know :)
var inspire_courage_ability = library.CopyAndAdd("70274c5aa9124424c984217b62dabee8", "EvangelistInspireCourageToggleAbility", ""); inspire_courage_ability.SetDescription("A 1st level evangelist can use his performance to inspire courage in his allies (including himself), bolstering them against fear and improving their combat abilities. To be affected, an ally must be able to perceive the evangelist's performance. An affected ally receives a +1 morale bonus on saving throws against charm and fear effects and a +1 competence bonus on attack and weapon damage rolls. At 5th level, and every six evangelist levels thereafter, this bonus increases by +1, to a maximum of +4 at 17th level."); var inspire_courage_buff = library.Get("6d6d9e06b76f5204a8b7856c78607d5d"); ClassToProgression.addClassToBuff(cleric, new BlueprintArchetype[] { archetype }, inspire_courage_ability.Buff, library.Get("772c83a25e2268e448e841dcd548235f"));
var inspire_competence_ability = library.CopyAndAdd("430ab3bb57f2cfc46b7b3a68afd4f74e", "EvangelistInspireCompetenceToggleAbility", ""); inspire_competence_ability.SetDescription("An evangelist of 3rd level or higher can use his performance to help allies succeed at a task. They must be within 30 feet and able to see and hear the evangelist. They get a +2 competence bonus on all skill checks as long as they continue to hear the evangelist's performance. This bonus increases by +1 for every four levels the evangelist has attained beyond 3rd (+3 at 7th, +4 at 11th, +5 at 15th, and +6 at 19th)."); ClassToProgression.addClassToBuff(cleric, new BlueprintArchetype[] { archetype }, inspire_competence_ability.Buff, library.Get("772c83a25e2268e448e841dcd548235f"));
var inspire_greatness_ability = library.CopyAndAdd("be36959e44ac33641ba9e0204f3d227b", "EvangelistInspireGreatnessToggleAbility", ""); inspire_greatness_ability.SetDescription("An evangelist of 9th level or higher can use his performance to inspire greatness in all allies within 30 feet, granting extra fighting capability. A creature inspired with greatness gains 2 bonus Hit Dice (d10s), the commensurate number of temporary hit points (apply the target's Constitution modifier, if any, to these bonus Hit Dice), a +2 competence bonus on attack rolls, and a +1 competence bonus on Fortitude saves.");
var inspire_heroics_ability = library.CopyAndAdd("a4ce06371f09f504fa86fcf6d0e021e4", "EvangelistInspireHeroicsToggleAbility", ""); inspire_heroics_ability.SetDescription("An evangelist of 15th level or higher can inspire tremendous heroism in all allies within 30 feet. Inspired creatures gain a +4 morale bonus on saving throws and a +4 dodge bonus to AC. The effect lasts for as long as the targets are able to witness the performance.");
var fascinate_ability = library.CopyAndAdd("993908ad3fb81f34ba0ed168b7c61f58", "EvangelistFascinateToggleAbility", ""); fascinate_ability.SetDescription("At 6th level, an evangelist can use his performance to cause one or more creatures to become fascinated with him. Each creature to be fascinated must be within 30 feet.\nEach creature within range receives a Will save (DC 10 + 1/2 the evangelist's level + the evangelist's Cha modifier) to negate the effect. If a creature's saving throw succeeds, the evangelist cannot attempt to fascinate that creature again for 24 hours. If its saving throw fails, the creature stands quietly and observes the performance for as long as the bard continues to maintain it. Any damage to the target automatically breaks the effect.");
----------------------------------------------------------------------- And then we have the Dawnflower Anchorite:
static void createChannelEnergyDomainProgression() { //add to domains var druid = library.Get<BlueprintCharacterClass>("610d836f3a3a9ed42a4349b62f002e96"); var domain_selection = library.Get<BlueprintFeatureSelection>("48525e5da45c9c243a343fc6545dbdb9"); var cleric_secondary_domain_selection = library.Get<BlueprintFeatureSelection>("43281c3d7fe18cc4d91928395837cd1e"); var druid_domain_selection = library.Get<BlueprintFeatureSelection>("5edfe84c93823d04f8c40ca2b4e0f039"); var blight_druid_domain_selection = library.Get<BlueprintFeatureSelection>("096fc02f6cc817a43991c4b437e12b8e"); var cleric = library.Get<BlueprintCharacterClass>("67819271767a9dd4fbfd4ae700befea0"); ClassToProgression.addClassToDomains(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, domain_selection, cleric); ClassToProgression.addClassToDomains(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, cleric_secondary_domain_selection, cleric); ClassToProgression.addClassToDomains(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, blight_druid_domain_selection, druid); ClassToProgression.addClassToDomains(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, druid_domain_selection, druid); ChannelEnergyEngine.addClassToChannelEnergyProgression(dawnflower_anchorite);
foreach (var p in Archetypes.StormDruid.domain_secondary_progressions) { ClassToProgression.addClassToProgression(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, p, druid); }
foreach (var p in Wildshape.wildshape_progressions) { ClassToProgression.addClassToProgression(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, p, p.Classes[0]); }
//remove dawnflower anchorite from animal domains var domain_animal_companion_progression = library.Get<BlueprintProgression>("125af359f8bc9a145968b5d8fd8159b8"); domain_animal_companion_progression.Classes = domain_animal_companion_progression.Classes.RemoveFromArray(dawnflower_anchorite); var druid_animal_domain_selection = library.Get<BlueprintProgression>("a75ad4936e099c54881cf553e2110703"); foreach (var a in druid_animal_domain_selection.GetComponents<AddFeatureOnClassLevel>()) { a.AdditionalClasses = a.AdditionalClasses.RemoveFromArray(dawnflower_anchorite); }
channel_energy_domain_progression = Helpers.CreateFeature("DawnflowerAnchoriteChannelDomainProgressionFeature", "Focused", "The character adds his Dawnflower anchorite class levels to his effective class level in the corresponding class for the purpose of determining the effects of the following features: " +"Domains, Channel Energy, Animal Companion and Wildshape.", "", Helpers.GetIcon("a5e23522eda32dc45801e32c05dc9f96"), //good hope FeatureGroup.None );
var animal_companion_rank = library.Get<BlueprintFeature>("1670990255e4fe948a863bafd5dbda5d"); for (int i = 1; i <= 10; i++) { channel_energy_domain_progression.AddComponent(Helpers.CreateAddFeatureOnClassLevelIfHasFact(animal_companion_rank, i, getDawnflowerAcnchoriteArray(), animal_companion_rank)); }
} ----------------------------------------------------------------------- Bear with me, this might be extremely naive, but perhaps the key is to add the bardic performance progression table from Evangelist to here:
foreach (var p in Wildshape.wildshape_progressions) { ClassToProgression.addClassToProgression(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, p, p.Classes[0]); }
Again, I'm just guessing here as I don't have a clue about coding itself...Perhaps it's one of these:
Sorry, I can't help you with this. Technically, it should be possible to hackjob it via Bag, but I am unable to do so. I can progress Bardic Performance, assign it proper resources etc, but I can't make it actually affect anything if you are not a Bard to begin with. There is another option, but that could overpower your casting:
Just slap / gestalt Anchorite on top of your class. That's 100% going to work. For that, you need a mod. Here: https://www.nexusmods.com/pathfinderkingmaker/mods/96 .
Evangelist has a bardic performance in CotW already, I just don't know how to progress it (improve its power) with Bag of Tricks hacks (this would allow for a temporary solution until Dawnflower Anchorite's implemention changes). You mentioned you know how?
Here are my findings. Under Feats in Bag of Tricks, there's this:
Inspire Courage progresses with levels, up to Rank 4 at level 17th:
However:
1) Manually changing the value into, for example, 3 or 4, doesn't do anything. 2) Evangelist archetype also has Inpire Courage, which advances the same way. That said, when I use Bag of Tricks, I don't see any Feat raising in ranks when I level up this character.
No, sorry, I misspoke. Progressing seems to be done on a raw programming level. I don't see anything in Bag of Tricks that could progress it(I even found its buff guid etc, but it don't change between levels). That Feat simply gives you the ability and there are other two feats which give you resources to use the ability. BardicPerformanceResourceFact or something like that. I don't see what progresses it except level. Let me try one more thing.
There is some weirdness with progression, but I made it work. The short version? GESTALT. Like, yes. Sure, you are going to have more spell slots and faster spell progression(this is the only troubling thing tbh), but that's it. Now, is there another way to make this work? Yes. But it is a lot of manual work and fiddling.
First, you need BardicPerformanceResource feats. There are two. Fact and Prereq. You NEED both(I would give myself even the third Feat that appears when you write "Bardic Performance"). Then you need abilities. Give them to yourself. Then you need to fiddle. You need to brute force your Bard / Evangelist / Wavesinger / Skald etc up. How do you do this? You need to go into Party Options.
PARTY OPTIONS: Go to "Class Data Options (Set Level)" and check both of them as they appear. Now, click Bard / Cleric etc in the ass yuge grid and then set it to desired level under the grid. You don't need to do this at every level, just at Bardic Performance increment levels. I am not 100% sure whether this raises Archetype levels, but it should.
There is some odd behavior though. The further I go, the longer it takes for the Performance to start. It took me two turns for it to even apply at 11. Idk what's up with that.
The rest of abilities that get progressed that are missing are either just duration or number of casts. Nothing major.
And it would take quite some work adding to make it work from the programming side. Don't worry about that. Gestalt is the easiest way and nobody's forcing you to abuse earlier spells.
111 comments
Thank you!
(Exciter is also unfinished)
https://github.com/Holic75/KingmakerRebalance/blob/master/CallOfTheWild/Classes/Antipaladin.cs
If you are interested
Technically, it should also make you immune to ground based traps, but meh.
I found another Bug in CotW: the Spell Fiery Shuriken isn't tagged as a Fire Spell, which results in it not benefiting from the Fire Draconic Bloodline Arcanas, the Arsonists Slingstaff, the Ambrosial Attire of Arcane Annihilation and the Amulet of the Four Elements. Having the Rod of Flaming Vengeance adds the Fire Descriptor to it and enables the Damage again.
Archives of Nethys shows that it is indeed a Fire Spell.
Thanks again for all your Work.
Happy Holidays to you and your Family and a great Start into 2025!
I feel the changes make the spell highly situational to useless and expensive to use and in the spirit of this mod enabling us to toggle things we otherwise can't in CoTW, I feel it would be a great addition.
Lesser Animate Dead in a similar vein would also be wonderful.
Also it's very rad of you to consider implementing this since it is against the grain of being a tabletop translation I just think Owlcat's interpretation of the spell lends itself to actually being used and the spells are a big staple of the early game, those skelly bois are a big help in KM and WOTR.
A big reason I even use CoTW and mods like this are to update Kingmaker to being a bit more playable as it's extremely hard to go back to KM after WoTR. It just happens that the CoTW animate dead changes are one of the big unavoidable departures from the Owlcat experience with using these mods.
I found another faulty Feature in CotW:
According to the Tooltip of the Blood Hunter Rangers Favored Target, it should apply the full Blood Hunter's Favored Target Bonus to Allies when using Hunter's Bond:
Holic's Implementation sadly only applies half the Favored Target Bonus.
Thanks again for still supporting Kingmaker with Mods!
Another Question/Request, which regards the Favored Class Mod: AFAIK Subraces should count as their "Parentraces", so Drow should count as Elves and Duergar should count as Dwarves but Holic implemented it in such a Way that Drow and Duergar only can pick FCB that are for them only and not the ones that their "Parentraces" can pick. Do you think you could create a Patch for that? I tried looking into Holics example to add own FCBs but I didn't manage to create a Fix myself.
while neither being a Fix to CotW or Trick or Treat or being a Spell, I wanted to ask you if you could backport some Archetypes from WotR to Kingmaker? Sohei and Stigmatized Witch would be really nice to have IMO. (I know that KM doesn't offer Mounts but giving Sohei the Dog Animal Companion would fit the Master of the Hunt Flavor)
Also thank you again for still supporting this Mod.
Another bug in CotW... in the file Time.cs the function createTemporalCelerity gives 2 (lv 1) / 3 (lv11) extra rolls for intiative instead of 2 / 3 in total. To fix this variable m.RollsAmount should be 1 in line 166 and 2 in line 176. Code is easy to fix but I really prefer Python where everything works out just by editing the code, can't get further than this by myself... Would be really great if you could fix this in your mod (or explain to me how to do this myself if you think that would be better use of your time).
https://github.com/MangledMouse/KingmakerCustomSpellsMod
its the most recent commit as of this post.
I just manually reset the RollsAmount for all BlueprintFeature components in the blueprints.txt of Call of the Wild that were generated by that method to be the correct numbers.
Explaining how to do it yourself would take some doing. You basically need to copy the template of the Main.cs file that my mod uses. I honestly don't remember exactly how I initially set it up because I had a lot of help from other prominent mod authors of the time like Holic92 and Spacehamster. I don't know if they ever hang out in the kingmaker mod making discord anymore but that's where I found them.
I use
Microsoft Visual Studio Community 2022
which is free and works well for me.
I am reasonably happy resolving bugs like this in my mod since it feels a little weird to have multiple mods fixing other people's deprecated stuff. But if you'd rather have your own up and running so you can make whatever changes you want, I can appreciate that.
https://github.com/WittleWolfie/OwlcatModdingWiki/wiki
Or checking out the owlcat modding discord here:
https://discord.gg/QpfEM8CH
Would you perhaps consider improving Dawnflower Anchorite's implementation in the game? The one from CotW is much different from tabletop version: https://aonprd.com/PrestigeClassesDisplay.aspx?ItemName=Dawnflower%20Anchorite
Instead of picking up Credence every two levels, CotW version instead boosts several aspects at the same time (while also taking away two Credence choices):
The tabletop version is less versatile, but it also offers more choices:
Focused Class Feature: Choose one of the following class features: animal companion, bane, bardic performance, blessings, channel energy, domain, favored enemy, favored terrain, sacred weapon, or wild shape. The character adds his Dawnflower anchorite class levels to his effective class level in one class of his choice for the purpose of determining the effects of the chosen class feature. This credence can be selected twice, but the Dawnflower anchorite must select a different class feature each time.
If changing the whole Credence system would be impossible, perhaps it'd be possible and/or more viable to simply add bardic performance to the Focused feature instead? There's an Evangelist Cleric archetype which sadly doesn't advance bardic performance with Focused, which it should in tabletop.
This, in turn, could open up more avenues for builds. It also feels like a very thematic choice.
Also, is there perhaps a way I could help?
https://github.com/Holic75/KingmakerRebalance/
and here is source code for my mod:
https://github.com/MangledMouse/KingmakerCustomSpellsMod
If you can parse them out to figure out what I ought to be doing I will make the change to the mod. Good luck!
I have a file which stores all the blueprintIDs in the game that one of the more senior modders shared with me at some point. I'm not sure if its hosted anywhere public at the moment.
archetype.AddFeatures = new LevelEntry[] { Helpers.LevelEntry(1, weapon_proficiency, spontaneous_casting, performance_resource, inspire_courage),
Helpers.LevelEntry(3, inspire_competence, channel_energy),
Helpers.LevelEntry(6, fascinate),
Helpers.LevelEntry(9, inspire_greatness),
Helpers.LevelEntry(15, inspire_heroics)};
-----------------------------------------------------------------------
cleric_class.Progression.UIDeterminatorsGroup = cleric_class.Progression.UIDeterminatorsGroup.AddToArray(weapon_proficiency, spontaneous_casting);
cleric_class.Progression.UIGroups = cleric_class.Progression.UIGroups.AddToArray(Helpers.CreateUIGroup(inspire_courage, inspire_competence, fascinate, inspire_greatness, inspire_heroics));
cleric_class.Archetypes = cleric_class.Archetypes.AddToArray(archetype);
static void createPerformance()
{
var cleric = library.Get("67819271767a9dd4fbfd4ae700befea0");
var resource = library.Get("e190ba276831b5c4fa28737e5e49e6a6");
ClassToProgression.addClassToResource(cleric, new BlueprintArchetype[] {archetype }, resource, library.Get("772c83a25e2268e448e841dcd548235f"));
var archatype_list_feature = Helpers.CreateFeature("BardicPerformanceArchetypeExtensionFeature",
"",
"",
"",
null,
FeatureGroup.None);
archatype_list_feature.AddComponent(Helpers.Create(c => c.archetypes = new BlueprintArchetype[] { archetype }));
archatype_list_feature.HideInCharacterSheetAndLevelUp = true;
var inspire_courage_ability = library.CopyAndAdd("70274c5aa9124424c984217b62dabee8", "EvangelistInspireCourageToggleAbility", "");
inspire_courage_ability.SetDescription("A 1st level evangelist can use his performance to inspire courage in his allies (including himself), bolstering them against fear and improving their combat abilities. To be affected, an ally must be able to perceive the evangelist's performance. An affected ally receives a +1 morale bonus on saving throws against charm and fear effects and a +1 competence bonus on attack and weapon damage rolls. At 5th level, and every six evangelist levels thereafter, this bonus increases by +1, to a maximum of +4 at 17th level.");
var inspire_courage_buff = library.Get("6d6d9e06b76f5204a8b7856c78607d5d");
ClassToProgression.addClassToBuff(cleric, new BlueprintArchetype[] { archetype }, inspire_courage_ability.Buff, library.Get("772c83a25e2268e448e841dcd548235f"));
var inspire_competence_ability = library.CopyAndAdd("430ab3bb57f2cfc46b7b3a68afd4f74e", "EvangelistInspireCompetenceToggleAbility", "");
inspire_competence_ability.SetDescription("An evangelist of 3rd level or higher can use his performance to help allies succeed at a task. They must be within 30 feet and able to see and hear the evangelist. They get a +2 competence bonus on all skill checks as long as they continue to hear the evangelist's performance. This bonus increases by +1 for every four levels the evangelist has attained beyond 3rd (+3 at 7th, +4 at 11th, +5 at 15th, and +6 at 19th).");
ClassToProgression.addClassToBuff(cleric, new BlueprintArchetype[] { archetype }, inspire_competence_ability.Buff, library.Get("772c83a25e2268e448e841dcd548235f"));
var inspire_greatness_ability = library.CopyAndAdd("be36959e44ac33641ba9e0204f3d227b", "EvangelistInspireGreatnessToggleAbility", "");
inspire_greatness_ability.SetDescription("An evangelist of 9th level or higher can use his performance to inspire greatness in all allies within 30 feet, granting extra fighting capability. A creature inspired with greatness gains 2 bonus Hit Dice (d10s), the commensurate number of temporary hit points (apply the target's Constitution modifier, if any, to these bonus Hit Dice), a +2 competence bonus on attack rolls, and a +1 competence bonus on Fortitude saves.");
var inspire_heroics_ability = library.CopyAndAdd("a4ce06371f09f504fa86fcf6d0e021e4", "EvangelistInspireHeroicsToggleAbility", "");
inspire_heroics_ability.SetDescription("An evangelist of 15th level or higher can inspire tremendous heroism in all allies within 30 feet. Inspired creatures gain a +4 morale bonus on saving throws and a +4 dodge bonus to AC. The effect lasts for as long as the targets are able to witness the performance.");
var fascinate_ability = library.CopyAndAdd("993908ad3fb81f34ba0ed168b7c61f58", "EvangelistFascinateToggleAbility", "");
fascinate_ability.SetDescription("At 6th level, an evangelist can use his performance to cause one or more creatures to become fascinated with him. Each creature to be fascinated must be within 30 feet.\nEach creature within range receives a Will save (DC 10 + 1/2 the evangelist's level + the evangelist's Cha modifier) to negate the effect. If a creature's saving throw succeeds, the evangelist cannot attempt to fascinate that creature again for 24 hours. If its saving throw fails, the creature stands quietly and observes the performance for as long as the bard continues to maintain it. Any damage to the target automatically breaks the effect.");
var fasciante_area = library.CopyAndAdd("a4fc1c0798359974e99e1d790935501d", "EvangelistFascianteArea", "");
fasciante_area.ReplaceComponent(c => c.CharacterClass = cleric);
var fascinate_buff = library.CopyAndAdd("555930f121b364a4e82670b433028728", "EvangelistFascianteBuff", "");
fascinate_buff.SetDescription(fascinate_ability.Description);
fascinate_buff.ReplaceComponent(a => a.AreaEffect = fasciante_area);
fascinate_ability.Buff = fascinate_buff;
inspire_courage = Common.ActivatableAbilityToFeature(inspire_courage_ability, false);
inspire_competence = Common.ActivatableAbilityToFeature(inspire_competence_ability, false);
inspire_heroics = Common.ActivatableAbilityToFeature(inspire_heroics_ability, false);
inspire_greatness = Common.ActivatableAbilityToFeature(inspire_greatness_ability, false);
fascinate = Common.ActivatableAbilityToFeature(fascinate_ability, false);
performance_resource = library.CopyAndAdd("b92bfc201c6a79e49afd0b5cfbfc269f", "EvangelistPerformanceResource", "");
performance_resource.ReplaceComponent(i => i.CharacterClass = cleric);
performance_resource = library.Get("b92bfc201c6a79e49afd0b5cfbfc269f");
performance_resource.AddComponent(Helpers.Create(i =>
{
i.CharacterClass = archetype.GetParentClass();
i.Archetype = archetype;
i.Resource = resource;
}));
}
-----------------------------------------------------------------------
And then we have the Dawnflower Anchorite:
static void createChannelEnergyDomainProgression()
{
//add to domains
var druid = library.Get<BlueprintCharacterClass>("610d836f3a3a9ed42a4349b62f002e96");
var domain_selection = library.Get<BlueprintFeatureSelection>("48525e5da45c9c243a343fc6545dbdb9");
var cleric_secondary_domain_selection = library.Get<BlueprintFeatureSelection>("43281c3d7fe18cc4d91928395837cd1e");
var druid_domain_selection = library.Get<BlueprintFeatureSelection>("5edfe84c93823d04f8c40ca2b4e0f039");
var blight_druid_domain_selection = library.Get<BlueprintFeatureSelection>("096fc02f6cc817a43991c4b437e12b8e");
var cleric = library.Get<BlueprintCharacterClass>("67819271767a9dd4fbfd4ae700befea0");
ClassToProgression.addClassToDomains(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, domain_selection, cleric);
ClassToProgression.addClassToDomains(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, cleric_secondary_domain_selection, cleric);
ClassToProgression.addClassToDomains(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, blight_druid_domain_selection, druid);
ClassToProgression.addClassToDomains(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, druid_domain_selection, druid);
ChannelEnergyEngine.addClassToChannelEnergyProgression(dawnflower_anchorite);
foreach (var p in Archetypes.StormDruid.domain_secondary_progressions)
{
ClassToProgression.addClassToProgression(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, p, druid);
}
foreach (var p in Wildshape.wildshape_progressions)
{
ClassToProgression.addClassToProgression(dawnflower_anchorite, new BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, p, p.Classes[0]);
}
//remove dawnflower anchorite from animal domains
var domain_animal_companion_progression = library.Get<BlueprintProgression>("125af359f8bc9a145968b5d8fd8159b8");
domain_animal_companion_progression.Classes = domain_animal_companion_progression.Classes.RemoveFromArray(dawnflower_anchorite);
var druid_animal_domain_selection = library.Get<BlueprintProgression>("a75ad4936e099c54881cf553e2110703");
foreach (var a in druid_animal_domain_selection.GetComponents<AddFeatureOnClassLevel>())
{
a.AdditionalClasses = a.AdditionalClasses.RemoveFromArray(dawnflower_anchorite);
}
channel_energy_domain_progression = Helpers.CreateFeature("DawnflowerAnchoriteChannelDomainProgressionFeature",
"Focused",
"The character adds his Dawnflower anchorite class levels to his effective class level in the corresponding class for the purpose of determining the effects of the following features: "
+"Domains, Channel Energy, Animal Companion and Wildshape.",
"",
Helpers.GetIcon("a5e23522eda32dc45801e32c05dc9f96"), //good hope
FeatureGroup.None
);
var animal_companion_rank = library.Get<BlueprintFeature>("1670990255e4fe948a863bafd5dbda5d");
for (int i = 1; i <= 10; i++)
{
channel_energy_domain_progression.AddComponent(Helpers.CreateAddFeatureOnClassLevelIfHasFact(animal_companion_rank, i, getDawnflowerAcnchoriteArray(), animal_companion_rank));
}
}
-----------------------------------------------------------------------
Bear with me, this might be extremely naive, but perhaps the key is to add the bardic performance progression table from Evangelist to here:
foreach (var p in Wildshape.wildshape_progressions)
{
ClassToProgression.addClassToProgression(dawnflower_anchorite, new
BlueprintArchetype[0], ClassToProgression.DomainSpellsType.NoSpells, p,
p.Classes[0]);
}
Again, I'm just guessing here as I don't have a clue about coding itself...Perhaps it's one of these:
cleric_class.Progression.UIGroups = cleric_class.Progression.UIGroups.AddToArray(Helpers.CreateUIGroup(inspire_courage, inspire_competence, fascinate, inspire_greatness, inspire_heroics));
ClassToProgression.addClassToBuff(cleric, new BlueprintArchetype[] { archetype }, inspire_courage_ability.Buff, library.Get<BlueprintCharacterClass>("772c83a25e2268e448e841dcd548235f"));
ClassToProgression.addClassToBuff(cleric, new BlueprintArchetype[] { archetype }, inspire_courage_ability.Buff, library.Get<BlueprintCharacterClass>("772c83a25e2268e448e841dcd548235f"));
Just slap / gestalt Anchorite on top of your class. That's 100% going to work. For that, you need a mod. Here: https://www.nexusmods.com/pathfinderkingmaker/mods/96 .
Evangelist has a bardic performance in CotW already, I just don't know how to progress it (improve its power) with Bag of Tricks hacks (this would allow for a temporary solution until Dawnflower Anchorite's implemention changes). You mentioned you know how?
Inspire Courage progresses with levels, up to Rank 4 at level 17th:
However:
1) Manually changing the value into, for example, 3 or 4, doesn't do anything.
2) Evangelist archetype also has Inpire Courage, which advances the same way. That said, when I use Bag of Tricks, I don't see any Feat raising in ranks when I level up this character.
First, you need BardicPerformanceResource feats. There are two. Fact and Prereq. You NEED both(I would give myself even the third Feat that appears when you write "Bardic Performance"). Then you need abilities. Give them to yourself. Then you need to fiddle. You need to brute force your Bard / Evangelist / Wavesinger / Skald etc up. How do you do this? You need to go into Party Options.
PARTY OPTIONS: Go to "Class Data Options (Set Level)" and check both of them as they appear. Now, click Bard / Cleric etc in the ass yuge grid and then set it to desired level under the grid. You don't need to do this at every level, just at Bardic Performance increment levels. I am not 100% sure whether this raises Archetype levels, but it should.
There is some odd behavior though. The further I go, the longer it takes for the Performance to start. It took me two turns for it to even apply at 11. Idk what's up with that.
The rest of abilities that get progressed that are missing are either just duration or number of casts. Nothing major.
Thank you for taking the time to explore this, unfortunately both of these options are rather fiddly.
@cowwithhat
It is safe to assume it won't be doable anytime soon (if ever), correct?