NIF Block Types

From GECK
Jump to: navigation, search
This article is incomplete. You can help by filling in any blank descriptions.
Further information might be found in a section of the discussion page. Please remove this message when no longer necessary.

Complete list of all NIF blocks registered in New Vegas that are loaded from NIFs or related files. Not all listed blocks should be assumed functional. Several relied on Gamebryo's original modules which have been steadily replaced game-by-game. If a block is either listed in the unused section or not listed at all, you can safely assume your NIF should not be using it, as doing so can cause crashes or other issues.

Note that this is simply a list for blocks only read in files. There are several blocks that were formerly user addable or used in vanilla NIFs in prior games, such as NiZBufferProperty, that were either automated or otherwise internalized that are managed by the engine, and they will not be listed here.

Visuals

Blocks that control how a NIF looks.

Properties

Shader and geometry properties that determine how a mesh is rendered.

  • NiAlphaProperty
    • Description: Defines how an object's alpha is handled. Supports blending and testing (with configurable threshold), and allows you to set how both modes behave. Combine with BSOrderedNode to adjust how alpha enabled objects are sorted.
  • NiMaterialProperty
    • Description: Defines the surface properties of a NiGeometry block.
  • NiStencilProperty
    • Description: Enables a stencil buffer for the object for advanced rendering techniques, as well as determines the draw mode of the geometry, allowing you to disable backface culling. Can be used to hide or overlap rendered geometry.
  • NiTexturingProperty
    • Description: Required for NiSourceTexture and NiTextureTransformController/NiFlipController blocks in texture transforms and particle systems.
  • BSShaderNoLightingProperty
    • Description: Makes the mesh ignore lighting from lights in the scene.
  • BSShaderPPLightingProperty
    • Description: Makes the NiGeometry block receive per-pixel lighting from lights in the scene.
  • Lighting30ShaderProperty
    • Description: Enables more complex shaders on an NiGeometry block. Changes are minimal, cubemap orientation is flipped and blackened decals on very large by volume NIFs display as normal. Trades CPU for GPU usage. Used by the engine for decals, hair and advanced effect combinations (e.g. parallax + cube mapping).
  • SkyShaderProperty
    • Description: Used for sky related NIFs like clouds, atmosphere, and stars.
  • TallGrassShaderProperty
    • Description: Used for NIFs meant to be used for grass.
  • TileShaderProperty
    • Description: Used for NIFs meant to be used for HUD elements, like the Sneak indicator, the air dial, or the loading screen wheel.
  • WaterShaderProperty
    • Description: Meant for water NIFs.

NiGeometry and Other Meshes

Geometry is split into two parts, the NiGeometry Node that contains all of the immediate shader properties and the NiGeometryData block that contains the actual mesh data. There are generally two types of NiGeometry, although there are outliers.

  • TriShapes = Polygons are drawn per vertex, somewhat slow and more memory intensive. Mostly suitable for scenarios that need independently updated vertices, like skinned geometry, although some static, higher poly objects perform faster as Shapes.
  • TriStrips = Polygons are drawn with shared vertices, mostly faster and has a lower memory cost. Highly recommended for statics and geometry that doesn't deform when animated. All exporters create invisible degenerate polygons to connect separated elements of the same Strip, which can be excessive in some higher poly objects and perform worse than shapes.


  • BSSegmentedTriShape
    • Description: Geometry block that has its mesh data split into toggleable segments. Used for Object LOD.
  • NiTriShape
    • Description: NiGeometry for a NiTriShapeData block. Cannot have impact decals. Not recommended for general use aside for skinned objects and low detail meshes that don't need decals.
    • Flags: NIF NiAVObject Flags
  • NiTriShapeData
    • Description: NiGeometryData block for a NiTriShape block.
  • NiTriStrips
    • Description: NiGeometry for a NiTriStripData block. Recommended for objects that are not skinned.
    • Flags: NIF NiAVObject Flags
  • NiTriStripsData
    • Description: NiGeometryData block for a NiTriStrips block.

Miscellaneous Visuals

Stuff that doesn't meet the criteria for the above categories or are otherwise too few in number to get their own subcategory.

  • BSShaderTextureSet
    • Description: A block for Shader Properties that sets texture paths for the current NiGeometry block.
    • Texture 1: Diffuse Map/Alpha
    • Texture 2: Normal Map (Gloss / Specular)
    • Texture 3: Glow Map/Tint Map for hair meshes (_hl)
    • Texture 4: Height Map (Parallax) (Needs "Parallax Shader Index 15" shader flag set)
    • Texture 5: Environment Map (Cubemap) (Needs "Environment Mapping" shader flag set)
    • Texture 6: Environment Mask (Needs "Environment Mapping" shader flag set)
  • BSDismemberSkinInstance
    • Description: Specifies bones in a skinned object's skeleton as well as the total number of dismemberment partitions, and determines which body parts the dismemberment data in NiSkinPartition are assigned to, including some flags for each partition.
  • NiAmbientLight
    • Description: Attaches an ambient light, unknown if it works with non-Light Forms.
  • NiPointLight
  • NiSkinData
    • Description: Stores data about the skinning, such as the bones in the chain as well as any transforms the skinning may have.
    • Skin Transform: XYZ/Rotation/Scale values for global transforms. Overrules strip/shape/node transforms, except transforms on bone nodes.
    • Num Bones: Total number of bones in the chain.
    • Has Vertex Weights: Bool value, presumably determines whether the skinning is per bone or per vertex.
    • Bone List: Contains the individual bone weights, bound information, as well as skin transforms.
  • NiSkinInstance
    • Description: Stores the blocks containing skin information as well as the total number of bones in the chain.
    • Data: Where an accompanying NiSkinData goes.
    • Skin Partition: Where an accompanying NiSkinPartition goes.
    • Skeleton Root: Should generally always be the root node of the NIF.
    • Num Bones: The total number of bones in the chain.
    • Bones: Each bone in the chain.
  • NiSkinPartition
    • Description: Stores data on how a skinned object is separated, used for both NiSkinInstance and BSDismemberSkinInstance.
  • NiSourceTexture
    • Description: Required for texture animation.

Animation

Controllers and Interpolators for general mesh and material animation. Dedicated particle animation blocks are under Particles. A Controller controls aspects of another block, an Interpolator pulls timestamped data from another block and interpolates values between the timestamped values based on the interpolation type specified in the attached block.

Generic Controllers and Interpolators

Multi-purpose animation blocks that are used in almost every form of animation.

  • NiBlendBoolInterpolator
    • Description: Blends boolean values. Values seem to be pulled from NiBoolInterpolators in the parent NiControllerSequence.
  • NiBlendColorInterpolator
    • Description: Blends color values for NiColorA blocks. Values are presumably pulled from NiColorInterpolators in the parent NiControllerSequence. Not defined in NifSkope and unused in Bethesda titles.
  • NiBlendFloatInterpolator
    • Description: Blends float values. Values seem to be pulled from NiFloatInterpolators in the parent NiControllerSequence.
  • NiBlendPoint3Interpolator
    • Description: Blends three point float values. Values seem to be pulled from NiFloatPoint3Interpolators in the parent NiControllerSequence.
  • NiBlendQuaternionInterpolator
    • Description: Blends quaternion values. Values are presumably pulled from NiQuaternionInterpolators in the parent NiControllerSequence. Not defined in NifSkope and unused in Bethesda titles.
  • NiBlendTransformInterpolator
    • Description: Blends quaternion values. Values seem to be pulled from NiTransformInterpolators in the parent NiControllerSequence. Like NiBlendAccumTransformInterpolator, but doesn't accumulate values.
  • NiBoolInterpolator
    • Description: Interpolates boolean values supplied by a NiBoolData. Value is kept between frames, and new values can be hypothetically be missed if the update frequency (exact time is unknown) is too low.
  • NiBoolTimelineInterpolator
    • Description: Interpolates boolean values supplied by a NiBoolData. Differs from NiBoolInterpolator by checking if the value between frames has changed if values remain consistent between them in order to catch dropped updates. Typically intended for particle systems.
  • NiFloatInterpolator
    • Description: Interpolates floats from NiFloatData.
  • NiFloatsExtraDataController
    • Description: Interpolates floats from a NiFloatsExtraData.
  • NiFloatsExtraDataPoint3Controller
    • Description: Interpolates floats from a NiFloatsExtraData.
  • NiMultiTargetTransformController
    • Description: Specifies multiple blocks to be transformed. Should usually replace all NiTransformControllers if used in a NiControllerManager.
  • NiPoint3Interpolator
    • Description: Stores three null values that are interpolated from key data in an attached NiPosData.
  • NiQuaternionInterpolator
    • Description: Intended to interpolate between a list of quaternions. Not defined in Nifskope and unused in Bethesda titles.
  • NiTransformController (Was NiKeyframeController in Morrowind)
    • Description: Controls transforms on a specific block using values from a NiInterpolator.
  • NiTransformData (Was NiKeyframeData in Morrowind)
    • Description: Transform data (in several formats) to be interpolated by a NiInterpolator.
  • NiTransformInterpolator
    • Description: Interpolates transform values from NiTransformData blocks.

Dedicated Controllers and Interpolators

Controllers and Interpolators that handle specific tasks or do certain things that are otherwise not-contextual.

  • BSFrustumFOVController
    • Description: A type of animation block to control the left/right/top/bottom frustums of a parent NiCamera block.
  • BSMaterialEmittanceMultController
    • Description: Manipulates the Emissive Mult value of a NiMaterialProperty for use in animation. To make things glow brighter or dimmer over time.
  • BSRefractionFirePeriodController
    • Description: Manipulates the RefractionFirePeriod value of a Shader Property.
  • BSRefractionStrengthController
    • Description: Manipulates the RefractionStrength value of a Shader Property.
  • BSRotAccumTransfInterpolator (possibly Rotation Accumulation Transform?)
    • Description: Has something to do with animating things as if they were a tread.
  • BSTreadTransfInterpolator (possibly Tread Transform?)
    • Description: Has something to do with animating things as if they were a tread.
  • NiAlphaController
    • Description: Manipulates the Alpha value of a NiMaterialProperty for use in animation. To fade things in and out over time.
  • NiBoneLODController
    • Description: Manages LOD groups for bones and associated skinned geometry in a skeleton to reduce the number of moving Nodes and geometry over distances. Unused in Bethesda titles, their skeleton system for actors is incompatible and their skinned props usually aren't heavy enough to make use of it.
  • NiBSBoneLODController
    • Description: Manages LOD groups for bones in a skeleton to reduce the number of moving Nodes over distances.
  • NiColorExtraDataController
    • Description: Presumably controls the value in NiColorExtraData. Not defined in NifSkope and unused in Bethesda titles.
  • NiColorInterpolator
    • Description: Presumably interpolates between color values listed in NiColorData. Appears to be a more generic form of NiPSysColorModifier. Not defined in NifSkope and unused in Bethesda titles.
  • NiFlipController
    • Description: Animates a NiTexturingProperty by "flipping" through a list of individual NiSourceTextures using a FloatInterpolator.
  • NiFloatExtraDataController
    • Description: Interpolates floats from a NiFloatExtraData. Used in vanilla to manipulate the value under the name HeadTrack
  • NiGeomMorpherController
    • Description: Animates a targeted NiGeometry block using vector frames of an attached NiMorphData and interpolating between them with FloatInterpolators.
  • NiLightColorController
    • Description: Animates the diffuse/specular and ambient colors of a NiLight.
  • NiLightDimmerController
    • Description: Presumably animates the brightness of a NiLight.
  • NiLookAtController
    • Description: Tells a block to always "look" at another. Kind of deprecated, use NiLookAtInterpolator instead.
  • NiLookAtInterpolator
    • Description: Tells a block to always "look" at another. Like billboards, but for objects other than the camera.
  • NiMaterialColorController
    • Description: Manipulates color values on NiMaterialProperty.
  • NiPathController
    • Description: Time controller for movement along a path. Deprecated, use NiPathInterpolator instead.
  • NiPathInterpolator
    • Description: Interpolates positional data from NiPosData as points in a path for animations. NiFloatData is used for Percent(?) data.
  • NiRollController
    • Description: Rotates an object along the Z-axis, requires additional transform to shift the object on a different rotational axis and stops playing when off screen. Wholly superseded by NiTransformController and NiLookAtInterpolator.
  • NiTextureTransformController
    • Description: Animates an associated texture by moving across, rotating, or scaling its height or width. Requires a NiTexturingProperty.
  • NiVisController
    • Description: Used to cull and uncull specified parts of a NIF during animations.

Animation Related

Blocks that don't animate things directly, but are otherwise used for animation.

  • NiBoolData (NiVisData)
    • Description: Stores a boolean value as well as a time value, usually used for NiVisControllers.
  • NiColorData
    • Description: Stores a list of RGBA values as key data, for use in modifying the color of particles over time.
  • NiControllerManager
    • Description: Required for complex animation or multiple animated sequences.
    • Next Controller: Self-explanatory.
    • Flags: Configures whether the animation plays once, loops, or reverses.
    • Frequency: Appears to always be 1.000000, speed multiplier.
    • Phase: Appears to always be 0.000000
    • Start Time: The animation start time. Leave blank (<float_max>) to pull timing from associated interpolators and NiTextKeyExtraData.
    • Stop Time: The animation end time. Leave blank (<float_min>) to pull timing from associated interpolators and NiTextKeyExtraData.
    • Target: Usually always the root node.
    • Cumulative: Bool value that determines whether animations can layer. (Typically only for talking activators with Talk anims or actor animations.)
    • Controller Sequences: Where NiControllerSequences are added.
    • ObjectPalette: Where NiDefaultAVObjectPalette is added.
  • NiControllerSequence
    • Description: Details all of the functions in a defined animation sequence.
    • Name: The name of the animation sequence. See AnimGroups for valid names. Must be properly cased if you wish to trigger them via script.
    • Controlled Blocks: TBD (it's complicated, probably deserves its own page), tl;dr for now is all of the animated blocks are defined by name and the animation interpolators and controllers are assigned here, as well as what they do.
    • Weight: Seems to always be 1.000000
    • Text Keys: See NiTextKeyExtraData
    • Cycle Type: Defines how the animation should work, in conjunction with other values defined elsewhere.
    • Frequency: Appears to always be 1.000000, speed multiplier.
    • Start Time: Defines the start of the animation.
    • Stop Time: Defines the end of the animation.
    • Manager: Should typically always be the NiControllerManager attached to the root node.
    • Accum Root Name: Should typically always be the same as the root node's name.
  • NiDefaultAVObjectPalette
    • Description: Specifies all of the blocks in a NIF to be managed in a NiControllerManager. Does not need to be every block in the NIF. Names must be exact and match the block linked or else nothing will happen.
  • NiFloatData
    • Description: Stores a list of floats as key data.
  • NiMorphData
    • Description: Contains a list of frames used to morph mesh geometry, as well as the vectors for each frame.
  • NiPosData
    • Description: Stores a list of time and float values in key format. Usage context depends on the parent controller/interpolator.
  • NiRotData
    • Description: Stores a list of time and rotational key data. Like NiPosData, but with pitch, yaw, and rotation.

Compiled Animation Blocks

Compiled B-Spline animation data locks that are typically only used in vanilla .KF files and are generally not human readable.

  • NiBSplineBasisData
    • Description: Exact purpose is unclear, contains a number of total Compact Points to be used in conjunction with NiBSplineData in .KF animations.
  • NiBSplineColorInterpolator
    • Description: Presumably interpolates non-compact BSplineData blocks in the context of color animation. Not defined in NifSkope and unused in Bethesda titles.
  • NiBSplineCompColorInterpolator
    • Description: Presumably interpolates compact BSplineData blocks in the context of color animation. Not defined in NifSkope and unused in Bethesda titles.
  • NiBSplineCompFloatInterpolator
    • Description: Presumably interpolates compact BSplineData blocks as a single float field in .KF animations.
  • NiBSplineCompPoint3Interpolator
    • Description: Presumably interpolates compact BSplineData blocks as a three value float field in .KF animations.
  • NiBSplineCompTransformInterpolator
    • Description: Presumably interpolates compact BSplineData blocks as transform animation in .KF animations.
  • NiBSplineData
    • Description: Compiled animation data blocks in .KF animations. Can either be floats or compact integers.
  • NiBSplineFloatInterpolator
    • Description: Presumably interpolates non-compact BSplineData blocks as a single float field. Not defined in NifSkope and unused in Bethesda titles.
  • NiBSplinePoint3Interpolator
    • Description: Presumably interpolates non-compact BSplineData blocks as a three value float field in .KF animations. Not defined in NifSkope and unused in Bethesda titles.
  • NiBSplineTransformInterpolator
    • Description: Presumably interpolates non-compact BSplineData blocks as transform animation in .KF animations.

Particles

Blocks that control particle effects.

Particle Basics

Blocks that are required or are otherwise necessary for a particle system.

  • BSMasterParticleSystem
    • Description: Root node for NIFs to be used for MPS Forms.
  • BSPSysStripUpdateModifier
    • Description: Defines the update time of particles in use in BSStripParticleSystem. Required for BSStripParticleSystems.
  • BSStripParticleSystem (NiGeometry)
    • Description: A clone of NiParticleSystem using BSStripPSysData instead of NiPSysData. Spawns mesh-based particles instead of 2d sprites, the mesh is created by the engine.
  • BSStripPSysData (NiGeometryData)
    • Description: Data for BSStripParticleSystem.
  • NiMeshParticleSystem (NiGeometry)
    • Description: A particle system using meshes instead of 2D sprites. Uses NiMeshPSysData.
  • NiMeshPSysData (NiGeometryData)
    • Description: Mesh data for NiMeshParticleSystem.
  • NiParticleMeshes (NiGeometry)
    • Description: According to documentation, it is a particle system using TriShapes in NiParticleMeshesData. Not defined in NifSkope and unused in Bethesda titles.
  • NiParticleMeshesData (NiGeometryData)
    • Description: Deprecated, not currently usable.
  • NiParticleSystem
    • Description: A Node that defines a particle system in a NIF.
  • NiPSysBoundUpdateModifier
    • Description: Updates the Bound volumes of particles in the system.
  • NiPSysData (NiGeometryData)
    • Description: Particle system data, contains the maximum number of particles in the system, as well as bool values for allowed transforms and offsets for subtextures.
  • NiPSysMeshUpdateModifier
    • Description: Updates particles in a NiMeshParticleSystem based on their order in an index. Required for NiMeshParticleSystems.
  • NiPSysPositionModifier
    • Description: A modifier that updates the position of particles based on their velocity and the time they were last updated. Required for particle systems.
  • NiPSysUpdateCtlr
    • Description: A controller that allows you to define the times for a particle system to update. Required for NiParticleSystems.

Particle Modifiers

Blocks that modify or otherwise alter aspects or behaviors of particles.

  • BSParentVelocityModifier
    • Description: Makes particles inherit velocity from the movement of the parent NiNode.
  • BSPSysSimpleColorModifier
    • Description: Modifies the color of particles by fading in and out two colors.
  • BSWindModifier
    • Description: Modifies the path of particles based on the wind values defined by the current weather. The wind direction is fixed roughly northwest in vanilla, requires SetWindDirection to manipulate it.
  • NiPSysAgeDeathModifier
    • Description: Modifies the age of particles using NiPSysSpawnModifier as well as whether additional particles should spawn on death.
  • NiPSysAirFieldModifier
    • Description: Simulates the effects of a localized wind system in a particle system using a Field Object (like an empty NiNode) to center the field.
  • NiPSysBombModifier
    • Description: Applies an explosive force to particles centered on a NiNode.
  • NiPSysColorModifier
    • Description: A modifier to change the color of particles over time a NiColorData block.
  • NiPSysDragFieldModifier
    • Description: Simulates the effects of drag in a localized area in a particle system using a Field Object (such as an empty NiNode). Allows you to define the maximum speed (magnitude), speed falloff from the center of the field (attenuation), and direction, as well as a maximum distance before drag is no longer applied and whether or not drag only applies in the direction specified.
  • NiPSysDragModifier
    • Description: A modifier that applies a linear drag force to particles in the area of a specified Drag Object (like an empty NiNode), with a definable axis and applied force, as well as range and falloff values.
  • NiPSysGravityModifier
    • Description: A modifier to drag particles in a definable direction to mimic the effects of gravity.
  • NiPSysGravityFieldModifier
    • Description: Simulates a localized gravity system in a particle system using a NiNode.
  • NiPSysGrowFadeModifier
    • Description: A modifier that manipulates the size values of particles to give the appearance they grow and fade away over time.
  • NiPSysRadialFieldModifier
    • Description: Simulates point gravity in a particle system using a Field Object (such as an empty NiNode). Allows you to configure the magnitude and attenuation, as well as whether or not the effects of gravity end after a maximum distance.
  • NiPSysRotationModifier
    • Description: Adds a configurable amount of rotation to particles in a particle system.
  • NiPSysSpawnModifier
    • Description: A modifier to spawn children of existing particles, can be used for other modifiers such as NiPSysAgeDeathModifier.
  • NiPSysTurbulenceFieldModifier
    • Description: Simulates the effects of turbulence in a localized area using a NiNode.
  • NiPSysVortexFieldModifier
    • Description: Simulates the effects of a vortex in a localized area using a Field Object (like an empty NiNode) to define the origin of the vortex. Allows you to configure the magnitude (acceleration around the directional axis), attenuation (area), and direction (orientation) of the vortex, as well as whether or not the influence of the vortex ends after a certain distance.

Particle Colliders

Blocks that handle particle-specific collision.

Particle Emitters

Blocks that handle where and the initial settings for how particles are emitted.

  • BSPSysArrayEmitter
    • Description: Evenly spawns particles between a Node and its children Nodes.
  • NiPSysBoxEmitter
    • Description: A particle emitter that spawns particles within a definable box shape.
  • NiPSysCylinderEmitter
    • Description: A particle emitter that spawns particles within a definable cylindrical shape.
  • NiPSysMeshEmitter
    • Description: An emitter type that uses a specified mesh to emit particles from. Allows you to define where the particles spawn from the mesh and how velocity is determined.
  • NiPSysSphereEmitter
    • Description: A particle emitter that spawns particles within a definable spherical radius.

Particle Controllers

Blocks that manipulate settings on other blocks in a particle system.

  • BSPSysMultiTargetEmitterCtlr
    • Description: Clones NiPSysEmitters in the particle system to a limit and controls when they emit and the rate at when particles are spawned. Like NiPSysEmitterCtlr.
  • NiPSysAirFieldAirFrictionCtlr
    • Description: Controls the Air Friction value of a NiPSysAirFieldModifier for use in animation.
  • NiPSysAirFieldInheritVelocityCtlr
    • Description: Controls the Inherit Velocity value of a NiPSysAirFieldModifier for use in animation.
  • NiPSysAirFieldSpreadCtlr
    • Description: Controls the Spread value in a NiPSysAirFieldModifier for use in animation.
  • NiPSysEmitterCtlr
    • Description: Controls when a NiPSysEmitter emits particles and the rate at when particles are spawned. Like BSPSysMultiTargetEmitterCtlr, but with only a single emitter.
  • NiPSysEmitterCtlrData
    • Description: Deprecated data block for NiPSysEmitterCtlr, appears to be a combination of a NiFloatExtraData and a NiBoolExtraData.
  • NiPSysEmitterDeclinationCtlr
    • Description: Controls the Declination value of an emitter for use in animation.
  • NiPSysEmitterDeclinationVarCtlr
    • Description: Controls the Declination Variation value of an emitter for use in animation.
  • NiPSysEmitterInitialRadiusCtlr
    • Description: Controls the Initial Radius value of an emitter for use in animation.
  • NiPSysEmitterLifeSpanCtlr
    • Description: Controls the Life Span value of an emitter for use in animation.
  • NiPSysEmitterPlanarAngleCtlr
    • Description: Controls the Planar Angle value of an emitter for use in animation.
  • NiPSysEmitterPlanarAngleVarCtlr
    • Description: Controls the Planar Angle Variation value of an emitter for use in animation.
  • NiPSysEmitterSpeedCtlr
    • Description: Controls the Speed value of an emitter for use in animation.
  • NiPSysFieldAttenuationCtlr
    • Description: Controls the Attenuation value of a Field modifier for use in animation.
  • NiPSysFieldMagnitudeCtlr
    • Description: Controls the Magnitude value of a Field modifier for use in animation.
  • NiPSysFieldMaxDistanceCtlr
    • Description: Controls the Max Distance value of a Field modifier for use in animation.
  • NiPSysGravityStrengthCtlr
    • Description: Controls the Strength value of a Gravity modifier for use in animation.
  • NiPSysInitialRotAngleCtlr
    • Description: Controls the Rotation Angle value of a NiPSysRotationModifier for use in animation.
  • NiPSysInitialRotAngleVarCtlr
    • Description: Controls the Rotation Angle Variance value of a NiPSysRotationModifier for use in animation.
  • NiPSysInitialRotSpeedCtlr
    • Description: Controls the Rotation Speed value of a NiPSysRotationModifier for use in animation.
  • NiPSysInitialRotSpeedVarCtlr
    • Description: Controls the Rotation Speed Variance value of a NiPSysRotationModifier for use in animation.
  • NiPSysModifierActiveCtlr
    • Description: Controls the Active value of a NiPSys block for use in animation, allowing you to turn on and off modifiers.
  • NiPSysResetOnLoopCtlr
    • Description: Resets a particle system once the controller loops, clearing all currently living and cued particles.

Havok

Blocks that control everything from collision to Havok physics.

Top Level Blocks

Root blocks for collision and their immediate children that manage the majority of collision settings.

  • bhkBlendCollisionObject
    • Description: A form of bhkCollisionObject only used in skeletons. Presumably blends motion influences across bones together.
  • bhkCollisionObject
    • Description: The parent block for bhkRigidBody and bhkRigidBodyT.
    • Target: Required. Applies impact decals to all children NiTriStrip blocks under the targeted Node. Should always be the root BSFade or NiNode or whatever Node is intended to be interacted with. Setting the target to a node this block is not nested in can cause geometry to not render correctly.
    • Flags:
      • ACTIVE: Enables physics (Usually flagged on everything) not having this flag can cause movables to be unmovable / intangible.
      • NOTIFY: Automatically set by the engine.
      • SET_LOCAL: Automatically set by the engine.
      • DEBUG_DISPLAY
      • USE_VELOCITY: Uses the current velocity of the object for physics calculations, needs to be set on objects that are keyframed and are attached to animations or else the collision geometry is intangible.
      • RESET: Clears the motion of an object, can only be set at runtime.
      • SYNC_ON_UPDATE: Possibly unused.
      • ANIM_TARGETED
      • DISMEMBER_LIMB: Probably used at runtime for severed limb objects.
    • Body: The nested collision body which controls various properties about how the collision behaves.
  • bhkConvexListShape
    • Description: A form of bhkListShape that only accepts bhkConvexVerticesShapes, those shapes cannot have more than 256 vertices each, and each shape must have an equal radius, meaning different shape types cannot be mixed. Deprecated in New Vegas, only usable in Oblivion and Fallout 3.
  • bhkListShape
    • Description: A block that allows you to add several collision shapes into one bhkRigidBody. Can mix and match several types at the same time.
    • Num Sub Shapes: The number of shapes you wish to add.
    • Sub Shapes: The shapes you wish to link.
    • Material: Overrides the impact material of all sub shapes, any decal will behave as if it was the material specified. Footstep sounds use the sub shape material sound.
  • bhkPCollisionObject
    • Description: A Collision Object for phantom collision.
  • bhkRigidBody
  • bhkRigidBodyT
  • bhkSimpleShapePhantom
    • Description: A phantom body block for primitive collision shapes. Faster than bhkCachingShapePhantom, but more memory intensive. Ideal for trigger volumes that move decent distances.
  • bhkSPCollisionObject
    • Description: A form of bhkCollisionObject for phantom collision, using primitive shapes. Typically used to detect when an actor is in range to activate a trap.

Collision Shapes

Blocks that are either the actual collision itself or are immediate modifiers to the shape.

  • bhkBoxShape
    • Description: Box shaped collision primitive.
    • Material: The material the object will behave as. Used to determine footstep sounds, sounds Havok physics will use and how ImpactDataSets respond to the object.
    • Radius: The radius of a more performant collision shell over the box.
    • Dimensions: XYZ coordinates controlling width, height and length of the box.
  • bhkCapsuleShape
    • Description: A oval shaped collision primitive, akin to a cylinder with rounded ends. Potentially has precision issues at lower sizes and can cause visible wobbling on rolling objects.
    • Material: The material the object will behave as. Used to determine footstep sounds, sounds Havok physics will use and how ImpactDataSets respond to the object.
    • Radius: Defines the radius of the capsule's shape.
    • Dimensions: XYZ coordinates controlling width, height and length of the capsule.
  • bhkConvexTransformShape
    • Description: Offsets the position of a convex shape.
    • Shape: The shape or list of shapes to be transformed.
    • Material: Overrides the impact material of all sub shapes, any decal will behave as if it was the material specified. Footstep sounds use the sub shape material sound.
    • Radius:
    • Transform: XYZ values for location, rotation, and scale.
  • bhkConvexVerticesShape
    • Description: A closed collision hull that is incapable of going inside itself. Best used for minor clutter. Note that the W vector is intended for padding and is supposed to be left at 0.
    • Material: Shape material.
    • Radius: The radius of a more performant shell over the convex vertices shape.
  • bhkCylinderShape
    • Description: Cylinder shaped collision primitive. Potentially has precision issues at lower sizes and can cause visible wobbling on rolling objects.
    • Material: The material the object will behave as. Used to determine footstep sounds, sounds Havok physics will use and how ImpactDataSets respond to the object.
    • Radius: Defines the radius of the cylinder's shape.
    • Dimensions: XYZ coordinates controlling width, height and length of the cylinder.
  • bhkMoppBvTreeShape
    • Description: A Bounding volume tree for MOPP.
    • Shape: Can either be a single shape or a list shape.
    • Shape Scale: Self-explanatory.
    • MOPP Data Size: Amount of bytes for MOPP data.
    • Origin: Possibly calculated on export?
    • Scale: According to NifXML: "The scaling factor to quantize the MOPP: the quantization factor is equal to 256*256 divided by this number. In Oblivion files, scale is taken equal to 256*256*254 / (size + 0.2) where size is the largest dimension of the bounding box of the packed shape." Likely updated by NifMOPP.
    • MOPP Data: The actual MOPP data, in bytes.
  • bhkMultiSphereShape
    • Description: Appears to create multiple primitive sphere shapes with definable positions and radiuses. Deprecated in New Vegas, only usable in Oblivion and Fallout 3.
  • bhkPackedNiTriStripsData
    • Description: Block type for detailed collision.
    • Sub Shapes: List of individual collision shapes with separate materials.
      • Layer: Should usually be set to same layer as the parent bhkRigidBody.
      • Flags and Part Number: Used for actors, should usually be set to same setting as the parent bhkRigidBody.
      • Material: The material the object will behave as. Used to determine footstep sounds, sounds havok physics will use and how ImpactDataSets respond to the object.
  • hkPackedNiTriStripsShape
    • Description: Exact function is unclear.
    • Radius: The size of the convex shape radius around your collision, convex shapes are an invisible shell that goes around the actual collision itself that runs a faster collision detection algorithm. The larger the value the more objects that rest upon the surface will visibly float off of the mesh. Very large values can cause objects to wobble and fall off the object.
    • Data: Must always be an hkPackedNiTriStripsData block.
  • bhkPlaneShape
    • Description: A flat, square shaped collision shape. Not defined in NifSkope and unused in Bethesda titles.
  • bhkNiTriStripsShape
    • Description: Uses standard NiTriStripsData for collision shapes, and contains collision metadata like layer type and material. Like hkPackedNiTriStripsData, but each shape is stored separately instead of one block.
    • Material: Doesn't work, collision type is always treated as stone.
    • Radius: Usually 0.10000
    • Scale: Shape scale.
    • Strips: Assigns NiTriStripsData blocks as shapes.
    • Data Layers: Assign collision layers corresponding to assigned shape order.
  • bhkSphereShape
    • Description: Sphere shaped collision primitive. Potentially has precision issues at lower sizes and can cause visible wobbling on rolling objects.
    • Material: The material the object will behave as. Used to determine footstep sounds, sounds Havok physics will use and how ImpactDataSets respond to the object.
    • Radius: The size of the collision sphere.
  • bhkTransformShape
    • Description: Offsets the position of collision shapes. Less performant than bhkConvexTransformShape if used for convex shapes. Cannot be used in bhkConvexListShapes. Should generally never be used.
    • Shape: The shape or list of shapes to be transformed
    • Material: Overrides the impact material of all sub shapes, any decal will behave as if it was the material specified. Footstep sounds use the sub shape material sound.
    • Radius:
    • Transform: XYZ values for location, rotation, and scale.
  • bhkTriangleShape
    • Description: A triangle shaped primitive collision shape. Not defined in NifSkope and unused in Bethesda titles.

Constraints

Blocks that define how two RigidBody blocks move in relation to each other.

  • bhkBallAndSocketConstraint
    • Description: A constraint that defines an elbow joint connecting two rigid bodies.
  • bhkBallSocketConstraintChain
    • Description: Chains together multiple bhkBallAndSocketConstraints.
  • bhkBreakableConstraint
    • Description: Can act like other constraints like bhkMalleableConstraint, but is able to be broken if enough force is applied to it.
  • bhkFixedConstraint
    • Description: A constraint type that prevents linear and angular forces from acting on a bhkRigidBody, but the bhkRigidBody is not truly a fixed object as it still has other physical properties like non-infinite mass. Not defined in NifSkope and unused in Bethesda titles.
  • bhkHingeConstraint
    • Description: A constraint type to allow collision objects to rotate on an axis.
  • bhkHingeLimitsConstraint
    • Description: A version of bhkLimitedHingeContstraint without linear constraints, meant to be used in chains of constraints. Not defined in NifSkope and unused in Bethesda titles.
  • bhkLimitedHingeConstraint
    • Description: A constraint type to allow collision objects to rotate along a fixed range on an axis. Mostly used for armor ground objects to keep them from rotating into themselves, also used in Oblivion for hanging signs.
  • bhkMalleableConstraint
    • Description: A type of constraint that is able to behave like any other kind of constraint.
  • bhkPrismaticConstraint
    • Description: A prismatic constraint defines a singular axis between two collision objects that they can slide along, but not rotate against.
  • bhkRagdollConstraint
    • Description: A constraint that defines a configurable cone of allowed movement of one rigid body attached to another.
  • bhkRagdollLimitsConstraint
    • Description: A version of bhkRagdollConstraint without linear constraints, meant to be used in chains of constraints. Not defined in NifSkope and unused in Bethesda titles.
  • bhkStiffSpringConstraint
    • Description: A constraint that attempts to keep two rigid bodies fixed at a defined distance. Less unstable than bhkSpringAction, but more expensive.
  • bhkWheelConstraint
    • Description: A hinge constraint with a pivot.

Collision Actions

Blocks that add unique collision actions.

  • bhkAngularDashpotAction
    • Description: An action that attempts to keep two bhkRigidBody blocks rotated in the same orientation. Not defined in NifSkope and unused in Bethesda titles.
  • bhkDashpotAction
    • Description: An action that attempts to keep two bhkRigidBody blocks fixed together at a defined point. Not as rigid as bhkBallAndSocketConstraint, and attached bodies can be knocked out of sync. Not defined in NifSkope and unused in Bethesda titles.
  • bhkLiquidAction
    • Description: A bhkRigidBody action that enables collision to stick to other bhkRigidBody blocks with the FOL_STATIC and FOL_TERRAIN layer types. Only used on Incinerator fireballs and Nuka-Grenade explosions, akin to a napalm effect.
  • bhkMotorAction
    • Description: Spins a bhkRigidBody to a defined velocity. Not defined in NifSkope and unused in Bethesda titles.
  • bhkOrientHingedBodyAction
    • Description: An action that attempts to orient a bhkRigidBody's local up vector to match the world's up vector, effectively allowing an object to rotate and pitch up and down, but not tilt. Required for turret skeletons.
  • bhkSpringAction
    • Description: An action that defines a distance between two rigid bodies that can spring together and apart. Not defined in NifSkope and unused in Bethesda titles.

Collision Related

Blocks that are related to collision, but are otherwise too few in number to deserve a subcategory.

  • bhkBlendController
    • Description: A controller to blend certain information used in skeletons.
  • bhkPoseArray
    • Description: Only used in .psa files (openable in NifSkope), they specify bones and transform data for death poses.
  • bhkRagdollTemplate
    • Description: Stored in .rdt files (openable in NifSkope), they contain a list of bhkRagdollTemplateData blocks sharing the names of bones.
  • bhkRagdollTemplateData
    • Description: Contains a list of physics values, a collision material, and constraint information for a bone in a skeleton.

Miscellaneous

Blocks that don't fall into the above categories or aren't worth making their own category for.

ExtraData

One of the biggest strengths Gamebryo has an engine is the ability to define your own additional data fields using NiExtraData. Several forms of formatted data have already been defined, and their uses are very extendible.

  • BSBound
    • Description: Defines the bound of an actor's skeleton. Effects how big the actors movement box is, which effects how tight of a passage an actor can path though (tested against navmesh) and how hard it is for the player or other actors to push past the actor.
    • Name: Should always be BBX
    • Center: The center of the bound.
    • Dimensions: The XYZ dimensions of the bound.
  • BSDecalPlacementVectorExtraData
    • Description: Determines how blood decals warp around melee weapons. Works akin to fresnel lighting, using the normals of vectors to displace a decal. Like a mesh, but without faces.
    • Name: Should always be DVPG
    • Float Data: Erroneous NifSkope formatting, parent class is actually NiIntegerExtraData and the value is not used.
    • Num Vector Blocks: Total number of Vector Blocks.
    • Vector Blocks:
      • Num Vectors: Total number of Vectors.
      • Points: XYZ coordinates of vector points.
      • Normals: The XYZ position of the normal of each Point as above.
  • BSFurnitureMarker
    • Description: Marker information for where actors/the player should snap to when using furniture.
    • Name: Should always be FRN
    • Num Positions: Total number of positions to snap to.
      • Offset: XYZ coordinates of the position.
      • Orientation: Possibly rotation?
      • Position Ref 1: Corresponds to a furniture marker mesh under meshes\markers.
      • Position Ref 2: Always seems to match the first reference value.
  • BSXFlags
    • Description: Used by most NIFs. Determines certain properties of the NIF.
    • Animated: Tick if the NIF has embedded non-material animations.
    • Havok: Tick if the NIF has collision.
    • Ragdoll: Seemingly unused.
    • Complex: Indicates if NIF has multiple dynamic collision objects. If set alongside Dynamic, game uses Actor's custom ragdoll data for initial bone positions when loaded, even if Actor is not dead or unconscious.
    • Addon: Indicates if a NIF can have AddOnNodes attached.
    • Editor Marker: Hides Nodes named EditorMarker and their children.
    • Dynamic: Needed for common movables to allow physics. For actors if set alongside Complex, game uses Actor's custom ragdoll data for initial bone positions when loaded, even if Actor is not dead or unconscious.
    • Articulated: Applies velocity equally to all bones of a grabbed object. Makes objects like armor ground models move cleanly.
    • Needs Transform Updates: Technically unused, meant for a broken grab IK system that lacks animations.
    • External Emit: Seemingly unused, appears to be a holdover from Oblivion which lacked shader properties. Set the External_Emit flag on shader properties instead.
  • NiFloatsExtraData
    • Description: Stores a name and a list of floats. Like NiFloatExtraData, but with more than one value.
  • NiBinaryExtraData
    • Description: Holdover from Oblivion, used to store binormal and tangent vector data.
  • NiBooleanExtraData
    • Description: Holds a name and a bool value. Uses in Oblivion and Skyrim appear to be exporter garbage.
  • NiColorExtraData
    • Description: Contains a name and an RBGA hex field.
  • NiFloatExtraData
    • Description: Stores a name and a float. Use HeadTrack to specify a bone or a skinned object that should be animated for headtracking.
  • NiIntegerExtraData
    • Description: Stores a name and an integer. Only used in vanilla on skeletons to store a value under the name SkeletonID, string isn't used anywhere in code so it appears to be exporter garbage.
  • NiIntegersExtraData
    • Description: Stores a name and a list of integers. Like NiIntegerExtraData, but with more integers.
  • NiStringExtraData
    • Description: 99.99% of these are garbage data leftover from export. They're only ever used to attach Nodes named Backpack to bones they contain the name of.
  • NiStringPalette
    • Description: Used in Oblivion to store the strings used by NiControllerSequences. Strings are separated by 0x00, can only change the contents by importing from file.
  • NiSwitchStringExtraData
  • NiTextKeyExtraData
    • Description: Used to call certain functions at specified timestamps in animations.
  • NiVectorExtraData
    • Description: Stores a name and a single vector in quaternions.

NiNodes

Root or child Nodes that either hold other NiNodes, NiGeometry, or collision.

  • BSBlastNode
    • Description: Determines where an explosion is placed when a destructible object reaches a defined Damage Stage range with an explosion. Without a BSBlastNode, the explosion is placed centered on a random vertex position.
    • Min: The minimum Damage Stage.
    • Max: The maximum Damage Stage.
  • BSDamageStage
    • Description: Defines a range of Damage Stages and activates when a ref with Destruction Data reaches a specified Damage Stage.
    • Min: The minimum Damage Stage.
    • Max: The maximum Damage Stage.
  • BSDebrisNode
    • Description: Determines where debris meshes spawn when a destructible object with enabled debris reaches a defined Damage Stage range.
    • Min: The minimum Damage Stage.
    • Max: The maximum Damage Stage.
  • BSFadeNode
    • Description: Root Node for NIFs that do not contain skinned objects. Shares data fields with NiNode.
    • Flags: NIF NiAVObject Flags
  • BSMultiBoundNode
    • Description: The root Node for cell LOD.
  • BSOrderedNode
    • Description: Allows you to redefine the alpha bound of objects parented to it.
  • BSValueNode
    • Description: Defines the index value for AddOnNode forms to be attached to the NIF.
    • Value: The index value of the AddOnNode.
    • Value Node Flags: Needs testing.
  • NiBillboardNode
    • Description: A form of NiNode that makes its children always face the camera in configurable ways.
  • NiBSPNode
    • Description: Appears to reorder how Nodes containing child objects with alpha are layered. Like a more specific BSOrderedNode.
  • NiNode
    • Description: Common child Node, root Node for skinned objects. Useful for when you need to add more then 1 collision object to a NIF. Also useful for animations where you can nest multiple strips/shapes and a collision object under so everything can move in sync.
    • Flags: NIF NiAVObject Flags
  • NiLODNode
    • Description: Allows you to set up per-NIF LOD akin to the system many games use. Process is relatively the same as Morrowind NiLODNodes, with a few caveats.

Related:

  • NiRangeLODData
    • Description: Swaps child Nodes based on a defined minimum and maximum range.
  • NiScreenLODData
    • Description: Swaps child Nodes based on screen proportion.

MultiBound

Blocks Bethesda added for multibounds in LOD.

  • BSMultiBound
    • Description: Contains a type of MultiBound block.
  • BSMultiBoundAABB
    • Description: An Axis-Aligned Bounding Box.
    • Position: XYZ position data.
    • Extent: The extent of the bounding box.
  • BSMultiBoundCapsule
  • BSMultiBoundOBB
    • Description: An Oriented Bounding Box.
    • Center: The center of the bounding box.
    • Size: The XYZ dimensions of the bounding box.
    • Rotation: Rotation values.
  • BSMultiBoundSphere
    • Description: A sphere shaped bounding box.
    • Center: The defined center of the bound.
    • Radius: The radius of the bound.

Etcetera

Remaining blocks that don't really fit anywhere else.

  • NiAdditionalGeometryData
    • Description: Seemingly only used by Cell LOD, generated during LOD creation.
  • NiCamera
    • Description: An integrable block used to animate or otherwise manipulate the camera.
  • NiPalette
    • Description: Stores a palette of either 16 or 256 RGB values, with optional alpha.

Unusable

These are settings that are engine only, console only, broken or are otherwise unused. None of these properties should be used in NIFs as doing so could result in crashes or other undesirable behavior.

  • bhkAabbPhantom
    • Description: An Axis-Aligned Bounding Box phantom body. Based on Havok documentation, this is likely only to be used by the engine and uses in Fallout 3 are from either testing or erroneously exported.
  • bhkMouseSpringAction
    • Description: Allows you to move bhkRigidBody blocks directly with mouse input. Used internally for the grab function. Not defined in NifSkope.
  • BSAnimNote
    • Description: Not loaded by the game, sets a time value that is overwritten by BSGrabIKNote. Supposedly used in Skyrim.
  • BSAnimNotes
    • Description: Stores a list of individual BSAnimNote. Given BSAnimNote isn't loaded, it serves no purpose.
  • BSBlendTreadTransfInterpolator
    • Description: Identical to the NiBlendInterpolator class, wouldn't do anything new if defined.
  • BSDistantTreeShaderProperty (Engine Only)
    • Description: Only used for TreeLOD.
  • bhkCachingShapePhantom
    • Description: A phantom body block for primitive collision shapes. Slower than bhkSimpleShapePhantom, but less memory intensive. Ideal for trigger volumes that don't move much. Not defined in NifSkope, used internally for character stuff.
  • bhkConvexSweepShape
    • Description: Deletes its data as soon as it's created, doesn't do anything. Only used twice in Oblivion, meant for linear casting?
  • bhkExtraData
    • Description: Presumably a handler for additions to Bethesda's Havok exporter that they never utilized. Uses HKE as a key.
  • bhkExtendedMeshShape (Engine and Console Only)
    • Description: Unknown, name indicates it is a type of NiGeometry block used as a collision shape. Not defined in NifSkope, prevents you from opening console NIFs with them. Possibly an expanded version of bhkMeshShape used in some distros of Oblivion.
  • bhkExtendedMeshShapeData
    • Description: Unknown, name indicates it is a type of NiGeometryData block used as a collision shape. Not defined in NifSkope, prevents you from opening console NIFs with them.
  • BSGrabIKNote
    • Description: Game internally checks for a later NIF version than New Vegas uses, however breaks anims even when corrected. Checks for GrabIK in an arg, and assigns L or R to an Arm field as well as a start string. Possibly meant to attach arms when grabbing an object.
  • BSLookIKNote
    • Description: Game internally checks for a later NIF version than New Vegas uses, even when corrected breaks anims. Possibly meant for head tracking.
  • BSNodeReferences (Engine Only?)
    • Description: Seemingly unused, only handles NiAVObjects (which BSReferences are not), also doesn't handle in-game references.
  • BSPackedAdditionalGeometryData (Console only)
    • Description: Unknown, attached to all NiTriStripData and NiTriShapeData blocks in console NIFs. Possibly a compiled mesh data block?
  • BSReference
    • Description: Unknown, doesn't seem to be for NIFs.
  • BSShaderProperty (Engine Only)
  • BSShaderLightingProperty (Engine Only)
    • Description: Base class for shader properties that support multiple lights.
  • BSTextureData
    • Description: Defined but not used anywhere in code.
  • BSWArray
    • Description: Only read by a function that's never read, identical to NiIntegersExtraData. Stores a list of integers.
  • HairShaderProperty
    • Description: Lacks pixel shaders, doesn't render.
  • NiAlphaAccumulator (NiClusterAccumulator) (Engine Only)
    • Description: Responsible for sorting alpha.
  • NiBlendAccumTransformInterpolator
    • Description: Blends quaternion values and accumulates the results. Used internally, not defined in NifSkope.
  • NiCollisionData
    • Description: Gamebryo-specific collision type, deprecated.
  • NiCullingProperty
    • Description: Gamebryo-specific culling property, deprecated.
  • NiDirectionalLight
    • Description: Gamebryo-specific light, deprecated.
  • NiDitherProperty
    • Description: Would have been able to dither textures, mostly used in Morrowind and Oblivion on fire particles. Deprecated since Oblivion.
  • NiExtraData (Engine Only)
    • Description: Parent class to most Extra Data blocks.
  • NiFogProperty
    • Description: Would have been able to manipulate how a mesh rendered in regards to fog, deprecated since Morrowind.
  • NiKeyframeManager (Engine Only?)
    • Description: Outdated, use NiControllerManager instead.
  • NiParticles (Engine Only) (NiGeometry) (Was split between NiRotatingParticles and NiAutoNormalParticles in Morrowind)
    • Description: Engine-level class for particles.
  • NiParticlesData (NiGeometryData) (NiAutoNormalParticlesData)
    • Description: Mesh data for NiParticles.
  • NiPersistentSrcTextureRendererData
    • Description: Marks a texture as being in a platform/GPU ready format that doesn't need to be converted for render, not used in Beth titles.
  • NiPixelData (Engine Only)
    • Description: Gamebryo-specific block meant to define pixel information of a texture or outright embed one in the NIF, the engine handles that information automatically.
  • NiRotatingParticlesData
    • Description: Deprecated since Morrowind, particle data for NiRotatingParticles which isn't used in Fallout 3 or New Vegas.
  • NiLines (NiGeometry)
    • Description: A type of polyline, a polygonal vector rendered between defined points. Used for debug or primitive rendering, like the radius of Sound Markers in GECK. Check out vib-ribbon for an example of a game made out almost entirely of polylines.
  • NiLinesData (NiGeometryData)
    • Description: Mesh data for NiLine.
  • NiScreenElements (NiGeometry)
    • Description: Used to display 2D geometry on the screen like the HUD.
  • NiScreenElementsData (NiGeometryData)
    • Description: Mesh data for NiScreenElements.
  • NiScreenGeometry (NiGeometry)
    • Description: Unknown.
  • NiScreenGeometryData (NiGeometryData)
    • Description: Unknown, mesh data for NiScreenGeometry.
  • NiScreenPolygon (Engine Only)
    • Description: Used to draw UI elements.
  • NiScreenSpaceCamera
  • NiScreenTexture
  • NiSequence (Engine Only?)
    • Description: Deprecated ancestor for NiControllerSequence.
  • NiSequenceStreamHelper
    • Description: Root animation Node for Morrowind KF files, wholly superseded by NiControllerSequence.
  • NiShadeProperty
    • Description: Would have been able to toggle flat and smooth shading on geometry, deprecated since Morrowind. Turns objects invisible if attached.
  • NiSortAdjustNode
    • Description: Gamebryo alpha sorting is unused by Beth's renderer.
  • NiSourceCubeMap (Engine Only)
    • Description: Stores a cubemap texture. Internally, the 5th slot of BSShaderTextureSet is a NiSourceCubemap.
  • NiSpecularProperty
    • Description: Enables specular lighting on a NiGeometry block, deprecated since Oblivion as the engine handles specular automatically.
  • NiSpotLight
    • Description: Gamebryo-specific light, deprecated. Currently being reimplemented for New Vegas, will be moved later.
  • NiStringsExtraData
    • Description: No fields are read, but could be repurposed. Mostly used for Skyrim.
  • NiSwitchNode (Engine Only)
    • Description: Used to swap visible Nodes without embedded animations. Fallout 3 and New Vegas have no ability to interact with them directly as of present, but may get a script function in a plugin.
  • NiTextureEffect
    • Description: Used to add certain texture overlay effects like environment mapping or fog textures. Deprecated since Morrowind, game doesn't know how to render it anymore.
  • NiTriShapeDynamicData (Engine Only)
    • Description: Meant for things not implemented like engine-generated animated water meshes.
  • NiTriStripsDynamicData (Engine Only)
  • NiUVController
    • Description: Used to scroll, stretch/shrink, and rotate mesh UVs as well as swap between multiple UVs in a NiGeometry block. Would apparently work just fine if the engine still supported multiple UV sets. Texture manipulation should be handled by NiTextureTransformControllers.
  • NiUVData
    • Description: Key data for use with NiUVController.
  • NiVertexColorProperty
    • Description: Allowed you to set how vertex colors interacted with light, deprecated since Oblivion.
  • NiVertWeightsExtraData
    • Description: Antiquated block used to store vertex weights, functionally inferior to NiSkinData. Outdated even before Morrowind.
  • VolumetricFogShaderProperty
    • Description: Volumetric fog is broken in vanilla and this prop would probably be engine only if it worked.

See Also