Jump to content

The "Feature Requests to Obsidian for Modding Deadfire" Thread


Recommended Posts

In the recent devstream devoted to modding, Aarik D mentioned that he or we should start a thread on the modding forum in regards to feature requests for the game.

 

So I figured why not start it? :)

 

Now they did stress in the devstream that some things are easier to do than others, and that they might not be able to get to things for a while, if ever in some cases.  

 

But I know there are things we would like them to consider (and, yes, they are well aware of our desire for custom vendors :lol:) that we can't do yet.  Thus this thread where we can have a dedicated thread for such requests.

 

If Aarik D or BMac (or someone else on the Dev Team) want some sort of formalized process for our suggestions, please let me know and I'll edit it into this OP. :)

 

---

 

NOTE:::: This is a separate thread from peardox's Mod Request thread, as he's dealing with requests for things that can already be done by modders.  Consider this the supplementary thread for Obsidian to look over. ;)

Edited by Zap Gun For Hire
  • Like 1
Link to comment
Share on other sites

I'll start out with one I've been thinking about for the last couple of days which might not be that hard to implement as it is already somewhat in the game, and why it would be nice for modders to have.

 

Feature Request:

Being able to unlock the Pet Slot for a party member via a script call.

 

Explanation of Request:

Right now it is possible to unlock the pet slot of all party members via the console command cheat UnlockPets.  This is something of a sledgehammer approach, and one that requires one to set the cheat flag as well (unless one uses Unity Console to reset the cheat status of course).  And it doesn't have any sort of modding potential at the moment.

 

I was thinking it might be nice to be able to allow party members to have a Pet Slot item unlocked via a game mechanic, however.  If the Pet Slot is unlocked via an in-game script call, say an ability, this opens up all sorts of possibilities for modders, from blatant unbalanced game setups to giving folks more difficult choices when it comes to character customization.

 

Possibilities the Request Allows:

By making a Pet Slot unlockable via a script call, it allows for the possibility of a pet to be tied to an item.  An example would be how the Giftbearer Cloak unlocks extra quick slots and an extra weapon set.  So, say, an item allows someone other than the Watcher to have a pet (The Leash of Training or something like that).  

 

By making it a script call, it could then be used by modders to make a new talent as part of the progression table of a new class.  Or made into a general talent and put into (most classes) progression table which would then cause folks to decide whether or not to choose that new talent on level up.

 

Truly ambitious modders far down the line could even make it a quest reward as part of a custom questline where one member of the party (or all outside of the Watcher) are given it as a reward. Or a bit more simply it could be bought via conversation options. 

 

Well, maybe not on that last one, depending on how robust it is, but it's the sort of thinking my noggin was going when it came to possibilities.

 

======

 

Anyway, I don't know how hard it would be to do this, and it probably isn't much of a priority.  But I thought I would start with one that already has something like it via a console command and it might be of interest to folks coming up with concepts for items and classes. :)

Edited by Zap Gun For Hire
  • Like 2
Link to comment
Share on other sites

@BMac - worth a sticky!

 

A big one we've been discussing is new maps

This can start off really simply, a tile-based map edit we can place enemies on for a sort of Fight-Club would do with an AreaTransition to the new "level" would do at a pinch as we could add this to a convo mod.

 

This makes for a perfect levelling mod if nothing else

 

If we can create new named NPCs we can even make new quests

 

We have artists who can do prefabs - a few of the latest mods include this feature so simply having this ability is highly desirable by our group.

 

One of the things that made NWN so successful was Aurora Toolset many years after it's best-before date was way past (Beamdog support it in EE)

  • Like 1

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

Addition of globalvariables in-Mod is also desirable

 

One of our members recently wanted to mod a pistol to have the same effect as Oathbringer's Sanctuary pray at level 4 as a trigger for his SoulBound. The ONLY way I could work out to achieve this was to mod exported (far from desirable). The desire to keep mods clean forced my friend to use a different trigger for the moment.

 

This is not an isolated request, that one is just an example. This facility sounds fairly mundane but is in fact extremely powerful when using conditionals.

 

I'm lead to believe that this one is pretty easy prom PMs - just getting this one down in public.

  • Like 2

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

This is related to the new area thing but distinct from it as it applies for other uses.

 

Another of my friends wanted a Summon that spawns an enemy.

 

The use of this is that using some item has a downside as well as an upside. So if we create let's say Excalibur, a really good sword that un-balances the game in the player's favour it also triggers summoning - oh, let's say Nemnok The Devourer (he's a popular fave) as a balancing effect.

 

The summon spawns a hostile NPC

We did have partial success but not with the hostile bit - I can summon something big but it's not hostile unless you attack it. Instead I get this big bad creature that's on Prozac :)

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

Oh, just re-discovered this one while looking at another Q

 

Savegame cache is still in effect - highly undesirable and causes mods to break

 

To see this in effect go to a vendor who's got some new stuff you're about to mod in to their vendor list

 

You must NOT have the vendor mod installed at this point

 

Save

 

Talk to vendor, see lootlist

 

Save

 

Now install the mod and load the saves in order

 

The one BEFORE you talk to the vendor now has the new lootlist

 

The one AFTER you check them out HASN'T

This is hack-able out but not easy. Basically you have to extract the savegame (it's a ZIP) - delete the area with the vendor in it, reverse the process and things work as expected

Had this one in for ages but still an issue that should be fairly easy to resolve

  • Like 1

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

Prompted by a discussion with @Kilay in Slack

Asked this before but this should get a sticky eventually

Does POE2 have a NameSpace or OO Class system? [i'm not talking character class, programmers will know what I'm talking about]

 

Specifically not all Scriptables work in every scriptable definition so I imagine that some namespace sorta stuff is in play

 

Can we have some docs on this?

 

I originally wrote this as a PM but had to kill all my PMs (crappy PM limit gets filled up rapidly by incoming PMs)

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

Addition of globalvariables in-Mod is also desirable

 

One of our members recently wanted to mod a pistol to have the same effect as Oathbringer's Sanctuary pray at level 4 as a trigger for his SoulBound. The ONLY way I could work out to achieve this was to mod exported (far from desirable). The desire to keep mods clean forced my friend to use a different trigger for the moment.

 

This is not an isolated request, that one is just an example. This facility sounds fairly mundane but is in fact extremely powerful when using conditionals.

 

I'm lead to believe that this one is pretty easy prom PMs - just getting this one down in public.

 

Yes, being able to add global variables via the override folder would be fantastic and open up a ton of possibilities.  I wasn't sure if we could do it yet and was on my "to do" list of checking things out.

 

So seconding this one, as well. 

  • Like 1
Link to comment
Share on other sites

Hey @Zap

 

We've had this one in for over a week

 

Try joining us - we're an inventive bunch

 

I know you're resisting the join but believe me, flying solo sucks - doing it as a flock is superb

 

We get many objections to filling in the damned form - required for an invite

 

Try us for a few mins - if you hate us, simply don't visit again

 

PM me your email and I'll do you a direct invite (no form required)

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

Off-topic

 

Can we raise the number of PMs?

 

This is very annoying and has caused me to lose valuable messages

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

Oh - @tt1 wants me to do an extraction of POE2 Atleses

 

Before I go this I'm gonna BMac it

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

Would it be possible to make it so that we can call scripts from attacks or status effects?  Being able to write custom scripts and then have them called from a custom attack or status effect would be sweet.

 

Thanks again for all the hard work you all have already done, though!  It cannot be stated enough how much fun it is to mod this game!

  • Like 4
Link to comment
Share on other sites

Greater access and/or control over AttackSummonComponent for the purposes of creating "animal companions" for other classes using existing graphical assets (eg, a spectre or shadow as a summonable companion for a Rogue).

 

Thanks again for all the hard work you all have already done, though!  It cannot be stated enough how much fun it is to mod this game!

Agreed!

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

I want to be able to create an NPC, equip it, and spawn it in a level. I don't care about giving it dialogue or having fine control over where it spawns, I just want to put, say, a Naga in a level, call it Jim The Naga, and let people kill and loot it as an alternative to putting modded items in a store

  • Like 1
Link to comment
Share on other sites

New options for the "StatusEffectDynamicValueAdjustment" fields.

"Stats" has "Health" with range [0 - 1.0] and requires to have a well known value in order to play around that, for example infestation of the maggots or the armor -% damage taken per health lost.

Should be handy having an "InverseHealth" that map the health with the range [1.0 - 0].

 

A conditional that permits to ignore the primary target, an option like the "ExcludePrimaryTarget" of the "AttackAOEComponent", so it can be widely applied to the other attack components.

A case of use is for the bouncing attack. To emulate that behavior I need to create two attacks, one bounce and one not, but in this way I change how the empowering works. Usually it increments the numbers of the bouncing, with the workaround, this property is lost, and works on the duration of the effects applied. Sometimes you want one, sometimes the other.

 

Having a "StatusEffectType" can triggers abilities on event, mainly for that very specific abilities that have their own custom component, or abilities that requires a primary or full attack: flames of devotion, finishing blow, barbaric blow etc... There are workarounds to recreate those effects, it's funny to find the way but it's also ugh...painful :D

 

More than a request is a check to the behavior that happens on autogranted abilities for the ranger.

If you autogrant abilities to the ranger:

- any of them, beside the ones that are specific for the pet;

- and without spending points to a precursor talent, so pure autogrant;

if you respec, these abilities pass to the pet, that can cast with the shared resource.

 

A flag into the "WeaponGameData" or "ItemGameData" that makes an item unable to sell.

 

If not possible to have custom models in the game, maybe some of the previous game, don't know, for example a spiked mace, for this beauty:

 

V5RwgaF.jpg

Edited by mammasaura
  • Like 1

CzSyX91.jpg

Link to comment
Share on other sites

Thanks for creating this thread, it should be very helpful to keep all these things in one spot!

 

There's a lot here already - I'm just going to try to give my initial comments on each suggestion to set expectations.

 

Being able to unlock the Pet Slot for a party member via a script call

 We could probably add this, I'd probably implement it as a StatusEffectType like BonusQuickSlots or BonusWeaponSets.

 

A big one we've been discussing is new maps

This would of course be really great to get working, but the scope for us is pretty massive and I have to admit it's unlikely that we'll add any built-in support for this in Deadfire.

 

Addition of globalvariables in-Mod is also desirable

This is coming in v2.1.0.

 

Another of my friends wanted a Summon that spawns an enemy.

 

...

 

We did have partial success but not with the hostile bit - I can summon something big but it's not hostile unless you attack it. Instead I get this big bad creature that's on Prozac :)

The item 'Hunting_Bow_U_Animancer' summons hostile creatures, so this should be possible.  Check out how that's working.

 

Savegame cache is still in effect - highly undesirable and causes mods to break

This isn't really a caching issue, it's a side-effect of how vendor inventories are generated.  It's probably possible for us to do something to make this workflow better.

 

Does POE2 have a NameSpace or OO Class system? [i'm not talking character class, programmers will know what I'm talking about]

 

Specifically not all Scriptables work in every scriptable definition so I imagine that some namespace sorta stuff is in play

 

Can we have some docs on this?

Unfortunately there's no data that controls when certain scripts can be used; it depends entirely on what that script decides to do behind the scenes.  Someone would have to document them manually, which I don't believe we'll have to time to do.  Hopefully it's usually pretty intuitive (ShipDuel scripts only work in ship duels, etc.)

 

I got a request that I thought I'd throw on the pile: is there any chance that we will get access to (and be able to mod) more parts of the UI than what's currently available?

 

The two biggest areas I'd love to have access to would be the Character Sheet and the Combat Log.

UIs live almost entirely in Unity data, so unfortunately it's pretty unlikely that we'll be able to easily expose the data.  It could be done without our support, but you'd have to do some DLL rewriting like the IE Mod on Pillars 1.

 

Oh - @tt1 wants me to do an extraction of POE2 Atleses

There's probably a way to extract those images from the Unity data with the usual tools.  They're probably in the MasterUI data (PillarsOfEternityII_Data/level2).
  • Like 5
Link to comment
Share on other sites

Would it be possible to make it so that we can call scripts from attacks or status effects?  Being able to write custom scripts and then have them called from a custom attack or status effect would be sweet.

Yeah, that seems like a useful addition and not too hard to implement.

 

Thanks again for all the hard work you all have already done, though!  It cannot be stated enough how much fun it is to mod this game!

Yay!

 

Greater access and/or control over AttackSummonComponent for the purposes of creating "animal companions" for other classes using existing graphical assets (eg, a spectre or shadow as a summonable companion for a Rogue).

As far as I know it should be doable right now to create custom summon attacks that summon existing monster prefabs.  If you start or bump a thread for this with an attempt I might be able to investigate.

 

I want to be able to create an NPC, equip it, and spawn it in a level. I don't care about giving it dialogue or having fine control over where it spawns, I just want to put, say, a Naga in a level, call it Jim The Naga, and let people kill and loot it as an alternative to putting modded items in a store

That's another feature that I'd definitely like to have, but the data is in Unity files. It may be possible for us to write another system to allow insertion of objects into existing scenes, but that would be a moderately significant undertaking.

 

New options for the "StatusEffectDynamicValueAdjustment" fields.

"Stats" has "Health" with range [0 - 1.0] and requires to have a well known value in order to play around that, for example infestation of the maggots or the armor -% damage taken per health lost.

Should be handy having an "InverseHealth" that map the health with the range [1.0 - 0].

Good idea, should be fairly easy to implement.

 

A conditional that permits to ignore the primary target, an option like the "ExcludePrimaryTarget" of the "AttackAOEComponent", so it can be widely applied to the other attack components.

A case of use is for the bouncing attack. To emulate that behavior I need to create two attacks, one bounce and one not, but in this way I change how the empowering works. Usually it increments the numbers of the bouncing, with the workaround, this property is lost, and works on the duration of the effects applied. Sometimes you want one, sometimes the other.

Ditto.

 

Having a "StatusEffectType" can triggers abilities on event, mainly for that very specific abilities that have their own custom component, or abilities that requires a primary or full attack: flames of devotion, finishing blow, barbaric blow etc... There are workarounds to recreate those effects, it's funny to find the way but it's also ugh...painful :D

I'm not sure about the feasibility of this offhand. I'll have to look into it if I have time.

 

More than a request is a check to the behavior that happens on autogranted abilities for the ranger.

If you autogrant abilities to the ranger:

- any of them, beside the ones that are specific for the pet;

- and without spending points to a precursor talent, so pure autogrant;

if you respec, these abilities pass to the pet, that can cast with the shared resource.

Sounds like a bug; I'll report it to the appropriate person.

 

A flag into the "WeaponGameData" or "ItemGameData" that makes an item unable to sell.

Should be pretty easy to add. I believe you can approximate this now by setting IsQuestItem to true.

 

If not possible to have custom models in the game, maybe some of the previous game, don't know, for example a spiked mace, for this beauty:

Importing models from the previous game is still a decent chunk of work, since we've switched to a completely new PBR render pipeline; all the materials need to be recreated by an artist. Sadly, I don't think I'll be able to get any artist time for this.
  • Like 5
Link to comment
Share on other sites

I'm not sure about the feasibility of this offhand. I'll have to look into it if I have time.

 

I guess can mess up with the result, but just if you have time and will.

I tried to have an item that triggers damage by damage dealt/received on the target like wounding shot, but never worked. Instead I needed to have the target to calculate the self damage in order to apply the damage on it.

I really need to thank you for how many possibilities there are.

 

So, yes, at the end of the end of the requests queue this one.

 

Sounds like a bug; I'll report it to the appropriate person.

 

This is the topic I opened for the issue if can help the bug team.

 

Should be pretty easy to add. I believe you can approximate this now by setting IsQuestItem to true.

 

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.

I still have the item in a different tab and the "Quest Item" line in the item description, but isn't a real issue.

 

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.

Making the item "unsellable" is the faster and safer way to go. The IsQuestItem works.

 

It's not the only issue.

 

The conditional "ObjectHasItemCount" only checks the items in the stash and in the inventory.

The weapon slots aren't checked, and so the equipped item.

 

I added another conditional "IsItemEquipped".

This time the check is on the items you can see on the viewport.

In the case of the weapon sets, it only considers 1 weapon set, the one you can see in the in game.

 

What's left are the other weapon sets.

There isn't a conditional that checks if a very specific Item is in a weapon set.

There are other conditionals like:

"IsRangedWeaponInWeaponSetPrimarySlot" for primary

"IsMeleeWeaponInWeaponSetPrimarySlot"

"IsRangedWeaponInWeaponSetSecondarySlot" for offhand

"IsMeleeWeaponInWeaponSetSecondarySlot"

But you cannot specify which Item to check.

 

Having the counterpart for these conditionals, but with also a specified item id can surely help, for this use but also for others. Then, If can be also added a more generic one that checks all the weapon sets on the character...but it's a plus, can be done with 8 conditionals (4 for two handed weapon), it can help to clarity the code, so you don't need to always put 8 conditionals because you don't know how many sets the character has, but only 2, one checks the primary slot, and one the offhand.

 

Even with these conditionals the system can be tricked.

The check is on all "active" party members.

This means, that if you really want to cheat, you can manage your party, drop the party member with the item and buy it again.

 

I don't know if is possible to have instances id (for scripts and conditionals) for "non active party members", or for "all party members, active or not".

 

Ok that's all :)

 

Thank you again for your commitment, amazing work.

Edited by mammasaura
  • Like 1

CzSyX91.jpg

Link to comment
Share on other sites

Link to comment
Share on other sites

Ooh - we're pinned :)

 

Go crazy guys - one week til the next cast...

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

There are some things I think should be nice to have. Some of the suggestions I already said during the dev stream, but now for register:

 

1) There are some attributes refering to "class" inside components, like RestrictedToClassIDs or BindableClassesIDs, for example. Could be nice to have the same, but for Races.

 

2) StatusEffectType: "ChangeForm" dont allow to change equipment or even to use equipped weapons. I propose a new StatusEffectType to allow use/ change equipment and weapons.

 

3) Could be interesting to have an attribute to define an array of Item IDs to make a "set" of Items, like in Diablo 2, for example. Or even a new Component to define sets of items, so the items could gain special abilities/ SE when combined. 2 items -> ability X. 3 items -> ability Y, etc.

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

  • Like 1

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

I don't know if possible but two scripts that add/remove lootlists from a storage, but not regenerative.

 

There are these two scripts:

 

Void StoreAddRegenerationList(Guid, Guid)

Void StoreRemoveRegenerationList(Guid, Guid)

 

Storage seems to have a lists attached to it and in item.gamedatabundle seems you can manipulate only lootlist that are regenerative.

I don't know if the items you can buy only once are just added in a different way or not, but if they are in a list that can be attached...having the script for add and delete should be a huge thing and a lot appreciated.

 

:)

  • Like 1

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