Kagedomo Posted July 14, 2017 Share Posted July 14, 2017 All the tutorials I've looked at use quest stage as a condition to open/close dialogue options for the player. I was playing Undeath the other day and in the conversation with The Broker noticed certain dialogue options would open up new ones after being completed. Using CK I viewed the dialogue view in question and saw that the conditions for each topic were all the same, but each response had a script attached to it that must have been enabling certain topics. Unfortunately it wouldn't let me view the source for any of the scripts so I don't know how exactly it was done. Does anyone know a way to replicate this (making certain dialogue choices open up new branches, within the same quest but not confined to a particular order)? A way to disable dialogue choices without quests would also be helpful. Link to comment Share on other sites More sharing options...
Sparky88101 Posted July 15, 2017 Share Posted July 15, 2017 You can open up the source if you unpack the .bsa with an unpacking program (BSAOpt is probably the easiest http://www.nexusmods.com/skyrim/mods/247/? ). You just unpack the folder and move the scripts into your scripts folder, then you can look at them in the CK. I'm not sure how he did it but that you give you some insight. Link to comment Share on other sites More sharing options...
Kagedomo Posted July 17, 2017 Author Share Posted July 17, 2017 Turns out the conditions were not the same- some had various GetVMQuestVariable conditions on them, so the scripts must have been inputting values for that. Can anyone explain or point me to a tutorial that explains how to set up quest variables? Furthermore, is VariableName.Value = 1 sufficient to set the value of a variable to 1 in a script? Link to comment Share on other sites More sharing options...
RichWebster Posted July 17, 2017 Share Posted July 17, 2017 Yes mate that would be sufficient. You create a script for the quest, and use the following as a guide: https://www.creationkit.com/index.php?title=GetVMQuestVariable Then you can use the condition function in dialogue etc. Link to comment Share on other sites More sharing options...
Kagedomo Posted July 17, 2017 Author Share Posted July 17, 2017 I created this script under the "scripts" section for the quest, and there were no compilation errors. However, HoDValgurLieCond did not show up as a VMQuestVariable option, and when I tried to set it using papyrus (even when I referred back to it using an int property) in dialogue views I would get compiler errors. Scriptname HoDValgurLieCondition extends Quest Conditional Quest Property HoDBloodEx Auto Int Property HoDValgurLieCond Auto Conditional What do I need to add or change? Link to comment Share on other sites More sharing options...
RichWebster Posted July 17, 2017 Share Posted July 17, 2017 Works fine for me. Script http://i.imgur.com/Trg21ed.png Condition function http://i.imgur.com/LcJOOCV.png Link to comment Share on other sites More sharing options...
Kagedomo Posted July 18, 2017 Author Share Posted July 18, 2017 Thanks, turns out the problem was I didn't close and reopen the quest. I'm still having trouble setting the value of the variable (get compiler errors no matter what I try). Should the script's int property be the original variable name, or should it include _var? Do I need to add "Conditional" anywhere in the source? Link to comment Share on other sites More sharing options...
RichWebster Posted July 18, 2017 Share Posted July 18, 2017 Yea that's something I always do. Get into the habit of closing your quests after any changes. It depends where you want to go changing that value. All you need to do is create a property to the script itself, then you can access the variables. Example. Say your script was call MyTestScript, in another script create a property like this: MyTestScript Property MyScript Auto MyScript can be anything you want. Then when you fill the property the drop-down will show you the objects the script is attached to. Like your quest. Then to change that value you just do something like this in the new script: MyScript.SomeInt = 2 Or MyScript.SomeInt += 1 However you want to change it. Link to comment Share on other sites More sharing options...
Kagedomo Posted July 18, 2017 Author Share Posted July 18, 2017 I am trying to set the int value at the end fragment of topic info (from Dialogue Views), and I'm having trouble creating the property. There is no "script" type available to choose when adding properties (what should I be using?), and when I try to do it manually under source, I just get compiler errors. Is "MyTestScript" the script where the variable was created, the script where you want to set the variable to a different value, or a different script altogether? Link to comment Share on other sites More sharing options...
RichWebster Posted July 19, 2017 Share Posted July 19, 2017 MyTestScript is the one where you value is stored, which is attached to your quest. In a dialogue fragment you can add it manually to the script. Just add a ; and click compile which will generate a script. If you're not sure from here add a dummy Int property to it using the normal method, then open up the source and write in your manual script property below it (so it's in the right place). Don't forget I'm calling it test script etc as an example, you have to use the script name you've used on your quest. Link to comment Share on other sites More sharing options...
Recommended Posts