I've spent a lot of time messing around with the AI and trying to get them to go upstairs. There's a few factors that come into play when it comes to AI paths.

One of them is a Signature named 'NVNM' it's currently undefined. I have no idea how this works or what this does. I do know that it has something to do with AI pathing. However it cannot simply be placed over any mesh. It apparently needs to be the same mesh, with the exact same name as the original. If you tweak the name you may run into problems. There are very few meshes where you can get away with this.



It has a weird hex value and certain objects have very different values.

Another part of AI Pathing is the Object Bounds. Tweaking the Object Bounds will result in the AI acting funny around the object. They won't know how to properly navigate around it.

In this example we're using the foundation:



Z1 Represents how far it goes below the ground.
Z2 may be the bottom of the wooden portion of the foundation. I don't know entirely.

The current method that I do believe works for re-saving modified meshes and straight copying the original signature and not messing with the NVNM value.



In this example I've gone ahead and created a TestFloor in-game.



The TestFloor in-game loads because it's under the same model / filename.

My next step is to change the model to see if I can get it to load in-game. Hopefully without changing too many things to cause a problem.



So I'm just going to change the material of it from this: (NifSkope)



To one of my own: (NifSkope)



Now hopefully keeping the same name of the mesh but changing the folder structure shouldn't result in any problems.





Alright so we load up the game and have our friendly neighborhood piper navigate the stairs to the next story.



Bam! She's upstairs and that navigation is working as planned. Though maybe we should try renaming the file now that we have it working.



I also went ahead and re-saved the .nif with the proper material pathing since I can't seem to do that right.

Piper seems happy with the result.



Okay, now we're going to give it a proper name and try editing the mesh in NifSkope a bit.
I also made a backup called MyTestFloor_Working.nif



Right, so let's edit the mesh real quick.
First thing I'm going to try and simply deleting the railing below it.



Alright it's gone. Let's save it and replace the filename in fo4edit and give it a whirl.



Looks like it worked in-game just fine. So that means the AI pathing is attached to NVNM in one way or another and bulk editing the mesh needs to be done in a slow paced testing process. We're going to finish off the model by making it similar to the old flooring so we can correct our bug.

I've made the rest of the edits to the mesh.



Time to test it in-game.

Alright, looks like it works just fine.



I've also added a floor snapping property to work with our rugs.





Alright so we've got a working model. With a working NVNM property. Hopefully this helps someone out there who is struggling to get NVNM values to work in-game.

Article information

Added on

Edited on

Written by

StuykGaming

4 comments

  1. Ethreon
    Ethreon
    • premium
    • 660 kudos


    NVNM is already partialy decoded, you are just using severely outdated FO4Edit build. You also need to disable "Simple Recods" in Options and restart FO4Edit to see NVNM in verbose form.


    Good news everyone.
  2. zilav
    zilav
    • premium
    • 647 kudos
    NVNM is already partialy decoded, you are just using severely outdated FO4Edit build. You also need to disable "Simple Recods" in Options and restart FO4Edit to see NVNM in verbose form.