A beginner's guide - Appendix 1

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search


Appendix One: The Quest Window[edit | edit source]

Open the quest window, using either the menus or the Q icon on the shortcuts bar. On the LHS is a long list of the quests used in the game. Many have prefixed names that refer to the main storylines they are part of.

MQ - Main Quest
Arena - Arena Quest
MG - Mages guild
TG - Thieves guild
Dark/DB - Dark Brotherhood
DA - Daedric Quests
FG - Fighters guild
Training - Master Training Quests
SQ - Settlement Quests
House - Buying a House Quests
MS refers to Miscellaneous Quests.

You might also spot quite a few of those hidden quests that control character interaction. We will return to these in a later tutorial. Let's press on.

Select MS02.

MS02 is the unique quest id. All quests are identified in the game by a unique reference id. This opens up the Quest Details for "Where Spirits Have Lease". Along the top are a series of tabs, which contain the information that runs the quest. We will look at these in turn.

Quest Data[edit | edit source]

Quest Name
This is the name of the quest as it will appear in the player's journal. In effect, this is the chapter heading for your part of the players story.

Priority (value 0-100)
I've read a lot of confusing and conflicting advice about the Priority Setting you should select. When you talk to an NPC, or they talk to each other, their dialogue is assigned by the priority. The dialogue for higher priority quests will take precedence over the dialogue of lower priority quests.

This is most obvious in the greetings you receive as you progress through the game.

The table below shows the conventions used in Oblivion.

Priority Type
1 Tutorials
5 Generic Activities quests
10 Non-quest Dialogue
20 House & Horse quests
40 Training & Vampire quests
50 Miscellaneous quests
60 Guild quests
85 Main story quest
90 Crime & Character Gen quests

This is not a set of hard and fast rules but a convention. You can break it and set your priority to any level up to 100. But, it seems sensible to stick to the convention unless you have a very good reason to break it. This quest has a priority of 50. This means that if you happen to be carrying out a Guild or Main quest in Anvil, and it is active, the game will suppress dialogue which relates to this miscellaneous quest ("Where Spirits have Lease") until you finish the stage you are on.

Quest Scripts (see later section on SCRIPTS for more details)

For now, all we need to know is that a Quest Script is a set of coded instructions (called a script) that applies to the whole quest and runs every 5 seconds or so. It checks if certain conditions are true, and then does some actions.

Start Game Enabled

If this box is checked, the quest is active at the beginning of the game. If you scan through the list of quests you will find that a very large number of quests including this one are START GAME ENABLED.

In other words these quests start as soon as you begin the game and find yourself in that prison cell. They run quietly away in the background until an event triggers them to show themselves.

If we add a mod that is START GAME ENABLED, it will be up and running as soon as a user loads it. We need to be aware of the consequences of this in terms of scripting. If we choose not to check this box, the quest will remain inactive until we use the correct Script command (StartQuest or StartStage) to set it up and running.

Allow Repeated Conversation Topics

This flag refers only to conversations (dialogue attached to the Conversation tab) between NPCs. Normally, NPCs will never repeat the same topic in the same conversation (for example, when they build a conversation, they are only allowed to use the InfoGeneral topic once). In most cases, this flag is irrelevant. You will check it for quests where you have scripted conversations that require repeated use of the same topic within a single "conversation".

Allow Repeated Stages

The vast majority of storyline quests work on the basic idea that each stage is a development that precludes the previous stages. Once you've done stage 10 then it is considered as executed. Any effects that the stage has, like adding a sword or displaying a message, are then ignored in future. Using script functions like SetStage 10 on an executed stage have no further effect. (Other than setting the stage counter to 10).

If this flag is checked, a journal entry will be displayed and the quest stage result scripts will be executed every time SetStage is called for a particular stage number.

Again, the vast majority of the time, we should leave this unchecked.

Add Icon Image

This can be used to add an image file for the quest icon that is displayed in the player's quest log. You will need to have a custom made icon or an icon extracted from the BSA files. (Note these tutorials will not be looking in any detail at texturing or meshing for quite some time).

Quest Conditions

This creates a general set of conditions that influence all dialogue contained in this quest. A few quests have no limiting conditions. A few have multiple conditions.

But the vast majority use the condition :

GetIsPlayableRace == 1. Uh!

This is a script FUNCTION.
It checks that the Actor (NPC or Creature) involved in this scripts dialogue is from a valid playable race.

This means that invalid races like goblins don't greet you and have conversations. It's a kind of catch all condition that says; ok let's keep conversations to Actors that can actually talk.

I like Shadowmere, but it's going to freak me out if he greets me with "You're a sneaky looking sort' every time I go to ride him.


You can combine conditions to form AND conditions, that all must be met.
You can also use the OR flag to add either/or conditions.
This can also be combined with the faction setting to limit or remove general conversation topic from actors.

View Filtered Dialogue Window

This brings up the filtered dialogue window. This is a very useful tool. It enables you to look at dialogue by Quest, by NPC and by Quest and NPC. In other words you can work out who says what, where, when and why?

We will use this a lot when looking at and changing dialogue.

Recompile All Results

All results scripts (on ALL quests, not just the selected quest) are recompiled. Apparently this is a useful debugging tool. I avoid it like the plague myself. I've read too many horror stories about the effect of recompiling scripts.

Export Quest Dialogue

This exports the entire quest's dialogue to a text file in the Oblivion folder. It exports it as a tab delimited text file, and can be hard to read. The same format can be used to import dialogue using the Data/Input menu. Tab delimited files can be imported into spreadsheets and databases, and be exported from them. Don't know any technical details and haven't tried to use this. It's just an observation.

OK lets move on to the next tab.

Quest Stages[edit | edit source]

This is the nuts and bolts part of the quest. Firstly it is important to bear in mind that the Quest Stage 10 shown here is not the beginning of the quest. Because this quest, MS02, was flagged as STARTGAME Enabled, it has been running continuously from the first moment you began to create a character. Every five seconds the game has run the quest script and tried to follow its instructions.

Stage 10 is a discrete set of instructions. It has been quietly waiting for the right trigger to do its thing. So what triggers it?

Well before we see that, lets quickly tour the Quest Stage Tab.

Quest Stage Index

  • Each stage has an index number from 0 to 255.
  • It is common practice to spread these in increments of 10.
  • In theory you could have a quest that has 255 stages but this is unlikely.

Why in 10's?

Because even the best planned quests, can have unexpected results which may require tweaking. Using 10, 20, 30 ... allows you to add an extra stage 15 or 25 in between. If you'd used the numbers 1, 2, 3..., you would have had to rewrite and reassign stages before you could fit in any new stage.

In this quest I'd put a small bet on extra stages being added in development. (Look at the index numbers.)

Quest Stage Items

If you wish, you can add a stage item to your stage. This is a set of instructions to the game. It says when I reach stage XX , I want the program to do all this. If it suits your quest you can leave this blank. This might be the case if all you want to do at this stage in a quest is to enable some new dialogue. Each stage can have more than one "stage item".

Each Stage Item can, but does not need to include:

  • A Journal Entry,
  • A Result Script
  • A Set of Conditions

When the stage is activated, usually by a SetStage function, the game carries out each stage item in order and then internally marks it as done. (See Repeating Stages.) It updates the Journal if appropriate, and runs any result scripts, provided the conditions are met.

Multiple stage items are often conditionalised so that only one is actually run.
This means only one update is sent to the player's log when a stage is set.

Log Entry

This shows the text that is displayed in the player's quest log.

Result Script

These script commands are run when the stage item is applied.

Conditions

The conditions must be true for the quest stage item to be applied.

Complete Quest

If this box is checked, setting this stage will move the quest from the active to completed portions of the player's journal.

[Note that a completed quest can still be running. You have to use a script command StopQuest to disable it completely]

Export Quest Stages

All the text and conditions of quest stages can be exported to a text file. This can then be spell checked and proof read. There is again an import facility on the File menu. (When I tried it - CTD! But that might just be me.)

Quest Targets[edit | edit source]

The Target Tab is used to set a map marker which appears in the world and mini maps to show the location of quest targets like Buildings and NPCs. Depending on the conditions specified for the target, multiple quest targets can appear at the same time. All targets (for the player's active quests) which pass their conditions will be displayed on the player's compass and map.

Target Ref
A target must be a persistent reference.

Conditions
The developers usually limit the targets selected by quest stages, but any valid conditions can be used.

Select Reference in Render Window
The reference can be selected from the render window. All persistent references show a white cursor. Non-persistent references show a red cursor.

Cell & Ref
Alternately, the reference can be selected by using the cell list and the list of references in that cell. Only persistent references are shown in the list.

Compass Markers Ignore Lock
If checked, the path to the quest target will ignore locked doors (when showing the player the closest load door to reach the target). Otherwise, the path will attempt to avoid locked doors if possible.

So how did this quest start?

The answer is in the dialogue.

All the other tabs deal with talking in one form or another. The

Combat
Persuasion
Detection
Service and
Misc

tabs are all special dialogue topic tabs which we will look more closely in later tutorials.

For now let's look at the Topic and Conversation Tabs.

Topics[edit | edit source]

When you click on an NPC and activate them, the program cross references the NPC's dialogue to decide what the NPC will say to you.

Every dialogue begins with a

GREETING:
This topic is used when the player enters dialogue with an NPC. The nature of the greeting is contextualised by a series of conditions. (What progress you have made in quests, your faction, your race, your class etc.)

This is spoken as you enter the dialogue menu by activating the NPC. The Character animates, to turn and face you, and delivers his GREETING.

What appears in the left hand side in the menu is determined by context based statements attached to topics.

Some, like Rumours, are pretty much universal.
Some are limited to a few NPCs in special circumstances.

We will look at these later.

You can create new dialogue topics as you need them by editing and adding topics. (A word of caution here: Take great care to set conditions on dialogue to preventing it being said by every character.)

We can link topics to form a structured dialogue by using the Link from, Topics and Choices boxes on the right hand side to extend the range of Topics that appear for a given NPC.

Any dialogue spoken outside the topic menu in the game is covered by the other tabs - in particular, the CONVERSATION tab.

Conversation[edit | edit source]

A conversation consist of a series of snippets of speech or, as the designers refer to them, infos that are played between two or more NPC's. All random conversations use infos stored in topics listed under this tab.

For example:

GOODBYE (see Conversation Tab)
This topic is stored on the Conversation Tab, NOT the Topics Tab, and is played when the TOPIC menu is closed in the game.

The structure of the random NPC conversations is:

HELLO:
All random conversations start with a HELLO. The starting HELLO must have "Link From" left blank to indicate that it can start a conversation.

INFOGENERAL:
This topic is unusual because it appears both in random conversation and as the "Rumours" topic in dialogue with NPCs. When you ask an NPC about a Rumour, he will pick an info from the INFOGENERAL topic and then "keep" that rumour for 24 hours (so if you ask him again during the same day, he will continue to tell you the same rumour).

GOODBYE:
By default, all random conversations will end with a GOODBYE unless they are ended by another info with the "Goodbye" flag checked.