Quest Showcase -JimmyNutsMD

6 posts / 0 new
Last post
jimmynutsmd's picture
jimmynutsmd
Interior DeveloperQuest Developer
Joined:
2024-02-09 04:01
Last seen:
10 hours 57 min ago

Hello,

This is my quest showcase, I've never done anything with the CS before, so there may be a few things wrong that I didn't catch.

Summary

The quest starts with a Nord Witchhunter in Dagon Fel, the End of the World. There is a Latest Rumors topic in town that points you to him. The Witchhunter tells you he is hunting a sorcerer who fled to Nivalis before he could catch him. He asks you to kill the sorcerer and bring back his staff as proof. In Nivalis, people say that the sorcerer was in town a while ago asking about nearby ancestral tombs, and they direct you to Fovus Selaro at the inn. After persuading him, he tells you that the Duril Ancestral Tomb is the only one on Althoa, and that his friend, Trovan Duril in Tel Rivus, would also reward you for killing the sorcerer. When you kill the sorcerer, he summons a Vermai on death. Telling Trovan Duril you killed the sorcerer results in him giving you an Ancestral Ring, and bringing the staff back to the Witch Hunter in Dagon Fel has him give you a Nordic Silver Mace.

I tried to make it vanilla quest-like, the Vermai thing seemed a little much but I wanted to do something with a death script.

AttachmentSizeDate
Binary Data Quest Showcase.esp14.17 KB2024-02-09 04:19
Ronik's picture
Ronik
Senior DeveloperQuest Reviewer
Joined:
2023-04-16 18:05
Last seen:
3 min 39 sec ago

Hello! Thank you for submitting your showcase.

First of all, the writing is good, and, most importantly, in line with what you would expect from Morrowind’s quests. If you haven’t already, I recommend that you check our Writing and Dialogue guidelines. You tend to overuse comma splicing, so I’d suggest that you take a look at the dialogue in your quest and try to reduce it.

However, there’s a number of, mostly, technical issues that we need to resolve before I can recommend you for promotion. It looks like you have read our quest guidelines only after you started making the showcase and changed some things to account for them, but you didn’t double check everything and some aspects of the quests broke as a result.

Quest flow

Trovan Duril’s role in the quest is very weird to me. I guess he was a last-minute addition to satisfy the showcase requirement to create at least 3 NPCs? Either way, it’s not great to involve a NPC in a misc quest with their only role being to give you a reward, especially when the NPC is so out of the way of the other quest objectives like Trovan is. By tying him to one of the journal stages, you’re also making things more complicated for yourself.

I’ll leave the solution up to you (you can even keep Trovan Duril in, if you want), but there’s multiple ways to satisfy the showcase requirement.

Journal 
  • Journal entries should be sorted by journal index in ascending order. This makes it easier to read and understand the quest progression.
  • Journal entries should be written in the past simple tense.
  • Remove Journal stage 5. Our current standard is to not immediately start quests via a latest rumor entry, as this spams the journal of players who aren’t interested in doing the quest without an option to refuse it.
  • Remove Journal stage 70. Instead of advancing the quest automatically to stage 10 and then adding another journal stage if the player refuses, make it so that the player can refuse the quest before it’s added to their journal at all (but don’t lock them out of the quest!)
  • Following that, you should combine journal stages 10 and 20 into one. In case of misc quests, you shouldn’t force journal entries on players in case they don’t accept the quest willingly (more on that below).
  • The first journal entry should always contain the quest topic (here it’s "hunting a sorcerer") so that the players can easily find all of the relevant dialogue for the quest.
  • As far as the other journal entries go, I like to include the quest topics in journal entries as much as I can for player’s convenience, but that’s just a personal preference.
  • The first journal entry should mention that you need to bring the questgiver the staff to complete the quest. It’s quite easy to forget otherwise.
  • Journal stage 45 can also be removed. You’re (correctly) using the Dead and Item filters in dialogue anyway, so the journal stage really serves no purpose.
  • There should be a safeguard journal stage that finishes the quest in case the questgiver dies before the quest is completed.
  • Generally, the journal stages that finish the quest should have index 100+. This is not a hard rule, though.
  • A very minor nitpick, but the quest ID should be “TR_m1_Niv_Sorcerer”, not “TR_M1_Niv_Sorcerer”.
Dialogue
  • Similar to journal entries, dialogue lines for a quest topic should also be sorted by journal index, but in descending order. When selecting what dialogue line to display, the game checks all of the dialogue lines for the specific topic from top to bottom and displays the first line that passes all of the filtering. Some of the dialogue lines in your quest topic will never appear in-game because of this. 
  • If you’re adding dialogue lines that aren’t filtered to a specific NPC, it’s not enough to filter them to a cell. You also need to add a filter to exclude NPCs with the T_Local_NoLore variable, and a filter for the proper TR_Map variable (in your case =1).
  • If you’re filtering a dialogue line for a single NPC, you don’t need to include the cell filters, unless your quest NPCs move during the quest and you need a way to change their dialogue depending on the location they’re in.

hunting a sorcerer

  • The line Hail friend, would you care to help out a witch hunter in need? I've been hunting a sorcerer in the area, and he's gone beyond my reach. will never appear in the game due to the ordering, as I mentioned above. However, this is fine, as this really should be a greeting (and you’ve already included a greeting similar to this), so you can just delete this line.
  • The line Have you reconsidered? Would you help me with hunting a sorcerer? will also never appear, as currently you advance the journal to stage 70 if the player refuses the quest. However, you have the right idea here - you shouldn’t block the players from doing a quest if they refuse it at first. But, like I said, you don’t need to advance the quest if you just want to display different dialogue after the player refuses the quest. Instead, you can use one of the generic local variables (control or controlQ) and filter out the dialogue using those. You can check some of the TR quests, like Waiting on a Friend, to see how to do this.
  • The line Good luck on your hunt, friend. Bring back the mage's staff as proof that it is done. should mark Nivalis on your map so that the players know where they should be going.
  • The generic Nivalis line There was a High Elf staying at the inn a little while ago. He didn't talk much, but I heard that he was asking about ancestral tombs in the area. should be filtered to not appear after journal stage < 30, since the line only exists to unlock the “ancestral tombs in the area” topic.
  • If the player kills Anredhel before they accept the quest, there should be a dialogue option where the player could tell this to the questgiver (and a dialogue line where the questgiver reacts accordingly, of course).
  • The questgiver needs to have some dialogue for the case when you kill Anredhel, but don’t have his staff in your inventory.
  • Trovan Duril’s dialogue line will give you one Ancestor's Ring and update the journal every time you click on the topic, even when you haven’t started the quest at all. You need to make sure that he gives you the reward only once (I suggest to use the generic local variables for this), and doesn’t give you the reward outside of the quest.
  • Choice dialogue should always have punctuation.

latest rumors

  • Your latest rumor will override all of the other Dagon Fel rumors until the quest is completed. What you’re supposed to do instead is to filter it based on a Random100 global variable, and modify the other rumors in the area so the values don’t overlap. In your example, there’s two other Dagon Fel rumors that already exist in vanilla. One is currently filtered to Random100 < 50, while the other doesn’t have the Random100 filter. So if you want to give all three rumors (roughly) a 33% chance to appear, you need to give your rumor a Random100 < 66 filter, edit the first vanilla rumor so it has a Random100 < 33 filter, and you can leave the third one as is.
  • It’s good practice to group the rumors for an area together, meaning you should recreate your rumor so it’s right next to the vanilla Dagon Fel rumors.

ancestral tombs in the area

  • Regarding the generic Nivalis line - there’s multiple Dunmer in Nivalis, not just Fovus Selaro, so either there should be another generic line for the Dunmer, or you could just change the dialogue so that every Dunmer in Nivalis could advance the quest.
  • IMO it’s a bit weird that the random commoner Fovus Selaro would be the local expert on ancestral tombs, so I think that the latter would be preferable.

Greetings

  • Usually, the questgiver should have at least three unique greetings: one before you start the quest (this one already exists), one during the quest and one after you finish the quest.
  • Anredhel’s Greeting 1 should be filtered to only appear when the quest is active.
NPCs

TR_m0_Rogvard

  • When you’re adding NPCs to Vvardenfell, you should still assign them the Map 0 script from Tamriel_Data (T_ScNpc_Mw_Map0)
  • 300 gold is a bit too much for a low-level questgiver to carry around.
  • Generally, usage of Bloodmoon weapons is to be avoided outside of Solstheim (with exceptions, of course). Please give the NPC some fitting vanilla or Tamriel_Data weapons.
Items

All items that you add as part of your quest need to follow the TR naming convention. TR_m1_q_SorcererStaff is fine, c_LetterFromGoris isn’t.

Scripts

TR_m1_q_Sorc

  • You’re using what I assume are the placeholder NPC and quest IDs in the script, so the script doesn’t work at all.
  • The script should declare the T_Local_NoLore variable so that you can filter out generic dialogue from Anredhel’s topics. Enemies in the wilderness generally should have this variable to avoid corner cases where they would say unfitting dialogue when the players use the Calm Humanoid spell on them or something.
  • I’m not exactly sure what’s the intention with the ForceGreeting in the OnDeath block, but dead NPCs can’t talk.
  • The journal should only be updated when the player already started the quest, but like I mentioned above, I would prefer that you get rid of the journal stage 45 anyway.
  • Similarly, Anredhel should only force greet the player and summon the vermai when they have already started the quest. It would be a bit weird for people that would just stumble upon him when exploring.
  • If you want Anredhel to force greet the player during the quest, it would be good if he would only attack you after the force greeting. It’s weird when he starts blasting you immediately once he spots you, and force greets you once you get a bit closer.

This might seem like a lot of issues, but like I said - the writing is good, and the rest just takes a bit of practice. I trust you to get there quickly :) Feel free to ask us any questions in the #showcase-shadowgate channel on Discord.

 

jimmynutsmd's picture
jimmynutsmd
Interior DeveloperQuest Developer
Joined:
2024-02-09 04:01
Last seen:
10 hours 57 min ago

Hey, I went back and made the changes you suggested, let me know what you think now.

AttachmentSizeDate
Binary Data Quest showcase v2.esp15.28 KB2024-02-18 00:00
Ronik's picture
Ronik
Senior DeveloperQuest Reviewer
Joined:
2023-04-16 18:05
Last seen:
3 min 39 sec ago

Great job! This is a great improvement, even though a few issues still remain. I reckon one more pass will get us there 🙂

Journal

Issues that have remained since the previous version:

  • Journal entries should be sorted by journal index in ascending order. This makes it easier to read and understand the quest progression. - This is not a huge deal as it has no functional impact to the quest, but it was not fixed
  • Journal entries should be written in the past simple tense. - This was not fixed, most are still in past perfect
  • The first journal entry should mention that you need to bring the questgiver the staff to complete the quest. It’s quite easy to forget otherwise. - This was not fixed
  • A very minor nitpick, but the quest ID should be “TR_m1_Niv_Sorcerer”, not “TR_M1_Niv_Sorcerer”. - This was not fixed

New issues:

  • The first journal entry should include some directions to the first objective (i.e. The last time Rogvard saw Anredhel was when he boarded a ship to Nivalis on the island of Althoa.)
Dialogue
  • If you’re using the “Dead” dialogue filter, you should filter for >= 1 instead of = 1. This can help to avoid issues for players that update their TR version midgame (in cases where they would kill one copy of the quest NPC before the update and one copy after the update).

hunting a sorcerer

Issues that have remained since the previous version:

  • Trovan Duril’s dialogue line will give you one Ancestor's Ring and update the journal every time you click on the topic, even when you haven’t started the quest at all. You need to make sure that he gives you the reward only once (I suggest to use the generic local variables for this), and doesn’t give you the reward outside of the quest. - This was not fixed, you can still get infinite rings from Trovan
  • Choice dialogue should always have punctuation. - This was not fixed

New issues:

 

  • The line There was a High Elf staying at the inn a little while ago. I don't know what he was doing here, he didn't talk to any Dunmer. probably shouldn’t advance the quest to journal entry 20.
  • The line Thanks again for killing him for me. is too low in the order and won’t appear. It needs to be moved higher so it isn’t overwritten by other lines (you can even move it to the very top). At the moment, Rogvard keeps repeating that he needs to see the sorcerer's staff after you finish the quest.
  • The line Prepare well before venturing to Althoa, friend. I've heard there are creatures even more dangerous than Anredhel there. is the first time Rogvard mentions Althoa. In the first line, he only mentions Nivalis. This can be a bit confusing to players not familiar with the geography of the area and the name of the island. Either he should mention that Nivalis is on the island of Althoa, or don’t mention Althoa at all.
  • The approach you’ve chosen to solve the edgecase where the player kills Anredhel before the quest starts works, but is a bit clunky - like, how does Rogvard immediately know that the player has killed Anredhel without even telling the player his name? There is a much cleaner way to do this, though.
    • You might already know this, but you can use conditionals in the dialogue result box. Meaning, you can make a check for, let’s say, if a NPC was killed or not, and based on that, offer the player different choice dialogue.
    • So instead of instantly moving the quest to another stage, you can instead have Rogvard explain the situation, and then give the player the option to respond that they have already killed Anredhel - completing the quest if the player has the spear, advancing the quest if not.
    • Check the very last dialogue line in the “package from Hammerfell” topic to see what I exactly mean..

latest rumors

  • The Random100 settings are now correct. The rumor should still be filtered out either when you accept the quest, or when you complete it. Vanilla doesn’t always do this, but it’s good practice.

ancestral tombs in the area

  • The line The only ancestral tomb on Althoa is my family's. You think this sorcerer may be hiding there? To get there, take the road out of Nivalis to Bahrammu. Take the road east out of Bahrammu, then go north once you get to the coast. If he's there, kill him. I'll have something for you if you do. should mark Bahrammu on your map.
  • The line The only one I know of on Althoa is the Duril Ancestral Tomb. If it's urgent, Trovan Duril could probably give you directions. needs to mention where you can find Trovan Duril, otherwise you could just wander around Nivalis forever.

Greetings

  • Usually, the questgiver should have at least three unique greetings: one before you start the quest, one during the quest and one after you finish the quest. - This was not fixed
Scripts

TR_m1_q_Sorc

  • Forgot to mention it previously, but the standard naming for NPC scripts that we’re using now is TR_m#_NPC_”NPC_Name”. This is not a big deal, though, so you don’t need to fix this.
  • It’s great that Anredhel doesn’t forcegreet you and summon the vermai if you haven’t started the quest now. However, if a player would come across him outside of the quest, a non-hostile Altmer standing around in an ancestral tomb is just a bit too obviously a quest target and breaks the immersion a little. I would suggest that you make him attack the player outside of the quest by manipulating his Fight value (see SetStat). You can just add the command inside of the check for the quest stage.
  • You don’t need to implement this to pass the showcase, but it would be nice if there was a sound and visual effect when the vermai spawns. There’s a couple of ways how you can do this (e.g. you can check how spriggans work).

TR_m0_q_Rogvard

  • Any NPC script added by TR has to declare the T_Local_NPC, NoLore and TR_Map variables for correct dialogue filtering, even though their values will be 0 in Rogvard’s case.
Comma splicing

I already mentioned comma splicing the last time, but there’s still plenty of it in the second version of the showcase. I’m going to give you some examples:

  • I wouldn't know, the Dark Elves around here don't like to talk about their burial practices with outlanders. -> I wouldn't know. The Dark Elves around here don't like to talk about their burial practices with outlanders.
  • Take this, you deserve their protection more than I do. -> Take this. You deserve their protection more than I do.
  • I don't know what he was doing here, he didn't talk to any Dunmer. -> I don't know what he was doing here. He didn't talk to any Dunmer.
  • Good work, here is my spare mace as promised. You can keep the staff as well, I have no need of it. -> Good work! Here’s my spare mace as promised. You can keep the staff as well -- I have no need of it. 

This isn’t a huge issue, but I’m going to bring up our Writing and Dialogue Guidelines again. Please try to keep them in mind. :)

jimmynutsmd's picture
jimmynutsmd
Interior DeveloperQuest Developer
Joined:
2024-02-09 04:01
Last seen:
10 hours 57 min ago

Hey I think I'm getting better at this. I've been getting a lot of practice with questing from making separate mods, so I was able to fix all this pretty quickly. Sorry there were still issues the second time, this one should be good. I made a checklist this time to make sure I hit everything.

AttachmentSizeDate
Binary Data QuestShowcase v3.esp16.54 KB2024-02-20 02:27
Ronik's picture
Ronik
Senior DeveloperQuest Reviewer
Joined:
2023-04-16 18:05
Last seen:
3 min 39 sec ago

Good work! There are still some minor issues, but by this point, I think you have already demonstrated an understanding of dialogue and scripting.

Recommending for promotion!