How to Generate Grass Cache An infernalryan Skyrim Modding Guide
Overview This guide will provide instructions on how to generate grass precache using No Grass in Objects. If you are using seasons, please see my How to Generate Grass Cache (with Seasons) guide.
This guide applies to ALL versions of Skyrim SSE/AE (Steam and GOG only) and Skyrim VR since as of May 2024, No Grass in Objects is now available for ALL game versions as an SKSE plugin!
Guide Contents:
Preface of what grass precache is and why it is used
Preparation covering all file requirements and initial setup steps required before generating cache
Generating grass precache files with tips on avoiding issues and speeding up the process
Playing the game and ensuring all changes made to allow grass cache generation are restored
Further reading for links to other helpful information
Please consider ENDORSING if you found this guide helpful!
1 Preface Generating grass precache is the process of saving grass model and placement information to a file. This is done with the No Grass in Objects mod (also known as NGIO). This will not only enable the ability to generate and utilize grass LODs, allowing you to view grass at much further distances, but will also give you more consistent grass placement as everything will be loaded from files rather than automatically generated at runtime. The process for doing so is simple, but can be time consuming depending on your system. For newer systems, with a moderately-sized modlist, this can take around 30-60 minutes (possibly less) each time it is run.
It is HIGHLY recommended to use Mod Organizer 2 for this process. Grass precache generation is expected to crash multiple times, and if you are using Vortex (or no Mod Manager at all), you will have to restart this process manually. The plugin created for MO2 will automatically restart until the grass precache generation has completed, which will allow you to perform this semi-AFK, which will save a LOT of time overall.
2 Preparation This section will cover all file requirements and initial setup steps needed before generating grass precache. You only have to perform these steps the first time you generate precache, and can skip them altogether on future operations.
2.1 Required mods The following mods need to be downloaded, installed and enabled prior to starting this process.
No Grass in Objects – All game versions – For 1.5.97 users, this MUST be the new SKSE version of the plugin, not the .net Framework version as it is no longer supported
2.2 Other files This section will cover other files either required or recommended to generate grass cache.
2.2.1 Worldspaces with Grass SSEEdit Script for NGIO (Optional) Skip to section 2.2.3 if you are not comfortable using xEdit (SSEEdit), otherwise, proceed. This is an xEdit script that can be used to configure No Grass In Objects to skip any worldspaces that do not have grass in them, which (sometimes drastically) reduces the time required to precache grass. Expand the 'Spoiler' tag for instructions.
Spoiler:
Show
Download from the FILES tab of the main mod page using the 'MANUAL DOWNLOAD' link. This is not a Mod Manager download, so will download into your web browser downloads folder.
When completed, open this file from your web browser downloads folder (it is a .zip file).
Extract the contents of the file into the /Edit Scripts folder of your xEdit folder. For example, if you installed xEdit into 'C:\Modding\xEdit', extract this to 'C:\Modding\xEdit\Edit Scripts'.
You are done!
2.2.2 Precache Grass plugin (MO2 only) Skip to section 2.3 if you are NOT using MO2, or already have this plugin downloaded and installed, otherwise, proceed. This plugin will allow you to start Skyrim in precache generation mode, and will additionally automatically restart Skyrim to resume the progress when it crashes (which it will). Expand the 'Spoiler' tag for instructions.
Spoiler:
Show
Download the plugin from the main mod page 'FILES' tab – ensure you click the 'MANUAL DOWNLOAD' link (this will not install with your Mod Manager).
Grab 'Grass Generation MO2 Plugin v2' if you are using MO2 version 2.5 and above
Grab 'Grass Generation MO2 Plugin v1.5' if you are using MO2 2.4.4 or below
Grab 'Grass Generation MO2 Plugin v2 VR' if you are using MO2 version 2.5 and above AND VR
When completed, open this file from your web browser downloads folder (it is a .zip file).
Extract the contents of the file into the /plugins folder of your MO2 folder. For example, if you installed MO2 into 'C:\Modding\MO2', extract this to 'C:\Modding\MO2\plugins'.
If done correctly, you should now have a 'GrassPrecacher.py' file inside of /plugins (example: 'C:\Modding\MO2\plugins\GrassPrecacher.py').
Close MO2 if it is open.
(Re-)open MO2.
If you receive an error indicating "no module named PyQt5" (or similar), you have downloaded and installed the wrong plugin for your version of MO2. Re-review the list above.
Verify this is installed correctly by navigating to the 'Tools > Tool Plugins' menu of the main menu bar (or the puzzle icon in the toolbar). You should now see a 'Precache Grass' entry.
You are done!
2.3 Initial setup Before generating grass precache, the following configuration file updates are required.
2.3.1 Generate configuration file for No Grass in Objects Skyrim needs to be launched at least once with NGIO enabled in order to generate the configuration file. Do this if you have not done so already. You only need to load into the main game menu, and quit. The file is located in 'Data/SKSE/plugins/GrassControl.ini' (or 'overwrite/SKSE/plugins/GrassControl.ini' for MO2 users) by default.
2.3.2 Move configuration file for No Grass in Objects (MO2 only) Skip to section 2.3.3 if you are NOT using MO2, or have already moved the NGIO configuration file to the NGIO mod folder, otherwise, proceed. Since it is good practice to keep your overwrite folder clear, we will want to move the configuration file (which generates there by default) to the NGIO mod itself. Expand the 'Spoiler' tag for instructions.
Spoiler:
Show
Right-click the 'Overwrite' entry (it is at the very bottom of the mod list), and select 'Open in Explorer' (alternatively, you can hold CTRL and double-click the mod in the list to open the explorer window).
Navigate to the 'SKSE/Plugins' folder.
Set this window aside for a moment.
Right-click your No Grass in Objects mod in the mod list, and select 'Open in Explorer' (alternatively, you can hold CTRL and double-click the mod in the list to open the explorer window).
Navigate to the 'SKSE/Plugins' folder.
MOVE the 'GrassControl.ini' file from the overwrite folder we set aside to the NGIO mod folder.
Close both folders.
2.3.3 Edit No Grass in Objects settings Next, we need to modify the NGIO configuration file to use cache files. This process is different depending on the Mod Manager chosen. Follow only one of the two options based on your Mod Manager of choice.
2.3.3.1 Option 1: Vortex
Spoiler:
Show
Deploy mods.
Open your game folder by clicking the 'Open…' button in the main application taskbar, and select 'Open Game Folder'.
Open the ' /Data/SKSE/plugins' folder inside.
Open the ' GrassControl.ini' file.
Update the following options in the file:
Use-grass-cache = true
Only-load-from-cache = true
2.3.3.2 Option 2: Mod Organizer 2
Spoiler:
Show
Double-click the No Grass in Objects mod in the mod list
Select the 'INI Files' tab, and ensure the ' SKSE\Plugins\GrassControl.ini' file is selected in the 'Ini Files' list on the left.
Update the following options in the file:
Use-grass-cache = true
Only-load-from-cache = true
Save and close.
2.3.4 Add exception for PrecacheGrass.txt (MO2 with Root Builder only) Skip to section 3 if you are NOT using MO2 AND Root Builder, otherwise, we will need to add an exception to Root Builder for this file so that the auto-restart/resume functionality of the Precache Grass plugin will work properly. Expand the 'Spoiler' tag for instructions.
Spoiler:
Show
Navigate to the 'Tools > Tool Plugins' menu of the main menu bar (or the puzzle icon in the toolbar) and select 'Root Builder > Root Builder' to open the Root Builder settings window.
Under the 'Exclusions' tab, double-click the empty entry at the end to add a new rule for 'PrecacheGrass.txt' and hit 'Enter'.
Close the window.
3 Generating grass precache files The below steps detail the process of generating grass precache files. Similarly to LOD generation, these steps should be performed EVERY TIME you add or remove mods which make world space updates (new buildings, points of interest, city overhauls, etc.) as otherwise the current precache files will either conflict with these mods (floating grass, clipping, etc.) or not include them (no grass whatsoever). You should also do this whenever changing/adding/removing grass mods, etc.. If you are modifying ONLY textures (such as changing to desaturated texture variants for your current grass mod, for example), you don't need to re-run grass precache.
3.1 Disable and/or remove any previously generated cache files We need to be 100% sure that any previously generated cache files are not affecting our ability to regenerate them. Below is a brief list of things to check for, but it is not extensive and may not account for all scenarios.
Disable any mods which currently contain precache files (*.gid, *.cgid) as we do not want to accidentally overwrite these files when the new cache files are generated. This includes pre-generated cache files which can be downloaded from Nexus (not just your own previously-generated files).
Vortex users, 'Deploy Mods' again after disabling.
After disabling (where applicable), ensure there is no 'Grass' folder still inside your Skyrim /Data folder (or 'overwrite' folder for MO2 users). If there is, either delete it or convert it to a mod for your given Mod Manager and disable it.
Remove the 'PrecacheGrass.txt' file if it exists in your main Skyrim game folder.
3.2 Run Worldspaces with Grass SSEEdit Script for NGIO (Optional) Skip to section 3.3 if you did NOT download the 'Worldspaces with Grass SSEEdit Script for No Grass in Objects' file, otherwise, proceed. This script generates a list of valid worldspaces for your current load order which will speed up grass precache generation (sometimes significantly). If you have run this script prior to past grass precache generation, this step can be skipped if there have been no changes to worldspaces since then, otherwise you will want to re-run it again. Expand the 'Spoiler' tag for instructions.
Spoiler:
Show
3.2.1 Run the script
Launch xEdit (SSEEdit).
If using MO2, ensure you have an executable created for this, and launch from there.
If using Vortex, ensure your mods are deployed and open xEdit in whatever manner you prefer (either from the TOOLS section, or from an external file).
Once xEdit opens, load all of your plugins for your normal load order (they should be selected by default).
Once the 'Background Loader: Finished' message appears, right click anywhere in the left pane and select 'Apply Script....'
In the window that appears, in the Script dropdown, select 'List worldspaces with grass' and click 'OK'.
Wait for it to finish processing. This may take a minute or two, depending on how many mods you have.
When the 'Worldspaces with grass' window appears, COPY the text that is inside of this (either CTRL+C or right-click the highlighted text and select 'Copy').
Click OK and exit SSEEdit.
3.2.2 Add worldspaces to No Grass in Objects settings file Next, we need to modify the NGIO configuration file to include the worldspaces we just copied. This is different depending on the Mod Manager chosen. Follow only one of the two options based on your Mod Manager of choice.
3.2.2.1 Option 1: Vortex
Spoiler:
Show
Deploy mods.
Open your game folder by clicking the 'Open…' button in the main application taskbar, and select 'Open Game Folder'.
Open the ' /Data/SKSE/plugins' folder inside.
Open the ' GrassControl.ini' file.
PASTE your worldspaces copied to the clipboard to the following line:
Only-pregenerate-world-spaces = PASTE_HERE
3.2.2.2 Option 2: Mod Organizer 2
Spoiler:
Show
Double-click the No Grass in Objects mod in the mod list.
Select the 'INI Files' tab, and ensure the ' SKSE\Plugins\GrassControl.ini' file is selected in the 'Ini Files' list on the left.
PASTE your worldspaces copied to the clipboard to the following line:
Only-pregenerate-world-spaces = PASTE_HERE
Save and close.
3.3 Disable incompatible mods Certain mods have been known to cause crashing during the precaching process. While this is normal (the precaching process will likely crash at least a few times), some mods may prevent the grass precache from completing altogether. I have listed some of these here, however, if you are having persistent issues, please see the Compatibility section of the No Grass in Objects mod page, as well as the posts on that page to review and/or troubleshoot specific compatibility issues. You need to disable any mods listed below (temporarily) and then re-enable them again afterwards.
Some users have reported this causes issues, but I did not personally have any issues which prevented precache generation. Despite having some crashes, the MO2 plugin was able to (auto-)resume generation without issue. If you do experience persistent issues, you may need to disable BEES and all of the mods that rely on it, however, if you have performed a "best of both worlds" downgrade, this will likely include the Skyrim master files. This becomes difficult to make a recommendation as you cannot disable the masters, and reverting them to original versions may cause other issues during precache generation. My only suggestion is to try it without disabling it and hope for the best.
Other mods may recommend that you add their worldspaces to the 'Skip-pregenerate-world-spaces' field within the NGIO configuration file… At the time of writing, this includes EasierRider's Dungeon Pack and The Echoes of the Vale Creation, however, it is also possible that running the xEdit script from earlier will omit these worldspaces already (untested).
IMPORTANT NOTE (From NGIO description page) – If you always crash in exact same cell over and over (can't continue at all) then it means something is very wrong with your mods in that cell. If you go there normally without this mod you would also always crash there. I recommend looking at crash logs to see what mod could be causing an issue for you there. You can also add that worldspace to exceptions list in this grass mod's config, but that means you won't have grass in that whole worldspace (might not matter since you would crash there always anyway).
3.4 Generate files The below section covers all steps required to generate your cache files. There are minor differences depending on the Mod Manager chosen, so Follow only one of the two options based on your Mod Manager of choice.
3.4.1 Option 1: Vortex
Spoiler:
Show
3.4.1.1 Launch the game to generate files
Deploy mods.
Open your game folder by clicking the 'Open…' button in the main application taskbar, and select 'Open Game Folder'.
Create a new empty text file in this folder called ' PrecacheGrass.txt'.
Start the game normally, when you reach the main menu it will automatically start to pre-generate all grass.
NOTE – During this process, the screen may display flickering or flashing lights which may not be suitable for individuals with photosensitive epilepsy or other light sensitivity conditions. It is recommended for these individuals to walk away from the computer during this process.
You will know grass precache has started after a few seconds when you see this message:
Feel free to open the console with the tilde (~) key by default to view the progress.
This process is expected to crash Skyrim several times. When this happens you will need to MANUALLY start it again to resume (there is no automatic restart function like with the MO2 plugin).
You will know you are resuming where you left off when you see the "Resuming grass cache generation" message.
Once completed, the following message will be displayed (NOTE – this may be minimized along with your Skyrim game):
Grass generation is now done.
3.4.1.2 Add this mod to Vortex
Go back to your Skyrim /Data folder.
You will want to add the ' Grass' folder to a new .zip file (or .7z, .rar, etc). Call this file ' Grass Cache' (or .7z, .rar, etc.).
Once the .zip file is created, you can now DELETE the ' Grass' folder (we no longer need it)
Drag the ' Grass Cache.zip' file into the 'Drop File(s)' section of Vortex, which is found at the bottom of the 'Mods' tab. NOTE – This may take several minutes to fully import as the file size for this mod and number of files is quite large.
Once done it should automatically enable itself. Keep it ENABLED.
You can now DELETE the original ' Grass Cache.zip' file you created (it is just taking up space).
It is also recommended to DELETE the .zip file maintained by Vortex as it too is not required and is needlessly taking up space. To do this navigate to ' %appdata%\Vortex\downloads\skyrimse' (without quotes – you can paste this in an explorer window, the Windows Win+R Run dialog, or the start menu search bar) and delete the file.
You can now close the folder(s) you opened before.
Skip to section 4 when done.
3.4.2 Option 2: Mod Organizer 2
Spoiler:
Show
3.4.2.1 Launch the game to generate files
Launch the 'Precache Grass' plugin by navigating to the 'Tools > Tool Plugins' menu of the main menu bar (or the puzzle icon in the toolbar).
Click 'Yes' on the message that pops up to begin grass cache generation.
NOTE – During this process, the screen may display flickering or flashing lights which may not be suitable for individuals with photosensitive epilepsy or other light sensitivity conditions. It is recommended for these individuals to walk away from the computer during this process.
This will launch the game. After a few seconds the following message should appear:
Feel free to open the console with the tilde (~) key by default to view the progress.
This process is expected to crash Skyrim several times, but the MO2 plugin will restart this process automatically. You will know it has done so when you see the "Resuming grass cache generation" message.
Once completed, the following message will be displayed (NOTE – this may be minimized along with your Skyrim game):
Grass generation is now done.
3.3.2.2 Add this mod to MO2
From the MO2 'list options' menu (the "wrench" icon at the top right of the mod list window within MO2), select 'Create empty mod'.
Enter a name for this grass cache (e.g., ' Grass Cache') and press 'OK'.
Right-click your mod (it is at the very bottom of the mod list), and select 'Open in Explorer' (alternatively, you can hold CTRL and double-click the mod in the list to open the explorer window).
From the ' overwrite' folder we set aside in the previous section, MOVE the ' Grass' folder into your new mod folder.
When finished, select MO2 to ensure it is the active window and hit the 'F5' button on your keyboard. This will refresh the application and now reflect the files we changed outside of MO2.
ENABLE your grass cache 'mod'.
You can now close the folder(s) you opened before.
4 Playing the game With grass precache generation now complete, there are only a couple of steps required to restore normal functionality to the game and ensure the cache files are loaded.
Ensure your grass cache 'mod' you just created is enabled.
Re-enable any/all mods which you had to disable prior to generating grass cache.
Vortex users, 'Deploy Mods' again after performing the above.
5 Further reading See below for links to other helpful information.
5.1 Other Guides See my guides page on Nexus for other helpful Skyrim modding guides.
5.2 Changelog See below for changes made to this document.
Version 1.17.6 (06/06/2024)
Updated steps to enable grass cache 'mods' after generating (rather than leaving them disabled). This was a holdover from my seasonal grass cache guide and I had forgotten to update it (thanks @aldfrid for noticing)
Version 1.17.2 (06/02/2024)
Added spoiler tags for optional sections
Version 1.16 (06/02/2024)
Initial release
Please leave a comment with any issues or suggestions!
Guide updates required: Below are some items that will require guide updates. I am listing them here for reference and will remove them when the guide is updated.
Recalculating Grass Bounds (e.g., 'Recalc Bounds' in Creation Kit)
This will be an optional step for advanced users and/or users experiencing issues generating grass precache. This essentially recalculates each grass object's bounding box to ensure it accurately reflects the size and shape of its mesh(es). This helps prevent issues like grass floating around and/or clipping through objects where it shouldn't appear, which can occur when grass meshes are changed and are different sizes than those defined within the plugin file.
NOTE - This step is not always necessary. If you don't have any issues generating grass cache, and don't see any visible issues with the grass precache in your game, you should be fine to skip this step.
Please let me know in comments below if there are any other updates that are required.
PASTE your worldspaces copied to the clipboard to the following line:
Only-pregenerate-world-spaces = PASTE_HERE
For some reason, it doesn't work for me! It starts generating for all 93 worlds, as I didn't change this setting. I even inserted it like this: OnlyPregenerateWorldSpaces = Tamriel;WhiterunWorld;RiftenWorld;SolitudeWorld;MarkarthWorld;WindhelmWorld
In order to exclude all non-vanilla worlds, exceptions still do not work and begins to generate for all 93 worlds
SkipPregenerateWorldSpaces =
I also inserted a list of all worlds except Tamriel here and it doesn't work
I just went through the entire lengthy process of creating this Grass cache in meticulous detail, but it hasn't made the slightest difference in my game (Vortex user). Grass still pop into existence everywhere. :/
When I run Skyrim with the precaching plugin I get that little popup telling me the operation can take a long time however in game I don't get any generating a new grass cache now nor do I find anything in my overwrite folder but when I close the game it tells me pregrass caching isn't finished yet and that it's going to rerun Skyrim. Any idea what's going on here? Edit: Clearing my overwrite fixed it despite not having a grass in my overwrite?? Dunno.
I keep crashing in this same spot near the very end of the generation, it won't go further. Wondering if the Base Object Swapper conflict is the cause but I don't understand how to solve it if so
I successfully generated the grass cache and move the files from the overwrite directory to the empty grass cache mod. MO2 says its redundant and in game my grass still wont load if their far away. is there any reason why MO2 would say that my new grass cache mod is redundant?
If I use dyndolod to generate grass lods which are (lod 4 only) do I need to also pre cache for NGIO? NGIO precahce is only about 900mbs, but soon as I check Grass lod in dyndolod that generation goes from about 1gb to about 5gbs or are the 2 seperate and there for doing 2 diffrent things as far grass goes or doing the same thing just diffrently?
Great tutorial! At first, when I was generating the cache, it kept crashing at a specific location. I went to investigate the area and found it was a cave I couldn’t access — it turned out DynDOLOD was causing problems, and possibly another mod like No Grass in Cave. I finally managed to generate the cache after removing DynDOLOD and the No Grass in Cave mod. It was such a relief to successfully generate the cache for the first time. Thank you so much!!!
Grass cache wont run all, it just launches the game. i press command but i dont see anything the grass tool loading. i can even play it. i tried letting it run, nothing happens but when i quit the game, i get a pop up from mo that precache hasnt completed
Had this happen to me. Did you download the grass control.ini from the Nexus page and install it like a regular mod? If so, open your overwrite and look in the SKSE folder to see if there is another grass control.ini in there. If there is, delete it.
What skyrim game version are you running? If 1.5.97, are you using the updated version of the mod which requires SKSE? Older versions required the .net framework which is no longer required and just wanting to make sure this is not the reason for your issues.
I was facing the same exact issue. I noticed that the grasscontrol.ini we edited via mo2 as per the guide is located in mods/No Grass In Objects; meanwhile, there is another grasscontrol.ini inside overwrite/skse/plugins. the latter is what the grass cache gen is actually referencing. i replaced the ini inside plugins with the edited one from mods folder, and then the generator worked as intended. re-did the process and didn't face the issue, must've done something wrong 1st time around.
96 comments
Below are some items that will require guide updates. I am listing them here for reference and will remove them when the guide is updated.
Recalculating Grass Bounds (e.g., 'Recalc Bounds' in Creation Kit)
Please let me know in comments below if there are any other updates that are required.
For some reason, it doesn't work for me! It starts generating for all 93 worlds, as I didn't change this setting. I even inserted it like this:
OnlyPregenerateWorldSpaces = Tamriel;WhiterunWorld;RiftenWorld;SolitudeWorld;MarkarthWorld;WindhelmWorld
In order to exclude all non-vanilla worlds, exceptions still do not work and begins to generate for all 93 worlds
Edit: Clearing my overwrite fixed it despite not having a grass in my overwrite?? Dunno.
im using m02 and is stuck at 3.4.2
What i see when i press command is : Registering functions started. Registering finished in 00030seconds
I was facing the same exact issue.
re-did the process and didn't face the issue, must've done something wrong 1st time around.I noticed that the grasscontrol.ini we edited via mo2 as per the guide is located in mods/No Grass In Objects; meanwhile, there is another grasscontrol.ini inside overwrite/skse/plugins. the latter is what the grass cache gen is actually referencing. i replaced the ini inside plugins with the edited one from mods folder, and then the generator worked as intended.