Jump to content

Turning an Adventurer into a Sidekick/Companion?


Recommended Posts

This isn't something I am really working on, but I figured it might be interesting to others.

I've just discovered it is possible to have adventurers (the custom characters that can be hired from most inns) speak during a conversation!

In brief you can do this by adding the speaker GUID (these are found in speakers.gamedatabundle) of the voice set in use by the character to the SpeakerGuid and FocusedSpeaker sections of a conversation node. The name of the character and the current portrait will then appear in the conversation window. If there are audiofiles that correspond to the conversation node in the folder associated with the voice set these will also be played during the conversation.

This should in theory allow for the creation of rudimentary sidekicks/companions with voiced dialogue!

With a lot of work and some degree of trial and error possibly even full conversation hubs of their own... Though the main hurdle as far as that goes, is that the lack of a button to start a conversation with adventurers directly. So the only way I could think of is using something like an item to start the conversation, similar to how the burned book works. There is also the lack of modding documentation related to the data structure of .conversationbundle files to contend with.

None the less could be really cool to see what someone dedicated enough might come up with!

I'm happy to answer questions to the best of my ability about anything I have written here.

Edited by Kvellen
fixing some grammar
  • Like 2
Link to comment
Share on other sites

Oh wow, that's an awesome discovery!

1 hour ago, Kvellen said:

Though the main hurdle as far as that goes, is that the lack of a button to start a conversation with adventurers directly. So the only way I could think of is using something like an item to start the conversation, similar to how the burned book works. 

Yeah, maybe also script hooks to trigger convos on entering specific locations.

1 hour ago, Kvellen said:

There is also the lack of modding documentation related to the data structure of .conversationbundle files to contend with.

Actually, I've been working on a thorough documentation of the conversation and quest formats. I'll clean up and post tomorrow.

  • Thanks 2
Link to comment
Share on other sites

1 hour ago, Noqn said:

Yeah, maybe also script hooks to trigger convos on entering specific locations.

Oh yeah now that you mention it, script hooks could total work for this couldn't they!

I do wonder though, would there potentially be some impact on performance with a lot of scripts checking if their conditions are met on level load?

1 hour ago, Noqn said:

Actually, I've been working on a thorough documentation of the conversation and quest formats. I'll clean up and post tomorrow.

Awesome!

  • Like 1
Link to comment
Share on other sites

Ok. First up I believe that this blog post by Josh Sawyer gives a great introduction to the general concepts of Deadfire Conversations: https://jesawyer.tumblr.com/post/175082312536/im-curious-as-to-what-the-conversation-editor

 

Basically, Conversations are flow charts. They contain Nodes, where each Node represent e.g. a player dialogue option or an NPC line.

All Nodes have a unique ID, and they contain a list of Links pointing to the IDs "descending" Nodes.

 

Now, here's the WIP documentation on these data formats, I hope it's not too much of a mess: https://docs.google.com/document/d/1jv8GvSuWlunC_nElQsPBM9nqEt8iCOoOP5PlBVAT1Bc/edit?usp=sharing

Most properties and values are somewhat self-explanatory, I've tried to describe the ones that aren't. (The major remaining ones are the concepts of Ghost Links and Question Nodes.)

 

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

  • 2 weeks later...

So I did a bit of tinkering using the excellent documentation noqn has provided, and have created a basic proof of concept! PoE2_Adventurer_Conversation.zip

There isn't really much to this mod beyond this one custom conversation, with a man giving monosyllabic responses (and possibly challenging you to a staring contest), but it does maybe give some insights into a few aspects of how a custom conversations can be implemented. For convenience, the "Speech Bubble" in the actual mod comes pre-equipped on the character.

There is likely a lot I am skipping over explaining, so if there is something that anyone is curious about or would like me to go into further detail on, please let me know!

Here are a few interesting aspects:

As you can hear the conversation uses voice lines from the Stoic Male voice set. I've used the "ExternalVO" line on some nodes in the .conversationbundle to play specific audiofiles during certain points. For example "ExternalVO": "player_stoic_m/ch_player_stoic_m_investigate_40011", is used on the first node of the conversation for the character to give a sort of grunt as a greeting.

However it's totally possible to add new voiced dialogue for characters during a custom conversation! I only did things this way to keep it simple for myself. But as I mentioned in the original post, if there is an audio file related to a conversation in the folder associated with the speaker (this is defined by the ChatterPrefix line) the game will play it. The audio file itself needs to be named after conversation and the 4 digit ID of the specific node it should be played on. So for example if there were an audio file named "adventurer_caedman_0001.wem" in the "player_stoic_m" folder, this could be played without needing "ExternalVO": "", to be used.

There are a few minor details you might noticed that don't really sell this as a proper conversation between the characters:

  • The adventurer and Watcher don't turn to face each other when speaking. Which is pretty impolite if you ask me!
  • The Watcher won't approach the adventurer like they do other companions, which leads to potential for instances of conversations happening over long distances, or from other rooms entirely.

The scripts FaceTarget and AIPathToObject/AIPathToPoint could be potential solutions for these respective problems? But I've yet to actually test them, since I've only just become aware of them as I am writing this post.

Moving on to the character themselves, there are some pretty cool things that could potentially be done using the GUID of an exported character. An example of this is to do with the "Speech Bubble" item. On the "InspectOnUseButton": [ ]  there is a conditional to only display the "Talk to Caedman" button when a character with the specific GUID of the adventurer is in the party.

Oh and with regards to making a fully featured companion with topics of interest... this GUID can be used to link companion data to the adventurer!

E2poSEK.png

I haven't looked into anything really surrounding flagging a node as a topic, so I have no idea if this character will "roll their eyes and let out a long sigh" when an assigned topic is mentioned in other conversations.

So yeah really exciting stuff!

Edited by Kvellen
  • Like 2
Link to comment
Share on other sites

  • 6 months later...

After some more testing utilising the power of Apotheosis here are some fresh insights: 

  • Adding the Adventurer's GUID (this will be in brackets of the .character file of an exported Adventurer) to the CompanionGuidString of CompanionData seems to stop the Adventurer from being exported again.
  • Adding progression tables to the linked CompanionData of an Adventurer, and using a script that does RemoveFromParty and then AddToParty opens the class selection menu allowing you to change their class in the same way as a sidekick/companion.
  • By making additions to relevant .conversationbundles, an Adventurer can have party banter and comment on points of interest pretty seamlessly.
  • While Companions will react and track their relationship to an Adventurer, reaction to topics and tracking of relationships isn't functional on the Adventurer's side for some reason.
  • Quest creation is possible with Apotheosis, and while I haven't figured out all the aspects of it, quests that involve an Adventurer can be done.

The following video of an adventurer based on Durance shows some examples of the above:

Class and Quest Pop-up 3:45 and Companion banter at 4:15.

Still can't figure out a way to get character to face each other during a staring contest conversation. 😑

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

  • 1 month later...

Hey, Kvellen.

Could you pls release the mod with Durance as sidekick?

Have any chance for this?

Durance + Eder is my favorite characters from POE1.

I was very annoyed and dissapointed when I did not meet Durance in the quest The Bridge Ablaze. 😭


How i looking that?  - as sidekick with 3 class/multiclass options:

1) Priest (Magran);
2) Priest (Magran) + Berserker (Furyshaper);
3-A) Priest (Magran) + Monk (Shattered Pillar);
3-B) Priest (Magran) + Fighter (Tactician);
3-C) Priest (Magran) + Fighter (Black Jaket);

That looking like quite logical class/multiclass options, based on the origin and past of this character.




P.S: Kana Rua as sidekick would also be interesting enough (have all in-game portraits for that), but having Maia Rua in the party and not having conversations between them would look a bit odd. 🤔

  • Like 1
Link to comment
Share on other sites

Hey @Gwynrick, I'm sorry to say I don't have any plans for further expanding on this I'm afraid. My aim with recreating Durance was at first as a way to explore how Deadfire's conversation system worked by referencing and recreating a PoE1 conversation. And then just used it as a way to show off some of what is possible in making a sidekick with the Apotheosis tool. There is pretty much only what is in that video, which is Durance's introductory conversation hub from PoE1, his banter with Pallegina and Aloth, and part of his voice set.

Best I can probably do is release what is there?

  • Thanks 1
Link to comment
Share on other sites

On 2/12/2023 at 6:52 PM, Kvellen said:

Hey @Gwynrick, I'm sorry to say I don't have any plans for further expanding on this I'm afraid. My aim with recreating Durance was at first as a way to explore how Deadfire's conversation system worked by referencing and recreating a PoE1 conversation. And then just used it as a way to show off some of what is possible in making a sidekick with the Apotheosis tool. There is pretty much only what is in that video, which is Durance's introductory conversation hub from PoE1, his banter with Pallegina and Aloth, and part of his voice set.

Best I can probably do is release what is there?


Hey @Kvellen, I am Gwynrick.

I had to create a second account when I could not remember which e-mail the main account was registered to. 😅

It's very unfortunate to hear that you have no plans to release the mod.
But at the same time, I understand that this is a very time-consuming and labor-intensive task.


It would be great to see a version of the mod where Durance not only use his voice set for commenting basic actions (attack, etc.), because his banter with Aloth, Eder and Pallegina while traveling is very cool and atmospheric - but it's just wishlist.

The personal quest of Durance and other dialogues (available when use item from inventory) are not such an important thing, as it seems to me.

I will be glad if you release the "Sidekick Durance" mod in any form. 🙃

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

Okay, what I'll do is polish up what I did for Durance and release it on Nexus as a demonstration of a custom Sidekick. and since Custom voice sets are something I am messing with at the moment, I'll include a ported version of Durance's voice set with it as well. 😁

Edited by Kvellen
  • Like 1
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...