Editing Class Descriptions


Warm winds and hello,

Is there a trusty guide, or grimoire, for editing some the base class descriptions/names? I don’t want to change the 2da’s or edit any of the actual content of any particular class, just a way to edit the name of the class, and then class descriptions. To further explain my madness, I am just trying to remove Forgotten Realm references and shifting it to Oerth (World of Greyhawk) references. One example would be to change Champion of Torm to “Divine Champion” and then change what the in-game descriptions are for the class. Or to change Purple Dragon Knight to Knight of the Holy Shielding.

Any insights are much appreciated.


You’ll need to create your own custom .tlk file. The .tlk file contains most of the text strings for the game.

There are several programs here on the Vault that you can use to create and edit .tlk files. I personally use Axe Murderer’s Killer TLK Editor.

Once you have your new/replacement names/descriptions, you’ll need to have the players of your module download it and put it into their NWN/tlk folder (they can add this folder if they don’t already have it).

In the toolset, tell your module to use the new .tlk file in the same window you’d add haks.

Speaking of haks, you’ll then need to edit a copy of classes.2da. Replace the existing string numbers with the new ones from you custom .tlk file (don’t forget to increase the line number by 16777216 (or just click on the Strref heading in the Killer TLK Editor) so the game knows it’s from a custom .tlk). Save it and add it to a custom hak file, then link that to your module in the toolset. Make sure your module’s players get that new hak file as well as tlk file.

Good luck!


Ahh, thanks AD. Didn’t know you were still floating around. I figured it would be tlk stuff. Do I have to worry about the CEP 260 tlk file that we already use? I imagine I would have to join the one I make with the cep tlk?

Thanks for your kind response and the Axe Murderer reference. We use a few other doodads of his, though customized for the World of Grewhawk.

PS: Any new updates or considerations for the CEP in light of the many Beamdog changes?


If you’re using CEP, you need to make a new tlk file, using CEP260.tlk as the starting point.

I’m not sure whether CEP has a policy on where user lines should be added. I add mine from 250000 onwards, which seems safe enough.

Whenever CEP updates the talk table, before you can use all of the latest CEP content additions safely, you need to recreate your talk table, using the most recent CEP version as the baseline. This is an easy job, as you can just cut and paste all of your custom lines into the new table.

Conversely, if you are not using the new material in a CEP release, you don’t need to update your talk table, either, because CEP is backwards-compatible.


I’ll always be floating around, until the day everyone sees a giant “I’m retiring from NWN, here’s who’s now in charge of the CEP, the CCC, the neverwinternights.info site, and more…” posting. I may wander off and back, but I’m around.

Proleric is completely correct with his post.

I am slowly working on CEP 2.66. Like now, it will work with NWN:EE, but won’t include content specifically made for it…NWN 1.69/Diamond builders/players will still get to use anything/everything included.


Thanks Proleric and Amethyst Dragon. I learned something new and I’m happily editing away at tlk tables and fussing with 2das. My follow-up question is this: Should I copy and paste all of the other matter and material in the 2da for that particular class into the new sections of the tlk table (things like hit dice, skill points, etc, or will that be fine on its own and I only need to be concerned with Name, plural, lower case, and description?


Only the latter.

Talk table entries are single strings. A 2da file often has one or more talk table references, pointing to a string in the talk table. It may also contain text, numbers, etc which are read directly from the 2da, not from the talk table.

Most of the important 2da files are described, field by field, on the nwnwiki. This indicates the format that each field expects. You must put a strref (talk table reference) in a field that expects one, but you mustn’t put a strref in a field that’s expecting a string or a number (because it will be interpreted as a value, not a pointer).


That’s what I figured, especially as I started looking at the classes.2da formats and the listing on the wiki. Now, I suppose this would be too easy and oversimplistic, but if I edit values, not streffs, in the classes.2da, would this, could this, be truly changed in the game? For instance, if I decide that Rangers got hosed in NWN, and I change their skill point value from 4 to 6, this will happen in-game when levelling, and the Ranger will acquire 6 skill points vs his default 4? It can’t be that easy, can it?

Or likewise, say opening up the UMD skill for Harper Scouts?


Editing skill points is that easy and to add UMD to Harper Scout you simply need to add that skill to the Harper Scout’s class skills 2da file.


Thanks. I had just gone to experiment and couldn’t believe how easy that was. But now, back to editing the Class Descriptions: Where in the NWN directory, online or off, can I find the original class description so I can put back in there all the mundane information on prereqs for taking the class, abilities and feats gained at various levels, BAB schedules, skill point progression, and so on… I’ve looked everywhere but can’t seem to find it. There’s the Wiki, which has all of that information, just not in the format that it’s presented in game. See below (the part on the right side):


I’m not at my desk right now, but I think that’s the strref in the description field of classes.2da (which points to the official talk table).


I see, but where is the official tlk located? All I can find is the DLA tlk table. Where do they hide the official default tlk?


The official dialog.tlk is in the nwn folder, not the tlk folder.

Quite literally hidden in plain sight - it was ages before I realised where it was.


I found it, but I had to blow the dust off of my 1.69 directory to find it. I’m not sure where Beamdog has stashed their version of the dialogue.tlk.

So now, I have the official tlk open as well as my custom tlk open, side by side, using Axe Murderer’s Killer TLK editor.

I’ve made my adjustments, but in doing so I discovered the slippery slope that editing this stuff can mean. There’s an entire range of references to Champion of Torm in other sections of the official tlk. Mostly when describing their feats, like Sacred Defense, and so on. These would have to be changed too in their respective strings for the sake of consistency. In order to accomplish this, is it as easy as just copying the streff line and text and making it line up with the custom version streff line and making what ever edit is necessary? And thus when the game is fired up, it will pull from the custom version over the official, even though they both have content at the same streff line?

For instance:
official tlk – Streff 8781 – Bunch of Words about Stuff

custom tlk – Streff 8781 – Bunch of Words about Stuff AND Divine Champion, yada yada yada

If I’m making sense, not sure if I articulated that properly.


It’s not that easy. To tell the game it’s a custom TLK entry, not the one from the official TLK, you have to replace all the modified StrRefs inside 2das and scripts with the (StrRef from the custom TLK + 16777216). It’s not necesseary to line up entries.


I see. I thought that might be too easy because using that method, one wouldn’t have to edit the 2da’s at that point since they would still refer back to the same streff number. I was thinking that the custom tlk would override the official one in the same way that a hak (or override) would ride over default content.

So what you’re saying is that I don’t have a choice. I need to create a new line for each change in the custom tlk table, and then edit the various 2da’s to reflect where they need to pull their new information from. It’ starting to seep out into other 2da’s than just classes.2da I’m afraid, as it will now move into Feats .2das, and likely Spells and others that I probably don’t even know exist (I saw references for Class packages (the “Recommended” feature in character creation) so I would need to even root around in whatever 2da that is and ferret it out).

Late Edit: Yup. Doesn’t work the way I want it. The story of my life. Blast! No matter. What started off as a gentle snow fall on cedars has escalated into a crapblizzard on the mountainside. I have a new found respect for anyone who does this.


@DM_Wise The EE dialog.tlk is in [user]>Beamdog Library>00829>data for the development version (00785 for the stable release).


Ah, yes, you are correct sir. Thanks, Proleric.


One last follow-up question: Does anyone know what 2da govens in-game descriptions of default items? The things like the descriptions/histories on the various items found in vanilla nwn.


The name and description of standard items are held as strrefs in the template (.uti file) which you can inspect in NWNExplorer.

There is also some generic text held as strrefs in baseitems.2da which provides a default description and stats for whole classes of item.