Skip to content

Releases: niftools/nifskope

Choose a tag to compare

VC++ 2015 Redistributable is required for 64-bit builds. 32-bit build is forthcoming.

For previous changelogs, see -


2 0dev7-1


  • Introduced new "Error Color" to match how missing textures are rendered (magenta). If you would prefer no Error Color you can turn it off in Startup Defaults. Currently only applies to files utilizing shaders (Skyrim and FO4).
  • Fixed the tentative rendering fixes from the last release
    • Meshes with missing textures will no longer show up black.
    • Parts of meshes will no longer be invisible.
  • Fixed partitionless skinning rendering (present in Civilization IV and earlier games)
  • Any crashes during the save function no longer write a corrupt/incomplete file.


  • (Tentatively) Fixed a longstanding bug with some GPUs rendering meshes as invisible due to shader issues. Particularly AMD cards.
  • Fixed shader selection for Skyrim so Multi-Layer Parallax shader works again.
  • Support more Oblivion NIFs in some foreign distributions which have inexplicably outdated NIF versions (possible packaging issue). The original American release has most files at but there can be variants of, 10.2,, and
  • Cubemap slots now have a default cubemap if one is not assigned. It is a debug cubemap made of solid colors red/cyan, green/magenta, and blue/yellow.


  • Fixed a crash bug with copy/paste on < 20.1 NIFs


  • Fixed bug where transparency turned to wireframe when an object was selected.
  • Tweaked nif.xml to show bhkRigidBody data for FO4 (pre-Elric) more correctly.



  • New UI theming engine.
    • New Dark/Light theme with user customizeable palettes.
    • Toolbar icon size selection (in Settings > General > Theme)
  • Copy/Paste branch overhaul
    • Strings maintained on copy/paste for Each block has its string indices updated with a new string brought over from the source file. See gallery below for an example.
    • Relaxed the linking restrictions on Paste Branch when a link points to the root node. This allows NiCollisionObject branches to be pasted onto other NIFs more easily for example.
    • Pasting a branch is now 20-30x faster, more so for extremely deep branches.
    • NiCollisionObjects are now auto-linked if pasted on top of an NiAVObject (node or trishape)
  • Add New Ref for None refs:
    • Filtered by the valid types for that link. Interpolator and Controller Refs have additional filtering which only shows the valid types for that block.
      base-profile-12 08 2017---16 36
  • New row copy/paste (incl. multi-row paste). Ideal for quickly pasting types like Vector3 or Color4.
    • Click single row, Ctrl + C, click one or many rows, Ctrl + V
    • Fully undoable.
    • Caveat: Strict type validation (e.g. cannot paste int<->uint or uint<->ushort)
    • NOTE: You cannot multi-copy multiply selected rows. Only the first selected value is copied. You can only paste a single value to multiple rows.
      base-profile-12 17 2017---23 59
  • New array-compound copy/paste. Any flat array or flat compound i.e. an expandle item with no more expandable items under it can be copied and then pasted on other arrays/compounds.
    • Fully undoable. An entire array paste is undone/redone as a group.
      compoundcp-50 arraycp-50
  • Ref arrays (such as Children array on NiNode) can be reordered using Ctrl-Up and Ctrl-Down on individual Refs.
  • Icon res upped 2x for high DPI.
  • Updated all URLs to NifTools websites, added URLs to the NifTools Discord
  • Hold X or Y to constrain axis of motion in UV Editor
  • Hold spacebar as alternative to using MMB for panning in viewport
  • 'Reject Changes' button for NifBlockEditor windows (e.g. Edit Transform). Sets the values back to when you first opened the window.
  • Auto-expansion of more items in Block Details. Modified Textures array expansion to a more general "end array" expansion. Will now apply to Connect Points, etc. Expand NiSkinPartition partition array always, expand NiQuatTransform in interpolators always, expand Children array of NiNode if relatively small.
  • Flags window for editing the vertex attributes for BSTriShape. It hides the bits that need to be auto calculated from the flags and updates the rest of it after you set them. It also recalculates the Data Size. This means you can now turn vertex attributes on/off for FO4/SSE without breaking the NIF.
  • Import/Export improvements
    • Import/Export menu options are now disabled dynamically based on the NIF version instead of always disabled.
    • Exports/Imports more shader settings and texture paths for Skyrim and later. Will create shader properties and texture sets for the newly imported OBJ.
    • BSFadeNode, et al. are now seen as an NiNode for exporting a selection or for parenting an imported mesh.
  • Settings > Resources improvements
    • Add archives from the file dialog only if they contain a textures or materials folder, the same as done with the Auto Detect button.
    • Disallowed manual editing of list items in Archives, but maintained it in Paths.
    • Correctly mark the pane as modified for editing list items and toggling Alternate File Paths option.


  • New texture loader. Supports DX10-header DDS files and BC7, etc. Is also much faster.
  • First stage of renderer rewrite. Removed many bottlenecks. NIFs with thousands of blocks could go to 20FPS or lower. They are now renderered about 3x faster. Some NIFs with 10,000+ blocks are now 4-5x faster.
  • Node axis visualization (Show Axes and Show Nodes must be on). Lets you see the orientation of a node i.e. how objects under that node will be oriented.
  • Reworked segment visualization for FO4 BSSubIndexTriShape. See gallery below for an example.
  • LOD Slider FO4 support (BSMeshLODTriShape)
  • RGB Falloff now supported in FO4 shaders
  • BSPackedCombinedGeomDataExtra (CK generated _OC NIFs) can now be loaded. The geometry baked into the extra data cannot currently be viewed.
  • For skinned shapes, the triangles/strips used for rendering are now the ones from the partitions. So certain NIFs which only had triangles on their partitions will render now and the rendering will be generally more accurate in the event the partition and the shape triangles aren't in sync.
    • Also made a spell which lets you update the shape triangles from the partition triangles (for NiTriShape only so far).

Data Management

  • Spell updates for SSE/FO4 NIF versions
    • Transform > Apply now works for BSTriShape
    • Texture > Export Template now works for BSTriShape
    • Face/Smooth Normals updated for SSE, incl. skinned meshes.
    • Update Tangents updated for SSE, incl. skinned meshes.
  • Spells for managing NiControllerSequence and NiDefaultAVObjectPalette
  • Updates for latest nif.xml
    • Major NIF format decoding, esp. in bhk blocks for Bethesda versions, and major non-Bethesda version decoding was done across the board.
    • Reduced nesting of HavokMaterial, HavokColFilter and constraint descriptor types
      • This fixed the coloring of collision wireframes based on their layer (e.g. static, clutter, biped)
      • This fixed the display of some constraints no longer working.


  • Fixed long elusive checkbox list crashing e.g. when editing bitflags like shader flags
  • Fixed cross-platform build issues
  • Fixed game detection for 64-bit builds
  • Fixed "Close All Windows" (taskbar option) crash
  • Fixed display of bhkConvexListShape and sub-shapes in hkPackedNiTriStripsData
  • Fixed BGSM/BGEM priority over the shader property blocks for things such as Double Sided, ZBuffer Test, ZBuffer Write
  • (32-bit Only) Fixed longstanding bug with MOPP code regeneration. The byte array was not correctly updated so all binary data created by this spell has always been corrupt. Confirmed to happen in 1.1.x by a tester.
  • Fix texture loading for non-Bethesda games. The path was being cleaned in a way which Bethesda games require.
  • Fixed Update Tangent Spaces for FO4. Tangents were never updated for FO4, only Bitangents, due to an issue with set<T>.
  • Fixed Transform > Apply for all NiTri* based NIFs. It was not transforming Tangents and Bitangents if the Transform had non-identity rotation. So it was required that you also ran Update Tangent Spaces after.
  • Fixed KFM file loading
  • Fixed Stripify for large shapes.
  • Selecting rows in very large flat arrays is no longer slow with Row Hiding on.
  • Fixed camera motion when changing the default up axis in Render settings.
  • Fixed Color3/Color4 behaviors (allows > 1.0, value doesn't show as hex RGB when > 1.0). BSEffectShaderProperty's Color4 alpha most commonly uses values > 1.0.
  • Fixed rigid body selection in viewport (clicking on rigid body axes). Rigid Body axes now turned on/off with Show Axes.

Non-Bethesda specific changes

  • NiMesh initial rendering support (geometry for versions 20.5+)
  • Corrected NiTexturingProperty UV set selection in 20.1+ NIFs, which also applied to NiMesh NIFs. Lightmaps and such were not getting the correct UV sets so the entire appearance was broken.
  • Corrected NiVertexColorProperty vertex color rendering for 20.1+ NIFs. The information moved to a single Flags field which was not being read by the renderer. Vertex colors did not show up at all before this fix.
  • and support, including the header version which does not have block type strings and only hashes.
  • Usage/Access are retained for NiDataStream with copy/paste
  • Fix palettized NiPixelData texture loading


Block String Preservation on Copy/Paste

block string preservation
Note: My copy/paste actions in the GIF do not necessarily make a valid NIF

Better Segment Visualization (FO4)


NiMesh (20.6) Rendering

nimesh-20 6

Array/Compound Copy/Paste

base-profile-12 18 2017---00 17

Choose a tag to compare

Skyrim SE support

📒 Full changelog

🔗 Download

The most up-to-date version can always be downloaded from here:

Choose a tag to compare
Choose a tag to compare

Built from hexabits/nifskope@c9da040


Nightly 2014-07-10

  • [Feature] "Set All" for Color arrays such as vertex colors.
  • [Fix] Crash in spells which used certain block operations like Crop to Branch
  • [Fix] Translations now work again (but may not be up to date)


  • [Feature] Reimplemented settings migration between NifSkope versions (#61, #11)
    • NifSkope 1.1.3 had removed the registry-key-per-version code. NifSkope 1.1.3 will now maintain its original settings and not be touched by future NifSkope versions.
    • Minor version releases (1.2, 1.3, 1.4) will each get their own registry key. 1.2 will import settings from 1.1.3 when applicable.

This means your UI and other settings will reset the first time you run this build, and it will migrate all the important settings from the 1.1.3 settings, and now 1.1.3 will no longer interfere with 1.2+ and vice versa.

  • [Enhancement] Screenshot dialog enhancements (#60)
    • You have the choice of using the screenshots directory in your NifSkope folder (it auto-creates the directory if it's not yet present).
    • You have the choice of saving to the same folder as the NIF file.
      (You can still save anywhere by opening the File dialog)
    • It creates a default filename based on the NIF filename and the datetime.
    • It saves your preferred JPEG quality.
    • Changed the file priority to JPG > PNG > BMP. So that JPG is the default.
    • Widened the dialog for legibility.
  • [Enhancement] BaseModel does not store file info (#59)
  • [Enhancement] Window title now shows NifSkope version and release (e.g. 1.2.0 Alpha 2) (#61)
  • [Fix] Inverted UV Editor zoom
  • [Fix] Mesh selection (i.e. clicking TriShapes) in viewport is inaccurate with Antialiasing enabled in Render > Settings. (#57)
  • Dev Redid alpha depth biasing to work more generally so that e.g. wireframes can still show above decals.
  • Dev JPEGs do not save in Nightly 20140528. (Missing DLLs) (#58)


  • [Feature] Minimal shader support for Skyrim (normal mapping, partial glow mapping). (#26)
  • [Feature] Minimal shader support for Fallout (normal mapping). (#26)
  • [Feature] Alpha depth biasing for decals (alpha tested transparencies in same plane as base mesh). Completely eliminates z-fighting / flickering.
  • [Feature] Multisampling AA.
    • Hardcoded at 16 samples, though driver settings should be able to override this. Will be configurable in the future.
  • [Feature] Anisotropic Filtering.
    • Uses max available. Will be configurable in the future.
  • [Feature] Save screenshot of viewport to file. Render > "Save View to File...".
    • I re-enabled this feature from some disabled code. The action was under the Render menu and I left it there, though I will likely relocate it to File, and create a toolbar icon for it.
  • [Enhancement] FPS bumped to 60, from 30... There seems to be a floating point error which causes 30 to become ~21, and 60 -> 62.5. This will be fixed in the future and FPS will become user configurable in Settings.
  • [Enhancement] Began GL code cleanup / refactoring.


  • [Feature] The "Textures" array in BSShaderTextureSet blocks will be expanded by default. (#55)
  • [Fix][Qt5] The file dialog for Texture > Choose would cause the NifSkope window to lose focus after selecting a texture (reported by Hanaisse) (#54)


  • [Feature] You can drag multiple files to the executable, or select multiple files from Windows Explorer and hit Enter or Right Click > Open.
    • Opening multiple files is not yet available from the file dialogs inside NifSkope.
  • [Enhancement] LOD slider is enabled only on NIFs with BSLODTriShapes.


  • [Feature] Add Skyrim, Fallout: NV auto-detection (#49)
  • [Feature] Added Skyrim, Fallout: NV BSA support (#49)
  • [Feature] Added display support for bhkCompressedMeshShape (#7)
  • [Feature] BSMultiBound - Initial support, displays AABB/OBB (#16)
  • [Feature] Edit UV support for BSEffectShaderProperty (reported by Hanaisse) (#4)
  • [Feature] BSLODTriShape support for Spells (same as NiTriShape) (#1)
  • [Feature] LOD Level visualization for BSLODTriShapes (#22)
  • [Fix] Plugin - OBJ - UV Import fix (#8).
  • [Fix] Enums sorting out of order
  • [Fix] Bitflags with only one checked option were uncheckable (reported by ttl269) (#51)
  • [Fix] Havok scale fixes for Skyrim (#3)
  • [Fix] Scale generated bhkConvexVerticesShape for Skyrim (#7)
  • [Fix] Sluggish UI elements in Rendering Settings due to continuous flushing of 3D.
  • [Improvement] Port to Qt5 (#28)
  • [Improvement] Refactored FSEngine (BSA handler) for Qt5 (#36)
  • [Improvement] Tooltip formatting, large enum display. (#47)
  • [Improvement] Export UV Template rewrite (Broke in Qt5 port, reported by Hanaisse) (#52)
    • PNG, BMP formats; Transparent background (PNG); Wire color/alpha selection; Antialiasing
  • [Improvement] Code refactoring (#41)
    • Updated to use C++11
    • Removed obsolete code
    • Replaced deprecated code with newer alternatives
  • [Improvements] Updated project files
    • Build improvements for GCC, MSVC.
    • Docsys, doxygen make targets.
    • Project structure reorganisation (#31)
  • [Translation] Improved french translation (NicocoIN)

Known Issues

  • For Skyrim NIFs, the latest nif.xml (0.7.1) has changes to collision layers which removes the various colors with which collision could display, e.g. OL_STATIC vs OL_CLUTTER. All Skyrim collision will appear as one color, green, until NifSkope is updated to take the nif.xml changes into account.
  • Specular is completely wrong on most all meshes. You can set your specular color to black in Settings > Colors. Now that most meshes are using shaders now, the shaders just aren't being passed the correct specular information (power, glossiness, color).
Choose a tag to compare

Changes since 1.1.2:

  • Fix accidently broken xml for Fallout 3 (contributed by ttl269).
  • Qmake getting git hash no longer relies on git executable.
  • Code refactor: xml for ui of about form.
  • Fix for registry entry proliferation (niftools issue #3584193, reported by neomonkeus).