See our other construction set tutorials
Created for 1024x768
Dave Foster's Morrowind Construction Set Tutorials
The Elder Scrolls III : Morrowind Construction Set Faction Dialog Tutorial
Page updated 25th March, 2010
After seeing how popular the construction set tutorials have been from the number of emails
I have received and the number of messages on the newbie tutorial page, I have decided to
create a blog where I can answer your questions in full and where other modders can provide
feedback on how they are progressing. This blog is called the
Morrowind and Oblivion Blog.
If you feel that you need help with a more personal touch, then why not try posting your
questions, suggestions and useful tips in the open post that I have called 'Please use this post for CS help and general chitchat'.
I would like to hear your problems and ideas, so come along and check out the blog. Dave.
This is the follow-on tutorial from the Faction Tutorial. It takes you a further
step in the direction of faction creation by the inclusion of faction dialog for
joining and experiencing faction membership. This will be the first dialog tutorial
in the set, which will eventually describe the processes of creating dialong for
such things as quest creation and general dialog topics.
This tutorial will describe in detail the processes involved in creating
descriptive and meaningful conversations within Morrowind. You will learn how to create
new topics and how to introduce the player to these topics via greetings. You
will also learn how to use the info/response mechanism, the speaker conditions
and the results returned from the topic dialog.
Open up the CS and arrange it to suit your needs. Go to the Main Menu|Character|Dialog
entry to open up the Dialog screen. Look at the image above and you will see the sections
of the Dialog screen marked in red. These sections are as follows:
1. Topics/Greetings with the topic filter selection tool at the bottom.
2. Info/Response section
3. The dialog as highlighted in the Info/Response section
4. The Speaker Conditions section including the Function/Variable
5. The Result section
So, what are all these sections, and how do you use them? Well, section 1 consists
of the set of Tabs that give access to the Topics, the Greetings, the Journal
and a couple of others that we will not use here. The topics are the items that you
find in-game in Morrowind when you speak to someone eg. My Background. The Greetings
are the first thing an NPC says to the player. The Journal holds the quest sequence
information i.e. each quest is listed with its sequence number together with information
relating to that quest.
Section 2 contains the info/response, which is the dialog associated with the topic.
You will select a line in this section and begin typing in the info column. When
finished this text will be shown in section 3. As section 3 mirrors what you have typed
in the info column, the other colums are a mirror of values set in the Speaker Conditions
Section 5 is the Result section. It holds values that are going to be passed back to
the executable program. These results are such things as setting a journal entry, or
modding an NPC's disposition towards the player, or giving the player an item or gold.
So, now we've gone through the basic screen, it's time to take a look at the text in
the image above in order to gain some insight into how the various sections tie-in with
Notice how we have selected the line at the bottom of the Info/Response column. That's
because the dialog always flows from bottom to top i.e. the earlier dialog is at the
bottom with the later dialog at the top. Let's take a closer look at this first line
of dialog for the topic 'join the Red Hand'. This dialog is between the player and
Throndar, the warlord leader of the Northlands. It is the dialog that introduces the
player to the task of joining the Red Hand faction to spy on his brother, Sorondar.
As you can see, all the dialog is shown in full in section 3. This is Throndar's dialog,
and this is implemented by changing the text in the Speaker Condition - ID field, which
is a drop-down box of all NPC's in the game. You will see that we have identified Throndar
with the alias 'fkoa_throndar'. It is important to give NPC's a unique id, and I do
this by tagging the name with fkoa_. All my NPC's are named in this way. It makes listing
your NPC's much easier, since all characaters begining with the tag are listed one after
the other in sequence. Otherwise, you would find that you would lose your NPC in the
horde of other NPC's created by the system. As soon as you have created an ID in the
combo box, that name appears in the ID column of section 2.
By putting Throndar in the ID column this effectively makes him the owner of this
line of dialog. But, there are others that can be given dialog, and not just a single
person. There are further drop-downs that allow you to create dialog associated with
various groups of people in Morrowind e.g. Race, Class, Faction and Rank. Should you
wish to include a line of dialog that is spoken by all NPC's that are a particular race,
such as Dark Elf or Breton, then you would leave the ID box blank and put the name of the
race into the Race box. Thus, when you met someone that was a dark elf, he would have
the dialog topic in his list. Equally, putting a name in the Cell box would give the
topic to all NPC's within that cell.
PC Faction and PC Rank are further drop-downs for specifying the faction and
rank of the PC. Should the PC be in a particular faction, then putting the player's
faction in the PC Faction field will result in the player receiving the conversation
that relates to that faction i.e. the NPC will have the faction topic in his list. The
same holds true for PC Rank.
Sex and Disposition can also determine whether an NPC will have a topic for the
player. Use the appropriate boxes for this. The Dispostion is the minimum disposition
that the player must have before the NPC will reveal his topic. If the player does
not meet this minimum disposition then the NPC will not talk to the player about
the subject. This allows you, the game developer, to decide how much favour the player
must earn with an NPC, or group of NPC's, before they will deign to talk to you
about a particular topic in their repertoire. If your disposition is too low, or
if you are male rather than female, then the NPC will not show this topic in the
dialog pane of Morrowind.
The Function/Variable section of the Speaker Conditions is where most of the
decision making process takes place. There are four columns that allow up to six
decisions to be made for this piece of dialog. The first column relates to the
various system variables such as Function, or Journal etc. By setting this column
to one of the pre-defined functions, you are stating that values in the following
columns directly relate to this function. Thus, if you set column 1 to 'Journal',
you are stating that column 2 will hold the name of a valid Journal Entry as displayed
on the Journal tab in section 1. We will describe the journal entries later.
Columns 3 and 4 will state the values of this journal entry. Column 3 is the equality
selector and column 4 is the value. Other functions include Global, Local and Item.
This means that the conversation will be given should a global or local value be
set or not set to a particular value. Or, an item may or may not be in the possession
of the player etc.
All the Function/Variable conditions must be met before the NPC will make
this particular topic of conversation available to the player.
If the player speaks to an NPC in the game, and the NPC has a topic of conversation
that the player initiates, then there will be some kind of result set in the game.
This result can take many forms. It can be a result that gives the player an item,
or gives the player some disposition with this NPC. Or it can set a Journal Entry,
or it can result in a choice being given to the player. The choice function allows
for multi-part dialog to be initiated, whereby a number of choices pop-up in the
conversation window. The player selects one of these choices, and the dialog continues
onto the relevant line higher up the grid. To give the set of choices to the player,
you, the game author, will provide choice lines in the result box.
Let's take a look at the Choice line that is 8 lines up from the bottom.
The player is speaking to the NPC called Bjarrn, and the line of dialog given by Bjarrn,
assuming the Journal function condition is met, is :
'So, %PCRace, tell me who sent ye and maybe a can tell ye what you want to know?'.
The Choice is a follows:
choice "Tell him a little racer sent you" 1 "Say never mind" 2
This means that if you select the first choice, then you will get the next
part of the conversation, which is :
'I see, in that case, a'd need to know a can trust ye first.....'. This is two lines up.
If you made the second choice "Say never mind", that would result in the line of
dialog one line up, which is this:
'Right, that's enough, get lost, I don't appreciate bein' messed about.'
And that choice will result in a loss of disposition with Bjarrn:
The correct choice will give the required result:
Journal "FKOA_Red_Hand" 20
This sets the journal for joining the Red Hand to 20, and you then get a quest from
Bjarrn that will show your willingness to work for your place in the faction.
Just a note on the Disp/Index on this line of dialog : 'So, %PCRace, tell me who sent ye..'.
Bjarrn's disposition is set to 80, which means he needs a disposition of 80 before he'll
say this line of dialog. If you think you need more disposition with an NPC then it
might be worth trying to bribe him a few times.
So, let's move forward now to the point at which you've impressed a Red Hand member,
done a few things for the Hand, and now you want to join the faction for real. Take a
look at the screenshot below. You've just approached Karssjon, the faction recruitment
guy, and asked to join the Hand. His reply is on the highlighted line. Let's look at
the Function/Variable values for this line of dialog.
First, you are getting the cold shoulder, since Karssjon does not believe that you
meet the requirements for now. Take a look at the first Function/Variable :
Rank Requirement lt 3. Now, remember the Faction Tutorial and how the first
rank in The Red Hand is the Bruiser. To get accepted in as this rank you must meet
the minimum requirements of Strength 10 and Agility 10. This is the Rank Requirement.
When you achieve the minimum requirements you will have a Rank Requirement value equal
to 3, and you can then be inducted into the faction. Note also that there are two other
requiremtments to be met, viz. the journal entries for the two Red Hand entries. You
must have completed these quests up to the stages shown.
Take a look at the line above that says
'I got the message there was a new kid around..'.
You get to see this line of dialog when you meet the minimum requirements. This line
results in a series of four choices that may, or may not, result in you being give a
final quest to prove yourself worthy. The final choice is the line that starts with
'Steady on lad, ye've got guts..'.
This is where you get a quest to take a letter to Makku in the Ogrim's Spine. Once you
have successfully completed this quest, reporting back to Karssjon will give you a line
of dialog that says
'Well, ye've passed the test %PCName. I'll sign ye up right away..'
Now, look at the line above. This is the line where you're inducted into The Red Hand.
See the image below.
Take note of the results that we set for this line of dialog:
Journal "FKOA_Join_Red_Hand" 30
Note particularly, the line that says PCRaiseRank. This is how the player
becomes the first rank within the faction - a Bruiser. Later, you will see that
by doing quests for the faction members, you will gain experience and, with that,
further rank increases by asking the recruitment guy for 'Advancement'.
set redhandreputation to redhandreputation + 3
So, we've got to the stage where the player has been enlisted into the Red Hand faction.
We'll now take a short break from the faction side of things to take a look at the other
two tabs in section 1 that I spoke about - the Journal and Greetings.
The Journal and Greetings are not necessarily related to the job of joining a faction,
but they are essential for introducing faction dialog and completing faction quests.
Take a look at the Greetings tab in the image below.
Notice in the left column that there are ten lines of greetings. Each greeting is
put into one of ten categories by the original game, but it doesn't really matter
where your mod's greetings go. I chose to put all my greetings into section 1 in order
to make debugging easier. You may wish to investigate the categorisation of greetings
further, then decide where to put your own greetings. As with the topics, greetings
go from bottom to top, and you will see that I have selected my first greeting in the
info/response window. All the greetings above this line are associated with the Five
Let's take a little sidetrack here...you may be wondering to yourself about the
order for the dialog - being from bottom to top. Well, the reason is the Morrowind executable
parses the mod file from top to bottom. In fact, for the greetings section it parses the
greeting categories from top to bottom, and the dialog within each category from top
to bottom. So now you see why I put my greetings in section 1 - because the executable
will find my dialog lines quicker than if they were at the bottom in section 9.
The parsing machanism is looking for the next line of dialog to be presented to the
player based on the executable's local store of variables. It needs to find a matching
line for it's set of variables, and it does this by examining each line of dialog from
top to bottom looking for a set of conditions that match the variables e.g. say, the name of
the NPC that needs the dialog is Bjarrn, and the quest id fkoa_find_bjarrns_axe.
The local variable for the Journal Entry is currently set at 0, which indicates the start of the
quest. So, the parser must find a line of dialog where the speaker is Bjarrn, and where
the condition is fkoa_find_bjarrns_axe=0. There will be just one line of dialog that meets
this requirement. When the parser finds the line, it will return the dialog text to the
executable, which will print it on the screen.
You need to be extra careful with the order of dialog so as to ensure you do not create
a section that allows part of a quest to be skipped. Skipping parts of quests, or even
complete quests will not necessarily result in a broken game. But consider, one particular
quest might deliver an artifact or quest item to the player, and this item could very well
be vital to completing the game. You need to read your dialog lines from top to bottom, like
the parser, and ensure that a line is not read out of sequence. You need to check and double
check your lines of dialog that relate to vital game quests.
Let's get back to the greetings. The highlighted line is the greeting that Lord Vivec gives
to the player on starting the Five Keys quest (ID = vivec_god) AND (FKOA_Main_Quest = 0).
Once given this greeting from Lord Vivec, you will always get this greeting from him until the game
variables have been set to different values. In other words, the FKOA_Main_Quest value has been set
to something other than 0 i.e. the beginning of the next stage of the quest.
So, the player talks to Lord Vivec and he gives you the line
Greetings again Protector of Morrowind. I presume you have returned...
In game you would then choose the Five Keys topic and get the quest details. That topic would
set it's result value to be the next stage of the FKOA_Main_Quest e.g. 10. Now, when you
initiate a conversation with Lord Vivec you will see the relevant greeting, one line above..
Greetings again Protector of Morrowind. I trust your endeavours...
Take a look at that line in the CS. You will see that the condition for that line is
(ID = vivec_god) AND (FKOA_Main_Quest > 0).
The most difficult part of building a quest mod is getting the Greetings and Topics to
interweave correctly. They are both in their own sections on different tabs, but they must
co-operate with each other perfectly, otherwise the greeting you get will not relate to the
quest topic that you are about to start - and that is very distracting to the player.
Now, let's look at the Journal tab. Take a look at the image below which shows the Five Keys
main quest selected in the left hand column, and the first line of this quest at the top of the
right-hand pane. Note, the Journal Entries always appear on this page in top-to-bottome order -
just to confuse you :). I always put the name of the quest on line 1 of the right hand pane, then
number the rest of stages in increments of 10 e.g. 10,20,30 etc. This allows you to go back later
and put stages into the quest sequence that you might have forgotten about by using the
None of the conditions in this screen, which is similar to the Topics screen, are used
for Journals. The only bits that are used here are the full line of dialog and the boxes at
right-top above the Function/Variable. These boxes are Quest Name, Finish, Restart and Index.
Line 1 has the Quest Name box ticked. The Index is the value you see in the disp/index column,
and indicates the stage number. The Finished box is ticked for the last stage of the quest.
That's all I'm going to say about the Journal screen. It's quite simple and straightforward,
and you will get the hang of it very quickly.
We'll now continue to work our way through the faction process.
We'll look at common examples of faction dialog to see how to handle each aspect of
managing a faction. Take a look at the screen below - it's a cut down version of the original.
This example shows how to handle a 'join faction' request when the player is already a
member of that faction.
But, how do we test for membership? We use the Function called 'Same Faction', then
test to see if the condition is true. Thus
Function Same Faction = 1
The Speaker Condition->Faction must be the name of the faction i.e. fkoa_red_hand.
The resulting line of dialog delivered to the player is
Yer already a member o' The Red Hand, %PCName.
Notice the %PCName. This notation beginning with a % sign is how we print the player's
name on the screen. There are lots of these shortcuts e.g %NextPCRank indicates the
next rank in the faction - Brawler, which follows Bruiser.
What about when the player gets expelled from the guild? Take a look at the image
below. Faction is fkoa_red_hand. Rank is Slayer, because only members of rank Slayer
or above can expel, clear or induct new members. The Function/Variable is PC Expelled,
and this must be equal to 1 which indicates True, the member has been expelled. If all
these conditions are met, then the player receives this line of dialog when he asks to
Ye've been expelled from the Red Hand....Do you wish to clear yer name?
Notice that there is a result here for the players response 'clearing' his name. It's a choice
choice "Yes I do" 1 "No. Why should I?" 2
Look at the two choice lines above this line which show the dialog returned by choices 1 and 2.
Choice 1 gets the player re-instated, and the result is the code that does it
This clears the 'PC Expelled' flag, re-instating the player.
Should the player be expelled a second time, then he will not be re-instated. This is achieved
by setting-up a global variable called 'expfkoa_red_hand' at the start of the game. When the
player is expelled a second time the system sets this flag to a value of 1 meaning the player
is permanently banned. Please note that the global I set up is wrong - expRedHand. It must be
in the form expNAMEOFFACTION.
Finally, Advancement within any of the factions in Morrowind is achieved by setting
lines of dialog under the topic 'Advancement'. The Red Hand faction can appear anywhere
within this section, but all lines must be together in a block. I will summarize the
Congratulations pal, the Red Hand recognises %PCName as %PCName, the %NextPCRank.
Faction: fkoa_red_hand, Rank:slayer, PCFaction:fkoa_red_hand, Function:Rank Requirement=3
Result: PCRaiseRank "fkoa_red_hand"
Yer devotion tae the Red Hand is notable but you still need more experience. Increase yer trainin' and practice your skills to become %PCName the %NextPCRank.
Faction: fkoa_red_hand, Rank:slayer, PCFaction:fkoa_red_hand, Function:Rank Requirement=2
We think yer well talented %PCName but some o' the lads question yer loyalty. Carry on wi' yer duties an there'll come a time when you earn your place.
Faction: fkoa_red_hand, Rank:slayer, PCFaction:fkoa_red_hand, Function:Rank Requirement=1
Nae, yer not ready yet. Perform more duties and practice your skills before ye ask again.
Faction: fkoa_red_hand, Rank:slayer, PCFaction:fkoa_red_hand, Function:Rank Requirement=0
I can't advance you anymore, %PCRank. If ye wanna go further ye'll need tae talk with Sorondar himself.
Faction: fkoa_red_hand, Rank:slayer, PCFaction:fkoa_red_hand, PC Rank:slayer
Well, %PCName, a never thought ye'd make it this far, but ye have. Ye deserve more for all the effort ye've put in, so a'm promoting ye te %NextPCRank. Well done.
Faction: fkoa_red_hand, Rank:Thunderbane, PCFaction:fkoa_red_hand, Function:Rank Requirement=3
Result: PCRaiseRank "fkoa_red_hand"
Nae, yer not ready yet. Ye need te get a bit more experience before a can promote ye. Keep up the good work, an' am sure ye'll get there eventually.|
Faction: fkoa_red_hand, Rank:Thunderbane, PCFaction:fkoa_red_hand, Function:Rank Requirement<3, PC Rank:slayer
So ye want advancement %PCRank? There's not much further ye can go unless yer plannin' on taking my job! Have a think about it and we'll discuss it later. For now though, I have some orders for ye.
ID: fkoa_sorondar, Faction: fkoa_red_hand, PCFaction:fkoa_red_hand, PC Rank: Mighty slayer
But yer the Thunderbane %PCName. There's none higher in this brotherhood?
Faction: fkoa_red_hand, Rank:slayer, PCFaction:fkoa_red_hand, PC Rank:Thunderbane
Ye've broken all the brother's rules of the Red Hand. Make amends or ye'll never make another rank in the Hand.
Faction: fkoa_red_hand, Rank:slayer, Function:PC Expelled=1
What yer goin' on about %PCRace? What advancement? Sounds like ye've lost it pal.
Faction: fkoa_red_hand, Rank:slayer, Function:Same Faction=0
This concludes the fation tutorial.
In this tutorial, you have learnt how to use the Dialog creation screen to create dialog for an
existing faction. See Tutorial 5 for creating the faction from scratch. Each facet of faction
membership has been discussed - joining, getting expelled, re-joining, permanent expulsion, advancement.
Here's an updated version of the keyboard shortcuts that you have learnt so far.
- Keyboard Shortcuts
Up, Down, Left, Right------------------- Landscape Editor - move to cell
H --------------------------------------------- Landscape Editor
B --------------------------------------------- Borders
T --------------------------------------------- Zoom to Top View
C --------------------------------------------- Zoom to Ground Level View
LShift/Mouse ------------------------------ Move object/s around
MouseWheel/Move mouse ---------- Move your viewpoint or zoom-in/zoom-out
Z/LeftMouse ------------------------------- Move object up/down
CTRL-C, CTRL_V and CTRL-X ------ Copy, Paste, Cut
In the next tutorial we'll tackle further dialog topics in the Morrowind Construction Set,
including quest creation and greetings.
You can contact me here if you wish
to make any comments or suggestions for further tutorials. Or try the Morrowind-Oblivion Forum. I'm
always on-hand to answer your questions.
Here are the other Morrowind Construction Set Tutorials :
Morrowind House Mod Tutorial 1
Morrowind House Mod Tutorial 2
Morrowind House Mod Tutorial 3 & NPC Tutorial
Morrowind Landscape & Region Tutorial
Morrowind Faction Tutorial
You can find the Oblivion Tutorials here :
Oblivion Quest Tutorial
Oblivion Scenery Tutorial
Oblivion House Mod Tutorial