Jump to content

Character Relation? Where is it constructed?


Recommended Posts

Hi,

where is the relation overview construtced? E.G Xoti vs Maia.

I have the following conversation between Shrimp and Maia.

conversations\03_neketaka_vailian_district\03_cv_rtc_soldiers.stingtable
 

    <Entry>
      <ID>14</ID>
      <DefaultText>"I was but a face in the crowd, but I remember the one who walked out of Hadret House alive."

He claps you on the shoulder again - harder - and this time you recognize inebriation behind his enthusiasm.</DefaultText>
      <FemaleText />
    </Entry>

    <Entry>
      <ID>117</ID>
      <DefaultText>"To Tākowa. May our enemies crumple under cannon shot." Maia winks at the sailors and raises a fist.</DefaultText>
      <FemaleText />
    </Entry>

 

This will create an entry in the relation overview, however a string will be listed as missing with the ID 118.

I believe the string which should be there is ID 117.  If I manually add an entry 118 in the file conversations\03_neketaka_vailian_district\03_cv_rtc_soldiers.stingtable that text will be displayed.

ID 118 is missing from this file in any language.

But where is it defined which ID will be used?

Edited by Aurelio
Link to comment
Share on other sites

To answer my own question...

In the file PillarsOfEternityII_Data\exported\design\conversations\03_neketaka_vailian_district\03_cv_rtc_soldiers.conversationbundle

At line 860 you have to change  "ToNodeID": 118, to "ToNodeID": 117, to fix the bug.

 

Question: Is it possible to provide a fixed 03_cv_rtc_soldiers.conversationbundle to the override folder without disablling achivements etc?

 

Still I have other dialogs, where the text strings are not displayed as missing but just do not show anything. Not sure how to fix that.

Link to comment
Share on other sites

I have now noticed, that all dialogs with Stewardship and Autonomy do not show any text on the reputation screen. (e.g Main char vs Aloth) It seems the definition of these windows is somehow broken?

And it seems only to affect dialogs with Aloth.

Edited by Aurelio
Link to comment
Share on other sites

21 hours ago, Aurelio said:

Question: Is it possible to provide a fixed 03_cv_rtc_soldiers.conversationbundle to the override folder without disablling achivements etc?

 

Still I have other dialogs, where the text strings are not displayed as missing but just do not show anything. Not sure how to fix that.

Yes this is possible to do, there is a particular folder structure for it to work though:

override\yourmodfolder\conversations\03_neketaka_vailian_district\03_cv_rtc_soldiers.conversationbundle

The "iroll20s" console command is the only thing that disables achievements I think.

  • Like 1
Link to comment
Share on other sites

For the Stewardship/Autonomy question, character topic preferences are captured inside the characters.gamedatabundle file. It looks like what sets them apart from Aloth's other topics is that they also have conditional data:

{
                            "TopicID": "3d28fa9d-5127-4b6a-af14-9c4769f17720", //Autonomy
                            "Axis": "Positive",
                            "WeightID": "c131acce-6af4-4d78-b0e2-48b26e6631b1",
                            "Conditional": {
                                "Operator": 0,
                                "Components": [
                                    {
                                        "$type": "OEIFormats.FlowCharts.ConditionalExpression, OEIFormats",
                                        "Operator": 1,
                                        "Components": [
                                            {
                                                "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                                "Data": {
                                                    "FullName": "Boolean IsGlobalValue(String, Operator, Int32)",
                                                    "Parameters": [
                                                        "n_Aloth_ending",
                                                        "EqualTo",
                                                        "3"
                                                    ],
                                                    "Flags": "",
                                                    "UnrealCall": "",
                                                    "FunctionHash": 901380568,
                                                    "ParameterHash": 561454095
                                                },
                                                "Not": false,
                                                "Operator": 0
                                            }
                                        ]
                                    },
                                    {
                                        "$type": "OEIFormats.FlowCharts.ConditionalExpression, OEIFormats",
                                        "Operator": 1,
                                        "Components": [
                                            {
                                                "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                                "Data": {
                                                    "FullName": "Boolean IsGlobalValue(String, Operator, Int32)",
                                                    "Parameters": [
                                                        "n_Aloth_ending",
                                                        "EqualTo",
                                                        "0"
                                                    ],
                                                    "Flags": "",
                                                    "UnrealCall": "",
                                                    "FunctionHash": 901380568,
                                                    "ParameterHash": 561454094
                                                },
                                                "Not": false,
                                                "Operator": 0
                                            },
                                            {
                                                "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                                "Data": {
                                                    "FullName": "Boolean CompareGlobals(String, Operator, String)",
                                                    "Parameters": [
                                                        "n_Aloth_authority",
                                                        "LessThan",
                                                        "n_Aloth_autonomy"
                                                    ],
                                                    "Flags": "",
                                                    "UnrealCall": "",
                                                    "FunctionHash": -679574504,
                                                    "ParameterHash": 1073915269
                                                },
                                                "Not": false,
                                                "Operator": 0
                                            }
                                        ]
                                    }
                                ]
                            }
                        },
                        {
                            "TopicID": "62b80708-269f-4bc6-a737-5f328db35370", //Stewardship
                            "Axis": "Positive",
                            "WeightID": "c131acce-6af4-4d78-b0e2-48b26e6631b1",
                            "Conditional": {
                                "Operator": 0,
                                "Components": [
                                    {
                                        "$type": "OEIFormats.FlowCharts.ConditionalExpression, OEIFormats",
                                        "Operator": 1,
                                        "Components": [
                                            {
                                                "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                                "Data": {
                                                    "FullName": "Boolean IsGlobalValue(String, Operator, Int32)",
                                                    "Parameters": [
                                                        "n_Aloth_ending",
                                                        "EqualTo",
                                                        "2"
                                                    ],
                                                    "Flags": "",
                                                    "UnrealCall": "",
                                                    "FunctionHash": 901380568,
                                                    "ParameterHash": 561454096
                                                },
                                                "Not": false,
                                                "Operator": 0
                                            }
                                        ]
                                    },
                                    {
                                        "$type": "OEIFormats.FlowCharts.ConditionalExpression, OEIFormats",
                                        "Operator": 1,
                                        "Components": [
                                            {
                                                "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                                "Data": {
                                                    "FullName": "Boolean IsGlobalValue(String, Operator, Int32)",
                                                    "Parameters": [
                                                        "n_Aloth_ending",
                                                        "EqualTo",
                                                        "0"
                                                    ],
                                                    "Flags": "",
                                                    "UnrealCall": "",
                                                    "FunctionHash": 901380568,
                                                    "ParameterHash": 561454094
                                                },
                                                "Not": false,
                                                "Operator": 0
                                            },
                                            {
                                                "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                                "Data": {
                                                    "FullName": "Boolean CompareGlobals(String, Operator, String)",
                                                    "Parameters": [
                                                        "n_Aloth_authority",
                                                        "GreaterThanOrEqualTo",
                                                        "n_Aloth_autonomy"
                                                    ],
                                                    "Flags": "",
                                                    "UnrealCall": "",
                                                    "FunctionHash": -679574504,
                                                    "ParameterHash": -1459997686
                                                },
                                                "Not": false,
                                                "Operator": 0
                                            }
                                        ]
                                    }
                                ]
                            }
                        }
                    ],

Not quite sure how to fix the issue, though.

Edited by Testlum
Link to comment
Share on other sites

Ok, the fix I proposed might not be a real fix, because I'm skipping NoteID 118.

 

This node 14.  The node ID corrosponds to the text ids. So from NodeID 14 we move to NodeID 118

{
            "$type": "OEIFormats.FlowCharts.Conversations.TalkNode, OEIFormats",
            "EmotionType": "",
            "EmotionStrength": 0.5,
            "PersistEmotion": true,
            "EmotionDelay": 0.0,
            "SpeakerGuid": "8b9a32d7-3530-4f41-8ca5-08f80776ad5c",
            "ListenerGuid": "b1a8e901-0000-0000-0000-000000000000",
            "ExternalVO": "",
            "HasVO": true,
            "NotSkippable": false,
            "IsQuestionNode": false,
            "HideSpeaker": false,
            "IsTempText": false,
            "PlayVOAs3DSound": false,
            "PlayType": 0,
            "Persistence": 0,
            "NoPlayRandomWeight": 0,
            "VOPositioning": 0,
            "DisplayType": 1,
            "NodeID": 14,
            "ContainerNodeID": -1,
            "Links": [
                {
                    "$type": "OEIFormats.FlowCharts.Conversations.DialogueLink, OEIFormats",
                    "RandomWeight": 1,
                    "PlayQuestionNodeVO": true,
                    "QuestionNodeTextDisplay": 0,
                    "FromNodeID": 14,
                    "ToNodeID": 118,
                    "PointsToGhost": false,
                    "Conditionals": {
                        "Operator": 0,
                        "Components": []
                    },
                    "ClassExtender": {
                        "ExtendedProperties": []
                    }
                }
            ],
            "ClassExtender": {
                "ExtendedProperties": [
                    "SpeakerAnimation,0",
                    "ListenerAnimation,0",
                    "DoNotClearText,False",
                    "FocusedSpeaker,8b9a32d7-3530-4f41-8ca5-08f80776ad5c",
                    "VOEventOverride,None"
                ]
            },
            "Conditionals": {
                "Operator": 0,
                "Components": []
            },
            "OnEnterScripts": [],
            "OnExitScripts": [],
            "OnUpdateScripts": []
        },

 

The stringtable ID for NodeID 118 does not exist in the file conversations\03_neketaka_vailian_district\03_cv_rtc_soldiers.stingtable

This NodeID 118: There are 4 links to other nodes, 15, 117, 16 and 17.  I don't know how the game chooses which link it follows. In my game it follows link 117. This is the text I see in the dialog. So it silently follows from NodeID 14 to 118 and then to 117.

This dialog triggers a reputation change. Because ID 118 does not exist in the stringtable file, missing 118 is shown on the reputation screen. There should have been the text of ID 117.  So is this an oversight from the developers or how is this supposed to be fixed?

I just noticed that ID 14 is TalkNode while 118 is a ScriptNode. But still the game tries to use the text from nonexisting id 118 from the stringtable file.

 

{
            "$type": "OEIFormats.FlowCharts.Conversations.ScriptNode, OEIFormats",
            "RequiresValidChildNode": false,
            "NotSkippable": false,
            "IsQuestionNode": false,
            "HideSpeaker": false,
            "IsTempText": false,
            "PlayVOAs3DSound": false,
            "PlayType": 0,
            "Persistence": 0,
            "NoPlayRandomWeight": 0,
            "VOPositioning": 0,
            "DisplayType": 0,
            "NodeID": 118,
            "ContainerNodeID": -1,
            "Links": [
                {
                    "$type": "OEIFormats.FlowCharts.Conversations.DialogueLink, OEIFormats",
                    "RandomWeight": 1,
                    "PlayQuestionNodeVO": true,
                    "QuestionNodeTextDisplay": 0,
                    "FromNodeID": 118,
                    "ToNodeID": 15,
                    "PointsToGhost": false,
                    "Conditionals": {
                        "Operator": 0,
                        "Components": []
                    },
                    "ClassExtender": {
                        "ExtendedProperties": []
                    }
                },
                {
                    "$type": "OEIFormats.FlowCharts.Conversations.DialogueLink, OEIFormats",
                    "RandomWeight": 1,
                    "PlayQuestionNodeVO": true,
                    "QuestionNodeTextDisplay": 0,
                    "FromNodeID": 118,
                    "ToNodeID": 117,
                    "PointsToGhost": false,
                    "Conditionals": {
                        "Operator": 0,
                        "Components": []
                    },
                    "ClassExtender": {
                        "ExtendedProperties": []
                    }
                },
                {
                    "$type": "OEIFormats.FlowCharts.Conversations.DialogueLink, OEIFormats",
                    "RandomWeight": 1,
                    "PlayQuestionNodeVO": true,
                    "QuestionNodeTextDisplay": 0,
                    "FromNodeID": 118,
                    "ToNodeID": 16,
                    "PointsToGhost": false,
                    "Conditionals": {
                        "Operator": 0,
                        "Components": [
                            {
                                "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                "Data": {
                                    "FullName": "Boolean IsCulture(Guid, Guid)",
                                    "Parameters": [
                                        "b1a8e901-0000-0000-0000-000000000000",
                                        "59a4c801-24af-4fd8-bb6e-39c5c0b4ca5d"
                                    ],
                                    "Flags": "",
                                    "UnrealCall": "",
                                    "FunctionHash": -714406469,
                                    "ParameterHash": -855385635
                                },
                                "Not": false,
                                "Operator": 0
                            },
                            {
                                "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats",
                                "Data": {
                                    "FullName": "Boolean HasConversationNodeBeenPlayed(Guid, Int32)",
                                    "Parameters": [
                                        "b6373521-9602-4f01-a0ad-b3bd2d49edb1",
                                        "117"
                                    ],
                                    "Flags": "",
                                    "UnrealCall": "",
                                    "FunctionHash": -1870187966,
                                    "ParameterHash": 748013732
                                },
                                "Not": true,
                                "Operator": 0
                            }
                        ]
                    },
                    "ClassExtender": {
                        "ExtendedProperties": []
                    }
                },
                {
                    "$type": "OEIFormats.FlowCharts.Conversations.DialogueLink, OEIFormats",
                    "RandomWeight": 1,
                    "PlayQuestionNodeVO": true,
                    "QuestionNodeTextDisplay": 0,
                    "FromNodeID": 118,
                    "ToNodeID": 17,
                    "PointsToGhost": false,
                    "Conditionals": {
                        "Operator": 0,
                        "Components": []
                    },
                    "ClassExtender": {
                        "ExtendedProperties": []
                    }
                }
            ],
            "ClassExtender": {
                "ExtendedProperties": [
                    "SpeakerAnimation,0",
                    "ListenerAnimation,0",
                    "DoNotClearText,False",
                    "FocusedSpeaker,",
                    "VOEventOverride,None"
                ]
            },
            "Conditionals": {
                "Operator": 0,
                "Components": []
            },
            "OnEnterScripts": [],
            "OnExitScripts": [],
            "OnUpdateScripts": []
        },

 

Edited by Aurelio
Link to comment
Share on other sites

  • 4 weeks later...

Ok, I found another place with the issue and not with and missing text entry node.

This is the conversation node ID 35 which leads to ID 37.

PillarsOfEternityII_Data\exported\design\conversations\28_drowned_barrows\28_cv_aduk.conversationbundle

 

Stewardship will be considered.

 

{
            "$type": "OEIFormats.FlowCharts.Conversations.PlayerResponseNode, OEIFormats",
            "NotSkippable": false,
            "IsQuestionNode": false,
            "HideSpeaker": false,
            "IsTempText": false,
            "PlayVOAs3DSound": false,
            "PlayType": 0,
            "Persistence": 3,
            "NoPlayRandomWeight": 0,
            "VOPositioning": 0,
            "DisplayType": 1,
            "NodeID": 35,
            "ContainerNodeID": -1,
            "Links": [
                {
                    "$type": "OEIFormats.FlowCharts.Conversations.DialogueLink, OEIFormats",
                    "RandomWeight": 1,
                    "PlayQuestionNodeVO": true,
                    "QuestionNodeTextDisplay": 0,
                    "FromNodeID": 35,
                    "ToNodeID": 37,
                    "PointsToGhost": true,
                    "Conditionals": {
                        "Operator": 0,
                        "Components": []
                    },
                    "ClassExtender": {
                        "ExtendedProperties": []
                    }
                }
            ],
            "ClassExtender": {
                "ExtendedProperties": [
                    "SpeakerAnimation,0",
                    "ListenerAnimation,0",
                    "DoNotClearText,False",
                    "FocusedSpeaker,",
                    "VOEventOverride,None"
                ]
            },
            "Conditionals": {
                "Operator": 0,
                "Components": []
            },
            "OnEnterScripts": [
                {
                    "Data": {
                        "FullName": "Void DispositionAddPoints(Guid, Guid)",
                        "Parameters": [
                            "6d4a08e8-3b00-4abc-b786-ec051f0f3b8a",
                            "54772c0d-cf3f-4589-8cab-9f3601d575c2"
                        ],
                        "Flags": "",
                        "UnrealCall": "",
                        "FunctionHash": 1769062230,
                        "ParameterHash": -1500557251
                    },
                    "Conditional": {
                        "Operator": 0,
                        "Components": []
                    }
                },
                {
                    "Data": {
                        "FullName": "Void TriggerTopic(Guid, Guid, Guid, Boolean)",
                        "Parameters": [
                            "b1a8e901-0000-0000-0000-000000000000",
                            "62b80708-269f-4bc6-a737-5f328db35370",
                            "54772c0d-cf3f-4589-8cab-9f3601d575c2",
                            "True"
                        ],
                        "Flags": "",
                        "UnrealCall": "",
                        "FunctionHash": -1675420349,
                        "ParameterHash": -1003693522
                    },
                    "Conditional": {
                        "Operator": 0,
                        "Components": []
                    }
                }
            ],
            "OnExitScripts": [],
            "OnUpdateScripts": []
        },

 

If I change the following line from "Pro-Stewardship" (62b80708-269f-4bc6-a737-5f328db35370) to "Pro-Tradition" (e79eabe7-8d68-4cf4-9a07-3e84b154d6ec)

the conversion will be displayed on the reputation wheel with a tradition icon. If its stewardship only the stewardship icon will be displayed and with  empty text boxes.

So the bug is not in the stringtable file but on how the stewardship relation changes are displayed. But I really dont know where to look at or if the bug is in the compiled code.

 

{
                    "Data": {
                        "FullName": "Void TriggerTopic(Guid, Guid, Guid, Boolean)",
                        "Parameters": [
                            "b1a8e901-0000-0000-0000-000000000000",
                            "62b80708-269f-4bc6-a737-5f328db35370",
                            "54772c0d-cf3f-4589-8cab-9f3601d575c2",
                            "True"
                        ],
                        "Flags": "",
                        "UnrealCall": "",
                        "FunctionHash": -1675420349,
                        "ParameterHash": -1003693522
                    },
                    "Conditional": {
                        "Operator": 0,
                        "Components": []
                    }
                }

 

 

From the characters.gamedatabundle file:

{
            "$type": "Game.GameData.TopicGameData, Assembly-CSharp",
            "DebugName": "Pro-Stewardship",
            "ID": "62b80708-269f-4bc6-a737-5f328db35370",
            "Components": [{
                    "$type": "Game.GameData.TopicComponent, Assembly-CSharp",
                    "Value": 3,
                    "DisplayName": 37,
                    "Icon": "gui/icons/gamesystems/pro_stewardship.png",
                    "CircularIcon": "gui/icons/gamesystems/rep_pro_stewardship.png",
                    "NegativeDescription": 49,
                    "PositiveDescription": 48
                }
            ]
        }, {
            "$type": "Game.GameData.TopicGameData, Assembly-CSharp",
            "DebugName": "Pro-Tradition",
            "ID": "e79eabe7-8d68-4cf4-9a07-3e84b154d6ec",
            "Components": [{
                    "$type": "Game.GameData.TopicComponent, Assembly-CSharp",
                    "Value": 4,
                    "DisplayName": 15,
                    "Icon": "gui/icons/gamesystems/pro_tradition.png",
                    "CircularIcon": "gui/icons/gamesystems/rep_pro_tradition.png",
                    "NegativeDescription": 42,
                    "PositiveDescription": 43
                }
            ]
        }

 

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