Who's there? Not a "knock knock" joke, sadly.

Update (2019-06-20)

It's been over a month since this blog post was originally posted. Some things have changed since then and while I'm currently too busy to write a full part II post, some information is important enough to communicate it anyway. So, instead of reading "Who's there? It's me, you idiot!" (which was going to circle back to ManaUser's [MW Modding History] aptly named fix), you are going to see some red text in here.

Preface

It's time for a look at another endlessly recurring dialogue problem. It pops up every so often in our bugtracker and people get frustrated because we cannot do anything.

Unlike the e-e--e-excuse me problem, it will not and can not be fixed by Tamriel Rebuilt. Nor will Patch for Purists necessarily fix it. Morrowind Patch Project just makes it worse. Bloodmoon did fix it, but it still doesn't matter. It's a vampire problem that was slain 16 years ago and yet comes back again and again and again to suck the fun out of your game.

Let's take a look at what exactly I'm talking about first.

The problem


Now you see me...


...now you don't...


...and here's why.

Originally placed at the very top of Greeting 1, "Who's there?" seems to have been an attempt at immersion: if the NPC can't see the player, why would they talk to them? Makes sense, right? People who know about lore will see the PC anyway, probably because this was not meant to happen for quest givers or other important people. Still makes sense, right? Right.

Unfortunately, Morrowind's NPC detection is not good enough to handle this mechanic. Objects as innocent as a rug or a table can leave an NPC unable to correctly see the player character, even if they are facing and rubbing against each other. In short, it was an abject failure. The problem was so bad, some games suffered from an "Who's there" epidemic and became unplayable. Wonky animations that would slowly shift NPCs to the right and into objects didn't help.

The solution

Tribunal affected "Who's there" insofar as that it was suddenly further down the reply order. While that made it less visible in the editor, it didn't solve the problem.

Bloodmoon, however, did a wondrous thing: Bethesda finally fixed the problem, albeit with a rather creative filter.


Odd, but good.

Okay, so the problem has been solved. Only players on Solstheim who are doing Ulfgar's quest (flavorful as it is) will ever encounter "Who's there?" now. Everything is hip and cool now, right? Right.

Enter the mods

Unofficial Morrowind Patch/Morrowind Patch Project does it wrong

The first and forsaken mod who raised the spectre of "Who's there" from its grave was the UMP. I am not quite sure which version started this particular mess, but 1.6.3, ThePal's last version and sometimes considered the "most no-bullshit" one, included this little tidbit in its changelog:

TRIB/BLDM
BUG    "Who's there?" Greeting 1 is assigned to a person in Bloodmoon so it'll never play for anyone else
FIX    Created a new "Who's there?" dialogue below the Tribunal greetings (just in case Bloodmoon or Tribunal needs it disabled)

Please tell me that isn't true. What does a quick look into the CS tell us?


Oh no! Noooooo!

Not helpful in the least was MPP's later versions' odd idea that their place in the loadorder should be before Bloodmoon (the various 1.6.5 versions) or before Tribunal (1.6.6), all the while happily editing away these files' dialogue lines.

This problem has been known for years [Archive.org], by the way. It just gets forgotten and periodically rediscovered as people seem to assume it's just one of these Morrowind oddities that mods need to work around.

Patch for Purists, while based on version 1.6.3 of the Unofficial Morrowind Patch, did it right by quietly staking that second "Who's there?" in its undead heart and burying it again. Everybody uses PfP nowadays, so the problem is essentially solved, right? Right.

Update (2019-06-20): Thankfully, not all is lost. Patch for Purists did fix the problem UMP/MPP introduced by filtering the additional line to a nonsense NPC, but versions after 3.0.5 will go the extra mile and delete this superfluous reply entirely.
The Unofficial Morrowind Patch crew have confirmed that in the next version of UMP/MPP (presumably 1.6.7)
the problem will not exist anymore [Archive.org], either by filtering or by outright deletion. I have absolutly no idea if and when this will be released, though.

A most curious list of mods do it wrong for no reason

Cursory investigation by Sum Sine Regno on the Morrowind Modding Discord (which prompted this blog post in the first place) has shown that a lot of mods - a lot of unexpected mods - change this line back to its original intrusive state for some unfathomable reason.

From their modlist alone, the mods affecting this line are:

  • The Fires of Orc (v1.0 only)
  • A Strange Plant
  • Main Quest Enhancers
  • Bloodwind
  • Better Clothes

I can sort of understand Main Quest Enhancers (the mod's not the cleanest), I can't understand The Fires of Orc (overhauls a Stronghold and adds a lot of quest for the local Orcs) but A Strange Plant (a mod that adds unnecessary Nirnroot plants to Vvardenfell)? Better Clothes? Why?

I checked out Fires of Orc (v1.0) and Main Quest Enhancers first. The most notable thing is that FoO depends solely on Morrowind.esm and MQE on both Morrowind.esm and Tribunal.esm, but I think that was added only later.


Yes, that's absolutely the reason.

This makes sense: when a dialogue line is put into Morrowind, then the lines above and below it are also dirtied (marked as edited and saved in the newly-created esp).

This happens because Morrowind dialogue is chained together by its IDs - every reply has its own unique ID and contains the IDs of the previous and following replies as well. Dialogue is sorted by the relationship of previous IDs to current IDs (next IDs seem to be just flavor). Putting in a new reply line dirties the "previous ID "of the following dialogue entry and the "next ID" of the preceding entry as they now point to the new entry instead of each other.

This is usually no problem for experienced quest modders, because the only thing you actually need to sort your dialogue correctly is the topmost new reply - its "previous ID" needs to point to the ID of an existing reply. Everything else can be cleaned out with TESAME or other methods. Cleaning up after yourself is, in fact, a requirement for adding dialogue to the province mods.

So that's what happened here: dialogue was put in, "Who's there?" was dirtied (saved in full, with its lack of filters from the bad old Morrowind/Tribunal days), the author called it a day and didn't clean anything. As these are esps, Bloodmoon's fix was quietly overridden as master files always load first and nobody was any wiser.

In short, these mods need a good cleaning, problem solved.

As an aside, abot's fix for MQE [Morrowind is Home] does just that for MQE.
Update (2019-06-20): As does the update 1.1 for Fires of Orc, which was released on 2019-06-14.

This cleared up, I checked Better Clothes v1.1, presuming that the mod added Greetings underneath "Who's there?". It too only has Morrowind.esm as a master, this could explain the problem.


Nope.

Turns out, it does that just for the hell of it. I give up.

Update (2019-06-20): With mods like these, with their not very permissive permissions, the best you as a user can do is to carefully clean them. As mentioned above, the only anchor new dialogue lines need is a "previous ID" referencing an existing dialogue line. With a bit of a practice and a TESAME tutorial you can clean out the edited dialogue entries and leave only the added ones.

Comments

some tes3cmd notes

abot's picture

Nice research!

probably there are several mods changing that dialog INFO with/without knowing it

a tes3cmd line you can use to print to out.txt file all your mods in Data Files folder changing the Who's where dialog INFO:

tes3cmd.exe dump --type INFO --exact-id "1215227585220936854" "*.es[mp]" > out.txt

example output

 

if you have the latest tes3cmd 0.4 alpha providing the --active parameter you can even use e.g. assuming I have the alpha version renamed to tes3cmd.040.2.exe

tes3cmd.040.2.exe dump --type INFO --exact-id "1215227585220936854" --active > out.txt

to scan all and only the mods in your current loading list

then from the out.txt file information you should be able to see what to keep or delete

to delete it from a certain mod you could use e.g.

tes3cmd.exe delete --type INFO --exact-id "1215227585220936854" "modWhereIWantTODeleteTheINFO.esp" > out.txt

[EDIT] or you could try to clean the mod automatically using TESTool, it usually catches it, e.g.

 

File: Scrolls of The Nine Barriers.ESP
==============================
  CELL Caldera, Ghorak Manor
  CELL Caldera, Guild of Mages
  CELL Ghostgate, Tower of Dawn Lower Level
  CELL Maar Gan, Shrine
  CELL Tel Uvirith, Seleth's House
  CELL Vivec, Miun-Gei: Enchanter
  deleted INFO 1215227585220936854              ; Greeting 1
  deleted INFO 1588813549227325295              ; Greeting 1
  deleted INFO 787419786402628286               ; Background
  deleted INFO 24755120612880226698             ; Maar Gan
  deleted INFO 13950144952521118349             ; Caldera
==============================
Saved: Scrolls of The Nine Barriers.ESP