Jump to content

[Dialogs] Modders, please be careful with dialogs!


Strec

Recommended Posts

N.B.: don't know if here is the good place, if not, move it please.

 

Example of a mod NPC with dialog : I create a NPC who have 2 main options for the player in his dialog :

  • I love you
  • I hate you

To do that, I create a quest, with priority of 95 and a GREETING topic testing if subject is my NPC, saying 'I am the best modder in the galaxy...' and add to it the 2 choices I want to be presented to the player, each of them having a goodbye response.

 

I test, it works perfectly, when the player engage dialog, NPC says his text  and player have choice to choose the 2 options.

 

MANY, many mods have such NPC and dialog and PLEASE NEVER DO THIS!!!

 

WHY? Second example : I create another NPC with a standard top level topic where player ask 'What time is it?'. As it is a top-level topic it will appear on each NPC who have a dialog and I test it.

I speak with Trudy for example and no problem, my choice 'What time is it?' appears.

 

I go to speak with my first NPC and he says 'I am the best modder in the galaxy...', well, but I have only the 2 choices 'I love you' and 'I hate you', I can't ask him for the hour it is!

 

Why?

On my first NPC, I did had choices on the GREETING !!! So, the FNV core only give THESE choice and will never propose any other top-level topic. My NPC is reserved to my mod and can't be used by others.

 

NOTE : I did set a priority of 95 on my quest and a test on the greeting to test is my NPC is concerned but if you create a GREETING for all NPCs (saying 'Hello' with no tests on the subject and a priority of maybe 97, ALL NPC will say your 'Hello' and you kill all dialogs (and quests) in FNV.

 

Ok, what may I have done?

 

If not necessary, don't create a GREETING with choices if not necessary.

In the first example remove the choices in your GREETING, set your 2 topics as top-level ones and apply the test for the NPC on them. It's a little more job (1 test by top-level topic) but if another mod create a generic top-level topic your NPC will have it.

 

But I want my superb introduction to be displayed!!!

Ok ok, no problem. Just check the flag 'Display once' on your GREETING. The first time you'll speak to him your NPC will present himself (you won't have the other generic topics) and after that he will react as a standard NPC. You can see that on Chet who have a different greeting the first time with no more choice than the FNV ones.

 

But if you want that the NPC says all time 'I am the best modder in the galaxy...' when you speak to him let your code as it is, there is no efficient solution. Just try to not have one day to change this and set 'I am the best modder in the galaxy... but I am alone' ;)

 

Thank to readers :)

 

 

Link to comment

Yeah I had issues like these, which were caused by other mods (usually top levels). You can avoid any issues introducing a GetIsID = MyNPC condition inside the Quest tab, this is how I avoid conflicts like these and it saved my tail many times in the past

Link to comment
Guest tomm434

Yep these irresponsible modders are everywhere I tell you!

I could say the same about stalkers.

 

people, DON"T DO STALKERS!! EVER!! There are some of them in vanilla (NCR soldier with radio or Bottle caps guy)

 

Or if you do them, always check if player's controls are disabled so he just wanders nearby while player is busy with something else. I don't care how you do that (with quest script or else or whatever).

Link to comment

My advice... DON'T use GREETING. Not for anything at all that's important. It's far too susceptible to being overridden by someone else's mod having a higher priority.

 

Some alternatives...

 

Top level and advise users to access via SmallerTalk.

StartConversation the topic when the player comes in range.

Put the dialogue inside the existing dialogue tree of the NPC.

Seriously... have the NPC leave the player a message. A note... computer terminal... anything.

Link to comment

Yeah I had issues like these, which were caused by other mods (usually top levels). You can avoid any issues introducing a GetIsID = MyNPC condition inside the Quest tab, this is how I avoid conflicts like these and it saved my tail many times in the past

 

Yeah this is how I do my dialogues too, getisid means noone ut those specified can use the dialogue anyway. So priorities don't really matter that much. Then if you only want it to be a one time thing and the npc goes back to normal. Tick once only, if you want once a day, tick one a day. lol

Link to comment

Using GetisID won't help you against another modder having a GREETING with a higher priority if it has no selection criteria. the GREETING system looks for ANY GREETING that applies to the NPC you're speaking to and then chooses the one with the highest priority. For example, another modder makes a GREETING that applies to everyone at priority 91, you make one that ONLY applies to your NPC at priority 90. The other modder's GREETING will be shown because both GREETINGs are possible for the NPC to display. It's why I'd avoid using GREETING for anything important.

 

Of course, if we're no longer discussing GREETING... then never mind ;)

Link to comment

Oh yeah that's a good point actually. I have ran into that a few times if I'm honest.

That being said though, if I install a mod whose author hasn't conditioned their greetings properly, or isn't willing/knows how to. I generally just uninstall, as it can be a good indicator of bugs and laziness in the rest of the mod.

 

Unfortunately as a joypad user I don't have the luxury of using just top level + smallertalk :P (unless I want to sit with my keyboard on my lap also)

Link to comment

My advice... DON'T use GREETING. Not for anything at all that's important. It's far too susceptible to being overridden by someone else's mod having a higher priority.

 

Some alternatives...

 

Top level and advise users to access via SmallerTalk.

StartConversation the topic when the player comes in range.

Put the dialogue inside the existing dialogue tree of the NPC.

Seriously... have the NPC leave the player a message. A note... computer terminal... anything.

 

Yes, you are right and it is what I'll do but it's a shame not to use existing functionality and it requires more work to achieve something that should be easy.

 

 

That being said though, if I install a mod whose author hasn't conditioned their greetings properly, or isn't willing/knows how to. I generally just uninstall, as it can be a good indicator of bugs and laziness in the rest of the mod.

 

Be careful, you may miss a lot of mod. For example, even great mods like 'a world of pain' have this problem.

Link to comment

Strange, I never had this problem with AWOP. Could it be that it was already corrected?

 

Using GetisID won't help you against another modder having a GREETING with a higher priority if it has no selection criteria. the GREETING system looks for ANY GREETING that applies to the NPC you're speaking to and then chooses the one with the highest priority. For example, another modder makes a GREETING that applies to everyone at priority 91, you make one that ONLY applies to your NPC at priority 90. The other modder's GREETING will be shown because both GREETINGs are possible for the NPC to display. It's why I'd avoid using GREETING for anything important.

 

Of course, if we're no longer discussing GREETING... then never mind ;)

 

Astymma, for how sad this sounds to me right now, I must dis-agree. Probably this comes from the fact I probably miss many points here, but this is what I think. A lot of "common" mods use Greeting in this way (univoque condition i.e. GetIsID = MyNpc), because it's described in the GECK tutorial

I personally wouldn't find ANY reason to create a mod with a greetings with a non-univoque condition and a high priority, causing an issue like that to a lot of other unaware mods. The only reason I could see behind it, is some goofy attempt to workaround some other problem in some wrong way.

So you put online a mod that uses some wrong way to solve problems and I guess you are submerged by "hey this stopped working!" messages in no time. Also, vanilla uses Greetings in the same way, so I guess vanilla will have bad percussions too.

 

- small rant -

 

 

Seriously, we all try to give the best compatibility, looking at the small details, thinking to every possible thing that could screw the mod... And then we should even take care of people's going against any concept of compatibility? no thank you, really. If I must choose between 1) ask to some modder to correct their own mistakes because they make mess with any other mods, or 2) let any other mod to handle dialogues putting a OnActivate block with some StartConversation <Topic> in any of my npcs (just an example), I choose straight 1) without even thinking.

 

I'm aware that "common sense" is not "common" it's just a point of view and I'm not saying the Bible or what... But really, some thing like "taking care of other people's problems inside my mod" shouldn't really exist. One thing is "redundancy", another is "baby sitting". I prefer thinking that the right thing to do is correcting the issue at its origin. Making piles of extra fixes and extra patches, one over another, is not solving the problems, it's just like taking painkillers to not feel the pain instead of curing the disease.

 

So let's just make an example of my common sense... you install a mod like Small Talk and you wrongly click on a ghost on the wondrous "A Devil's Wish", you know those scary, invisible and silencious presences, and the ghost will start telling you "how are you? well, not bad, you know... want a beer? naaa not now..." etc.etc. Of course you are not supposed to speak with them, for the mod...

So, in a case like this, what the common sense tells you? Mine tells me "Do not click on ghosts or untick Small Talk if you're going to play this mod", and not "Hey, mr Devil's Wish's modder, why don't you try to make a script which avoids this kind of behaviour in the case someone install Small Talk and clicks wrongly on a ghost?"...

 

Am I describing well my point? Because today could be a problem with Small Talk, tomorrow will be Big Speech, next month will be Great Blabbering, etc.etc. and maybe them all use a slight different concept that needs you to patch them all... seriously, you can't patch concerning other modders' mood...

 

My two cheap cents...

 

 

Link to comment

That's funny, because I wanted to make a similar point earlier. However, seeing the larger picture of this thread, the main focus here lies with general dialogue that applies to all NPCs by design, like those slavery mods or sexoutsex. The title of the thread and the advice given in the OP are a little misleading.

 

If we're talking mods that only apply to specific NPCs, than it would be very cumbersome not to use capital letter topics. They are provided by the game for their specific purposes and one shouldn't have to look for 3rd party solutions for possible conflicts, if the functionality is included in the game by design. It is the mod author's responsibility to ensure that dialogue that should only apply to NPC A, B or C doesn't effect every other NPC in the game.

 

That's why I commend mods like smallertalk, that have a exclusion list, so you can make sure that potential interference of general dialogue mods that rely on it can be negated and you don't accidentally talk to a NPC that you weren't supposed to talk to in any given moment of time. I wish other mods that affect every NPC would implement a system like this, so there wouldn't be the need for clumsy workarounds. If you look at my Affairs mod you can see what I mean by clumsy workarounds btw, because I wanted to make sure that my NPC doesn't show any other dialogue topics, than those that I have created.

 

In hindsight I probably wouldn't do it like that anymore, because I really shouldn't care about what people want and don't want to do with my mod in their game. My reasoning was that I wanted people to use my scripted sex scenes and go through the dating "mini-game", instead of don't giving a fuck about the character at all and "cheat" by using sexoutsex or something similar.

Link to comment

For information, the subject I expose here, the main one, is only 'don't add choices on your greetings even if you dedicate it to your NPC else you block all other top level-topics' :P

 

I agree with the fact there is no reason for a mod to have a 'generic' greeting BUT there are reason a mod needs to let the player speak with any NPCs.

 

Try to do a test mod, just with a top-level topic, nothing else, and say me if you can see your topic appearing on Sgt Arkus (AWOP) dialogue or on the dialogs of the sexout store vendors. These are just example, there are a lot of mod's NPC you won't be able to access.

Link to comment

AJ

 

Hey, I don't mind anyone disagreeing with me. We don't make progress in modding without it. I think you're wrong... obviously :) but hey, I do see your point, AJ. Me, personally, I could care less what mistakes one of my fellow modders makes in their mod... *I* can fix it. I'm definitely in the minority there though. What I'm preaching is "best practice" and the best practice is NOT to rely on GREETING for important tasks. They did that with vanilla NPCs and those NPCs are the cause of game/quest/progression failure... especially if they've been modded in your install. I created the current SmallerTalk with the specific intention of removing the NEED to do bad practices at all... which is exactly what your point is. It lets you use top levels, sans GREETING, with any NPC at all... regardless of whether they're goodbye flagged only NPCs or simply NPCs resistant to displaying top levels.

 

Strec

 

Your Sgt Arkus example is why SmallerTalk exists. No matter how resistant to showing top levels an NPC is, all you have to do is set SmallerTalk's delay to longer than it takes for you to exit their dialogue and the problem is solved... SmallerTalk displays its Topic and Response then you see the top levels that NPC can display. Sure the primary function of SmallerTalk is to handle NPCs that only have goodbye flagged GREETING topics... but that's its secondary function.

 

 

TBH, I don't see the issue. IF something can be broken easily by some random mod in the user's load order... it will. If there are options to exposing yourself to this abuse, use them. I'm NOT saying avoid GREETING entirely, some tasks are best performed by them... like a greeting. Just avoid doing something important in them... like quest rewards, faction changes, quest stage advancers, etc..

Link to comment

You're right Astymma, we, modders MUST have in mind the base users and not the minority who can adapt a mod to their need and MUST ever have in mind 'compatibility'.

 

I did mistakes, I'm doing mistakes and I'll ever do mistakes, and this thread was only in my mind here to give returns on errors I did and advices. Doing a mistake is not a problem, doing the same one when knowing the aftermath is .... other thing :P

 

N.B.: SmallerTalk is a great mod and resolve a lot a problem. But, while dev. a new mod I can't rely on another mod and have to integrate too an alternative method.

Link to comment
Guest tomm434
Uggh, I'm most probably screwing this up in Pregnancy and OffSpring, I'll have a look at it, but for some reason dialogue stuff to me is an alien language, I'm not even understanding what stalkers are :)

Stalkers are NPC who follow player from any shithole to anywhere. Rememer the guy who gives you NCR radio when your NCR rep is good enough?He is a stalker. That's much bigger problem than greetings because it can break any mod any scene there is.

 

 

Anyway, I like Smaller talk because of exception list - I add my companion to it on every game load.

That's why I don't like SexoutTalk (ot whatever the name is) - the sex option apperar for every NPC who has no topic choices in dialogue tab. I hate it! Really! You forget to set "Goodbye" flag on dialogue and you get this options.

Link to comment

My advice... DON'T use GREETING. Not for anything at all that's important. It's far too susceptible to being overridden by someone else's mod having a higher priority.

 

Some alternatives...

 

Top level and advise users to access via SmallerTalk.

StartConversation the topic when the player comes in range.

Put the dialogue inside the existing dialogue tree of the NPC.

Seriously... have the NPC leave the player a message. A note... computer terminal... anything.

I really suck at this dialogue stuff, despite handling the scripting ok, it's taken me so much just to get some basic dialogue working, I haven't found any info elsewhere about how to avoid using GREETING.

Ok so I currently have a quest for SexoutOffSpring that adds options to any Offspring in a OffSpring Formlist for Follow Me, Wait, Patrol etc.

Currently I add topics to the GREETING calling the dialogue choices, but to use SmallerTalk to avoid using GREETING:

 

Do I need to add the Offspring to a Formlist in Smallertalk?

Do I just delete the GREETING edit and my dialogue will show?

Link to comment

You're right Astymma, we, modders MUST have in mind the base users and not the minority who can adapt a mod to their need and MUST ever have in mind 'compatibility'.

 

...

 

N.B.: SmallerTalk is a great mod and resolve a lot a problem. But, while dev. a new mod I can't rely on another mod and have to integrate too an alternative method.

 

Really? Really I am the only one which considers the GECK starting guide and the vanilla game as main references to follow for COMPATIBILITY?...

 

Agree on the second line... especially if the mod goes on nexus and the requirement is on LL... ;)

Link to comment

I really suck at this dialogue stuff, despite handling the scripting ok, it's taken me so much just to get some basic dialogue working, I haven't found any info elsewhere about how to avoid using GREETING.

Ok so I currently have a quest for SexoutOffSpring that adds options to any Offspring in a OffSpring Formlist for Follow Me, Wait, Patrol etc.

Currently I add topics to the GREETING calling the dialogue choices, but to use SmallerTalk to avoid using GREETING:

 

Do I need to add the Offspring to a Formlist in Smallertalk?

Do I just delete the GREETING edit and my dialogue will show?

 

 

Just check your first-level topics as 'top-level' and they will appear on standard GREETING without doing any more job. 

 

It's a tree, flag the top of the tree as 'top-level' ( :D  ) and link the others as choices of the first one.

 

Don't forget to do all your tests at last on the top one to avoid them appearing on any NPC.

Link to comment

 

You're right Astymma, we, modders MUST have in mind the base users and not the minority who can adapt a mod to their need and MUST ever have in mind 'compatibility'.

 

...

 

N.B.: SmallerTalk is a great mod and resolve a lot a problem. But, while dev. a new mod I can't rely on another mod and have to integrate too an alternative method.

 

Really? Really I am the only one which considers the GECK starting guide and the vanilla game as main references to follow for COMPATIBILITY?...

 

Agree on the second line... especially if the mod goes on nexus and the requirement is on LL... ;)

 

 

The assumption there being that the vanilla game IS written correctly. Have you seen how big mods like NVEC and unofficial patches are? ;)

 

But yeah, I do understand not wanting to rely on SmallerTalk if you're releasing mods on the Nexus. The only reason it's not there is out of respect for Kaeser (creator of SmallTalk). If you follow simple guidelines... using a custom GREETING as *just* a greeting is fine. Put the meat of your content in the top levels and the topics/responses tied to them. SmallerTalk should NOT be used a substitute for bad dialogue writing... it exists to allow people to interact in an interesting manner with NPCs that usually lack dialogue or are resistant to adding dialogue, like Cass.

Link to comment

 

I really suck at this dialogue stuff, despite handling the scripting ok, it's taken me so much just to get some basic dialogue working, I haven't found any info elsewhere about how to avoid using GREETING.

Ok so I currently have a quest for SexoutOffSpring that adds options to any Offspring in a OffSpring Formlist for Follow Me, Wait, Patrol etc.

Currently I add topics to the GREETING calling the dialogue choices, but to use SmallerTalk to avoid using GREETING:

 

Do I need to add the Offspring to a Formlist in Smallertalk?

Do I just delete the GREETING edit and my dialogue will show?

 

Just check your first-level topics as 'top-level' and they will appear on standard GREETING without doing any more job. 

 

It's a tree, flag the top of the tree as 'top-level' ( :D  ) and link the others as choices of the first one.

 

Don't forget to do all your tests at last on the top one to avoid them appearing on any NPC.

 

Thanks, will give that a go :)
Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...