NWN OC Script names

Is there any resources out there that gives maybe an index of the scripts and conversations used in the Neverwinter Nights Original Campaign (or any of them) that indicate what the script is doing how it is being used. The archaic names (M1QA31-M1QDE1) what do they mean?

I have a 6 page document with “Dialogue Starting Condition Scripts” used in the OC. It list all the conditional scripts used by bioware.
Tell me if you want it, I’ll pm it to you ( I couldn’t find on the vault, to send you a link in advance)

1 Like

@Brick82 Have you got the scripting FAQs? Also you might find my tutorial TR’s Basics - Variables, Types and Functions (TBC) useful as I included the document that @Ransom mentions in the download. It is a six page pdf document detailing the built-in “text appears when” scripts derived from the original Starting Conditional Scripts Organized by ruelk. This original document is in the old word .doc format.


1 Like

I would be interested. Thank you

I expect that there is some kind of spreadsheet somewhere that lists all the scripts used in the Campaign. Something that indicates where that script is used and what it does. The kind of info that most just put into the name of the scripts.
Why did they use this naming method for their scripts? Is there a logic to it?

Thank you for your response. Unfortunately, but still helpful, you are giving resources to the built in scripts with the toolset. I’m looking for documentation on the custom scripts usually named like M1SQA3-M1QDE1 or something like that.

Furthermore, is it a best practice to use this naming convention? Should I try to name my Custom Scripts in similar fashion?

Name your scripts in a way that’s understandable to you. People have various conventions for this (grouping them by area, by function, by specific quest…). The important thing is to stick to whatever you decide, because you will forget the things that seem totally easy to remember when you do them. Especially if you leave your module-ing off for a hiatus. Speaking from experience here.
Good idea to note down what convention you decided to go with, for the same reason.

I have a list of some of the default bioware scripts that I use in my own modules. I found a list somewhere on the internet a long time ago and expanded upon it, with comments and things. These are by no means all of those, but I do think they’re the ones you will likely find use for.

Oh, and there’s also the plot wizard tool in the toolset which will create scripts for you and those will be named according to the wizard’s own system, which I seem to recall was kinda weird. (I only ever used it once.)

NWN1DefaultScriptList[QG].7z (18.6 KB)

1 Like

Really a beginner’s resource but I’ve used it and it works well. There’s also the magnificent Script Generator which helps create scripts and also creates comment lines so you know what it is doing !

1 Like

Oh, absolutely, Lilac Soul’s Script Generator, don’t leave home without it. But it doesn’t name your scripts for you so I figured it wasn’t really relevant.

1 Like

This is mostly caused by the 16-char ResRef length limit. It quickly becomes a burden when you have a lot of scripts to cover a large module. And - as others have said here - you need a system to manage them, so you’re already losing chars (like M1 in the example you provided).

Campaign-internal scripts are - well - campaign-specific, so there are just a few comments in them. You can always extract all files and grep for those comments, but you won’t find many answers. Besides, they are mostly simple checks (Items, etc).


While baseline scripts are named somewhat sensibly, they aren’t without gotchas, such as (I always mix up those two as I try to stay away from XP1):

  • nw_startconv = ActionStartConversation(OBJECT_SELF);
  • x0_startconv = ActionStartConversation(GetLastUsedBy());

Not too mention all the bugs in BW libraries.

1 Like

Thank you for your considerate responses. I apologize for not being clearer. Usually, when you open a module in the toolset and expand the Scripts tree you will see a list of scripts usually named in a way to indicate what they are. All good. But the Bioware made campaigns they are named to different convention.

I’m guessing they had many people working on different parts and had some type of system for documentation purposes that hinges on the naming convention used for scripts and conversations the way they did. Out of pure curiosity I’d like to know how that all works. But more importantly, if one is trying to dissect the OC, not being able to see what a script is about before opening it is a big pain when it takes 10-30 seconds to close before opening the next one. Perhaps that’s why they named them like that to discourage dissection which I would have difficulty believing because the OC was made with the purpose for people to copy parts and use as a template.

I think Bioware set up a naming convention for all the reasons mentioned, and to sort the areas in the Toolset as well, before giving the area its ‘actual’ name later on. It seems to be something along the lines of :
Map_M1Q5A (Beggar’s Nest Area)

M1 = Module 1
Q5 = Quarter 5 of the City of Neverwinter (Beggars Nest)
A = Area identifier

Q1 = City Core
Q2 = The Peninsula
Q3 = Blacklake Quarter
Q4 = Docks Quarter
Q5 = Beggars Nest Quarter

Some interiors have a similar format, but instead of Q they use S. Perhaps for Shop, Store, or something else that made it possible to know they type of interior area by looking at the tag or resref.

So, they used the same naming to identify scripts. Some of those are gonna be transitions, etc., but I think they arcanity is simply a method of identifying, and possibly alphabetizing, their work.



Yes, thank you. This is precisely what I was after and I knew I couldn’t be the only person who wanted to know this. Thank you so much.

Ooh, I see! It’s true, actual campaign scripts are not the same as “default bioware scripts.” Sorry, shouldn’t have assumed. I never really tried to open the campaigns in the toolset because it always took ages and usually just crashed my ancient laptop.


1 Like

BTW, the toolset is indeed slow for this task, but you do have some options:

  1. open any script in the toolset and use “Find in Files” to search for //; this will associate all scripts with their comments, which should shed some light on what they do; some scripts have no comments, of course
  2. browse script source with nwnexplorer; this is fast but you won’t have the luxury of syntax highlighting; nwnexplorer also has a really sub-optimal search function
  3. extract all scripts (nwnexplorer can easily do it in bulk) and load them to your favorite IDE; there are projects in the Vault which provide NWScript syntax highlight
1 Like

Good tips. Thanks