[Fallout 1] "Tell Me About" parsing and processing

Discussion in 'Fallout General Modding' started by Sduibek, Feb 22, 2014.

  1. Sduibek

    Sduibek Creator of Fallout Fixt Moderator Modder

    Oct 27, 2010
    • OBJ_DUDE.msg in the DIALOG folder is where the Tell Me About responses are stored, to be used if the NPC's dialog file doesn't have its own Tell Me About entries, as well as the 'database' of terms for which responses can be generated.

    This is so the designers didn't have to create the entries for every dialog file, which is a good idea because there's a few hundred NPC scripts that have dialog.

    These are "generic" responses used for many (most?) NPCs in each area. The valid terms vary based on area - for example, valid terms when asking Adytum NPCs won't get responses in Junktown and vice-versa, because the towns have different topics of interest. Some do exist cross-location but they are obvious ones such as "Water Chip".

    • Some towns have tiers of responses based on "knowledge level" of the NPC(s). So each of these tiers in the same location will give you more or less info than the others, when given the same terms. There's never more than 3 knowledge levels.


    • In OBJ_DUDE.msg and all other dialog files, entries 970 to 979 are used for "I am that person"-type responses. The game picks randomly which one to use, each time it needs to use this kind of response.

    These entries from OBJ_DUDE.msg are generic and used for all NPCs in the entire game, unless that NPC has any of those entries in their own dialog file. The game's dialog files only actually have entries 970/971/972, meaning that the engine generates errors because it looks for all ten entries. This is the cause of some Tell Me About issues.



    • In OBJ_DUDE.msg and all other dialog files, entries 980 to 999 are used for "I don't know anything about that"-type responses (used when they have no response entry for a provided word or string), but this isn't documented anywhere that I could find. The game picks randomly which one to use, each time it needs to use this kind of response.

    The comments in OBJ_DUDE.msg says it's entries 970-979........ so I think somebody must have copied over the comments from the other section and not changed the numbers. :lol: :roll: These entries from OBJ_DUDE.msg are generic and used for all NPCs in the entire game, unless that NPC has any of those entries in their own dialog file.

    • As with the section above, Fallout only shipped with entries 980/981/982 used, meaning that the system generates errors because it looks for all twenty entries. This is the cause of some Tell Me About issues.



    • In each NPC's dialog file, entries 1000 to 1099 are used as the 'database' of valid query terms. Each entry contains a word or string (spaces and punctuation are allowed). As with above, Fallout checks for all 100 entries, so if some don't exist, it generates errors.


    • All entries discussed in the post so far are not parsed for each NPC until the first time you send an input via the Tell Me About prompt. (By typing anything and then clicking DONE or hitting Enter.)



    • In each NPC's dialog file, entries 1100 to 1199 are used for the corresponding responses to each query term. If player submits query matching entry 1000, NPC responds with entry 1100, query entry 1001 with entry 1101, and so on. Interestingly, unlike the other tables, Fallout doesn't check if these entries exist up to 1199, so no dummy entries are needed if wanting to avoid errors.



    • Scrolling in the dialog window doesn't work while using Tell Me About, meaning the rollover text on long entries cannot be read, ever.


    • Tell Me About entries and responses do not show up in the Review function. (Button at bottom-left of Dialog interface)
     
    Last edited: Feb 22, 2014
  2. Sduibek

    Sduibek Creator of Fallout Fixt Moderator Modder

    Oct 27, 2010
    @Muttie FYI in case you hadn't seen this already
     
  3. Muttie

    Muttie It Wandered In From the Wastes

    Oct 9, 2017
    I need to read all this with more leisure. However, scrolling does indeed not work, but what does work is to type in the same keyword a second time. Doing this will show the second half of the text. I had a few choice words until I finally figured that out.
     
  4. Sduibek

    Sduibek Creator of Fallout Fixt Moderator Modder

    Oct 27, 2010
    Whoa interesting! Good to know
     
  5. Sduibek

    Sduibek Creator of Fallout Fixt Moderator Modder

    Oct 27, 2010
    Honestly I'm so torn about TMA. like it's a cool feature in theory but what percentage of players actually use it? I'd guess five percent or less.

    Which means there's a bunch of neat info / dialog lost on most players. :(
     
    • [Rad] [Rad] x 1
  6. Muttie

    Muttie It Wandered In From the Wastes

    Oct 9, 2017
    I've been Looking into this a bit.

    And as I pointed out in my comprehensive list there are a lot of responses in http://fallout.wikia.com/wiki/OBJ_DUDE.MSG that won't trigger.

    I've been over the msg files on Nukapedia again, and there is an odd consistency.

    Basically 90% of all responses that won't trigger have a "space" in the keyword, like "The Hub" or "Shady Sands". Literally all of them. That's about 80 to 100 failing responses.

    The only exceptions are:
    8804: The Brotherhood
    16603: Shady Sands
    17815: The Boneyard
    22610: LA Boneyard

    Those trigger, every other keyword with a "space" in the name doesn't.

    Coincidence?

    Edit: It's weird. I just tested 1.35 and I can't trigger Junktown with Demetre anymore, nor Boneyard (?). HOWEVER, Doc Morbid all of sudden reacts to his own name (…?...). Which he doesn't in 0.81 ("Morbid").
     
    Last edited: Jan 10, 2019
    • [Rad] [Rad] x 2
  7. Sduibek

    Sduibek Creator of Fallout Fixt Moderator Modder

    Oct 27, 2010
    Wow that is truly bizarre.

    It sounds to me like most of the broken ones are my fault for adding a space - I didn't realize TMA only checked single words rather than strings. I'll get this fixed.
     
    Last edited: Jan 10, 2019
    • [Rad] [Rad] x 1
  8. Muttie

    Muttie It Wandered In From the Wastes

    Oct 9, 2017
    No, the msg I linked should be from the original game. And I have the same issues in 1.35! In fact, it triggers even less responses of obj_dude.

    However, it's just an observation. No idea if it's true or not. Needs testing first.

    Although Killian.msg (http://fallout.wikia.com/wiki/KILLIAN.MSG), for example, does separate words like Shady (1015) and Sands (1025) in two entries. The same goes for Killian (1001) and Darkwater (1020).

    Addition: Oddly, enough I can't trigger Killian's [Gizmos/Gizmo's] in my 1.35 version. But it does trigger in Fixt 0.81.

    EDIT: I checked the files. The reason for the failing triggers was the translation of my FO1 version (aka 1.3.5) which added errors and changed keywords.
     
    Last edited: Feb 5, 2019
  9. Muttie

    Muttie It Wandered In From the Wastes

    Oct 9, 2017
    How does a person know its name?

    I know, in killian.msg there are two entries “killian” and “darkwater” and I speculate that is necessary for characters with two names like “Killian Darkwater” as TMA “may” have issues with keywords that have spaces in them.

    But how about others. For example “Cougar” and “Flash”. Both know their name, but neither has a TMA entry (1000 to 1100) in their msg, as far as I can tell. Flash's .msg (http://fallout.wikia.com/wiki/FLASH.MSG) doesn't even include his name. So where does the game pull the name from?

    Iguana-Bob also reacts to Bob.
     
  10. Sduibek

    Sduibek Creator of Fallout Fixt Moderator Modder

    Oct 27, 2010
    Whoa I never caught this. Maybe it pulls from the SCRNAME.MSG file?

     
  11. Muttie

    Muttie It Wandered In From the Wastes

    Oct 9, 2017
    That seems to be correct.

    I tested “child” on a child and they consider that to be their name (lol). However, there should be very few cases where it's possible to trigger “descriptions” as a name. In fact, that's the only one so far.

    I've also tested all the names I couldn't trigger and it seems consistent.
    Some are not mentioned in scrname.msg (Cindy, Jerry, Julian, Lox, Terrance, Dale)
    And others, that won't trigger, have again spaces in the keyword (Deputy Fry, Sheriff Greene, Mrs. Staple, Daren Hightower, Master Merchant, Knight Paul, Dr. Wu, Sister Francis, Dr. Lorri).
    Some that trigger in FO 1.3.5, but do not trigger in Fixt 0.81 have probably been changed by Fixt (Morbid, Razor).
    The raiders (Diana, Petrox, Tolya, Gwen, Alya) should trigger, but they don't in Fixt (changed?) and I couldn't test it in 1.3.5 as the TMA button doesn't work on the raider camp (EDIT: At least not before Tandi has been kidnapped. Once she is on the map it seems to enable it). Fixt has fixed that, but they don't react to their names for some reason (changed scrname.msg or bug?).
    Changes to scrname.msg is probably also the reason why in FO1.3.5 the Adytum trader reacts only to “Taylor” while in Fixt he only reacts to “Tine”.

    All that said, I would suggest not to adjust scrname.msg, so that it can do its other functions properly, but give those NPCs whose names won't trigger a 1000 and corresponding 1100 line in their msg. For example, Morbid could get 1000 Doc & 1001 Morbid and counterparts 1100 “That's me, I'm running this hospital.” 1101 “I'm standing in front of you. Do you have issues with your eyesight? I can fix that.” Note: When typing in “Doc Morbid” the reply to Doc will play.
    This may be a better option to fix any “name issues” than messing with scrname.msg (and all the fixes made to it).
    And it shouldn't be that many (basically all I've mentioned above). However, I'll fix my year old report on the bug fix page, in the next couple of days, to bring that up to date.

    Regarding spaces in obj_dude.msg. I checked the few responses with main characters that didn't trigger (Rhombus & Vree) and it's again keywords with spaces “Strange Army” and “Missing Caravans”, that don't trigger.
    Note: for a list of "failing responses" you can check my comprehensive list. I've marked every keyword that has a response in msg that fails to play with an *.

    I think the note that (“spaces and punctuations are allowed”) may be in regard to inputs.

    For example, you can use “Vault13” and “Vault 13” on the Overseer. In the first case the keyword is “Vault13” in the second it's “Vault”. (“13” is not a keyword, but gets ignored because of the separation by space. In fact you can put in anything after the "space"). For example, you can type in “Vault 12” and it triggers again (i.e. “12” is ignored). Change to “vault12” and it doesn't (no response). Change to “vault,12” and it triggers again. So the comma is treated as a space, allowing the program to treat “vault” as a single word.
    This only applies to “coma” and “full stop”, though. Any other punctuation will not be treated as a space, like “vault-13” or “vault?”. For example, the game has the keyword “Killian's”. But when I change that to “Killian s” I get a different response (i.e. the s is ignored and “Killian” is the keyword). And using the example above I get no response when using “Vault'12”. Which means the apostrophe is not a space but turns the input into a single word.

    Btw, Fixt switches my keyboard to US :).
     
    Last edited: Jan 16, 2019
    • [Rad] [Rad] x 1
  12. Sduibek

    Sduibek Creator of Fallout Fixt Moderator Modder

    Oct 27, 2010
    Wouldn't this just be from language=English in fallout.cfg?
     
  13. Muttie

    Muttie It Wandered In From the Wastes

    Oct 9, 2017
    Possible. I would have to check. But it's OK. It's 90s :)
    Besides it doesn't change much that matters.
     
  14. Sduibek

    Sduibek Creator of Fallout Fixt Moderator Modder

    Oct 27, 2010
    @Muttie I've added these notes in my files for myself and other modders/translators/etc. I hope I knew the following information and just forgot it at some point. Would be embarrassing if I never until now realized any of:

     
  15. Sduibek

    Sduibek Creator of Fallout Fixt Moderator Modder

    Oct 27, 2010
    @Muttie I filled out Tandi's entries, lemme know what you think. I'm pretty happy about the reply to Shady/Sands/Shady Sands, lol. These all use existing audio :)

    Most of the new additions are to prevent weird audio-less responses when on the Khans map.

    I've tested and they all work. You can paste into TANDI.MSG if you want to test it yourself.

     
    Last edited: Jan 15, 2019
  16. Muttie

    Muttie It Wandered In From the Wastes

    Oct 9, 2017
    That's quite a find.

    Especially, the Shady Sands one is good (lol). And needed (for both the raiders and the Shady Sands map). Definitely a keeper! :ok:

    To fix missing responses with audio is quite neat anyway and fixing her (default) responses on the raiders' map does make sense. I think several of the original ones made her sound like a raider and not like a prisoner who learned about the place.
    Although the obj_dude raider responses to Garl, Alya, Gwen and Tolya can work for her (i.e. they are not entirely inappropriate). In those responses she appears to give info about the raiders she heard about (for example, Tolya: “He is the cook.”). The odd ones are: Diana and Petrox as they include the word “our” which in Tandi's case should probably change to “their”.
    So some of the raider's originals could be kept, as they have her react to her surroundings, which is also cool, however, it would be without audio.

    New Trigger Words
    The addition of Radscorpion should help some players. That's good (Tandi was the only NPC that reacted only to scorpion). “Rad” may be too ambiguous though. (rad=radiation)

    And there are some others that may go beyond what one can reasonably expect from TMA (the system has its limits and needs to be accommodated by the player, not so much the other way round). Otherwise you'll end up with way too much work.

    For example, 1043: Father and 1044: Dad, may not be necessary, and are ambiguous. When typing in Dad she could also reply “I'm not your dad. Nor your mother! So don't get any ideas!” ;)

    I would also remove Raider, Khan & Camp. A player should not expect those to trigger. And a reason to avoid singular and leave “raider” open is that you may want to ask her about a single raider once. Which would then be covered by a group.

    And I'm not so sure about adding “Deathclaw/s/Death”, “Junk” & “Dead/Necropolis”. All those trigger her “positive reactions”, which requires normally CH 10 (+1), and being able to access those via TMA was always a bit of a cheat. I don't mind them being there, but I wouldn't make them easier to access. Claw and City kept it vague, and a bit more hidden, which was appropriate considering they are her “hidden” responses.

    In addition, when she is on a foreign map, she uses that map obj_dude.msg, UNLESS she has a response in her own msg. So she doesn't need the {1014}{}{The Hub} response from the raiders camp as typing in „the hub“ will ignore the „the“ and play her own {1008}{}{Hub}.
    Btw, the response „the hub“ doesn't trigger with the raiders (Fixt 0.81). (space issue?)

    New Ones
    Water Chip & Vault are good. Only {1015}{}{Water Chip} and {1033}{}{The Vault} may be superfluous again. In fact, I can't trigger “Water Chip” with the raiders (Fixt 0.81). Their response should be “why should I care” but is a generic “Don't know”. Tandi's may work as you've added {1034}{}{Water} and {1035}{}{Chip} maybe?
    What may make sense, however, is to add “waterchip” (i.e. as one word) to account for the case when a player writes the words together. But if you separate it into two words, then two entries “should” be sufficient (if not better) than adding a third entry including a space (see next example).

    Also when you remove the single words entries? Like {1026}{}{Shady} & {1027}{}{Sands}? If it doesn't you may remove all those double word triggers like {1013}{}{Shady Sands}.

    In my experience when there is {1026}{}{Shady} and {1027}{}{Sands} that reply will always play. For example, when typing Shady (1026 triggers), when typing Sands (1027 triggers) and when typing Shady Sands (1026 triggers). So 1013 should be superfluous. In fact, it may fail to trigger when removing (1026 & 1027).

    In general, TMA has no problem with additional words and will always search the whole input for keywords, and trigger the first it finds. Triggers like {1013}{}{Shady Sands} may be superfluous, or even fail to trigger.

    For example “What about Shady Sands” should trigger {1026}{}{Shady}. And “Is the Hub better than Shady Sands” should trigger {1008}{}{Hub}.

    The best is probably to keep all key-words (1000 to 1099) as single words, like {1026}{}{Shady} and {1027}{}{Sands}. That may work the smoothest.

    The only exception are to help players who write words together like “waterchip” or “water-chip” but I feel accommodating all those cases would go too far.

    I could but: how do I open a msg file? So far I always only checked with those uploaded to Nukapedia.
    I bet it's something simple, isn't it*. However, “how to open msg and int files” is on my to do list but I didn't get around to it yet, besides a quick internet search without results, and testing one program from teamX that wouldn't start for me.
    *EDIT: Of course it was. OpenOffice worked, for example. I don't know what I was doing during that search, can't have been reading (facepalm).
     
    Last edited: Jan 19, 2019
    • [Rad] [Rad] x 1
  17. Muttie

    Muttie It Wandered In From the Wastes

    Oct 9, 2017
    @Sduibek When I checked the msg files I found that the TMA of Hunter.msg has been disabled as it's not working. However, I knew that it did work in my FO 1.3.5 version, so I compared and tested the two files.

    I found the error eventually: all replies were wrongly numbered.

    The following quote is a fixt version of Hunter.msg.
    The only change is that I adjusted some keywords (based on hunter.msg on Nukapedia). So I basically rolled the keywords back to vanilla. In detail that's: (1005: replaced Runners with Gun (runners was twice 1005 & 1012), moved 1007: Boneyard to 1010, removed 1008 The Boneyard & 1009 L.A. Boneyard (both are superflous), added 1008: Water and I replaced 1013: Gun Runners (superflous) with Chip). I did not change the replies (i.e. 1103 which has been expanded on by Fixt).
    However, I did add 1013: Christopher (as he doesn't react to his first name, only to Avellone (scrname.msg)) and the reply is in regard to the name tag he is wearing (100:You see a burly bounty hunter with a button that reads, "I'm Christopher and you're meat."). And I added 1014/1015: Deathclaw/s as he should reply to Deathclaw based on the adjustment made to 1103. The reply should fit the character, I think. I also made the reply to water a bit more tight-lip (I don't have the original file (only the translation). However, on Nukapedia the msg says „I can't help you with that.“ which could replace my line.
    The only keywords that could be added (but may go overboard) are: Apocalypse, Children, Gun may be removed (too ambigious, and as long as there is „runner“ Gun Runners will trigger), Gunrunners, Waterchip, LA (not with Full Stop! as full stop and commas counts as spaces), Angels, Angel's, Chris.

    You can copy & paste the following into Hunter.msg (all tested).

    DYK,
    Aradesh has a working audio-line for Agatha (Ara_53). Which, I believe, can only be accessed via TMA (once added to the TMA entries). I did that
    And it works in my version (translated). So that could be a cool thing to restore, once Agatha is added back into the game.
     
    • [Rad] [Rad] x 1
  18. Muttie

    Muttie It Wandered In From the Wastes

    Oct 9, 2017
    Finally,
    I tested it and it seems the assumption was correct: keywords [1000 to 1099 entries] with a space don't trigger (like “Shady Sands”). I also adjusted the answers to check which entry triggers in case of several options. And it's always the single word entries.

    I tested this for scrname.msg (for names), obj_dude.msg and character specific msg files. In all cases adding a “space” disables the keyword, while removing it enables it.

    I also tried it in FO1 (1.3.5 with sfall 1.8) and Fixt 0.81alpha. Same result.

    I also tested punctuation and it seems all punctuation works [e.g. “vault-13”, “waterchip's”, “medi-c”, “healing?”, “Aradesh-” etc. all trigger], but there are two exceptions:
    1. Comma and Full Stop are treated as space, so keywords like “Tandi,” or “Hu,b” or “L.A.” or “Shady,Sands” will fail to trigger. However, the advantage is that in-game the usage of comma and full stop causes no issues.

    2. When I change Fallout.cfg from English to German than “vault-13” stops working. Which may be interesting to note for translations (i.e. changing the keyboard causes this one punctuation error). Anything else is fine, though.
    TMA keywords:
    The best is probably to keep all keywords [1000 to 1099 entries] to single words (“Shady” and “Sands”). The only addition may be to add a full word like “Water”, “Chip” and “Waterchip”. And last, plural and singular versions could be considered (“Scorpion” and “Scorpions”), but it should be checked for ambiguity (i.e. singular and plural is not necessarily the same. In fact, keywords should probably be limited to prominent in-game elements only like relevant quest and orientation clues, to avoid chaos). I'm not even big on adding “Junk” for Junktown or “LA” as an alternative for Boneyard.

    NPC's names:
    If a NPC fails to react to his/er name (as scrname.msg includes a space, like “Deputy Fry”), it may be better to adjust the NPC's msg file [by adding 1000 to 1099 entries (“Deputy”, “Tony” and “Fry”) and corresponding 1100 to 1199 entries] than adjusting scrname.msg. (see Doc Morbid). Besides, spaces seem to cause no issues but with TMA. Other functions of scrname.msg (i.e. text-window message when hit) have no problem with spaces, apparently.
    Entries in Scrname.msg may also try to avoid single words to keep NPCs from believing their name is “child”, “merchant”, “loser” (lol) or “hooker”. Although, I don't think it's extremely inappropriate (a character can identify with its profession/status). But cancelling an NPC's reaction by adding a space (and/or second word) to their scrname.msg entry is an option.

    Another note on scrname.msg: Raiders like Diana are listed in scrname.msg, but when asking her she gives the reply from obj_dude.msg (“She is our armourer”). Consequently, it seems as if an entry in any msg takes precedence over scrname.msg. This would be another reason to rather adjust the NPC's msg file than scrname.msg.

    The only exception may be NPCs sharing a msg, like GenMerca.msg (Julian, Lox, Terrance, Dale) or Psychics.msg. Those probably need an entry in scrname.msg like Luke, Mat & John (HgenCvan.msg), if they are supposed to react to their name (see shared msg below).

    Harry.msg, has a 970 line. Which is another option apparently. However, that seems to be more for specific replies to triggering the name in scrname.msg, and probably won't work with NPCs who have no scrname.msg entry or more than one name. Btw, Harry's 970 line is quite funny all considered.

    Shared msg:
    I noticed that adding TMAs to a msg only works when it's used by a single person. Case in point: I found TMA entries in REGULATR.msg that simply won't trigger. However, when I copy them into Caleb.msg they do trigger. So the lines themselves seem to work. I then tried to copy them into HgenCvan.msg (used by Luke, Mat & John), and they fail to work again. Consequently it seems as if characters sharing a msg causes TMA entries in that msg not to register.

    3 levels of knowledge:
    Normally, Obj_dude is organized by maps only. The one exception is the Boneyard which has three levels of knowledge for each map (Adytum, Blades, Followers, Gun Runners). However, I'm not sure if that concept even works? Currently, it is not used in-game. I tested it, and all leaders Caleb/Zimmerman (Adytum), Gabriel (Adytum), Razor (Necropolis), Nicole (Junktown) give level 1 responses only. Perhaps it's only a matter of assigning, but I don't know how to assign it?
     
    • [Rad] [Rad] x 1