Project

nwn-lib

0.01
No commit activity in last 3 years
No release in over 3 years
Neverwinter Nights 1/2 file formats ruby library
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies
 Project Readme

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.