Jump to content

The "Feature Requests to Obsidian for Modding Deadfire" Thread


Recommended Posts

Ok, this will end with another (2) request(s) and the "unsellable" flag can be put at the very end of the request list. I didn't try the "IsQuestItem" because the documentation writes about "can't be interacted with", so I expected the item to be put in the quest tab and cannot be equipped, I was wrong.

Yeah, that comment was out of date, I've updated it for v2.1.0.

 

I requested this flag because I was using a condition in a regeneration item loot list for a storage vendor. The check to repopulate the list with my item was on its itemcount, but can be easily bypassed selling the item to a third person, buy, and re-buy.

A better way to achieve this might be to create a global variable and set it when the player has acquired the item (via a SetGlobalValue script on a DataScriptEventComponent attached to the item's data). You can then check the variable to know if the player has got the item yet, no matter what they did with it. You'll be able to add new global variables in v2.1.0.

 

Actually in 2.1 we should be able to do sets like Diablo / WOW - here's my reasoning...

 

Something myself an @Kilay looked into was globalvariables, I ended up hacking the main bundle as a proof of concept got his pistols - he changed the trigger as we don't wanna hack exported.

 

These @BMac informs us as coming in 2.1.0

 

This will allow, I think, some scripted to conditionally add a set bonus

I think it would be tricky to do this with global variables since they are, well, global.  So you'll have trouble distinguishing whether one character or different characters are wearing the set pieces.

 

The way we'd probably do it internally would be to have each set piece apply a hidden marker status effect, each with a unique custom keyword MySet_HelmMySet_Armor, etc.  Have one of the items grant a custom passive ability that applies the set bonus, with ActivationPrerequisites checking that the character has all the keywords (HasStatusEffectWithKeyword checking Owner).

  • Like 3
Link to comment
Share on other sites

I think it would be tricky to do this with global variables since they are, well, global.  So you'll have trouble distinguishing whether one character or different characters are wearing the set pieces.

 

The way we'd probably do it internally would be to have each set piece apply a hidden marker status effect, each with a unique custom keyword MySet_HelmMySet_Armor, etc.  Have one of the items grant a custom passive ability that applies the set bonus, with ActivationPrerequisites checking that the character has all the keywords (HasStatusEffectWithKeyword checking Owner).

 I was really looking for that to be able to achieve a user request. Thnks :)

Link to comment
Share on other sites

It looks like the weapon proficiency icons in character creation cannot be modified or replaced. I have tried atlases (which correctly displays the actual modal ability for my equipped weapon) as well as various filepaths to individual 100x100 icons. Nothing seems to work. Can this be adjusted as it was for profile pictures? Best.

 

https://i.imgur.com/gmmpGCa.png

Edited by Armakoir
Link to comment
Share on other sites

During character creation, can Culture and Background selection occur BEFORE class selection? This would allow us to utilize IsBackground and IsCulture conditionals within PTs and see those changes in "real time" as opposed to during Level Up.

 

 

How difficult is it to add ProgressionTable conditionals? For example, is ProgressionTableIsDisposition a possibility?

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

 

Actually in 2.1 we should be able to do sets like Diablo / WOW - here's my reasoning...

 

Something myself an @Kilay looked into was globalvariables, I ended up hacking the main bundle as a proof of concept got his pistols - he changed the trigger as we don't wanna hack exported.

 

These @BMac informs us as coming in 2.1.0

 

This will allow, I think, some scripted to conditionally add a set bonus

I think it would be tricky to do this with global variables since they are, well, global.  So you'll have trouble distinguishing whether one character or different characters are wearing the set pieces.

 

The way we'd probably do it internally would be to have each set piece apply a hidden marker status effect, each with a unique custom keyword MySet_HelmMySet_Armor, etc.  Have one of the items grant a custom passive ability that applies the set bonus, with ActivationPrerequisites checking that the character has all the keywords (HasStatusEffectWithKeyword checking Owner).

 

Actually as @Kilay mentions Sets is not the only reason we want globals

 

I was merely theorising on the use requested

 

We also need it for triggers in Conditionals like his Pistols and other things we get asked to write

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

It looks like the weapon proficiency icons in character creation cannot be modified or replaced. I have tried atlases (which correctly displays the actual modal ability for my equipped weapon) as well as various filepaths to individual 100x100 icons. Nothing seems to work. Can this be adjusted as it was for profile pictures? Best.

 

https://i.imgur.com/gmmpGCa.png

It looks like there was a bug with how the character creator was fetching the sprite. That'll be fixed for v2.1.0.

 

During character creation, can Culture and Background selection occur BEFORE class selection? This would allow us to utilize IsBackground and IsCulture conditionals within PTs and see those changes in "real time" as opposed to during Level Up.

I don't think I'll be able to justify rearranging the flow of character creation for the sake of mods.  It's a lot of work and I believe it was laid out that way for user experience reasons.

 

How difficult is it to add ProgressionTable conditionals? For example, is ProgressionTableIsDisposition a possibility?

That would be reasonably straightforward.

  • Like 1
Link to comment
Share on other sites

Q1: Would it be possible to allow us to separate tooltip entries from cyclopedia entries?

In other words: I'd like to be able to tell the game to show a tooltip that is different from it's cyclopedia entry for example.

 

Q2: Would it be possible to set a max amount of characters that a tooltip can display? If a tooltip is long enough it wont fit on the screen and instead get cropped at the screens edge.

 

This image will hopefully demonstrate both inquiries and the issues that arises with the currently implemented system of how the game displays tooltips:

 

IQQCZSh.jpg

 

Edit: Thank you @BMac for answering the question I posted the previous page, I kind of figured that the UI would be hard to "open up" in a way that's as easy to mod as the .stringtable/.gamedatabundle-files are. Never hurts to ask though ;)

Edited by Spherical
  • Like 1

Editor and Designer
Enhanced User Interface
Nexus Mods | Steam Workshop

Link to comment
Share on other sites

Q1: Would it be possible to allow us to separate tooltip entries from cyclopedia entries?

In other words: I'd like to be able to tell the game to show a tooltip that is different from it's cyclopedia entry for example.

 

Q2: Would it be possible to set a max amount of characters that a tooltip can display? If a tooltip is long enough it wont fit on the screen and instead get cropped at the screens edge.

That's pretty cool. Both of those should be pretty straightforward (though they probably won't be a high priority).
  • Like 1
Link to comment
Share on other sites

Something @spherikal didn't mention is that we have automated the gamedatabundle translation (and stringtable)

Here's a sample

 

{
    "GameDataObjects": [
        {
            "$type": "Game.GameData.GlossaryEntryGameData, Assembly-CSharp",
            "DebugName": "GlossaryEntry_Abydon",
            "ID": "6cfc5d32-82ef-4297-9446-04cfcaa6df29",
            "Components": [
                {
                    "$type": "Game.GameData.GlossaryEntryComponent, Assembly-CSharp",
                    "TermCyclopedia": 322386000,
                    "TermGui": -1,
                    "DescriptionCyclopedia": 322386001,
                    "DescriptionGui": -1,
                    "CategoryID": "7294de11-2ea6-496a-b99e-be2458de150a",
                    "ShowInJournal": "false",
                    "CaseSensitive": "false",
                    "AutomaticallyAddLinks": "true",
                    "LinkedEntriesIDs": [],
                    "ParentObjectID": "00000000-0000-0000-0000-000000000000"
                }
            ]
        },
        {
            "$type": "Game.GameData.GlossaryEntryGameData, Assembly-CSharp",
            "DebugName": "GlossaryEntry_Abydon_CyclopediaEntry",
            "ID": "b7c58117-5ed2-41e4-afbf-6c94f1540369",
            "Components": [
                {
                    "$type": "Game.GameData.GlossaryEntryComponent, Assembly-CSharp",
                    "TermCyclopedia": 322386002,
                    "TermGui": -1,
                    "DescriptionCyclopedia": 322386003,
                    "DescriptionGui": -1,
                    "CategoryID": "7294de11-2ea6-496a-b99e-be2458de150a",
                    "ShowInJournal": "true",
                    "CaseSensitive": "false",
                    "AutomaticallyAddLinks": "false",
                    "LinkedEntriesIDs": [],
                    "ParentObjectID": "00000000-0000-0000-0000-000000000000"
                }
            ]
        },

Repeat this and he's got something he can use in Enhanced User Interface

 

I'm going to clarify this here as we were looking at an extra entry to the exported

"DebugName": "GlossaryEntry_Abydon_TooltipEntry"

This is a variant of GlossaryEntry_Abydon_CyclopediaEntry with different bools

 

Oh - on the fly new GUIDs for new debugs

This is going on our work this week - I'm just automating the typing for him :)

Edited by peardox

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

@BMac

 

The dis-association between exported and in-game GUIDs is the root cause of all the MAJOR modding we encounter

 

What we REALLY need is a translation table - you can code this as a "String FindInGame(String GUID)"

That's a nice short one

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

Is it possible to have a new WeaponType of value "ThrowingWeapon"? It's the only category missing in the list

(Or also a more generic one, it's possible to sort out by keywords so, also a generic one can do the trick).

 

At the moment the proficiency is bound to the weapon type and a custom one cannot be "properly" added.

You can still create your own proficiency but only on the weapons that are listed, but can be counter intuitive create a weapon of a type not supposed to be (ex: throwing knife but listed as stiletto).

 

Related to this, is possible to have a mouse scroll feature in the proficiency page of the character? Or this can happen:

o1r4s7P.jpg

 

 Thank you for your attention :)

Edited by mammasaura
  • Like 1

CzSyX91.jpg

Link to comment
Share on other sites

I have a Similar issue with colors in CC  (but i can solve that using appearance editor on Characer Sheet) and with a scrolling page  we could open more possibilities also for Backgrounds Unlocked mod
 
So +1 for @mammasaura

Pillars_of_Eternity_II_Deadfire_Screensh
Pillars_of_Eternity_II_Deadfire_Screensh

Edited by kilay
Link to comment
Share on other sites

Along the lines of weapon proficiencies, is it possible to change "ProficientAbilityID" in the ItemComponent of WeaponGameData so that it supports multiple GUIDs? This appears to be THE limiting factor for expanding or significantly altering weapon proficiencies.

 

And, as mammasaura said, the ability to scroll.

Link to comment
Share on other sites

Drag and drop mod in Mod manager to rearrange the order .
Atm i have more than 50 mods installed, when i add a new one rearrange the whole bunch take time

Link to comment
Share on other sites

Is it possible to have a new WeaponType of value "ThrowingWeapon"? It's the only category missing in the list

(Or also a more generic one, it's possible to sort out by keywords so, also a generic one can do the trick).

 

At the moment the proficiency is bound to the weapon type and a custom one cannot be "properly" added.

You can still create your own proficiency but only on the weapons that are listed, but can be counter intuitive create a weapon of a type not supposed to be (ex: throwing knife but listed as stiletto).

 

Have you tried the WeaponTypeComponent from WeaponTypeGameData?

Link to comment
Share on other sites

 

Is it possible to have a new WeaponType of value "ThrowingWeapon"? It's the only category missing in the list

(Or also a more generic one, it's possible to sort out by keywords so, also a generic one can do the trick).

 

At the moment the proficiency is bound to the weapon type and a custom one cannot be "properly" added.

You can still create your own proficiency but only on the weapons that are listed, but can be counter intuitive create a weapon of a type not supposed to be (ex: throwing knife but listed as stiletto).

 

Have you tried the WeaponTypeComponent from WeaponTypeGameData?

 

Nevermind. I tried creating a new WeaponType but it broke the item.

Edited by Armakoir
Link to comment
Share on other sites

This links to a similar issue - think it was @kilay had

 

Please bear in mind I'm going on what I KNOW, no guesses or theorising in this one

 

@Kilay tried creating a new subclass - it completely screwed up

 

As I remember @BMac says he's gonna look into this

 

This is what's happening here - it's exactly the same if you look at the game from a REALLY high level (a GUID does something)

 

There are exceptions to this - SOME things are moddable (I'll give you an example in a moment)

 

The BIG hassle is that there are around 60k GUIDs in the game but only (numbers Simon...) about 12k in exported (think that's right)

 

What OBS expose are called ALIASES to the in-game GUIDs

 

So - any GUID you get ain't actually in the game - it's translated to an in-game GUID

 

@BMac - think I'm right on this one

This makes it NP-Hard to link them up (maths) - ignore this comment if you don't understand what np-hard is

 

Going back above

 

@BMac has told me how to create a complete new translation - I'm defo gonna have to try this out

 

Anyone fancy Klingon as a language option?

 

I can automate translation if Google Translate speaks Klingon :)

 

So, there are supported things and unsupported things

 

I CAN (Google willing) create a Klingon pack but ATM I can't subclass or create a new WeaponType

 

2.1.0 hopefully gives us more options

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

@peardox a new subrace not a new subclass.
subclasses can be added w/o issues

Edited by kilay
Link to comment
Share on other sites

Can we hack savegames again ASAP @BMac

 

This is REALLY important

 

We WERE able to unzip the savegames then stick them back together (BluTack included)

 

As we have a SEVERE caching issue that breaks MODs we need to explore what's happening

 

In v 1.2.2 I could take a save - extract it, rebuilt it and fix the broken version

 

I imagine someone noticed my comments on this subject as I can n longer to this

 

We NEED this ability while you have broken saves

 

ONE of us will prob be able to fix the cache issue (most likely me)

 

We also wanna do clash fixing, that's pretty easy really

OK Fair warning has been applied

 

I'm gonna move the domain to https://perspak.com early Feb but will keep all content

 

There are reasons behind this move which basically boil down to unifying my release schedule

 

My friends are welcome to play (I'll set you up your own areas if you desire them)

 

Please note that this process is messy so may take a few weeks 

Link to comment
Share on other sites

The dis-association between exported and in-game GUIDs is the root cause of all the MAJOR modding we encounter

 

What we REALLY need is a translation table - you can code this as a "String FindInGame(String GUID)"

That's a nice short one

I think I already described this somewhere, but the Unity data GUIDs are not straight aliases of game data guids. Unity objects have their own GUIDs (described here) that represent that object in-game.  Each Unity object may make use of a number of different game data objects (a CharacterStatsGameData, a MoverGameData, etc).  A lot of these game datas are used by many characters or creatures in the game, so the relationship between the Instance and the Game Data isn't one-to-one.

 

If you could read the Unity data, it wouldn't be difficult to collect the mappings, but I know it's really not set up in a way that makes that reasonable.

 

We could potentially provide a better way to dump these GUIDs along the lines of the PrintInstance console command.

 

Is it possible to have a new WeaponType of value "ThrowingWeapon"? It's the only category missing in the list

(Or also a more generic one, it's possible to sort out by keywords so, also a generic one can do the trick).

 

At the moment the proficiency is bound to the weapon type and a custom one cannot be "properly" added.

You can still create your own proficiency but only on the weapons that are listed, but can be counter intuitive create a weapon of a type not supposed to be (ex: throwing knife but listed as stiletto).

This is another place where I'd like to just remove the WeaponType enumeration and let you create arbitrary WeaponTypeGameData objects and just use those instead (like we did with Classes).  That's doable but it takes some work to convert over all the old data, and I'll also have to worry about compatibility with old mods.

 

Related to this, is possible to have a mouse scroll feature in the proficiency page of the character? Or this can happen:

I have a Similar issue with colors in CC  (but i can solve that using appearance editor on Characer Sheet) and with a scrolling page  we could open more possibilities also for Backgrounds Unlocked mod

 

So +1 for @mammasaura

Yep, I'll note that character creation needs scrollable panels.

 

Along the lines of weapon proficiencies, is it possible to change "ProficientAbilityID" in the ItemComponent of WeaponGameData so that it supports multiple GUIDs? This appears to be THE limiting factor for expanding or significantly altering weapon proficiencies.

 

And, as mammasaura said, the ability to scroll.

That's probably doable.  It'll be tricky to do it in a way that doesn't break compatibility with mods that are already changing that value, but doable.

 

Drag and drop mod in Mod manager to rearrange the order .

Atm i have more than 50 mods installed, when i add a new one rearrange the whole bunch take time

Noted - that's definitely not a use case I anticipated, haha.  If you shut down the game you can manipulate the order in the file "%userprofile%\AppData\LocalLow\Obsidian Entertainment\Pillars of Eternity II\modconfig.json".

 

Can we hack savegames again ASAP @BMac

 

This is REALLY important

 

We WERE able to unzip the savegames then stick them back together (BluTack included)

I'm not aware of anything that's changed that would prevent you from manipulating save games. What kind of problem are you having?

  • Like 3
Link to comment
Share on other sites

 

Drag and drop mod in Mod manager to rearrange the order .

Atm i have more than 50 mods installed, when i add a new one rearrange the whole bunch take time

Noted - that's definitely not a use case I anticipated, haha.  If you shut down the game you can manipulate the order in the file "%userprofile%\AppData\LocalLow\Obsidian Entertainment\Pillars of Eternity II\modconfig.json".

 

 

Thnks for all your answer , about modconfig.json i was already aware of that file, one of our group member talked about develop a sort of external mod manager to rearrange that order in a proper way. Related to refresh button issue this tool might solve the trouble.

But if a sort of mod launcher could be added by OBS for sure this will be more comfortable for all :)

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

And about the last request also a sort of warning about required mods to load the savegame w/o have issue could be really helpful for any user.

Link to comment
Share on other sites

Don't know if already requested but is it possible to make the conversations (or just the node's links) being partially overridden by mods like was done for the GameDataObjects in the patch 1.2?

 

But is it possible to create new conversations? Keep having null reference on a new custom convo. Should be an awesome feature :)

Edited by mammasaura

CzSyX91.jpg

Link to comment
Share on other sites

And about the last request also a sort of warning about required mods to load the savegame w/o have issue could be really helpful for any user.

Yeah, that would be pretty handy, though it might be tricky to detect which mods are adding content that actually appears in the save.

 

Don't know if already requested but is it possible to make the conversations (or just the node's links) being partially overridden by mods like was done for the GameDataObjects in the patch 1.2?

 

But is it possible to create new conversations? Keep having null reference on a new custom convo. Should be an awesome feature :)

Conversations don't currently support partial overrides but that would be a very nice thing to add.

 

It should be possible to add new conversations, though I haven't tested it extensively.  I do know that you need to add the conversation to a manifest file, in addition to adding the conversationbundle.  The file would be "design/manifests/conversations.manifest" in your mod folder.  You can refer to the same file in the "exported" data for the format.

  • Like 2
Link to comment
Share on other sites

Conversations don't currently support partial overrides but that would be a very nice thing to add.

 

It should be possible to add new conversations, though I haven't tested it extensively.  I do know that you need to add the conversation to a manifest file, in addition to adding the conversationbundle.  The file would be "design/manifests/conversations.manifest" in your mod folder.  You can refer to the same file in the "exported" data for the format.

 

 

I missed to add the conversation to the manifest file, now it works as expected.

 

The conversation.manifest can be placed anywhere and can just contain the entry for the custom conversation.

 

Thank you BMac, speechless for all the things added with the patch 2.1 from community feedback and the constant monitoring in this subforum.

Edited by mammasaura
  • Like 2

CzSyX91.jpg

Link to comment
Share on other sites

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...