Jump to content

Skyrim & Creation Kit: How to incrementally change an NPC's disposition towards the player in the Player Dialogue tab?


Recommended Posts

I know about the Relationship Rank metric (-4 to 4). I also know that I can use GetRelationshipRank to find out an NPC's disposition towards the player. But I have two questions:

 

1) Apparently there's also the SetRelationshipRank option that allows me to set the NPC's disposition towards the player. However, while I can find the GetRelationshipRank in the Condition Function lists of the Player Dialogue tab, I cannot find the SetRelationshipRank option. Is it not possible to use this function in the Player Dialogue tab?

 

2) If it is possible to do this in the Player Dialogue tab, is it possible to do it incrementally? What I'm trying to achieve here is to upgrade or downgrade the relationship rank of an NPC depending on the player's dialogue choice (that also leads to a certain action). For example, I the player chooses the relationship rank between the player and the NPC is 1, and the player chooses [DialogueOption1] then the new relationship rank should become 1+1=2. If the player chooses [DialogueOption2] then the new relationship rank should become 1-1=0.

 

Is this possible?

 

Thank you.
 

 

Edited by ThothAmon
Link to comment
  • Commander_ changed the title to Skyrim & Creation Kit: How to incrementally change an NPC's disposition towards the player in the Player Dialogue tab?
6 hours ago, ThothAmon said:

I know about the Relationship Rank metric (-4 to 4). I also know that I can use GetRelationshipRank to find out an NPC's disposition towards the player. But I have two questions:

 

1) Apparently there's also the SetRelationshipRank option that allows me to set the NPC's disposition towards the player. However, while I can find the GetRelationshipRank in the Condition Function lists of the Player Dialogue tab, I cannot find the SetRelationshipRank option. Is it not possible to use this function in the Player Dialogue tab?

 

2) If it is possible to do this in the Player Dialogue tab, is it possible to do it incrementally? What I'm trying to achieve here is to upgrade or downgrade the relationship rank of an NPC depending on the player's dialogue choice (that also leads to a certain action). For example, I the player chooses the relationship rank between the player and the NPC is 1, and the player chooses [DialogueOption1] then the new relationship rank should become 1+1=2. If the player chooses [DialogueOption2] then the new relationship rank should become 1-1=0.

 

Is this possible?

 

Thank you.

 

It's possible but requires writing a small script.

The conditions only check values, they do not change them. That is why you won't find a `set...' type function in the conditions.

When you have your topic open:

EG  Topic text: "You look nice today".

Response: "Why thank you!"

Condition: RelationshipRank  - PlayerRef  >= 0  AND RelationshipRank  - PlayerRef  < 4

 

Scripts - End:

akspeaker.setRelationshipRank( Game.getPlayer(), akspeaker.getRelationshipRank( Game.getPlayer() ) + 1 )

 

---

That would increase the relationship by 1 for any one who is currently an acquaintance upto ally.

(the >=0 is just as example, the check < 4 is important to make sure you don't go over 4 in the script.)

 

 

Link to comment
12 hours ago, MTB said:

 

It's possible but requires writing a small script.

The conditions only check values, they do not change them. That is why you won't find a `set...' type function in the conditions.

When you have your topic open:

EG  Topic text: "You look nice today".

Response: "Why thank you!"

Condition: RelationshipRank  - PlayerRef  >= 0  AND RelationshipRank  - PlayerRef  < 4

 

Scripts - End:

akspeaker.setRelationshipRank( Game.getPlayer(), akspeaker.getRelationshipRank( Game.getPlayer() ) + 1 )

 

---

That would increase the relationship by 1 for any one who is currently an acquaintance upto ally.

(the >=0 is just as example, the check < 4 is important to make sure you don't go over 4 in the script.)

 

 

 

Great, thank you very much for this!

I have an additional question, if you don't mind.

 

What's the difference in AI behavior between rival, foe, enemy, and arch-nemesis? Will an NPC behave differently if he/she becomes an enemy instead of a foe? Or is this simply a way to internally measure the intensity of the NPC's disposition (without any visible changes)? I searched and couldn't find detailed info on what those ranks mean during game play apart from the fact that a lover will speak to you accordingly.

 

 

Edited by ThothAmon
Link to comment
On 5/21/2022 at 8:40 AM, ThothAmon said:

What's the difference in AI behavior between rival, foe, enemy, and arch-nemesis? Will an NPC behave differently if he/she becomes an enemy instead of a foe? Or is this simply a way to internally measure the intensity of the NPC's disposition (without any visible changes)?

 

Afaik it only has an effect on conditions that specifically use the rank like the one above, eg making the NPC say different things depending on the relationshiprank; for example you could set it up so they say `Hello' if 0 or above, `what do you want' of -1 or -2 and `go away' (after which the conversation closes) if lower, etc.

Similar conditions can be put on AI packages. so they might behave differently as well (eg come talk to you but only if they like you, leave if you enter the room if they really don't like you, etc.)

 

I don't think there is actually all that much in the vanilla content that uses it. 

One thing is that if they are a `potential follower' and get a friend (or above) rank then they will be willing to follow you.

Also the greeting for friends is often different from that for others (its a fine day with you around).

I don't know of any example that distinguishes between enemy and foe (or any thing other than friend(>0) or not really).

 

Link to comment
1 hour ago, MTB said:

 

Afaik it only has an effect on conditions that specifically use the rank like the one above, eg making the NPC say different things depending on the relationshiprank; for example you could set it up so they say `Hello' if 0 or above, `what do you want' of -1 or -2 and `go away' (after which the conversation closes) if lower, etc.

Similar conditions can be put on AI packages. so they might behave differently as well (eg come talk to you but only if they like you, leave if you enter the room if they really don't like you, etc.)

 

I don't think there is actually all that much in the vanilla content that uses it. 

One thing is that if they are a `potential follower' and get a friend (or above) rank then they will be willing to follow you.

Also the greeting for friends is often different from that for others (its a fine day with you around).

I don't know of any example that distinguishes between enemy and foe (or any thing other than friend(>0) or not really).

 

 

After spending a few hours manually investigating I can confirm your assumptions. Thanks!

Link to comment

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use