There are a number of file formats associated with The Witcher:
Starting with the .BIF / .KEY file formats you can extract the individual data files from any source in the game. With the .GFF file format you can then read and modify most of those data files, repackaging them when you are done. The creature, conversation, door, encounter, item, merchant (store), place-able, trigger, sound and waypoint documents provide additional details about those specific object types and how to interact with the corresponding .2DA files.
An article dealing with the locations of these files can be found on the Game layout page.
- 1 2DA format
- 2 BIF format
- 3 BIK format
- 4 DDS format
- 5 DLG format
- 6 GFF V3.3 format
- 7 KEY BIF V1.1 format
- 8 LUA format
- 9 LUC format
- 10 NCS format
- 11 NSS format
- 12 QDB format
- 13 QST format
- 14 TheWitcherSave format
Files with .2DA extensions are two-dimensional arrays, or tables, or spreadsheets.
The Witcher did not introduce any change here; they are in exactly the same format as they were in NWN or KotOR. This means that you can use any one of the tools already available.
The 2DA files are plain text, and the columns are delimited by whitespace characters (e.g. Space and Tab) with small 2DA tables a simple text editor will do. For larger tables however, I recommend some more serious tool, like Excel.
The Excel method
A piece of advice to Excel users: pay attention for the delimiter characters when you import the 2DA file into Excel the first time. Excel will detect either Space or Tab as a delimiter, but never both, so you will need to add the other as a delimiter to the import settings; while there, be sure to check the "treat consecutive delimiters as one" option, too. When you have saved your 2DA file the first time, remember that the character in the header (2DA v2.0) must be a Space! If it is a Tab, use Notepad or something to change that back to a space! After you have done this import/save hassle once, you do not need to do this ever again (well, not for the file you have updated, anyway).
A simpler Excel method
Simply do not save any Excel-specific formatting, use "Save as..." and leave things as Excel "sees" them, i.e. if it thinks it was a text file, then fine... whatever. When the pop-up asking you if you are sure you want to discard any Excel formatting is presented, just do not keep any. You will be asked again when closing the file, just do not and it works just fine.
- Nwn2daTool, a Microsoft Excel workbook for editing, manipulating and creating 2DA files.
For information, see KEY BIF V1.1 format.
Files with .BIK extensions are BINK movies.
BINK movies are not specific to The Witcher; they are found in many modern games. Undoubtedly however, the best quality BINK videos I have seen to date are those in The Witcher. The movies were created by Tomasz Bagiński, known for his Academy-Award nominated short animation The Cathedral.
BINK videos can be created and played back using the Rad Game Tools — meaning that if you download and install the RAD Game Tools (which are free), you can watch any BINK video simply by double-clicking on it.
Most of the textures in The Witcher are in DDS format (or Direct Draw Surface). To view them in the Windows Explorer you will need the DDS Thumbnail Viewer from Nvidia. But be aware, this application uses a lot of resources. If you just want to view them in a separate window, download the Windows Texture Viewer. To edit them, you need some plugins for the following applications:
- Photoshop: Nvidia DDS plugin for Photoshop
- Paint Shop Pro can use the same plugin as Photoshop.
- The Gimp 2: DDS plugin for The Gimp 2.x
For information, see DLG format.
GFF V3.3 format
The Generic File Format (GFF) is an all-purpose generic format used to store data in BioWare games. It is designed to make it easy to add or remove fields and data structures while still maintaining backward and forward compatibility in reading old or new versions of a file format. It is used in The Witcher as well.
Changes from v3.2
Language IDs: The Language IDs for LocStrings have been changed. The following replaces Table 2.2b in the Bioware GFF Documentation.
|Default (chosen by developer)||0|
|Chinese (Traditional, UTF-8)||21|
|Chinese (Simplified, UTF-8)||22|
Note: this table was taken from languages.2da file. LangIDs 17-19, 23-28 are marked as "Reserved".
KEY BIF V1.1 format
For information, see KEY BIF V1.1 format.
Files with .LUA extension are LUA scripts.
LUA scripts are not specific to The Witcher; you can find it in several modern games (e.g. in Far Cry).
LUA files can be created using any text editor. LUA files can be compiled to binary format (see LUC format) using a LUAcompiler.
The Witcher uses LUA v5.0.3.
Files with .LUC extension are compiled LUA scripts. See LUA script in LUA format.
When LUA files are compiled using a LUA compiler, they become binary files — these binary files are the LUC files you see in The Witcher.
LUC files can be decompiled. I have used LUADEC 0.6 to do the job and I managed to decompile the majority of the LUC files. However, it seems that LUADEC 0.6 can not handle some of the LUC files in The Witcher: sometimes it gives an error, sometimes it totally crashes. Looks like an unfinished project — there is a bug report in their tracker about this.
To quickly decompile all LUC files, I have created a batch file containing the following commands — feel free to re-use it(note, how do you use it?):
@echo off for %%f in (*.luc) DO LUADEC.EXE %%f > %%f.out
Files with .NCS extension are compiled NSS scripts.
Files with .NSS extension are NSS (Neverwinter Nights) scripts.
NSS scripts are not specific to The Witcher; you can find it in several modern games.
QDB files are based on BioWare's Generic File Format (GFF), and it is assumed that the reader of this article is familiar with GFF.
The main structure contains an (unused) "StoryPhase" field of type CExoString, and a "Quest" list of structures, each containing a CExoString which corresponds to a QST file name.
For information, see QST format.
For information, see TheWitcherSave format.