randonaut Quester showcase

16 posts / 0 new
Last post
randonaut's picture
randonaut
DeveloperQuest Developer
Joined:
2018-07-14 07:46
Last seen:
1 week 3 days ago

Hello everyone!

Long-time lurker here, finally decided to get off my ass and contribute to the project. For my quest showcase, I implemented an unclaimed quest called "The Voice to Calm Me Down". I tried to be faithful to the original quest idea, but since this isn't an actual claim, I also took some creative liberties. This can of course be changed for the actual claim if necessary.

Please review the file and let me know what I can do to improve it and bring it up to TR's standards! And thanks in advance for your consideration.

P.S. The shack of Nelyn Fathis has no interior. Since this is a quest showcase I was hoping it would be OK to leave it like that for now. My interior/exterior skills still need some work. Currently the quest itself is functional without the interior.

AttachmentSizeDate
Binary Data Clean rando_showcase_715.ESP61.09 KB2018-07-14 08:01
The Violet Euphemism's picture
The Violet Euphemism
DeveloperQuest Developer
Joined:
2017-10-30 13:01
Last seen:
7 hours 5 min ago

Okay, so I decided to playtest this (haven't checked if it's clean nor have I check any of the endings outside the "He worships Dagon" one, so this isn't a full review). First off, I'd like to say welcome aboard and this was a fun quest, I didn't notice any glaring spelling mistakes, but that doesn't mean this is exactly bug free. Here's what I got so far:

​​​​​​​- This quest relies on TT_Mainland.esm, whereas this should be relying on TR_Mainland.esp (which you can find here: https://www.tamriel-rebuilt.org/releasefiles/trmainland-2045)

- Make sure that the hetman either directs the player to where they can get Calm Humanoid scrolls/spells (either one is fine), or gives you one or two himself.

- From OpenMW's comments:

error [dialogue script] line 3, column 12 (RemoveTopic)
    Unexpected name
Warning: compiling failed (dialogue script)
Journal "TR_m3_Sa_TheVoice" 50
ShowMap "Tel Muthada"
RemoveTopic "Nelyn's voice"

(Haven't checked in the CS to see what happened, but I wouldn't be surprised if it was something simple and obvious, these things usually are.)

- The enchanter's dialogue has both "a new voice" and "my collection" topics, a new voice is quest based and my collection is flavor. This is perfectly fine to me, but my collection should really link up to a new voice to make sure a new voice is found if they don't immediately see it. This one isn't really a big deal and more of a stylistic complaint, so I'll leave the decision to you.

- Another resultbox error OpenMW pulled up:

error [dialogue script] line 4, column 12 (RemoveTopic)
    Unexpected name
Warning: compiling failed (dialogue script)
moddisposition -100
StartCombat Player
Journal "TR_m3_Sa_TheVoice" 80
RemoveTopic "a new voice"
Goodbye

That's all I got so far.

Rawr.

randonaut's picture
randonaut
DeveloperQuest Developer
Joined:
2018-07-14 07:46
Last seen:
1 week 3 days ago

Thanks for the feedback Violet. I've gone ahead and fixed the issues you pointed out. Also, I think I fixed what was causing the OpenMW errors. In the meantime I will install OpenMW so I can check for more of these errors myself.

Attached is the revised file. Please let me know if there's anything else I can fix or improve!

AttachmentSizeDate
Binary Data rando showcase revised61.32 KB2018-07-16 02:37
The Violet Euphemism's picture
The Violet Euphemism
DeveloperQuest Developer
Joined:
2017-10-30 13:01
Last seen:
7 hours 5 min ago

Great job! All of the previous issues have been fixed, so here are some hip and new issues I've found this time around:

- Paragraphs are separated quite a bit here, whereas vanilla does it very rarely.

- Journal updates when I speak to Veradul Delvas on the topic "Varden Alvis" after getting the new voice.

- The additional "What's that? You're looking for a new voice?" bit at the end of "my collection" only appears after the journal updates that you need the ingredients, which seems a little weird that a wizard only asks you if you need a new voice after already making a deal to get one.

One more thing while I was checking to see if it was clean in TESAME (seems to be from what I can tell), what is the TR_m3_Indguard_Nelyin(1 and 2) supposed to be used for?

Rawr.

randonaut's picture
randonaut
DeveloperQuest Developer
Joined:
2018-07-14 07:46
Last seen:
1 week 3 days ago

Thanks for taking another look! Attached is the second revision. 

For TR_m3_Indguard_Nelyn1 and Nelyn2, these are the Sailen Guards that appear to kill Nelyn Fathis on behalf of the hetman, if the player spills the beans about the Dagon worship. (It's not necessarily part of the quest, but if you were to visit Nelyn after talking to Delvas, you'd see Nelyn get killed by the guards.)

AttachmentSizeDate
Binary Data Clean rando_showcase_717.ESP61.16 KB2018-07-17 18:23
The Violet Euphemism's picture
The Violet Euphemism
DeveloperQuest Developer
Joined:
2017-10-30 13:01
Last seen:
7 hours 5 min ago

Oh sweet, I didn't know anything would happen if I went back. I'll have to check that out next run through.

Rawr.

Jani's picture
Jani
Senior DeveloperDeveloperInterior DeveloperQuest Developer
Joined:
2017-10-08 01:57
Last seen:
14 hours 40 min ago

Reviewing.

Script "TR_m3_q_NelynFathis": 
You can't really declare local variables in conditional parts, it's better to give these variables some value instead. The conditions for mute NPCs is == 0, so any integer will cure them.
About the guards: It's not necessary to show the fight to the player, you can just disable the guy from the hetman's dialogue. If you really want to have this fight scene, then make sure to use Enable/Disable like this:

if ( GetDisabled == 1)
Enable
endif

Otherwise, the game is trying to enable or disable the NPC every single frame, resulting in a performance hit.
I'm also not sure about the usage of doOnce here. The script is constantly giving StartCombat commands until a day passes. Note that you make use of staging with doOnce by setting it to different values (0, 1, 2, ...).
Instead of having a day pass, I'd just disable the guards on CellChanged. Makes for a simpler implementation.
In the OnDeath condition, there's is no journal entry 170 for TR_m3_Sa_TheVoice. Is this a typo? I'd also use a single (quest finisher) entry for his death, that blocks the remaining parts of the quest. In dialogue, you can usually check the NPC with a Dead function, so there's no need for more than one journal entry.

I also see that you've been editing some exterior and interior cells. Some of which I assume are dirty entries, but the enchanter's shop and the hermit's shack should be reviewed by an interior dev. One thing I've noted is that there's no door on his shack, which looks a bit weird. It's better to put a door there, and make it permanently locked (or maybe create a cultist interior claim with cursed items? might be interesting).

There are also edits to existing NPCs. Did you modify anything on them? I don't see any difference between them and their TR_Mainland counterparts.

It'd also be nice if you had an addtopic in the dialogue result field when introducing new topics. (for example in "latest rumors"). This prevents bugs such as topics not linking properly.

journal "TR_m3_Sa_TheVoice": While it's not necessary, arranging the journal entries to be in ascending order by stage is a nice habit to keep. You can move dialogue entries with the left and right arrow keys.
I also see some faulty apostrophes ( ’ instead of ' ) here and there. These are usually caused by copying lines from editors like MS Word or Google Docs. American keyboards also feature them for some reason. While they can be edited out in bulk, you should be careful to only use "the good one".
There are also a few journal entries that look like they overlap or go unused, especially some early ones.

You also call a function "RemoveTopic", which I'm afraid doesn't exist in mwscript. It caused an error for me during playtesting, so remove these if you find any. If you want to disable a topic after a certain point, give it every entry a journal filter that blocks them from showing up.

I'll give you some time to fix these issues before moving on to review the dialogue. After playtesting it a bit, the quest seems to be fun, and it runs fine, so I'm confident that you can get this into a finished state soon enough. I'm sorry it took a bit long to check your quest, but as we're wrapping up the Summer release, we tend to be short on time.

randonaut's picture
randonaut
DeveloperQuest Developer
Joined:
2018-07-14 07:46
Last seen:
1 week 3 days ago

Here's the new file, with all of the above issues corrected. I made a permanently locked door for the shack, but it still does not have an interior. I'm thinking about making it for an interior showcase in the near future. Also, some of the journal entries that seem like they might be overlapping are actually just an alternate way to start the quest (by accidentally encountering Nelyn Fathis in the hills on your own). Should I remove this so that there is only one way to start the quest (latest rumors in Sailen) ?

I'd also use a single (quest finisher) entry for his death, that blocks the remaining parts of the quest. In dialogue, you can usually check the NPC with a Dead function, so there's no need for more than one journal entry.

I'm struggling with the idea of only having one journal update for Nelyn's death. Depending on when he dies, the hetman will have a very different reaction to having killed him. If you listened to his ramblings, you may have killed him for good reason (the hetman will actually thank you), but if you killed him before giving him the voice, you will have just killed a harmless old mute for no good reason (the hetman will rebuke you). Is this change really necessary? If so, I can figure out a solution. I understand what you're getting at with this. Occam's Razor and all that.

Please let me know what else I can do to improve my work, and thanks again!
 

AttachmentSizeDate
Binary Data Clean rando_showcase_718.ESP59.16 KB2018-07-25 01:07
The Violet Euphemism's picture
The Violet Euphemism
DeveloperQuest Developer
Joined:
2017-10-30 13:01
Last seen:
7 hours 5 min ago

I'd personally say as long as they're different, and necessary (that is to say, if it's necessary to have 2 that leads to 2 endings instead of 1 that can lead to 2 different endings), it should be fine to have multiple starting/finishing journal entries. 

However, something to always keep in mind is that it's best not to overcomplicate things as that can not only be extra work for you the modder, but also extra work for the playtesters & reviewers, and has a higher likelihood of breaking. So when you can only use 1 journal entry that leads to separate outcomes based on where you go from there, only use 1. Haven't checked the new file yet so I can't say anything about it.

Rawr.

Jani's picture
Jani
Senior DeveloperDeveloperInterior DeveloperQuest Developer
Joined:
2017-10-08 01:57
Last seen:
14 hours 40 min ago

script "TR_m3_q_NelynFathis":

 

This part of the script is always trying to Disable the guards. To avoid performance issues (not really the case here, but nice to keep in mind for later), you should do it like this:
if ( GetDisabled == 0)
"TR_m3_q_indguard_Nelyn1"->Disable
endif
Same for the other guard.

You have dirtied some objects in the interior cell. Maybe in the exterior, too. This will cause these objects to be duplicated when merging the quest into Mainland. You can fix this by deleting the dirty objects.

In the dialogue, there are still some bad apostrophes ( ` or ’ instead of ' ). Check the result fields, too.

topic "latest rumors": The line should be moved between "BEGIN TR MAP3 SAILEN RUMORS" and "END TR MAP3 SAILEN RUMORS", and it needs NoLore and Random100 filters. As you can see, there are already some rumors in Sailen, so a new one needs to be fit in somewhere. I'd suggest setting Random100 >= 75, and moving it above "That Cinia Andacia woman over at Fort Umbermoth". That line isn't connected to any quests, and will appear after giving Nelyn his voice back.

topic "Greeting 5": You need to move "Well? Is Nelyn Fathis speaking again? What did you find out?" down the list, because there are some essential entries that it might overwrite. There are placeholders for Sailen stuff just like in "latest rumors". It should also be Journal < 90 instead of 100.
topic "Greeting 5": There are two "[The man is practically foaming at the mouth. He gestures wildly for you to leave.]" entries. They have Journal < 70 and Journal = 70. Are they supposed to do different things? If not, they can be combined into one line with Journal <= 70.
topic "Greeting 5": "[The man is still frowning angrily[...]" This should have addtopic "Nelys Fathis".

These are mainly nitpicks, and aren't needed for your showcase to be approved. I'm posting the rest of the review (the important stuff) tomorrow, as I couldn't finish everything today.

Jani's picture
Jani
Senior DeveloperDeveloperInterior DeveloperQuest Developer
Joined:
2017-10-08 01:57
Last seen:
14 hours 40 min ago

topic "Nelyn Fathis":
Move the Cell=Sailen responses to the bottom. Why do they have level requirements? The rest of the quest doesn't.
"Nelyn Fathis lives in the southern hills." Journal=1 should be Journal<10. Otherwise I could get journal 10 after journal 2.
The topic might need another review before the claim is merged, as I might have missed a few things.

topic "Varden Alvis":
Why is there a journal=4 response? Even if it's a typo, having already given the player 4 scrolls should be enough, no need for 4 more.

topic "a new voice":
"Don't go telling anyone" This line is unnecessarily duplicated.
"You don't have what I asked for" It's usually better to move replies like this below the successful line, and only giving them the choice=1 condition
"Ingredients?" Don't give single choice responses journal conditions, as they might fail, leading to a dialogue loop. Not an issue here, but good to keep in mind.
For Nelyn's lines, you can have choices from different branches point to the same line. For example, "Die! In the name of Lord Dagon! Die! Die!" has the same result field, independent of the choices leading there. You can combine these lines, and give them a single "choice ID". Also there are still some rogue RemoveTopics in the file. The scripts look fine otherwise, and I assume the branches work well, but I'll give this topic another look once you've reorganised his responses.

topic "Nelyn's voice":
Same here, you don't need to give journal conditions for single choice responses, as they might break. This shouldn't cause any issues here, but be careful.

randonaut's picture
randonaut
DeveloperQuest Developer
Joined:
2018-07-14 07:46
Last seen:
1 week 3 days ago

Man, those apostrophes are annoying. Ok, I've gone through and fixed everything you mentioned in the last two posts. Should be no more RemoveTopics or apostrophes, I triple checked. The only thing I'm not sure about is the dirty objects.

You have dirtied some objects in the interior cell. Maybe in the exterior, too. This will cause these objects to be duplicated when merging the quest into Mainland. You can fix this by deleting the dirty objects.

I might need some help with this. I'm not seeing any dirty objects in TESAME. I did move some things around in the enchanter's shop to make room for the shelf of bottled voices, but that was intentional and I think necessary. How can I do this correctly so that the objects are not duplicated when the file is merged with Mainland?

Let me know what else I can improve, and thanks again for reviewing my work!

AttachmentSizeDate
Binary Data Clean rando_showcase_722.ESP49.19 KB2018-08-01 21:13
randonaut's picture
randonaut
DeveloperQuest Developer
Joined:
2018-07-14 07:46
Last seen:
1 week 3 days ago

I seem to have broken some things with the last version... please hold off on reviewing or playtesting until I get a new file up.

EDIT: New file here. It seems to work as advertised for the most part... Except for some inexplicable reason indguard2 now refuses to start combat with Nelyn when the script tells him to. Indguard1 works fine. Completely stumped on this one. 

Also pulling my hair out because "latest rumors" and "Greeting 5" dialogue is not filtering properly when playing with OpenMW. Is this a known issue with OpenMW?

AttachmentSizeDate
Binary Data Clean rando_showcase_723.ESP48.75 KB2018-08-01 23:17
Arvisrend's picture
Arvisrend
Developer EmeritusSenior DeveloperDeveloperQuest DeveloperReviewer
Joined:
2014-01-02 23:57
Last seen:
6 hours 33 min ago

Some quick comments:

* Yeah, the file needs cleaning, even of the automated "make dependent on TR_Mainland.esm, then run tes3cmd clean over it" variety.

* The quest is easy to fail by finding Nelyn and mistaking him for a random hostile before ever hearing of him. Is there any way of starting the quest that doesn't involve either hearing rumors or calming the guy and talking to him? My suggestion is to disable Nelyn until the player knows what to do about him.

* The latest rumor should be conditioned to only appear when the quest has not been started yet.

* People in Sailen (not just my journal) should direct me to the guards when I ask about Nelyn.

* Is "hetman" really the right word for the leader of an Indoril village?

* Nelyn has too large an attack radius.

* At quest stages 20 and 40, Veradul's response to the "Nelyn Fathys" topic ("Nelyn Fathis lives in the southern hills. They say he's an old and powerful healer. Very territorial, but he's never hurt anyone. We bring him food sometimes. He is our elder, after all, and we should respect that.") doesn't progress the quest. Not sure what should be happening here.

randonaut's picture
randonaut
DeveloperQuest Developer
Joined:
2018-07-14 07:46
Last seen:
1 week 3 days ago

Thanks Arvis! Implemented all of your suggestions. For the quest progression issue, I was unable to replicate the problem but made some improvements in the stack and dialogue filters, so that should not happen for you again. I tested thoroughly after the changes and did not run into this issue.

Also, I fixed the script, so both guards will attack Nelyn now. OpenMW still has some perplexing issues with dialogue filtering, but these are apparently not necessary to fix at the moment.

Finally, I cleaned the file with TESAME again. For the sake of clarity, there are some potions and misc items added for the quest, as well as an altered interior cell and a wilderness cell. Also the two unique Indoril Guard NPCs, two scripts, a door, and the Nelyn Fathis NPC are all intentionally added by the file. I suspect that adding objects and modifying cells is not generally good practice for quests of this size, but they were mandated by the original quest description I was working from.

* Is "hetman" really the right word for the leader of an Indoril village?
 

I also questioned this, but "hetman" is the word that was used in the quest claim, so I just ran with it. This can be easily changed for the actual claim, or I can go ahead and change it for my showcase we all agree it's the wrong title to use.

Hopefully that's it! Please let me know if there is anything else to improve.

AttachmentSizeDate
Binary Data Clean rando_showcase_727.ESP45.59 KB2018-08-02 23:53
Jani's picture
Jani
Senior DeveloperDeveloperInterior DeveloperQuest Developer
Joined:
2017-10-08 01:57
Last seen:
14 hours 40 min ago

So, after reviewing and a bit of testing, I've found some more issues, but all of them are minor and / or nitpicks. There's still plenty of time to figure these out before the quest is merged.

 

That said, it's a pretty solid showcase right now. Seeing that you've also worked on fixing some Mages Guild bugs, I'm sure you'll have no problem resolving what's left in the claim. Which is why I'm recommending you for promotion. Welcome aboard!

Once you’re approved, you can use your Dashboard and the Help Needed tab to figure out what needs doing at TR. You can start on any unclaimed quests in the claims browser. I've already updated the claims to match our post-release priorities. Just click "Request this Claim" on anything you wish to work on. The first thing to do would probably be properly claiming A Voice to Calm Me Down and uploading your progress. Have fun!