NifSkope Changelog

What's new in NifSkope 2.0 Dev 7 (2018-02-23)

Feb 23, 2018
  • 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.

New in NifSkope 2.0 Dev 7 (2017-12-27) (Jan 10, 2018)

  • (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 20.0.0.5 but there can be variants of 20.0.0.4, 10.2, 10.1.0.106, and 10.0.1.0.
  • 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.

New in NifSkope 2.0 Dev 7 (Dec 19, 2017)

  • UI:
  • 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 20.1.0.1+. 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.
  • 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.
  • 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.
  • 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.
  • Rendering
  • 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.
  • Fixes:
  • 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.
  • 20.3.1.1 and 20.3.1.2 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

New in NifSkope 2.0.0 Alpha 6 (Nov 11, 2016)

  • Correct Flags for BSXFlags, NiAVObject (Nodes and Shapes):
  • The flags for NiAVObject (NiNode, *TriShape, etc.) were severely out of date and I decoded their actual values. The same goes for BSXFlags which didn't have all the options listed.
  • (Note: Just because the options are there to check doesn't mean you should. :) The last 8 bits of the NiAVObject flags are not even supposed to be read from the file, and for BSXFlags there are several more options past what I've shown, but I believe they are runtime-only)
  • Major memory leak fixes:
  • There was a shameful number of memory leaks, most of which predated my involvement with the program. The number was so high that it made it hard for me to find the ones that mattered. After actually sitting down and attempting to fix them, I've managed to eliminate every leak I could find during normal usage.
  • Memory that wasn't leaking was also reduced slightly, and I will be focusing on usage more in future releases.

New in NifSkope 2.0.0 Alpha 5 (Sep 2, 2016)

  • Material files (BGSM/BGEM) will no longer crash NifSkope if they are in JSON format. Note: They will still not be read if in JSON format.
  • Fixed several bugs caused by the partial data model refactor.

New in NifSkope 1.1.3 Revision 36ebfdd (Mar 17, 2014)

  • Fix accidentaly broken xml for Fallout 3
  • Qmake getting git hash no longer relies on git executable
  • Code refactor: xml for ui of about form
  • Fix for registry entry proliferation

New in NifSkope 1.1.2 (Oct 29, 2012)

  • When combining material properties, keep original material names as much as possible
  • Fix display of transformed havok shapes
  • Skyrim material updates
  • Skyrim body part updates.
  • Document sane defaults for Skyrim bhkRigidBody "Unknown 7 Shorts"
  • Rename: binormals are now more accurately called bitangents.
  • Collada export improvements
  • Support node culling by regular expression in collada/obj export
  • Fix block order of bhkCompressedMeshShapeData

New in NifSkope 1.1.1 (Oct 2, 2012)

  • Fix unsigned int enum issue.

New in NifSkope 1.0.22.8329d39 (Mar 16, 2011)

  • updated to Qt 4.5.3
  • added support for NiPersistentSrcTextureRendererData textures (alternate form of NiPixelData)
  • allow hexadecimal values in nif.xml enumeration options
  • added "String Palette->Replace Entries" spell for NiSequence blocks, and "Animation->Edit String Palettes" helper
  • fixed display of Fallout 3 morph animations (NiGeomMorpherController)
  • support reading nifs which use the JMI extension and header
  • added "Node->Attach Parent Node" (suggested by vurt2)
  • fix display of multiple decal textures (reported by Axel) - note that the number of texture units in your graphics card may limit how many textures can be displayed simultaneously
  • UV editor:
  • added coordinate set selection / duplication to context menu
  • added rotation and scaling / translation of selected vertices to context menu with respective shortcuts (suggested by psymoniser and snowfox)
  • increased maximum zoom level, reworked grid lines and cursors
  • updated BSXFlags bit descriptions
  • re-add NiPixelData texture import ("Texture->Embed" spell)
  • load .texcache (Empire Earth II / III external NiPixelData files) and allow direct texture export; installer also registers .texcache and .pcpatch (unknown 8-bit 1-dimensional textures?) extensions
  • added "Havok->Create Convex Shape" using Qhull and old code by wz

New in NifSkope 1.0.20.4748 (Jun 8, 2009)

  • updated to Qt 4.5.0
  • fix tooltips display for nif.xml annotations
  • Paste Block/Branch spells now set Controller and Target links when pasting controller blocks, and updates Effects array when pasting an effect block
  • Paste At End spell added to paste a branch without parenting
  • Fix display of Stencil and Z Buffer properties for versions >= 20.1.0.3
  • Flag spell updated for Vertex Color, Stencil Buffer, and Z Buffer properties
  • bug fix for file selection widget ("Load" and "Save As") textbox styling
  • performance improvements when attaching animation
  • set sequence controller NiMultiTargetTransformController when importing kfs
  • display of NiUVController for UV transformations
  • Add "Move Down" option to Texture Folders list
  • display of NiVisController
  • fixed display of NiMaterialColorController for versions < 10.1.0.0 and added flags editor
  • display of BSBounds (displayed with Havok), tweaks to display of Bounding Box, added a "Edit Bounds" spell
  • highlighting of strips
  • UV editing of textures other than the base texture
  • re-add hiding of rows not applicable to the current version

New in NifSkope 1.0.19.4615 (Apr 6, 2009)

  • Spells:
  • fixed Multi Apply Mode spell [ niftools-Bugs-2475705 ]
  • shortcut keys for Copy Branch and Paste Branch
  • new Duplicate and Duplicate Branch spells
  • new Flip Normals spell and option to scale normals in Scale
  • Vertices
  • new Mirror armature spell for Morrowind
  • add flag editing for NiBillboardNode
  • automate NiTextureEffect attachment (found under Node->Attach Light)
  • adding a new texture now presents a file selection dialog
  • new "Collapse Array spell to selectively remove empty links
  • re-add texture export: NiPixelData can be exported to TGA or DDS (default)
  • texture chooser pathing tweaks
  • Attach .KF" can handle multiple non-conflicting .kf files
  • Add support for UV editing of embedded textures and external nif textures failed to load file header message now gives hexadecimal and string values instead of decimal
  • nif.xml handling:
  • nif.xml from current directory in preference
  • fix handling of signed values
  • allow enumeration defaults to be specified by name
  • enumerations now have their underlying data type displayed in tooltip
  • Installer:
  • file types for KF and KFM changed to NetImmerse/Gamebryo Animation and
  • NetImmerse/Gamebryo Animation Manager respectively
  • location now checks for an existing installation
  • gnore "QAccessibleWidget::rect: This implementation does not support
  • subelements!" message
  • prevent warning message when attempting to load an empty texture filename
  • fix crash on exit if no file opened and inspect window not opened
  • Shortcut keys for Load and Save As

New in NifSkope 1.0.18.4450 (Jan 24, 2009)

  • fixed corruption of BSShaderNoLightingProperty file names when using texture chooser
  • fixed rendering settings which sometimes broke texture rendering when shader not used
  • added settings page for selecting displayed user interface language
  • fixed Binormals and Tangents swapped in Fallout 3 files [ niftools-Bugs-2466995 ]
  • added Block | Convert Spell for cleanly changing node type
  • set default stencil property flags to 19840 for Fallout 3

New in NifSkope 1.0.17.4327 (Dec 22, 2008)

  • Force updateHeader and updateFooter to be called before save
  • Introduce bitflag data type
  • Add editor for bitflag types
  • Update santize spells to better cleanup Fallout3 NIFs during export
  • Custom Fallout 3 sanitize spell forcing NiGeometryData blocks to have names
  • More support for internationalization
  • Bug fixes in the renderer which completely disabled shaders on common hardware
  • Bug fix for showing BSDismemberedSkinInstance highlighting in viewer when partitions were selected
  • Fix to make Fallout 3 normal map shader renderer work

New in NifSkope 1.0.16 (Nov 20, 2008)

  • Add Transform Inspection window
  • Add Fallout 3 to game texture auto detection
  • Nif.xml updates for Fallout 3
  • Add support for Fallout 3 BSA files
  • Add material color override in settings
  • New version condition evaluation engine to handle Fallout
  • Using GLee, so nifskope now also compiles on mac
  • Update tangent and binormal update script for Fallout as well as rendering

New in NifSkope 1.0.15 (Oct 20, 2008)

  • Fixed issues with attaching kf controller with nif/kf version >= 20.1.0.3
  • Updated mopp code generation to use subshape materials
  • Updated for Qt 4.4.3
  • Support reading nifs which use the NDSNIF header used in Atlantica
  • New block types added from Atlantica, Florensia, Red Ocean