Neverwinter Nights Remove GUI

For specialized mods using the Neverwinter Nights (NWN) engine, the GUI can often get in the way. In this tutorial I will show you how to alter the GUI and will provide you with a final hak pak that will remove all the elements of the GUI, with one exception.

Quick Introduction to Hak Paks

To adjust the GUI you will need to use a hak pak, which allow you to import custom content into your modules. The best way to edit a hak pak is with the program nwhak, which should be in the utils\ directory within your NWN directory. An explanation of how to edit hak paks using that program is available here. It isn’t a tutorial however, so if anyone knows of a better tutorial please mention it in the comments!

If you want to use a hak pak in one of your modules, you will need to put it into the folder hak\ inside the NWN base directory: if this folder doesn’t exist just create it. Then, import the hak pak into your module in the modules properties.

NWN Explorer

To override the GUI we will need to edit multiple files that tell NWN how to draw the GUI. The best way to find these files is to use NWN Explorer; however, there are many different versions of the program, so if you think there is a better version please say so in the comments.

Once you have downloaded NWN Explorer, just run the exe file to open it up. On the left side of the program, you should see a list of item called “NWN Main Data”, “NWN:SoU Main Data” and so on:

NWN Explorer with a list of the different game resources that are on my computer.

This is a list of the different game resources for NWN on your computer. The most important thing to know when using NWN Explorer is that to search for a file name press Ctrl+S. To navigate through the different resources click on the plus or minus signs.

GUI Files

The two main files types that we will need to concern ourselves with when trying to alter the GUI is .gui (surprise surprise) and .mdl files.

The mdl files are model files, and they describe how the GUI element or creature that they correspond to will look. Luckily for us NWN can read either binary or ASCII versions of the model files so we can edit the model files with a text editor.

gui File Introduction

The gui files tell the NWN engine how their associated GUI element should be displayed. To see a good example of one, search for “inv_panel.gui” in NWN Explorer. If you then open it up by double clicking on the name, on the right side of the screen, a table should appear that has ‘variable’, ‘type’, and ‘value’. The only variable that shows up should be called Entry_0, which is of type ENTRY. Expand the entry, then expand the variable Obj_ChildList. Your screen should look like:

NWN Explorer displaying inv_panel.gui with an expanded child list

Within a gui file, there are some variables that are important to know:
– Obj_ChildList: A list of all of the children of this object. Each of those items will be an individual item that is drawn. The ones that contain an element called “Obj_Caption” will display text, and all children with an Obj_ResRef will be drawn with model file with the value of Obj_ResRef.
– Obj_{X, Y, Z}: The position of the object relative to where it is created. I believe it is not possible to change the relative location of the base entry, but it is possible to change the locations of the children.
– Obj_ResRef: The model that will be drawn where this element is displayed. This also exists for many of the children of the base object, and can be very helpful to determine which models to edit.

If you think that there are any other important variables to know please comment below.

How to find GUI related files?

The majority of the GUI in NWN can be found in two different places in NWN Explorer depending on their file type: .gui files are stored in “NWN MainData”->”data\aurora_gui.bif”->”Game User Interface” while .mdl files are stored in “NWN MainData”->”data\aurora_gui.bif”->”Models”.

Most model files for the GUI use the prefix pnl_ or ctl_, while the gui files are all related to the GUI. To find the exact file that is related to a specific element, you will need to look through the model/gui files and find files with related names, or search NWN Explorer for files with a related name.

Removing a GUI element

There are multiple ways to remove parts of the GUI. If the element that you are wanting to remove is contained within a box with a gold outline, or if it contains general elements like a close button, it is best to try to remove it by changing its related .gui file. Otherwise, it is usually possible to remove the element by altering its corresponding element.

A list of the elements that I edited to remove the GUI from my game, as well as their purpose, is available here.

Removing GUI Elements Using a Model File

There are a few different ways to remove part of the GUI using a model file.

Lets try to remove the compass from the GUI:

First, navigate to “NWN MainData”->”data\aurora_gui.bif”->”Models”:

Then, scroll through the models until you find the first one whose name starts with pnl. Search through the model files that start with pnl for any that seem related to the compass. Or you could search “compass” in NWN Explorer and keeping going through the items until you reach one that ends in .mdl and starts with pnl. In the end, the file you find should be called pnl_compass.mdl.

Once you have found the file, double click on the name to open up the info for it on the right panel. Now, left click on the tab “ASCII Model” on the bottom center of NWN Explorer, which should make it so you can see a textual representation of the model:

To export the model as text, right click on the “ASCII Model” tab and select “Export Text”. Save the file wherever you want, but don’t change the file name (or extension). Now open it in your favorite text editor. However, the name of the file is now pnl_compass.mdl.txt so save it as just “pnl_compass.mdl”.

The start of your file should look something like:

#MAXMODEL ASCII
# model: pnl_compass
filedependancy pnl_compass.max
newmodel pnl_compass
setsupermodel pnl_compass NULL
setanimationscale 1
#MAXGEOM  ASCII
beginmodelgeom pnl_compass
node dummy pnl_compass
  parent NULL
endnode
....

There are now multiple ways to make it so the model will not be displayed. The first is preferable because it makes it so the model will not be drawn at all, but it will not work for some models.

Model Files Option One

The first way to remove the model is to delete all of the text after

node dummy pnl_compass
  parent NULL
endnode

(which is the first node) up, and including, the final ‘endnode’ before endmodelgeom. After deleting the lines, your file should look like:

#MAXMODEL ASCII
# model: pnl_compass
filedependancy pnl_compass.max
newmodel pnl_compass
setsupermodel pnl_compass NULL
setanimationscale 1
#MAXGEOM  ASCII
beginmodelgeom pnl_compass
node dummy pnl_compass
  parent NULL
endnode
endmodelgeom pnl_compass

donemodel pnl_compass

Then, all you need to remove the compass from the game is add this edited file to a hak pak used by your module and voila, no compass.

I personally prefer this method but it does not work for all models because some models will have information into their nodes, and if these nodes do not exist NWN will crash. If this happens (like for ctl_actionqueue, which describes the action queue that appears in the top right of NWN), you will need to use the second method for removing a model.

Model Files Option Two

The more reliable way to remove a model is to simply change all of the positions of the model’s nodes to -10 -10 0. To do this, just replace all lines consisting of "position X Y Z" with "position -10 -10 0". This will make it so the model will always be drawn offscreen.

Here is a hak pak containing all of the models that do not require editing a .gui file to remove. Some of them have had their nodes be deleted, and some have just had their position be changed.

Removing Using a gui File

Unlike model files, NWN requires the .gui files to be binary files so to edit them you will need GFFEditor or an alternative that is compatible with NWN.

Much like model files, there are multiple methods to edit a .gui file to make it disappear.

Removing gui Basic

The easiest way is to simply delete all of the children in Obj_ChildList, and set the gui’s Obj_ResRef to gui_empty. However, this will often cause NWN to crash when it tries to reference the children or the expected model associated with the object, so test opening the menu first!

Alternative to Deleting Children

If NWN will crash when the children are deleted, then you should try to set both Obj_X and Obj_Y to -10, and Obj_Z to 0 for each Entry in Obj_ChildList. This will make the children to be drawn outside of the screen.

Alternative to Using gui_empty

If setting the ResRef of the parent to gui_empty causes NWN to crash, then you will need to edit the model associated with this gui. You can find this model by searching for the value of Obj_ResRef in NWN Explorer, and then you will just need to edit the model file.

This is a hak pak that removes all of the GUI elements that need to have their .gui file edited to go away.

Unfortunately, I have been unable to completely remove the gui, even after far too many hours of work: I have still not managed to find a way to to remove the popup map that is shown when the user presses ‘m’.

I was able to remove all of the inner graphics of it by editing ctl_icon_areamap.mdl, ctl_map_p*.mdl, ctl_map.xmarker.mdl, and ctl_map_zoom*.mdl, but I was unable to find the .gui file that causes the map to actually be drawn so the outline for the map box still shows up.

If you want to see what the map looks like with these, look at this hak pak but I will not be including the contents of this hak pak in the complete hak pak.

Thanks

Thanks to Alex Sampley for helping me remove many parts of the GUI, and to Elliot Colp for telling me where to look to remove parts of the GUI!

Download

The complete hak pak to remove the GUI is available on my Github.

If you find a way to remove the popup map or have any suggestions please comment below or email me at mredshaw@diusrex.com.

Categories: Uncategorized |

3 thoughts on “Neverwinter Nights Remove GUI

  1. Thank you, thank you, thank you! I had been looking for a way to tweak the gui or at least sabotage the minimap for more than a week now. All I found were semi-working solutions and links to resources that were no longer present. Not only can I now remove parts of GUI, I can actually understand HOW it’s done and modify the result. Your post just made my week 🙂

  2. An impressive share! I’ve just forwarded this onto
    a coworker who has been doing a little homework on this.
    And he in fact bought me lunch due to the fact that I stumbled upon it
    for him… lol. So let me reword this…. Thanks for the
    meal!! But yeah, thanx for spending the time to
    talk about this issue here on your website.

  3. Hi blogger, i must say you have very interesting content here.
    Your page should go viral. You need initial traffic only.
    How to get it? Search for; Mertiso’s tips go viral

Leave a Reply

Your email address will not be published. Required fields are marked *

[TOP]