×
Menu

Supported by Engine


Summary table
This is a complete list of object and controller entries described in the game engine code.
In fact, this is the core of the notes! All modding is based on these engine features!
 
Each object has its own info page, and 'how to create' guides for Nifskope and 3dsmax
Many of these have attached example VIDEOS+NIFS+3dsMax files! See here which
Column names mean the following:
 
1. Name of the object.
 name of NIF objects described in game engine code.
2. Bethesda only object?
 If in this column something is marked as "BETH", than it is an unique object that was made by Bethesda only.
 So it was not in Netimmerse engine originally. Not documented in the help for the engine!
3. nif.xml edit needed?
To add or edit some Morrowind NIF objects correctly in Nifskope, it is required to edit the "NIF.xml" file!
The original version of the nif.xml file (downloaded with Nifskope) contains some inaccuracies, or no data at all for some Morrowind NIF objects.
But fixing the nif.xml file allows to use these properties at their full potential.
4. Useful in local NIF?
It is possible to add all below objects into NIF files via Nifskope. But the question, is it useful?   
if entry is "?", than it is still in question. Either there is no sense or the conditions for full use are not known.
5. Editable in Nifskope ?
 If entry is "no", than object can be only created/edited reasonably first in 3dsmax/Blender, and than exported into NIF format.
6. Exportable from 3ds max 5?
 Is it possible to create element in 3ds max 5, than export into NIF with Niftools/FFE/TES exporters?
7. Exportable from Blender?
 Is it possible to create element in Blender, than export into NIF with the Morrowind-Blender-NIf-exporter plugin?
8. Morrowind.exe engine note
Is NIF object working or fixed or broken in Morrowind.exe?
9. OpenMW 4.8 engine note
 Is NIF object working or fixed or broken in OpenMW 4.8?
 The difference between "is read, doesn't work" and "doesn't work" is that records marked as the former will not interrupt the loading of the model (even if it will not lead to an accurate appearance/behavior) and those marked as the latter will.
 

 
Name of the object
Bethesda
only
object?
nif.xml
edit
needed?
Useful to add object into local NIF files?
Editable
by hand using only Nifskope?
Exportable from 3DS MAX?
Exportable from Blender?
Morrowind.exe
Game engine
extra notes
OpenMW 4.8
Game engine
extra notes
 
*
yes
?
no
no
works
works
 
 
yes
yes
yes
yes
works
works
 
 
yes
yes
yes
yes
works
works
 
 
yes
yes
yes
no
works
is read, doesn't work
 
 
yes
yes
yes
no
works
works
 
 
yes
yes
yes
no
works
works
 
 
yes
yes
yes
no
works
works partially (only one mode)
 
*
?
yes
-------------
-------------
works
doesn't work
Beth
*
no
-------------
-------------
-------------
works
doesn't work
Beth
 
yes
yes
yes
no
works
works, some flags are not handled
 
*
yes
yes
no
no
works
doesn't work
Beth
 
yes
yes
yes
no
works
works
Beth
 
yes
yes
no
no
works
works
 
 
no
-------------
-------------
-------------
is read, doesn't work
is read, doesn't work
 
*
yes
?
no
no
works
works
 
*
yes
yes
no
no
works
works
 
 
yes
yes
yes
yes
works
works
 
*
no
-------------
-------------
-------------
works
doesn't work
 
 
yes
yes
yes
no
works
is read, doesn't work
 
 
no
-------------
-------------
-------------
works
is read, ignored
 
 
yes
yes
yes
no
works
works
 
 
yes
yes
yes
yes
works
works
 
*
yes
yes
no
no
works
works
 
 
yes
yes
no
no
works
is read, doesn't work
 
 
yes
yes
yes
yes
works
works, doesn't affect physics
 
 
yes
yes
yes
no
works
works, has inaccuracies
 
 
yes
yes
yes
yes
works
works
 
 
yes
yes
yes
yes
works
works
 
*
no
-------------
-------------
-------------
works
doesn't work
 
 
yes
yes
yes
no
works
doesn't work
 
*
yes
yes
no
no
works - glitchy - fixed in MWSE 2.0
works
 
*
yes
yes
no
no
works - glitchy - fixed in MWSE 2.0
works
 
 
yes
yes
yes
no
works
works
 
 
yes
yes
yes
yes
works
is read, doesn't work
 
 
yes
yes
yes
yes
works
works
 
 
yes
yes
yes
yes
works
works
 
 
yes
no
yes
yes
works
works
 
 
yes
yes
yes
yes
works
works
 
 
yes
(older Nifskope
can generate it)
-------------
-------------
works
works
 
 
yes
yes
yes
no
works
works
 
*
yes
yes
yes
no
works
doesn't work
 
 
yes
yes
yes
no
works
works
 
 
yes
yes
yes
no
works
works
 
 
no
-------------
-------------
-------------
is read, ignored
is read, ignored
 
 
yes
yes
yes
no
works
works
 
 
yes
yes
yes
no
works
works (with out it particles give error)
 
 
yes
yes
yes
no
works
works partially
 
 
yes
(older Nifskope
can generate it)
yes
yes
works
works partially, will work fully in 0.49
 
 
yes
yes
yes
no
works
works
 
 
yes
yes
yes
no
works
is read, doesn't work
 
 
yes
yes
yes
yes
works
works
 
*
no
-------------
-------------
-------------
works
doesn't work
 
*
no
-------------
-------------
-------------
not working in the engine
doesn't work
 
*
no
-------------
-------------
-------------
works
doesn't work
 
*
no
-------------
-------------
-------------
works
doesn't work
 
 
yes
yes
yes
no
works
works
 
 
yes
yes
yes
no
works
works
 
 
yes
yes
yes
no
works
works
 
*
no
-------------
-------------
-------------
works
doesn't work
 
 
yes
yes
yes
no
works
works
 
 
no
-------------
-------------
-------------
broken or disabled
is read, ignored
 
 
yes
no
yes
yes
works
works (different skinning implementation)
 
*
yes
no
no
yes
works
is read, doesn't work
 
 
yes
no
yes
yes
works
works, has inaccuracies
 
*
yes
yes
no
no
works
works
 
 
yes
yes
yes
yes
works
works
 
 
no
-------------
-------------
-------------
ignored
works, ignored for 4.0.0.2 NIF
 
 
yes
yes
yes
no
works
works
 
 
yes
yes
yes
no
works
is read, doesn't work
 
 
yes
yes
no
no
works - corrections in MWSE 2.x
works
 
 
yes
yes
yes
no
works
works
 
*
yes
yes
no
no
works - fixed in in MWSE 2.x and MCP 2.4
works
 
 
yes
yes
yes
yes
works
works
 
 
yes
yes
yes
no
works
flawed, works only for reflection maps
 
 
yes
yes
yes
yes
works
works
 
 
yes
yes
yes
yes
works
works
 
 
yes
hardcore
yes
yes
works
works
 
*
yes
no
no
no
works
doesn't work
 
 
no
-------------
-------------
-------------
works
works
 
 
no
-------------
-------------
-------------
works
works
 
 
yes
yes
yes
yes
works - corrections in MWSE 2.x
works
 
 
yes
yes
yes
yes
works
works
 
 
yes
yes
yes
no
works
works
 
 
no
-------------
-------------
-------------
not used
is read, ignored
 
 
yes
yes
yes
yes
works
works
 
 
yes
yes
yes
yes
works
works
 
 
yes
yes
yes
yes
works
works
 
 
yes
yes
yes
no
works
works, exact draw order isn't guaranteed
AvoidNode
Beth
 
yes
yes
yes
no
works
works
BSMirroredNode
Beth
*
no
-------------
-------------
-------------
works
doesn't work
Beth
*
no
-------------
-------------
-------------
works
doesn't work
Beth
 
yes
yes
yes
yes
works
works
Beth
*
no
-------------
-------------
-------------
works
doesn't work
 
 
-------------
-------------
-------------
-------------
(footer and header text of the NIF file)
 
 

 
 
General object hierarchy - dependancies and connections
red text - (not a 'physical' NIF object, only generic engine term - so you can't add in Nifskope)
 
┌· NiObject
├──┬· NiAccumulator
│  └──┬· NiClusterAccumulator
│     └───· NiAlphaAccumulator
├──┬· NiExtraData
│  ├───· BrickNiExtraData
│  ├───· TES3ObjectExtraData
│  ├───· NiStringExtraData
│  ├───· NiTextKeyExtraData
│  └───· NiVertWeightsExtraData
├──┬· NiGeometryData
│  ├───· NiLinesData
│  ├──┬· NiParticlesData
│  │  ├───· NiAutoNormalParticlesData
│  │  └───· NiRotatingParticlesData
│  └──┬· NiTriBasedGeomData
│     ├──┬· NiTriShapeData
│     │  └───· NiTriShapeDynamicData
│     └───· NiTriStripsData
├──┬· NiObjectNET
│  │
│  ├──┬· NiAVObject
│  │  ├───· NiCamera
│  │  │
│  │  ├──┬· NiDynamicEffect
│  │  │  ├───· NiTextureEffect
│  │  │  └──┬· NiLight
│  │  │     ├───· NiAmbientLight
│  │  │     ├───· NiDirectionalLight
│  │  │     └──┬· NiPointLight
│  │  │        └───· NiSpotLight
│  │  │
│  │  ├──┬· NiGeometry
│  │  │  ├───· NiLines
│  │  │  ├──┬· NiParticles
│  │  │  │  ├───· NiAutoNormalParticles
│  │  │  │  └───· NiRotatingParticles
│  │  │  └──┬· NiTriBasedGeom
│  │  │     ├───· NiTriShape
│  │  │     └───· NiTriStrips
│  │  │
│  │  └──┬· NiNode
│  │     ├───· AvoidNode
│  │     ├───· RootCollisionNode
│  │     ├───· NiBillboardNode
│  │     ├───· NiBSAnimationManager
│  │     ├───· NiBSPNode
│  │     ├───· NiCollisionSwitch
│  │     ├───· NiSortAdjustNode
│  │     ├──┬· NiBSAnimationNode
│  │     │  └───· NiBSParticleNode
│  │     └──┬· NiSwitchNode
│  │        ├───· NiFltAnimationNode
│  │        └───· NiLODNode
│  │
│  ├──┬· NiProperty
│  │  ├───· NiAlphaProperty
│  │  ├───· NiDitherProperty
│  │  ├───· NiFogProperty
│  │  ├───· NiMaterialProperty
│  │  ├───· NiRendererSpecificProperty
│  │  ├───· NiShadeProperty
│  │  ├───· NiSpecularProperty
│  │  ├───· NiStencilProperty
│  │  ├───· NiTexturingProperty
│  │  ├───· NiVertexColorProperty
│  │  ├───· NiWireframeProperty
│  │  └───· NiZBufferProperty
│  │
│  ├───· NiSequenceStreamHelper
│  │
│  └──┬· NiTexture
│     ├──┬· NiRenderedTexture
│     │  └───· NiRenderedCubeMap
│     └───· NiSourceTexture
├──┬· NiParticleModifier
│  ├───· NiGravity
│  ├───· NiParticleBomb
│  ├──┬· NiParticleCollider
│  │  ├───· NiPlanarCollider
│  │  └───· NiSphericalCollider
│  ├───· NiParticleColorModifier
│  ├───· NiParticleGrowFade
│  └───· NiParticleRotation
├──┬· NiRenderer
│  └───· NiDX8Renderer
├──┬· NiTimeController
│  ├───· NiFlipController
│  ├──┬· NiFloatController
│  │  ├───· NiAlphaController
│  │  └───· NiRollController
│  ├───· NiKeyframeController
│  ├───· NiKeyframeManager*
│  ├───· NiLightColorController
│  ├───· NiLookAtController
│  ├───· NiMaterialColorController
│  ├──┬· NiMorpherController
│  │  └───· NiGeomMorpherController
│  ├──┬· NiParticleSystemController
│  │  └───· NiBSPArrayController
│  ├───· NiPathController
│  ├───· NiUVController
│  └───· NiVisController
├───· NiBltSource
├───· NiColorData
├───· NiEmitterModifier
├───· NiFloatData
├───· NiKeyframeData
├───· NiMorphData
├───· NiPalette
├───· NiPixelData
├───· NiPosData
├───· NiScreenPolygon
├───· NiSkinData
├───· NiSkinInstance
├───· NiSkinPartition
├───· NiUVData
└───· NiVisData
 

Note.
Only the 'official help' from the 4.0 and 4.2 versions of the game engine could definitively dot the i's and cross the t's.
Without it, there will be some possibility of errors, or misinterpreted data.
 
The following objects can be added to the nif files, but they are of little use..
NiRenderedTexture - Apparently requires communication with the camera. Has no settings and cannot be configured correctly in the nif files.
NiRendererSpecificProperty - part of the water shader algorithm. Adding it directly to the files, doesn't get you anywhere.
NiScreenPolygon - Apparently, it only works in conjunction with the camera. Alas, cameras in local nif files, do not work. No direct usefulness noticed.
NiCamera - as it turns out, the camera doesn't actually work in the nif files. All cameras are created by the game engine. I.e. it's not possible to benefit from local cameras.
NiBltSource - does not seem to work directly from the nif files. Although it can be created here. All in all, little useful and outdated.
 
Do not directly add files to the nif files, this leads to CTD crash and other errors:
NiAccumulator -  is a system class and should not itself be in a nif file.
NiBone - A remnant from an older version of the engine, where it was responsible for creating skeleton bones.
The presence of version 4.0 in the nif files causes the editor and the game to crash.
TES3ObjectExtraData, BrickNiExtraData и BSMirroredNode - These objects are only created by the engine during a game session and do not work from "normal" nif files. That is, these objects are dynamically created by the game engine (and editor) for the models loaded into RAM.
NiDX8Renderer NiRenderer - Attempts to embed in nif files cause the editor to crash repeatedly.
I.e. these objects are not loaded from nif files. And they are not supposed to be used locally in general.
Control the rendering of the scene "behind the scenes" so to speak.
NiRenderedCubeMap - is not available in this version of the engine and cannot be used in nif files.
I.e. full cube map support was added only in 4.2 version of the engine.
 
OpenMW notes:
Target field of controllers is not used
Some interpolation modes are unsupported
Root node transformations aren't right in edge cases
Filtering modes are ignored in favor of global filtering