A library for Neverwinter Nights 1/2 resource files¶ ↑
This package provides a library for reading, changing, and writing common file formats that are found with NWN, a Bioware game.
They should work with NWN2 just as well, since the file format specifications did not change.
Features of nwn-lib¶ ↑
nwn-lib reads and writes the following file formats (hopefully bug-free!),¶ ↑
both with an API and useful command-line tools:
-
GFF 3.2 (are, git, gic, dlg, itp, ifo, jrl, fac, ssf, ut*, among others)
-
ERF (mod, hak, erf, among others)
-
KEY, BIF (key, data/*.bif)
-
2DA V2.0
-
TLK
nwn-lib can handle the following representations of GFF data:¶ ↑
read & write:¶ ↑
-
native gff
-
yaml presentation of data
-
json presentation of data (with proper UTF-8 conversion)
-
ruby-native marshalling of gff data
-
a compact native xml format
-
nwntools.sf.net-style xml files (“modpacker”)
just write, for now:¶ ↑
-
kivinen-style (“gffprint.pl”) presentation of data
-
prettyprint (ruby-specific)
Also in the box:¶ ↑
-
shell scripts and tools to simplify your life (see BINARIES)
-
extensive developer API
-
a powerful get-out-of-my-way scripting system for data transformation (see SCRIPTING)
Upgrade from 0.3.6 to 0.4.x¶ ↑
With the release of 0.4.0, the API changed significantly. Previous yaml dumps made with 0.3.x are INCOMPATIBLE, and so are all scripts. I can’t help you with your API bindings, but for your YAML dumps, a converter script has been provided (see BINARIES).
Upgrade from 0.4.x to 0.5.x¶ ↑
All with version 0.4.x produced files should be compatible with 0.5.0. Your application might require some porting to ruby 1.9.
Upgrade from 0.5.x to 0.6.x¶ ↑
YAML dumps will need to be converted due to the internal parser/generator used by ruby being replaced (syck to psych). There is a converter packaged in tools/ along with the gem distribution.
Quickstart¶ ↑
To use it, simply add the following to your Gemfile:
gem 'nwn-lib'
Also, read BINARIES for the packaged executable scripts, and HOWTO.
For nwn-lib scripts, see SCRIPTING.
For using the developer API, I suggest you start reading NWN::Gff::Struct.
The latest source is available through git.