Jump to content

Apotheosis - Mod Editor for Deadfire


Recommended Posts

Not currently sadly

I thought before about whether to load other icon sheets besides Item & SpellAbility, but there's a bit of manual work to extract the coordinates for each sheet and I figured it was low priority. Also some concerns about memory usage iirc.

Which icon sets are you interested in?

  • Like 1
Link to comment
Share on other sites

I'm currently considering to use several icons from similar games, i.e., Pathfinder series, size modification is needed since the size of the games are not fit with PoE II icons' size.

Is it illegal by the way?... If this is illegal, I might need to create some icon images from chatGPT or something like that.

  • Hmmm 1
Link to comment
Share on other sites

are there any plans to include editing ai stuff like AIDecisionTrees, i mainly ask cause it'd make looking into summon ai easier but if theres no hope for fixing summon ai i guess theres no reason to bother

 

i.e im trying to make the summons with abilities they cant use automatically(basically all except substantial phantom) actually use them by themselves when their AI is set to... well, AI, ive tried giving them a custom DefaultCustomAi and giving them the DefaultDecisionTree associated with their class/creature type but nothing seems to work

Edited by TKDancer
  • Like 1
Link to comment
Share on other sites

On 6/30/2023 at 9:15 AM, Hoo said:

I'm currently considering to use several icons from similar games, i.e., Pathfinder series, size modification is needed since the size of the games are not fit with PoE II icons' size.

I might have misunderstood your last post, did you want to import new item/spell icons with Apotheosis?

If you add new icons by creating the atlas .png & .txt manually, Apotheosis will load those icons correctly and you'll be able to assign them to abilities/items. But there's no way (at the moment) to import new ones through Apotheosis, but it's a feature I've been thinking about adding: https://gitlab.com/noqn/apotheosis/-/issues/6

Quote

Is it illegal by the way?... If this is illegal, I might need to create some icon images from chatGPT or something like that.

Try to find some Creative Commons-licensed icons sets, that would be fair game. You could also check these out this icon resource: https://www.nexusmods.com/pillarsofeternity2/mods/339

On 7/5/2023 at 5:33 PM, TKDancer said:

are there any plans to include editing ai stuff like AIDecisionTrees, i mainly ask cause it'd make looking into summon ai easier but if theres no hope for fixing summon ai i guess theres no reason to bother

This too is something I've put on a to-do list 😄  https://gitlab.com/noqn/apotheosis/-/issues/5

I've got just a week left until vacation and work is chill atm so I might get started on these features

  • Thanks 2
Link to comment
Share on other sites

@Noqn, Is it possible to show the whole list of EquippableComponent > AppearancePiece > ModelVisualDataPath, like you've done at VisualEffects > VisualEffect that shows the entire list of prefab related spells/ablilities effects?

Thanks in advance!

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

10 hours ago, Hoo said:

@Noqn, Is it possible to show the whole list of EquippableComponent > AppearancePiece > ModelVisualDataPath, like you've done at VisualEffects > VisualEffect that shows the entire list of prefab related spells/ablilities effects?

Thanks in advance!

Great suggestion, I'll add this as well!

I think I'll also make it so that `AppearancePiece` can't be expanded, and when you click it you set `ModelVisualDataPath` directly instead.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

New release with AppearancePiece popup and a few fixes and features!

Be aware that AppearancePiece values are also used elsewhere for weapon scabbards, as well as character heads, hair and beards.
So those will also be available in the popup when you click EquippableComponent -> AppearancePiece.

@Hoo Let me know if you think the menu gets to crowded or filled with irrelevant stuff, I can break them up into separate categories if you'd like :)

_____

2023-07-17

  • Added AppearancePiece "prefab path" selector popup.
  • AppearancePiece's ModelVisualDataPath and SummonPath's Filename children are now hidden.
    • Clicking AppearancePiece/SummonPath will bring up the prefab selector instead.
  • AppearancePiece and SummonPath can be used directly in string queries, e.g. #Equippable.AppearancePiece &= "great_sword_naga"
  • Pasting objects no longer populates child rows that are supposed to be hidden.
  • Added new context menu options when right-clicking an Expression row:
    • Copy Expression text to clipboard
    • Clear Expression

2023-07-07

  • Expression editor can now parse GameData DebugNames containing spaces if the user types them out "surrounded with quotation marks".

 

 

 

  • Like 2
Link to comment
Share on other sites

I'm pretty much finished with AIDecisionTrees now!

The expressions that are used for defining target prioritization use a different set of methods from the standard Scripts, though I've made sure to cover them all. There's no documentation on them, but the auto-completion feature should  be of help enough

One issue, as you can see in the videos, is that most of the trees have no DebugName assigned to them...

gAh8W5F.png

I'm thinking of assigning DebugNames to the trees before exporting to `apotheosis_export` based on this order or priority:

  1. AiDecisionTrees whose CharacterClassID is set to a specific class will be named after that class.
  2. AiDecisionTrees which a CharacterProgressionTable points to will get that PT's name.
  3. If a CharacterProgressionTable contains all abilities of the AiDecisionTree, that table's name will be used.
  4. Next, the name of the CharacterProgressionTable with MOST matching abilities with the AiDecisionTree will be used.
  5. Lastly, the CharacterProgressionTable with ANY matching ability will be used.

Afterwards with this implementation it looks like this, which from what I can tell is accurate enough:

5e8DcU5.png

Sounds good? Idk if I should name the remaining trees something?

 

I've also updated the export dialog so that it will let you know if you have partially exported data, thought it would be a good idea to clarify since it will show up for everyone after the update now that AI decision trees have to be exported.

image.png.1dc418de324bc5f18c3083fa606ddeab.png

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Hi! I love that you have created this tool and I am trying to get it to install.

How long does the initial asset bundle extraction usually take? Ive left it running for a solid 15-20 mins now and it still hasnt shown me any content that its exporting, and I dont see a n apotheosis_exported directory in the PoE2 directory at all.

Any pointers would be great!

  • Like 1
Link to comment
Share on other sites

Hi, thank you for letting me know and I'm sorry for the issues, I'll look into this!

21 hours ago, lynkfox said:

How long does the initial asset bundle extraction usually take? Ive left it running for a solid 15-20 mins now and it still hasnt shown me any content that its exporting, and I dont see a n apotheosis_exported directory in the PoE2 directory at all.

It really shouldn't hang like this at all. My ~15 year old laptop exports everything in maybe a couple minutes? And that's an extreme case.

A few questions:

  • Which DLCs do you have installed?
  • Have you edited any of the .gamedatabundle files in the exported folders prior?
  • Are you on Windows or Linux?
Edited by Noqn
Link to comment
Share on other sites

  • Have you edited any of the .gamedatabundle files in the exported folders prior?

it must have been this. I was trying to figure out modding and doing it with vscode - i think my computer restarted at one point with the files opened and formatted and they probably "saved" that way - i saw some things go wrong in game and eventually did a clean install. And now it worked perfectly.

Thanks!

  • Like 1
Link to comment
Share on other sites

No, I firmly believe the current implementation is the best way. Opening up for loading invalid data can lead to a bunch of unexpected behavior.

If some invalid edits have been made, they should be manually fixed first.
The warning & json highlighting should make it easy, in this case you want to replace the faulty line with this:

"ClassID": "00000000-0000-0000-0000-000000000000",

To find exactly what has gone wrong, you can look around the official gamedata documentation, in this case you're looking for StatusEffectDynamicValueAdjusment which is located in the Structures page: https://eternity.obsidian.net/game-data-formats/structures#statuseffectdynamicvalueadjustment

Edited by Noqn
Link to comment
Share on other sites

  • 2 weeks later...

There is still something weird for me when creating/editing quest objective nodes: I think the default 2 digits ID (e.g. 72) for the quest step title entry and the 5 digits ID (e.g. 10072) for the quest step description are somewhat swapped in Apotheosis , the one created is e.g. 72 but then the field editor seems to look for the 10072 quest step description field instead and an empty field is returned. So far I have added/tweaked the missing e.g. 10072 description field with a text editor but it would be nice to have it fixed in Apotheosis
e.g. like this
        <Entry>
            <ID>72</ID>
            <DefaultText>Complete the full Slayer path.</DefaultText>
            <FemaleText />
        </Entry>
        <Entry>
            <ID>10072</ID>
            <DefaultText>Find all artifacts and win all fights for the Slayer path in Kazuwari Arena.</DefaultText>
            <FemaleText />
        </Entry>


{EDIT] another thing that is not a bug, but could be nice to have: I noticed that the game seems to sort the in game quest steps list by string ids, so a way to automatically recalculate the ids from Apotheosis so they keep the sorting as displayed in the quest tree editor would be ace, at the moment you have to painstakingly renumber them with a text editor in the quest and strings tables to sort them

 

Edited by abot
  • Like 1
Link to comment
Share on other sites

2 hours ago, abot said:

There is still something weird for me when creating/editing quest objective nodes

Thanks for finding! I'll take a look at this (and make the finishing touches on AI Decion Trees which I've been postponing for a long time now...) and see if I can release a fix tomorrow 

Edited by Noqn
Link to comment
Share on other sites

New update!
Should fix the bug reported by @abot

2023-09-24

  • Added support for AIDecision trees!
  • Fixed Quest StringTable entries being written with incorrect IDs.
  • The save button is now properly disabled after unloading unsaved changes.

 

Here's a video I posted a bit further up on this page showcasing AIDecisionTree modding

Edited by Noqn
  • Like 1
  • Thanks 2
Link to comment
Share on other sites

On 9/17/2023 at 6:27 PM, abot said:

{EDIT] another thing that is not a bug, but could be nice to have: I noticed that the game seems to sort the in game quest steps list by string ids, so a way to automatically recalculate the ids from Apotheosis so they keep the sorting as displayed in the quest tree editor would be ace, at the moment you have to painstakingly renumber them with a text editor in the quest and strings tables to sort them

Yeah this would be a great feature to add, I'll work on this next!

  • Like 1
Link to comment
Share on other sites

Hello, I have been messing around with InclusionConditions on Status Effects tonight and can reproduce a crash pretty easily using the auto-complete function. The editor also seems to prevent me from adding multiple InclusionConditions if I avoid using the auto-complete. Either line will work if it is the only line present, but not together, though I am unsure if that is intended. I don't understand github, sorry if I should have reported there. Also, if I can provide a log or something please let me know.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

16 hours ago, White Grey said:

Hello, I have been messing around with InclusionConditions on Status Effects tonight and can reproduce a crash pretty easily using the auto-complete function. Also, if I can provide a log or something please let me know.

Uh oh. First of all, a thousand thanks for reporting! I should definitely implement crash log functionality, but for now could you describe how to reproduce the crash?

16 hours ago, White Grey said:

he editor also seems to prevent me from adding multiple InclusionConditions if I avoid using the auto-complete. Either line will work if it is the only line present, but not together, though I am unsure if that is intended.

Are you separating each conditional with and or or, like this?

HasAbility(Player, Fireball)
or Always(True)

If you are already doing this, could you post an example of script text you've entered that is not validating?

Btw, it's not the best docummentation, but I've written a bit about scripts/conditionals syntax here: https://gitlab.com/noqn/apotheosis/-/wikis/General-Instructions/Expressions

A feature I've been aware would be useful, would be some hinting (like green/yellow underlines) that indicates exactly what part of the script syntax can't be parsed correctly. (Currently it only warns about invalid characters and unfinished strings iirc.)

  • Like 1
Link to comment
Share on other sites

3 hours ago, Noqn said:

Uh oh. First of all, a thousand thanks for reporting! I should definitely implement crash log functionality, but for now could you describe how to reproduce the crash?

Are you separating each conditional with and or or, like this?

HasAbility(Player, Fireball)
or Always(True)

If you are already doing this, could you post an example of script text you've entered that is not validating?

Btw, it's not the best docummentation, but I've written a bit about scripts/conditionals syntax here: https://gitlab.com/noqn/apotheosis/-/wikis/General-Instructions/Expressions

A feature I've been aware would be useful, would be some hinting (like green/yellow underlines) that indicates exactly what part of the script syntax can't be parsed correctly. (Currently it only warns about invalid characters and unfinished strings iirc.)

Derp, no, I was capitalizing the logic gates. I was staring at it thinking "I did this before..." I'm going to excuse myself by saying it was late. It works just fine with the corrected logic. Thank you very much for the link, it will definitely help! I think I've also figured out how to read the official documentation somewhat.

As for the crash, I seems to be something of a non-issue as well. It seems to be because I am using some dependencies. I was able to reproduce it the same way by just opening BPM: Buffs directly.

1. Open the mod I am working on, select my two dependencies.

2. Open up any Status Effect or Ability or anything with conditional scripting.

3. Use the HasStatusEffect(x,y) or whatever other script using the auto-complete function to pull up the whole massive list of potential Status Effects, crashing the program.

See the attachment for a snapshot moments before a crash. As soon as I hit Ctrl+Space it vanishes. I guess not so much an issue as me just pushing things too far late at night. 

1234.PNG

  • Like 2
Link to comment
Share on other sites

14 hours ago, White Grey said:

Derp, no, I was capitalizing the logic gates.

Oh, this is probably something I should support.

14 hours ago, White Grey said:

As for the crash, I seems to be something of a non-issue as well. It seems to be because I am using some dependencies. I was able to reproduce it the same way by just opening BPM: Buffs directly.

Ok I looked into it, the crash happens because BPM Buffs adds a statuseffect named Perishing_Strike_SE_ApplyOnEvent without overriding the old SE also named that, and I hadn't accounted for duplicate names (which I should've).

Both of these issues were quick to fix, in other words a new release is up now 🥳

2023-10-02

  • Fix CTD when using auto-completion in the expression editor when there are more than two GDOs sharing the same name.
  • Support capitalized keywords in expression editor (AND, OR, NOT, THEN, IF, TRUE, FALSE).

image.png

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...