Harpagornis Posted September 8, 2018 Posted September 8, 2018 As the title says: Is it possible to give Spiritshifting Forms new abilities at specific Levels? The problem so far: Whenever i add them to the Temporary Abilities they are available instantly regardless of the level requirements of the ability. Which tables should i rework? Have i to rebuild the progression table maybe? How? Thanks a lot for your input! PoE II: Druid Shifter: Evolution Mod
Armakoir Posted September 8, 2018 Posted September 8, 2018 Yep, that's progression table work which you cannot presently modify line by line. It's not really a matter of rebuilding the progression tree, just the PT_Druid entry of the progressiontables.gamedatabundle. Copy that entry into a new file and make your adjustments within the entry. It's not as much work as it seems, and the only real downside is the lack of compatibility with other mods that also change the PT_Druid entry. My PoE2 Mods: The Class Project | Thrown Weaponry Kits | Informative Proficiency Descriptions
Harpagornis Posted September 8, 2018 Author Posted September 8, 2018 (edited) I am doing something wrong... Even though i replaced the Ability-ID in the Progress Table for each PL its not working. I also renamed the Ability plus ID and saved it into a different file but still: No. What am i missing? Edited September 8, 2018 by Harpagornis PoE II: Druid Shifter: Evolution Mod
Armakoir Posted September 9, 2018 Posted September 9, 2018 Ok, let me try to understand more. You're trying to add abilities to the Druid that are only available during spiritshift. Correct? The first step is telling the game (via the PT_Druid) that these abilities belong to the Druid, and when they are unlocked. As before, make a copy of the PT_Druid entry. Then add an ability entry for one of your new abilities. This entry should have the same ID as the ability you've created. Then you need to modify this new ability in the progression table. If I'm understanding you correctly, I suggest the following: It should be AutoGrant. A condition should be having the appropriate spiritshift ability. The ability should be invisible in the ability tree. I'm on mobile ATM, but I can explain more later. And perhaps it's time for a progression tree tutorial. 1 My PoE2 Mods: The Class Project | Thrown Weaponry Kits | Informative Proficiency Descriptions
Harpagornis Posted September 9, 2018 Author Posted September 9, 2018 (edited) You are absolutely correct @Armakoir - thats my idea: Giving only the Spiritshift Forms new abilities at higher PL´s! As i have "nearly zero" modding experience (The Druid Mod is the very first one i ever tried) i am more or less using trial-and-error while trying to understand what other mods are doing. The Progression Table looks "easy" but i fear that i am missing some strings. I am also not sure what some of the entries are meaning at all. However: At the moment searching through the tables and trying to mod them is more fun (and more challenging) then playing the game itself. If you wanna help me to get through this: Would be great!! P.S. If you can give me a step-by-step example of a build-in-new-ability for a Spiritshift Form i would understand it for sure! Edited September 9, 2018 by Harpagornis PoE II: Druid Shifter: Evolution Mod
Armakoir Posted September 9, 2018 Posted September 9, 2018 Of course I'll help! First, I'm assuming you have a new ability built in another file (let's call it "new_abilities.gamedatabundle" for reference) with new unique GUID. Second, we'll call the copy of the entire Druid progression table "pt_druid.gamedatabundle". This copy of the very large PT_Druid entry should contain a lot of individual ability references. Third, copy ANY of the individual ability references within the progression table and place that copy at the very top of the of the AbilityUnlocks section. 1 My PoE2 Mods: The Class Project | Thrown Weaponry Kits | Informative Proficiency Descriptions
Armakoir Posted September 9, 2018 Posted September 9, 2018 (edited) Now, take the copied individual ability reference and "reset" it. It should look something like this: https://i.imgur.com/qeBtUEa.png ProTip: the game does not crash or reject a "zeroed" AddAbilityID Now take these steps: 1. Make sure the Druid ID is in "ClassID" 2. Copy the new ability ID from new_abilities.gamedatabundle and place it in "AddAbilityID" 3. Set "MinimumPowerLevel" to something low and easily testable (probably 1) 4. Change the "Note" to something you'd prefer 5. In your situation, maintain "IsMutuallyExclusiveUpgrade" as false There's more to do, but now is a good time for a quick test. Load the game with your mod and check the Druid Ability Tree. You should see the whole vanilla Druid tree as well as your new ability (but you should not have the ability). Edit: you could also now test the functionality of the ability despite the fact that it's not attach to spiritshifting. Edited September 9, 2018 by Armakoir 1 My PoE2 Mods: The Class Project | Thrown Weaponry Kits | Informative Proficiency Descriptions
Armakoir Posted September 9, 2018 Posted September 9, 2018 Now we'll start to attach the new ability to a spiritshift ability. What you have probably done is put the spiritshift ID into "RequiresAbilityID" and you've also used "AutoGrant", and when you load the mod you're automatically granted the ability despite the fact that you don't have the spiritshift, is that correct? The thing to know here is, as far as I can tell, "RequiresAbilityID" is mostly associated with the Ability Tree UI and it is not sufficient for conditioning abilities. To be honest, in your situation (which I think should include making the new ability invisible in the ability tree) you can probably leave the "RequiresAbilityID" zeroed. Instead, what you're going to do is create a "Conditional". Search for "HasAbility" in the PT and copy the conditional into your new ability reference. It should look like this: https://i.imgur.com/NSHMDZa.png Now find the appropriate spiritshift ability and place that ID into "Parameters". Also, put the "UnlockStyle" to "AutoGrant" (the G must be capitalized). So, now you can test again if you want. What should happen is this: if you create a new Druid and select the appropriate spiritshift, you should be automatically granted the new ability at PL 1. Now test a negative case and select a different spiritshift; you should NOT have been autogranted the ability. 1 My PoE2 Mods: The Class Project | Thrown Weaponry Kits | Informative Proficiency Descriptions
Armakoir Posted September 9, 2018 Posted September 9, 2018 (edited) Now, technically, you're done. You have added a new ability that requires a certain spiritshift. But there's really two more steps. First, you don't really need your new ability to be visible on the Druid ability tree because it is autogranted. (There are reasons to keep it visible, but it depends on what else your doing.) Plus, by making it invisible you learn something very useful about progression trees. Within the "VisibilityConditionals" you're going to create an impossible condition. The simplest way is to tell the game: if this is a Druid show the ability and if this is NOT a Druid show the ability. As for the code, I challenge you to figure it out. Now test just like you did before. The only difference is, you should never see the new ability in the Ability Tree. And with this, you're done with the progression tree. But you probably also want to condition the activation of your ability (for example, the ability can only be activated when the character is actually IN spiritshift). This requires putting a conditional into "ActivationPrerequisites" of the new ability entry in new_abilities.gamedatabundle. The advice here is: you'll be using a conditional associated with StatusEffect from this list: https://eternity.obsidian.net/game-data-formats/conditionals If you set everything up right (and if this is your intention), you should have the following example: If you select Wolf Spiritshift, you should see the harp_ability_wolfspiritshift ability on your ability bar but not on the ability tree. You should not be able to activate this ability unless that character is currently in wolf spiritshift. If your character chooses any other spiritshift during creation, the new ability should not be on the ability bar. Edit: After you've thoroughly tested the ability and everything seems good, go back to the progression table and adjust MinimumPowerLevel to whatever you intended it to be. Ask questions if you have them! Edited September 9, 2018 by Armakoir 1 My PoE2 Mods: The Class Project | Thrown Weaponry Kits | Informative Proficiency Descriptions
Harpagornis Posted September 9, 2018 Author Posted September 9, 2018 (edited) Big thanks @Armakoir! In the meanwhile my head is swirling and - even worse: Its not working. What i have done so far: 1. I created a new ability file where i copied the data from "Crippling Strike" 2. Renamed the Notes to Shifter Strike 3. Gave it a new unique Ability-ID by altering the last letters ("ID":"1fda55c8-8d5f-47b2-b25d-0ca82c0deddd") 4. Copied the Shifter ID ("568f1c26-1398-4e67-8b81-0f6a60e6cdde") into the ClassID 5. Left the rest of the ability like it was before (error???) After that: 1. Created an AbilityUnlock file like in your first image 2. Copied the ClassID 3. Copied the new AbilityID So at the moment i have these two files. I did NOT save the whole Shifter ProgressionTable cause so far there are no other changes. (Another error?) I thought that with the new ability and the unlock conditions it should now show up in the level-up-screen. Its not. Holy cow. A headache is really not good when doing stuff like this... However: Any help or insight is welcome. The first (new) step is always the hardest one. No? Edited September 9, 2018 by Harpagornis PoE II: Druid Shifter: Evolution Mod
Armakoir Posted September 9, 2018 Posted September 9, 2018 We'll get it working. Once you learn the basics of modding Deadfire it gets much easier and quicker. For new IDs I use this: https://www.guidgen.com/ Right now for progression table changes, you must copy the entire PT_Druid entry. This may be the issue, I'm not entirely sure. I've attached a copy from 2.1beta with an empty ability reference at the top. Start with this and go back through, and we'll narrow down the problem. pt_druid.zip My PoE2 Mods: The Class Project | Thrown Weaponry Kits | Informative Proficiency Descriptions
Harpagornis Posted September 9, 2018 Author Posted September 9, 2018 (edited) You are the Heroe of my day @Armakoir! Using your PT and copying in the ID´s suddenly the abilities are popping up. Great!! I am still not sure where the difference is - maybe i have missed some strings. One problem remains: I put in the Bear ID as conditional but the ability is still showing up for all forms (even human). It has to be to Bear ID from the ability table - yes? Edited September 9, 2018 by Harpagornis PoE II: Druid Shifter: Evolution Mod
Harpagornis Posted September 9, 2018 Author Posted September 9, 2018 (edited) Whatever i do the new abilities still are available in Human Form. Therefore i took a look at the original abilities from the Bear: Terrifying Roar. Surpisingly it does NOT has any "ActivationPrerequisites" and there is no entry in the PT. How does the game still knows how to put the roar only to the Spiritshift Bear? So many questions. I will have to take a break... Edited September 9, 2018 by Harpagornis PoE II: Druid Shifter: Evolution Mod
Armakoir Posted September 10, 2018 Posted September 10, 2018 Whatever i do the new abilities still are available in Human Form. Therefore i took a look at the original abilities from the Bear: Terrifying Roar. Surpisingly it does NOT has any "ActivationPrerequisites" and there is no entry in the PT. How does the game still knows how to put the roar only to the Spiritshift Bear? So many questions. I will have to take a break... Ok, I think I figured it out! And it's much easier than I originally thought. First, modding the progression table is not necessary! Second, you only have to modify a single line of code. In your new_abilities.gamedatabundle copy the Spiritshift_Bear_Shifter_SE_ChangeForm entry (67b5a416-ae58-4308-8222-2e1fe3b658c6). Then delete everything from that entry except "TempAbilitiesIDs". It should look like this: https://i.imgur.com/3iWxt3m.png Now add your new ability into those brackets and test! 1 My PoE2 Mods: The Class Project | Thrown Weaponry Kits | Informative Proficiency Descriptions
Harpagornis Posted September 10, 2018 Author Posted September 10, 2018 Yeah, i got the same idea after awakening in the last night. TempAbilitiesID. Hah! Thats what i already used but have completly forgotten about. Will test it soon! PoE II: Druid Shifter: Evolution Mod
Harpagornis Posted September 10, 2018 Author Posted September 10, 2018 (edited) Okay, i can easily get the new ability working with only the Bear BUT the ability is available regardless of the level. I tried to put in a "ActivationPrerequisite" in the new_ability file: "$type":"OEIFormats.FlowCharts.ConditionalCall, OEIFormats","Data":{"FullName":"Boolean IsLevel[Guid,Operator,Int32)","Parameters":["b1a8e901-0000-0000-0000-000000000000","GreaterThanOrEqualTo","4",],"Flags":"","UnrealCall":"","FunctionHash":0,"ParameterHash":0 So in theory the level should only available at CL 4 - if i not messed up the code. I also tried to put the "ActivationPrerequisite" into the TemporaryAbilities bracket but then its not showing up at all. Everything seemed so easy... Edited September 10, 2018 by Harpagornis PoE II: Druid Shifter: Evolution Mod
Armakoir Posted September 10, 2018 Posted September 10, 2018 "ActivationPrerequisite" is the way to go, for now. The new ability should be visible when in Bear form, but it should be grayed out and unusable until CL 4. That should be all you need. My PoE2 Mods: The Class Project | Thrown Weaponry Kits | Informative Proficiency Descriptions
Harpagornis Posted September 10, 2018 Author Posted September 10, 2018 Thats the problem @Armakoir: The ability is NOT grayed out so i can easily use it even at level 3. Hmmmm... there must be a way to get this work!! PoE II: Druid Shifter: Evolution Mod
Armakoir Posted September 10, 2018 Posted September 10, 2018 (edited) Try this InstanceID: 011111e9-0000-0000-0000-000000000000 Instead of b1a8e901-0000-0000-0000-000000000000 from: https://eternity.obsidian.net/game-data-formats/instanceids Edited September 10, 2018 by Armakoir My PoE2 Mods: The Class Project | Thrown Weaponry Kits | Informative Proficiency Descriptions
Harpagornis Posted September 10, 2018 Author Posted September 10, 2018 Holy cow... your InstanceID is not working @Armakoir... sorry. It looks like "TemporaryAbilities" somehow ignores any Prerequisites. If this is not going to work i will have to drop back to the PT... PoE II: Druid Shifter: Evolution Mod
Armakoir Posted September 10, 2018 Posted September 10, 2018 Ah, the activation prereq should be on the new ability. My PoE2 Mods: The Class Project | Thrown Weaponry Kits | Informative Proficiency Descriptions
Harpagornis Posted September 10, 2018 Author Posted September 10, 2018 What do you mean @Armakoir? I put the "ActivationPrerequisite" into the new_ability.gamedatabundle where the now called "Shifter Strike" is sitting. Not working... PoE II: Druid Shifter: Evolution Mod
Harpagornis Posted September 10, 2018 Author Posted September 10, 2018 The "ApplicationPrerequisite" also changes nothing. Same for other InstanceID´s. I even rebuild the whole ability to make sure i have not missed any string thanks to constant copy&delete. What are we missing here? Any way to get a Prerequisite into the "TemporaryAbilities"? Back to the PT? PoE II: Druid Shifter: Evolution Mod
Harpagornis Posted September 10, 2018 Author Posted September 10, 2018 (edited) This is madness. I think that i understand the general how-to and tried again playing with the PT: Modified the PT so the ability unlocks at the specific PL. Works. Then i changed the new_ability and set up "ActivationPrerequisite" using "Booelan Has StatusEffect" putting in the players InstanceID and the Bears ChangeForm ID so the ability should now only show up when shifted to Bear. Right? The result: The new ability is STILL available even in human form. This cannot be... Edited September 10, 2018 by Harpagornis PoE II: Druid Shifter: Evolution Mod
Harpagornis Posted September 10, 2018 Author Posted September 10, 2018 I have another idea that might work: Use the PT and replace the Spiritshift_Bear (RemoveAbilityID) with something like Spiritshift_Elder_Bear who got a new AbilityID (and a new_bear file). The linked and reworkd ChangeformID will then tell the Elder_Bear to use all the TemporaryAbilities we want. Can this work? Yes it can! Hopefully... PoE II: Druid Shifter: Evolution Mod
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now