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 own renderer which has 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 by 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. NoSorter is deprecated, use BSOrderedNode to sort alpha enabled objects instead.
  • NiMaterialProperty
    • Description: Handles the material properties of a NiGeometry block.
    • Name: It's advised to come up with unique names for NiMaterialProps when you're animating via NiControllerManager.
    • Num Extra Data List: Total number of Extra Data blocks attached.
    • Extra Data List: An Extra Data block can be attached here.
    • Controller: Several types of material animation can be manipulated via controllers. Attach them directly if you only need one animation that loops.
    • Specular Color: Specular color is currently unused and does not affect anything. In TES games, it is used to tint the light shine on objects.
    • Emissive Color: Determines which color objects glow. Combine with colored glowmaps in BSShaderTextureSet to get multiple colors at the same time.
    • Glossiness: Determines how "shiny" an object is. Affected by specular maps.
    • Alpha: Manipulates the alpha of an object. Generally best left untouched on objects that don't need the alpha animated.
    • Emissive Mult: Determines how bright the Emissive Color is. 1.000000 is generally too dim to really notice.
  • NiStencilProperty
  • NiTexturingProperty
    • Description: Testing and decompilation have revealed it to be ignored by the renderer. Essentially just a container for NiSourceTexture blocks for use in texture and particle animation.


  • 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 3.0 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 inefficient. 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 optimized. 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.


  • BSSegmentedTriShape
    • Description: Geometry block that has its mesh data split into toggleable segments. Used for Object LOD.
  • NiLines
    • 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
    • Description: Mesh data for NiLine.
  • NiScreenElements
    • Description: Used to display 2D geometry on the screen.
  • NiScreenElementsData
    • Description: Mesh data for NiScreenElements.
  • NiScreenGeometry
    • Description: Unknown.
  • NiScreenGeometryData
    • Description: Unknown, mesh data for NiScreenGeometry.
  • 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.
  • NiTriShapeData
    • Description: NiGeometryData block for a NiTriShape Node.
  • NiTriStrips
    • Description: NiGeometry for a NiTriStripData block. Recommended for objects that are not skinned.
  • NiTriStripsData
    • Description: NiGeometryData block for a NiTriStrips Node.

Miscellaneous Visuals

Stuff that doesn't meet the critera 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
    • Texture 2: Normal Map
    • Texture 3: Glow
    • Texture 4: Parallax / Height
    • Texture 5: Cube Map
    • Texture 6: Environment Map
  • 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.
    • Data: Should always be NiSkinData.
    • Skin Partition: Should always be NiSkinPartition.
    • Num Bones: Total number of bones in the chain, from the root bone of the skeleton to the last bone in the dismemberment partition(s).
    • Bones: Links to each bone as stated above.
    • Num Partitions: Total number of dismemberment partitions.
    • Partitions: Visibility and enable flags for dismemberment partitions, as well as which body part they belong to.
  • 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.
    • Num Skin Partition Blocks: The total number of partitions on the object, should always match the number of partitions in the parent SkinInstance.
    • Skin Partition Blocks: Stores the data for each partition.
      • Num Vertices: Total number of vertices in the partition.
      • Num Triangles: Total number of polygons in the partition.
      • Num Bones: Total number of bones in the partition.
      • Num Strips: Total number of TriStrips in the partition. Skinned objects should always be TriShapes, so this should generally always be 0.
      • Num Weights Per Vertex: Should always be 4, Gamebryo specific value.
      • Bones: Lists the bones by index number, should generally always match the order of bones in the NIF, unrelated to the block number.
      • Has Vertex Map: Should generally always be yes.
      • Vertex Map: Stores the index number of vertices, should always match the vertex order in the parent node's NiGeometryData block.
      • Has Vertex Weights: Should generally always be yes.
      • Vertex Weights: Stores the weighting information of every vertex in the partition, order matches the index count in Vertex Map.
      • Strip Lengths: The length of TriStrips in the partition, assuming Num Strips has a positive value.
      • Has Faces: Whether or not the partition has triangles, should generally always be yes.
      • Triangles: Stores polygon information in some bizarre three single-digit order.
      • Has Bone Indices: Should always be yes.
      • Bone Indices: Presumably converts the bone number from Bones into a 1-4 range for each vertex as listed in Vertex Map.
  • 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.

  • NiBlendAccumTransformInterpolator
  • NiBlendBoolInterpolator
  • NiBlendColorInterpolator
  • NiBlendFloatInterpolator
  • NiBlendPoint3Interpolator
  • NiBlendQuaternionInterpolator
  • NiBlendTransformInterpolator
  • NiBoolInterpolator
    • Description: Typically stores a NiBoolData.
  • NiBoolTimelineInterpolator
    • Description: Typically stores a NiBoolData.
  • NiFloatInterpolator
    • Description: Interpolates floats from NiFloatData.
  • NiFloatsExtraDataController
    • Description: Interpolates floats from a NiFloatsExtraData.
  • NiFloatsExtraDataPoint3Controller
    • Description: Interpolates floats from a NiFloatsExtraData.
  • NiPoint3Interpolator
    • Description: Stores three null values that are interpolated from key data in an attached NiPosData.
  • NiQuaternionInterpolator
    • Description: Unknown, not defined in NifSkope and not used in any game to date. Likely interpolates between a list of quaternions.
  • NiTransformController (Was NiKeyframeController in Morrowind)
  • NiTransformData (Was NiKeyframeData in Morrowind)
  • NiTransformInterpolator

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 frustum 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. Only used in vanilla to hide objects like picked fruit and night time windows.
  • BSRefractionStrengthController
    • Description: Manipulates the RefractionStrength value of a Shader Property. Only used in vanilla to hide objects like picked fruit and night time windows.
  • BSRotAccumTransfInterpolator (possibly Rotation Accumulation Transfer?)
    • Description: Has something to do with animating things as if they were a tread.
  • BSTreadTransfInterpolator (Possibly Tread Transfer?)
    • 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.
  • NiBSBoneLODController
    • Description: Manages LOD groups for bones in a skeleton to reduce the number of moving Nodes over distances.
  • NiBoneLODController
  • NiColorExtraDataController
    • Description: Presumably controls the value in NiColorExtraData. Needs to be decomped and defined for NifSkope.
  • NiColorInterpolator
    • Description: Presumably interpolates between color values listed in NiColorData. Appears to be a more generic form of NiPSysColorModifier. Needs to be decomped and defined for NifSkope.
  • 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 and ambient colors of a NiLight. Typically called from a controlled block in NiControllerSequence.
  • 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. Used in the roulette minigame to manipulate the camera when the ball is thrown.
  • NiMaterialColorController
    • Description: Manipulates certain color values on NiMaterialProperty. Typically used to animate the Emissive color value of an object.
  • 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
  • NiUVController
    • Description: Used to scroll mesh UVs as well as swap between multiple UVs in a NiGeometry block.
  • NiVisController
    • Description: Used to hide and unhide specified parts of a NIF during animations.

Animation Related

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

  • 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: Appears to always be set to <float_max>, timing data is typically set in NiTextKeyExtraData
    • Stop Time: Appears to always be set to <float_min>.
    • 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.
  • NiMorphData
    • Description: Contains a list of frames used to morph mesh geometry, as well as the vectors for each frame.
  • NiMultiTargetTransformController
    • Description: Specifies which blocks are transformed.
    • Next Controller: Usually blank.
    • Flags: Defines whether the animation plays once or loops.
    • Frequency: Usually always 1.000000
    • Phase: Usually always 0.000000
    • Start Time: Usually always <float_max>, animation timing data is typically stored in NiTextKeyExtraData.
    • Stop Time: Usually always <float_min>.
    • Extra Targets: Specifies which blocks are transformed. Null entries appear to be safe.
  • 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.
  • NiUVData
    • Description: Key data for use with NiUVController.

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 used in any Bethesda game to date and not defined in NifSkope.
  • NiBSplineCompColorInterpolator
    • Description: Presumably interpolates compact BSplineData blocks in the context of color animation, not used in any Bethesda game to date and not defined in NifSkope.
  • 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 used in any Bethesda game to date and not defined in NifSkope.
  • NiBSplinePoint3Interpolator
    • Description: Presumably interpolates non-compact BSplineData blocks as a three value float field in .KF animations, not used in any Bethesda game to date and not defined in NifSkope.
  • 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 NiMeshParticleSystem using BSStripPSysData instead of NiMeshPSysData. A particle system using meshes instead of 2D sprites.
  • BSStripPSysData (NiGeometryData)
    • Description: Mesh 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: Not defined in NifSkope. According to documentation, it is a particle system using TriShapes in NiParticleMeshesData.
  • 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 (max?) 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: Appears to modify the velocity of particles.
  • BSPSysSimpleColorModifier
    • Description: Modifies the color of particles by fading between two defined colors?
  • BSWindModifier
    • Description: Modifies the path of particles based on the wind values defined by the current weather.
  • 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 an object, typically an empty NiNode. Allows you to define the direction, decay, acceleration, falloff speed, and symmetry shape of the force.
  • NiPSysColorModifier
    • Description: A modifier to change the color of particles over time using color and time key values in 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 Field Object (like an empty NiNode). Allows you to define the magnitude, attenuation, and direction, as well as whether or not their is a maximum distance before gravity stops affecting particles.
  • 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. Allows you to define the speed, angle, and axis, as well as variance values for the former two and the ability to make speed and/or the axis completely random.
  • NiPSysSpawnModifier
    • Description: A modifier to spawn copies of existing particles, can be used for other modifiers such as NiPSysAgeDeathModifier. Allows you to configure the spawn chance, the minimum and maximum number to spawn, variance of speed, direction, and life span.
  • NiPSysTurbulenceFieldModifier
    • Description: Simulates the effects of turbulence in a localized area using a Field Object (such as an empty NiNode). Allows you to configure the magnitude, attenuation, and frequency of updates, as well as whether or not there is a maximum distance before particles are no longer affected by turbulence.
  • 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.

  • NiPSysColliderManager
    • Description: Defines a shape (either NiPSysPlanarCollider or NiPSysSphericalCollider) to be used as a particle specific collision object.
  • NiPSysPlanarCollider
    • Description: A collision shape for particles. Allows you to define the origin using a Collider Object (like an empty NiNode), dimensions, and angle, as well as the behavior particles have when they touch the object, such as whether they bounce, spawn new particles, or die on contact.
  • NiPSysSphericalCollider
    • Description: A collision shape for particles. Allows you to define the origin using a Collider Object (like an empty NiNode), the radius, the next collider, a NiPSysSpawnModifier, as well as the behavior particles have when they touch the object, such as whether they bounce, spawn new particles, or die on contact.

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, with configurable speed, declination, angle, color, radii, and life spans, with variance values for each field.
  • NiPSysCylinderEmitter
    • Description: A particle emitter that spawns particles within a definable cylindrical shape, with configurable speed, declination, angle, color, radii, and life spans, with variance values for each field.
  • 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, with configurable speed, declination, angle, color, radii, and life spans, with variance values for each field.

Particle Controllers

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

  • BSPSysMultiTargetEmitterCtlr
    • Description: A controller that manipulates emitters for use in animation. Like NiPSysEmitterCtlr, but with multiple emitters instead of just one.
  • 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: A controller that manipulates an emitter for use in animation. 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: A controller to manipulate the Declination value of an emitter for use in animation.
  • NiPSysEmitterDeclinationVarCtlr
    • Description: A controller to manipulate the Declination Variation value of an emitter for use in animation.
  • NiPSysEmitterInitialRadiusCtlr
    • Description: A controller to manipulate the Initial Radius value of an emitter for use in animation.
  • NiPSysEmitterLifeSpanCtlr
    • Description: A controller to manipulate the Life Span value of an emitter for use in animation.
  • NiPSysEmitterPlanarAngleCtlr
    • Description: A controller to manipulate the Planar Angle value of an emitter for use in animation.
  • NiPSysEmitterPlanarAngleVarCtlr
    • Description: A controller to manipulate the Planar Angle Variation value of an emitter for use in animation.
  • NiPSysEmitterSpeedCtlr
    • Description: A controller to manipulate the Speed value of an emitter for use in animation.
  • NiPSysFieldAttenuationCtlr
    • Description: A controller to manipulate the Attenuation value of a Field modifier for use in animation.
  • NiPSysFieldMagnitudeCtlr
    • Description: A controller to manipulate the Magnitude value of a Field modifier for use in animation.
  • NiPSysFieldMaxDistanceCtlr
    • Description: A controller to manipulate the Max Distance value of a Field modifier for use in animation.
  • NiPSysGravityStrengthCtlr
    • Description: A controller to manipulate the Strength value of a Gravity modifier for use in animation.
  • NiPSysInitialRotAngleCtlr
    • Description: A controller to manipulate the Rotation Angle value of a NiPSysRotationModifier for use in animation.
  • NiPSysInitialRotAngleVarCtlr
    • Description: A controller to manipulate the Rotation Angle Variance value of a NiPSysRotationModifier for use in animation.
  • NiPSysInitialRotSpeedCtlr
    • Description: A controller to manipulate the Rotation Speed value of a NiPSysRotationModifier for use in animation.
  • NiPSysInitialRotSpeedVarCtlr
    • Description: A controller to manipulate the Rotation Speed Variance value of a NiPSysRotationModifier for use in animation.
  • NiPSysModifierActiveCtlr
    • Description: A controller to manipulate the Active value of a NiPSys block for use in animation. Essentially a per-modifier version of NiVisController.
  • 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.
  • 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.
  • bhkCollisionObject
    • Description: The parent block for bhkRigidBody and bhkRigidBodyT.
    • Target: Required. Applies impact decals to all children NiGeometry blocks under the targeted Node. Should always be the root BSFade or NiNode or whatever Node is intended to be interacted with.
    • Flags:
    • 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.
  • bhkConvexSweepShape
    • Description: Only used twice in Oblivion, meant for linear casting?
  • 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.

  • bhkAabbPhantom
    • Description: An Axis-Aligned Bounding Box phantom body.
  • 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:
    • 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. Not 100% round, there is a noticeable wobble when rolling.
    • 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:
    • Dimensions: XYZ coordinates controlling width, height and length of the capsule.
  • bhkConvexTransformShape
    • Description: A faster form of bhkTransformShape, but only for use with convex shapes.
    • 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.
    • Material: Shape material.
    • Radius:
  • bhkCylinderShape
    • Description: Cylinder shaped collision primitive. Not 100% round, there is a noticeable wobble when rolling.
    • 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:
    • 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.
  • hkPackedNiTriStripsData
    • 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.
  • bhkPackedNiTriStripsShape
    • 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. 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
  • 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. Not 100% round, there is a noticeable wobble when rolling.
    • 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 overall size of the Sphere.
  • bhkTransformShape
    • Description: Another way of applying transforms to a collision shape, typically generated when exporting transformed collision with Transforms disabled. Collision interactions are heavier with bhkTransformShapes.
    • 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.

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: Allows a child constraint to break if enough force is applied to it.
  • bhkFixedConstraint
  • bhkHingeConstraint
    • Description: A constraint type to allow collision objects to rotate on an axis.
  • bhkHingeLimitsConstraint
  • 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: Allows a constraint to be stiffer or looser. Examples include making a bhkRagdollConstraint grow stiffer near the end of the constraint, or making a bhkStiffSpringConstraint actually springy.
  • 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: Unknown, possibly limits a radial area on a bhkRagdollConstraint?
  • 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. Information is scarce due to a severe lack of use.

  • bhkAngularDashpotAction
    • Description: An action that attempts to keep two rigid bodies rotated in the same orientation. Not defined in NifSkope.
  • bhkDashpotAction
    • Description: An action that attempts to keep two rigid bodies fixed together at a defined point. Not as rigid as bhkBallAndSocketConstraint, and attached bodies can be knocked out of sync. Not defined in NifSkope.
  • 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. Requires further decompilation, NifXML is incomplete.
  • bhkMotorAction
    • Description: Spins a bhkRigidBody to a defined velocity. Not defined in NifSkope.
  • bhkMouseSpringAction
    • Description: Not defined in NifSkope.
  • bhkOrientHingedBodyAction
    • Description: Appears to be necessary 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.

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.
  • bhkExtraData
  • 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 have are very extendible.

  • 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.
  • NiBoolData (NiVisData)
    • Description: Stores a boolean value as well as a time value, usually used for NiVisControllers.
  • 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.
  • NiFloatData
    • Description: Stores a list of floats as key data.
  • 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: Exact purpose is unknown. Contains a list of strings separated by 0x00, can only change the contents by importing from file.
  • NiSwitchStringExtraData
  • NiTextKeyExtraData
    • Description: Used for animation timing data. Known read fields are Start, Stop, Blend, and Sound and Enum which both play a sound Form.
  • 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.
  • 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.
  • 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.


  • BSBound
    • Description: Defines the bound of an actor's skeleton.
    • 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: Unknown, seems to always be 0.000000
    • 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: Matches the position number.
      • Position Ref 2: Ditto.
  • 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
  • BSMultiBoundNode
    • Description: The root Node for cell LOD.
  • 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.
  • BSXFlags
    • Description: Used by most NIFs. Determines whether or not the NIF has certain properties like physics or collision.
  • 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.
  • NiScreenPolygon
  • NiScreenSpaceCamera
  • NiScreenTexture

Unused

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.

  • 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.
  • 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)
  • 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?)
  • NiParticles (Engine Only) (Was split between NiRotatingParticles and NiAutoNormalParticles in Morrowind)
  • NiParticlesData (NiAutoNormalParticlesData)
  • 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, 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.
  • NiSequence (Engine Only?)
    • Description: Depreciated 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.
  • 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)
  • NiTriStripsDynamicData (Engine Only)
  • 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