Fantasy
Skyrim Special Edition: Add a Custom Quest to an NPC (Part 1)

Skyrim Special Edition: Add a Custom Quest to an NPC (Part 1)

First of all, I hope you have your Creation Kit up and running, and if you have any issues check the fix links at the end of this posts.

In my first tutorial I showed you how I made my NPC Owen, a potential follower.

Now I want to spice things up a bit and add a tiny quest you must complete before he agrees to follow you.

Owen is a bit of a thief and doesn’t trust people so much, so he needs to see if you are worthy of his service 😀

First of all, since he won’t be following you right away, we need to delete the relationship with the player we created in the first tutorial (or if you are making the NPC now, just skip that part, so the “Relationship” tab must be empty).

Now we create a new Quest. From the Object Window click on “Quest” and right click on the list to select New.

Give it an ID (for example AWQowen1) and make it a Side Quest.

Priority will be 60 and the starting event will be “change location event”.

This way the quest will start only when you enter a specific cell (I find it a better solution so it won’t mess up the rest of the save).

Click OK and save your plug-in.

Now we go back to the Object Window and look for “SM event node”.

Double click on “change location event” and then right click to add a new quest node.

Give it an ID (AWQowen1questnode) and select “shares event”

Then right click on the quest node > add quest > and select the name of your quest (AWQowen1)

Now we need to add a couple of conditions for the quest to start.

Right click > New > and select GetEventData > Gets ID – new location – then choose your location from the dropdown menu (I choose RiftenBeeandBarb)

Right click > New > GetQuestRunning > select your quest ID (AWQowen1) and == 0

We already created the NPC (and placed it in the world – at the Bee and Barb in Riften in my case), now we need to create another object, that will be the thing you’ll have to find and bring back to him.

I went to Weapon and chose an enchanted ebony dagger. Right click and Duplicate.

I changed the ID to AwhOwensDagger and named it “Owen’s Lucky Dagger”.

Confirm you don’t want to create a new one and yes, you sure. Save your plug in.

Let’s go back to our quest now. Double click (AWQowen1) to open again and you’ll have a lot more tabs now.

First we need to create some Stages. For this one we only need 4, so right click > New, and add stages 0, 10, 20, 30.

Stage 0 is where the quest starts so check the box “Start Up Stage”.

This will activate the quest when we enter the Inn as we already said before when we created the node.

For the player the real game starts from stage 10, after we talk to the NPC and he gives us the quest.

So we’ll need to create some dialogue.

But first let’s get to the Quest Aliases tab, so we get this out of the way.

For this simple quest we need 3 aliases (they are basically shortcuts for the actors and items we need for the quest).

The first will be our NPC, Owen.

Right-click on the table and then left-click on New Reference Alias. Let’s call it Owen (Alias Name), then select below “Unique Actor” and find your NPC ID in the dropdown menu (AwhOwenFollower).

That’s it for now. Since the whole Alias tab is probably bigger than the screen and you won’t see the OK button, just click back on the Alias Name and press Enter.

You should have the new alias show up in the list.

Now we need to create the alias for the dagger and the alias for the container where the dagger will be stored.

I’ll place it in an urn in the dungeon I’ve chosen for the quest, which is Soljund’s Sinkhole.

Before doing anything, let’s go back to the Cell View and find the place where the urn is located. Double click “SoljundsSinkhole01” from the Interiors list and you’ll see the actual dungeon in the Render Window.

Just drag around with your mouse wheel to find the spot you like and locate the urn or chest or whatever place you want to put your quest object.

Leave it there for now and go back to the Aliases tab.

Right-click again on the table and select “New Reference Alias”. Let’s call it OwUrn this time.

To locate the Urn click on “Specific Reference” and then “Select Forced Reference”. Now click “Select Reference in Render Window” and double click on the urn (or chest or whatever) you’ve chosen.

Click ok and, as we did before, click the Alias Name and press Enter. The second alias is done.

The third one will be Owen’s Lucky Dagger. So, again, right-click > New Reference Alias.

Let’s call it OwensDagger. This time we have to “create” the dagger inside the urn, so we chose “Create Reference to Object”. In the dropdown menu we select the ID of our dagger (AwhOwensDagger) – no need to define a level since it’s just an object – and then “Create IN” and from the drop down we select the Alias of our urn (OwUrn).

One last thing, since the dagger it’s important for the completion of the quest, we need to make so that you can’t drop it or sell it when the quest is still active, so on the top right you have to check the box “Quest Object”, this way it will be protected and won’t broke your quest.

Now back to the Alias Name and click enter.

We now have all the aliases we need and we can proceed with all our quest stages.

How does our quest is supposed to work?

You go to Owen and talk to him, he offers you a job, you accept and go retrieve his loot, then go back to talk him, give him his dagger back, and the quest is complete.

How we do that?

Stage by stage.

As we saw before, stage 0 is when the quest is activated. Nothing has happened yet, but the game knows that some stuff is supposed to happen if you do certain things.

The first thing to do is talk to Owen, so we need to create a dialogue.

To do so we go to Dialogue Views. Here we have a visual of all our dialogue branches. At the end of the quest, this is what we are supposed to get:

To get things started we have to right-click on the EditorID column and click New. Give it a name (AWQowen1Dialogue for example).

Here’s how to make a dialogue, step by step:

1) Go to the white space on the right and right-click > Create branch.

This will be the first line of our dialogue. We must give it an ID (AWQowen1Branch1 or something) and a Topic ID (AWQowen1Branch1Topic – there are a lot of IDs to give to each parts of the dialogue and they must be unique or you’ll get an error message. It’s kinda annoying but that’s how it works XD) and the first yellow square will appear.

2) Now double click on the Topic name to open a new window where we will create the first line of dialogue.

We already gave it an ID, now we have to enter the “Topic Text” which will be the line we say to Owen when we speak to him.

My line is “Why are you staring at me?” (but you can say things like, Hello, Do you need some help, etc. depending on your quest and what is supposed to happen).

In the “Info” column we right-click > New to add Owen’s response. Another window called Topic info will come up. Don’t be scared. Here’s a picture:

Prompt is just for when you want the text showing in the game to be different from your Topic Text, but usually it’s not necessary so you can leave it blank.

If you right-click under Response Text > New, you can add Owen’s answer (in my case it’s “Looking for work?”) so you’ll get yet another window full of weird stuff. We’ll get to this later.

For now just type your response in the Response Text box and click OK.

3) Back to our previous window, other important things must happen in the Conditions table.

We need to let the game know who is saying this dialogue and when he’s saying it.

Right-click > New, and select “GetStage” under Condition Function.

Under Parameters, select the ID of your quest (AWQowen1). We have to tell the game that this dialogue happens only when the quest has just started and we haven’t moved to stage 10 yet, so we choose the sign of minor “<” under Comparison, and we type “10” under value. Click OK.

The second condition is that only Owen can say that line of dialogue so you won’t have random NPCs saying that for no reason. To do this we add another condition (right-click > New) and this time we select “GetisID” as a Condition Function. The Parameter will be Owen’s ID (AWhOwenFollower) the rest should remain == 1.

Now we made sure that only Owen will say that and it will only say it at the start of our quest.

4) Time to make him actually speak! He needs to have a voice, an expression, and even move his lips while talking. So how we do that?

Let’s get back to the Response and double click on “Looking for work?” to get that other scary window back.

We already added the response text, and we can leave all the other stuff alone. Jump to the Audio box.

You can choose the Emotion Type if you want your NPC to have some particular expression, like being happy or sad or angry etc. and you can choose the value from 0 to 100 (I usually stick to 50).

To actually give him a voice you have different options:

– You can record your own voice

– You can get the voice files from the game to make a sentence that matches your needs

– You can use a voice file recorded by a voice actor or whoever is helping you with the mod.

The quickest and easiest way is to use your voice and record it on the spot.

You’ll see on the Voice Type table that you already have a voice type, which is the voice type you gave to your NPC when you created it. Just click to select it and then hit “Record”. If you have a microphone you can speak your line and it will be recorded in the game Data folder. Click Save when you’re done.

Now click again on the voice type and click “Generate Lip File: From WAV” this will create a lip file based on your audio so that when the NPC speaks his mouth will actually move accordingly.

Make sure that “Has LIP file” is selected in the Topic window.

[*Note: if you have issues generating the lip file check the bottom of this post for possible solutions]

Since my voice doesn’t suits Owen at all, I need to use an external voice file, which I will replace when everything is done, but for now, I still need to create a voice file so what I do is hit “Record” and let it record a few second of silence. Now where it says “Voice Filename” copy the file name and save it somewhere on a text file because that’s the name you’ll have to give to your voice file when you replace it.

[** I’ll add a quick guide on how to do that with original voice or using the in-game voices at the end of the tutorial].

We did everything we could for now, so click OK and let’s move on.

Click OK again to close the Topic Info and OK again, and we are back on the Dialogue View.

The first line of dialogue didn’t do much for now because we still have to reply to Owen’s question.

Are we looking for work?

If we just click out of the dialogue during the game, nothing will change. And when we get back to Owen we’ll still have the same prompt and reply. So we need to add another topic to make the dialogue continue and we have to make sure that they are all connected.

Right-click on the yellow square around your first topic and click Add Topic.

The same window will pop up and we have to repeat all we did when we clicked Create Branch, from point 1 to 4.

This second topic is us replying “Depends on the work and what’s in it for me.”

While Owen says “I probably shouldn’t tell everyone who asks. This is important business, you know.”

But this time, we only need one condition which is “GetisID” AWhOwenFollower == 1.

There is no need to add again the stage quest condition because this line of dialogue will pop up only after Owen said the first one.

To make sure that this happens we have to go back to the Dialogue View. Click on the text “Looking for work” and when the cursor turns into a little hand, drag it onto the second line of dialogue. You should have an arrow now connecting them (like in the first picture above).

Since we have more dialogue to do, we keep repeating the same thing with the next lines.

Now we are playing around a bit and we say “Fine, I’ll be on my way then.”

And Owen replies “Now wait a minute… If you really want to do my job for me… Here, I’ll mark the location on your map.”

Again the only condition to this dialogue is “GetisID” AWhOwenFollower == 1.

We do again the arrow thing connecting the previous line to this and we create another topic and so on.

Player: What’s this?

Owen: We tunneled into an old Nordic crypt. The whole place is crawling with draugr.

Player: And you made it out alive?

Owen: I was lucky.

Player: But you didn’t get your treasure, and you want someone to get it for you?

Owen: I can pay you.

All these topics are basically the same. It’s just a back and forth and if you click out of the dialogue in game and get back to Owen it will just repeat them. The Quest is still at stage 0.

Now we finally get to the point where we take the job and the quest progresses.

We add a new topic, connected to the last one.

Topic Text: Fine. I’ll go check the place and see what I can do.

Response: Good to hear.

The condition is still the same (“GetisID” AWhOwenFollower == 1) but now we have to add a couple more things.

First of all we tick the box “Good bye” under the Response Text, so that when Owen says this line, the dialogue will end.

Then we have to add a bit of script to tell the game that this is when we start stage 10.

In the Scripts box below, where is says “End: Papyrus Fragment” we type this:

GetOwningQuest().SetObjectiveDisplayed(10)

GetOwningQuest().SetStage(10)

And click compile.

What this does is tell the game that when this dialogue ends, the quest stage goes to 10 and the related objective must be displayed.

Click OK to all the things and go back to the Quest Stages tab.

Now it’s time to compile the log so that the quest appears on the player journal.

Right-click under Log Entry and select New.

Here in the white box we write the text that will be the description of our quest stage, like “Owen offered me a dangerous job in a place full of draugrs.”

Then we go to the Quest Objectives tab.

Right-click under Objective Index and select New.

In Quest Objective Data > Index: 10 – Display text: Retrieve Owen’s Loot

This will show up as the objective on screen when the quest starts and will be listed in the active quests in your journal.

Last thing to do, under Target Ref, right-click > New, and from the Target Alias dropdown select OwensDagger.

This way we’ll have a map marker that will guide us to the location of the dagger.

Since it’s getting a bit long, we’ll see the rest of the stages in the next post! And don’t forget to save your mod often!


* Read this if you are having problems with the lip files or other CK issues.

The Creation Kit for Skyrim SE doesn’t come with the lip sync thingy, but you can find a fix here: https://www.nexusmods.com/skyrimspecialedition/mods/40971

And in general, if you haven’t already, download this fix that will solve a lot of issues: https://www.nexusmods.com/skyrimspecialedition/mods/20061  

If the CK crashes when you open the Dialogue View, try to save your plug in and open it again. If it still doesn’t work go to your game Data folder, open the DialogueViews subfolder and sort your files by date, the most recent one should be the one related to your quest (of course if you just saved your mod – make a copy just in case). Try deleting it and reopen your plug in. You should need to rearrange all the branches connections and reorder the topics by dragging them around but it should be back to working now. Save again.

Leave a Reply

Your email address will not be published.