About this mod
"Kojaks NavMesh Hub" offers NavMesh Information, including guides, videos, links, pics, files and more. The guide is intended for both beginners and experienced modders who want to improve NPC navigation, fix NavMesh errors and bugs, whilst improving overall game performance and reducing CTD
- Permissions and credits
- Donations
I frequently receive questions about Skyrim NavMesh, so I've decided to compile this guide to demystify the process and encourage DIY modding. This guide is designed to be read in its entirety, and the information is presented in a brief and succinct fashion so you can get an overview of the entire process. If you're already familiar with NavMesh and just want to know how to repair NavMesh errors, go HERE. Otherwise, let's dive into the essentials of NavMesh and why good NavMesh is a critical component of any modded Skyrim experience.
NavMesh Overview:
Properly functioning NavMesh is essential for a stable and high-performance modded Skyrim. It reduces ILS, micro stutter, macro stutter, and prevents multiple CTDs on fast travel, map opening, game freezing etc. Correctly implemented NavMesh resolves issues such as NPCs getting stuck at invisible borders, followers failing to navigate terrain, NPCs clustering in one spot, NPCs staring at the ground, the sky etc
NavMesh Explanation:
- NavMesh is a network of interconnected triangles placed on the ground, enabling NPCs to navigate the terrain. Without NavMesh, NPCs are unable to traverse the environment.
- NavMesh is laid on the ground surface (a.k.a terrain) and on static objects with collision. The vertices of the NavMesh should be in contact with the terrain or statics.
- NavMesh should be utilized whenever you are creating or modifying areas where NPCs need to navigate. This includes new locations, altered landscapes, or when addressing existing navigation issues in the game.
How to Work with NavMesh:
There are two tools for editing Navmesh, the Skyrim Creation Kit (CK) and SSEEDIT. The Creation Kit is your primary tool for creating, editing and fixing NavMesh, whilst SSEEDIT is used for prep, cleanup and other related tasks.
Suggested Workflow:
- Prepare your plugin in SSEEDIT before opening it in the CK
- You edit NavMesh in the CK, where you can create, adjust and delete the triangles, moving them, tweaking their size, height, and placement
- The aim is to cover the navigable area with lots of triangles, minus cutouts for things with collision, like trees, steps, gates, buildings etc - areas where NPCs cannot navigate
- You edit your NavMesh, continually checking and repairing reported errors, until all NavMesh errors are dealt with
- Then you finish up your plugin in SSEEDIT
- Done.
CK Installation, CK Setup and Preparing your plugin:
- Install the Creation Kit and set it up correctly.
- You're plugin needs to be a normal esp, change it's header flag like this in SSEEDIT
- Check your plugin for errors, as there is a possibility SSEEDIT may report NavMesh related errors
- Open your prepared plugin in the Kit, set the CK log to not auto scroll (clear check box), select your required cell
- Examine your CK log for any NavMesh errors
- Set up the render view window. Select View, deselect trees, grass
- Press (SHIFT+W) to disable water
- Disable Snap to Grid
- Press M to disable markers
- Open the picking preferences tab by pressing the ? key and select exclude trees
- view the cells NavMesh (CTRL+E) then you can begin to...
Follow this pattern to ensure efficiency and accuracy in your NavMesh work:
- Edit your NavMesh by adjusting triangles, vertices etc
- Check for Cover (CTRL+F2)
- Finalize Cell (CTRL+F1)
- Run NavCheck for errors Press (CTRL+F)
- Save the file
- Check the CK log for related errors
- Fix the errors by repeating steps 1-6 as necessary
NavMesh Clean Up in SSEEDIT:
Now your CK LOG is clean of NavMesh errors, save and exit the CK then open your plugin in SSEEDIT, then run:
- SSEEDIT quick check for errors
- SSEEDIT script repair edge links (Right click on plugin/Apply Script/Skyrim - Clean edge links in Navmeshes), save, exit
- SSEEDIT QAC Quick Auto Clean
- Your NavMesh is now completed and DONE
NavMesh Optimisation:
- Any optimisation should be done minimally and sparingly. The aim is to fix as much as possible with minimal edits, so just optimize whats necessary, test, and move on. Over optimisation will actually reduce FPS (Excess sub-division of triangles or editing too many cell border vertices in an attempt to seal vertice seams), so test regularly and know when to roll-back
- Optimal Triangle Sizes - Large triangles along preferred pathing at busy areas, can reduce FPS as NPCs decide how to share that triangle between themselves. Instead, give the NPCs a little more choice (and reduce micro stutter), by splitting that big triangle up
- Vertice Joining - Ensure vertices are properly connected to form a seamless cell border. This is a common issue and has the largest impact on performance and reduces stutters
- Handling Landscape Tears - Address issues in modded games where landscape modifications can cause NavMesh tears. This is a common issue in modded games and causes macro stutter
NavMesh Single Triangles:
- Single triangles should not be placed way down below the map and never below -30k. Instead, they should go just below the map. This reduces micro stutter. This Synthesis patcher exists to correct this very issue.
- In modded games, you need to deal with any single NavMesh triangles below the map, with a Vanilla Form ID like 00xxxxxx, where the first two digits represent the plugin position in the load order, and the remaining 6 digits belong to the piece of modded NavMesh in question.These single vanilla FormID triangles are typically found where modders have deleted the vanilla Navmesh, and created their own instead. Nothing wrong with that I hear you say, NO, this is wrong. You should always aim to edit the vanilla navmesh to suit your edits and avoid creating new sections of NavMesh where possible. This ensures maximum compatibility across the entire community and means less work for everyone who edits NavMesh.The aim is to replace the modded FormID Navmesh with the vanilla NavMesh FormID.
NavMesh Deletion:
- NavMesh exterior edge is yellow (unless blue due to being cover), so you can delete NavMesh freely, however, if it has 3 yellow edges, and is a vanilla FormID, STOP
- Single triangles with modded formID (i.e. Not vanilla) can be safely deleted in the kit, so long as they are not parent FormIDs for any child
patches. This reduces micro stutter - Similar single modded FormID triangles can also be removed in SSEEDIT so long as they are not referenced by anything other than their parent plugin. You must also remove Navigation Mesh Info Map 12FB4. Then re-open and save the plugin in the CK to rebuild 12FB4
NavMesh Portals:
- Doors - Door portals must be linked between two doors. Doors have a yellow marker, and when correctly linked have a green triangle underneath. This is created after pressing Finalize
- Edge Portals - These allow NPCs to jump downwards, from one edge to the next. To create an edge portal, you select two triangle edges then press P
NavMesh for new worldspaces:
Rob asked me if I could help out the NavMesh team for Skyblivion, but due to IRL stuff it isn't possible. However, rather than catch a fish, it's better to teach a man how to fish, so I put this NavMesh guide together, to help gather an army of modders to blitz this and NavMesh Skyblivion. Seriously, Skyblivion needs your help, so go get it NavMeshed! FIRSTBORNS AMASS !:D
- Watch this DF 127 How To NavMesh video
- Install this tree replacer to allow better visibility in the kit.
- Open up your Skyblivion etc cell in the Kit
- Add a triangle on the ground, and let it grow until you have filled the entire cell
- NavCheck for errors
- Save, Check Log, Fix Log, Save, Check Log, Fix Log etc until clear, then
- move on to an adjacent cell, create more NavMesh, then
- fuse cell borders together until complete.
NavMesh Other Notes:
- Setup your Creation Kit to autosave at least every 10 mins
- Resave, if you suspect an automatic save commenced in the background whilst your manual save was saving
- When Finalizing larger areas, set UGRIDS to 11
- Hotkeys for Navmesh Cheat Sheet are located here
- Hotkeys for the CK render window are located at CK/View/Render Window Hotkeys
- While the Creation Kit offers autogeneration, it's usually faster and more reliable to create NavMesh manually.
- When it comes to testing, always give your game time to adjust, as NPCs need time to readjust and refresh their pathing data
- Macro stutter on cell load caused by NPCs updating their pathing data is temporary
- The old Whiterun Navmesh patch should be disabled in favour of the Whiterun NavMesh patch on this page
- Use a temporary tree replacer to see the terrain clearly and lay NavMesh around trees quickly and accurately.
- Navcuts are an alternate option for cutouts, but they have limitations. Properly set up NavMesh is critical to stability, performance and compatibility
- Do not ESLify a Master NavMesh plugin, as in my experience, it reduces performance. You should test and compare, but for me, keeping it as a normal *.esp consistently produces the best results.
NavMesh Master Patch:
In an ideal world, every modder has made perfect NavMesh with zero errors, utilising only Vanilla FormID NavMesh, which would merge together harmoniously. However, this is not the case. NavMesh respects load order and earlier NavMesh changes will be over written by later NavMesh changes. Whilst NavMesh is merged at runtime, the conflicts typically do not resolve amicably on their own, and in a heavily modded Skyrim, with adjacent cells containing NavMesh edits, you will run into NavMesh compatibility issues. Fortunately, they can be patched, either in a mini NavMesh patch for a few mods, or in one Master NavPatch plugin for your whole Load Order, so if you find yourself in a situation where you have to patch multiple mods NavMesh together for your own Load Order, a Master NavPatch can be constructed. Your Master NavPatch plugin lives at the end of your Load Order behind DynDOLOD. You create one Master NavPatch per worldspace, so one for Whiterun, one for Solitude, one for Tamriel etc. You should also fix terrain hole repairs in your own Master NavPatch.
NavMesh Workload:
No matter what way you cut it, NavMesh takes time, it's tedious, but boring (lo-fi jazz helps), so if you're like me, and really need someone else to do the work, I have uploaded a few NavMesh patches I've made, utilising the information in this guide. So far, I've done Whiterun, and made a start on Tamriel. How much gets done simply depends on how many hrs I can allocate to it. Likewise, If you need help with NavMesh in your own project, get in touch and we'll talk.
NavMesh Other Links:
- DarkFox127 YT Channel - How to NavMesh
- Skyrim interior cells NavMesh fixes
- XEDIT Discord Server NavMesh Channel
Thanks and Credits:
Elminster for xEDIT
Bethesda for CK
Rob, Mr O and KhrysINXS, thankyou for answering my NavMesh questions over the years :D
