nwn-lib

Neverwinter Nights 1/2 file formats ruby library

OTHER License

Downloads
101.3K
Stars
16
Committers
3

== 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[http://nwn.bioware.com/], 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[https://github.com/niv/nwn-lib].