File Details

Download this file | Go to files list

Author: DragoonWraith

NifScript is an OBSE plug-in that allows Oblivion script to operate on Nif files during run-time. Nif files, or NetImmerse Format files, are 3D meshes which are used by Oblivion. These files have long been editable with 3D software and NifTools' excellent NifSkope utility, but certain operations on Nif files have been desirable for scripters and therefore impossible - until now.

More specifically, NifScript uses the NifTools' incredible "C++ library for loading, modifying, and exporting NIF files," NifLib, to create new functions through OBSE's plug-in API. Much thanks to both the OBSE and NifTools teams for their hard work that has made this possible.

NifScript requires OBSE v0016 or greater:

== For Mod Users ==

This is a resource. It does not do anything on its own. For an excellent mod using NifScript, please see HeX_0ff's Unnecessary Violence.

== For Modders ==

NifScript is only just getting started, and currently only has two highly-specialized functions. These functions are beta-only. They have been tested, but will be replaced in the next version. Please do not release any plug-ins using these functions as anything other than a Beta, and please be prepared to switch to the new system when the next version of NifScript becomes available.

(string_var:path) [reference.]NifGetAltGrip [ref:weapon]

* Returns the path (relative to OblivionDataMeshes) to a version of a weapon's nif that uses the opposite number of hands (two-handed to one-handed and vice versa)

(string_var:path) [reference.]NifGetOffHand [ref:weapon]

* Returns the path (relative to OblivionDataMeshes) to a version of a weapon's nif that is set-up to be used as a Shield item, using the weapon to parry attacks

== Warning ==

This utility creates new files. These do take space on your hard drive.

Included is a Windows Batch file which will delete Nif's altered by NifScript from your hard drive. To use it, simply double-click on the file, and it will remove the files. It does so blindly, it does not know whether or not that file is still needed. Essentially, this cannot be used accept to cleanly removed NifScript from your computer. If you use this Batch file when a save game still needs one of those files, you will get missing mesh icons.

== Plans ==

NifScript has only just gotten started. There are a ton of features enabled by NifLib that could be exposed to Oblivion's script language. Almost anything you can do in NifSkope, could be done by script.

I am currently working on a better file-handling system for NifScript. This should limit, or even eliminate the number of files created by the utility. The functions extant in this version of NifScript will become deprecated in the next version. They will be replaced by a cleaner system.

Any requests are welcome. Please find the NifScript thread on the Elder Scrolls Forums, and offer feedback and requests.

== Contact ==

The preferred method of contacting me is a PM on the official Elder Scrolls Forums. My user-name is DragoonWraith

The ESF thread for NifScript (as of this upload) can be found here:

Notes on my Talk page on the CS Wiki are also acceptable, as are e-mails to this address: dragoonwraith+nifscript[at]

Messages or posts on any other forum or website may likely be missed for extended periods of time.

== Credits ==

* The Oblivion Script Extender team: ianpatt, behippo, and scruggsywuggsy the ferret: Without OBSE, I would have lost interest in modding Oblivion long, long ago, and without the plug-in API that they created, this project never could have happened. Special thanks to Scruggs and behippo for answering myriad questions about coding for the OBSE plug-in API, and to Scruggs for implementing new features just for me!
* The NifTools NifLib team: Shon, amorilia, tazpn, xoalin: The NifTools team had done all the hard work for me - all I did was provide an interface between OBSE and NifLib. Kudos to them on an incredible piece of work. Special thanks to amorilia for answering some questions on Nifs in general, and to tazpn for answering some NifLib specific questions.
* Timeslip, author of the Oblivion Mod Manager and C++ BSA Reading code: For his excellent BSA reading code, which he had contributed to the NifTools team. Many thanks for his tireless help in debugging the utility, and many apologies for wasting his time with such a silly mistake! Also thanks for OBMM, which I'm using to distribute this mod.
* Jean-Loup Gailly and Mark Adler, authors of zlib: The zlib code allows me to read BSA files that I otherwise would not be able to read. zlib is an excellent free utility, one of the best products of open source design to date.
* Speedo: Help with statically linking zlib into NifScript.
* throttlekitty, JDFan, and trollf: For answering questions that I had about Nifs on the CS Forum.
* opaj: For help testing and for working on a better version of the demonstration plugin.
* HeX_0ff: For creating Unnecessary Violence, an incredible mod using NifScript, and for general help and feedback on NifScript.

Download this file | Go to files list