An infernalryan Skyrim Modding Guide
Overview
This guide will provide instructions on how to generate grass precache with seasons support using No Grass in Objects. If you are NOT using seasons, please see my non-seasonal How to Generate Grass Cache 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 and that seasonal cache files load properly
- Further reading for links to other helpful information
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, especially for a seasons load order, since you will need to generate precache files for every season individually. 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.
- Skyrim Script Extender (SKSE) – SSE/AE | VR
- Address Library – SSE/AE | VR
- Seasons of Skyrim – All game versions
- 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
- Grass Cache Helper NG – All game versions
2.2 Other files
This section will cover other files either required or recommended to generate grass cache.
2.2.1 Seasons your Grass
This is a batch file (.bat) which will rename your generated grass files to their appropriate filename for its respective season.
- 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.
- We will come back to this file later.
2.2.2 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.
- 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.3 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.
- 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.
- 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.
- 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: VortexSpoiler: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 2Spoiler: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.
- 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.
- 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.
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: VortexSpoiler: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 2Spoiler: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.
- Skyrim Souls
- TrueHUD
- Auto Parallax
- Skyrim at War
- Backported Extended ESL Support (BEES) (applicable only to Skyrim 1.6.640 and below)
- 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.
- 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 for each season
The below sections will generate files for each season. We need to do this because NGIO doesn't support seasons, meaning there is no option within the NGIO mod or settings file to just generate cache files for each one. Instead, you need to "force" a season by modifying the Seasons of Skyrim settings file and changing the season type to be permanent for the season you are generating for. This way when you are generating grass, all of the swaps for that season will be active.
3.4.1 Winter
The process is the same for each season, so we will cover the steps in depth for the first season, and then repeat them for subsequent seasons. 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.1 Option 1: VortexSpoiler:Show
3.4.1.1.1 Update po3_SeasonsOfSkyrim.ini file
- 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 ' po3_SeasonsOfSkyrim.ini' file.
- At the top of the file you should see the following:
;0 - disabled
;1 - permanent winter
;2 - permanent spring
;3 - permanent summer
;4 - permanent autumn
;5 - seasonal
Season Type = 5- Set Season Type = 1 (permanent winter).
- Save and close the file.
3.4.1.1.2 Launch the game to generate files
- Go back to the main Skyrim game folder (the same place where SkyrimSE.exe is).
- 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 for this season is now done.
3.4.1.1.3 Rename grass files
We now need to rename these files to be in their proper seasonal format.
- Open your Skyrim /Data folder.
- Navigate to the newly-generated ' Grass' folder inside.
- You will now want to extract the ' Season your Grass Cache.BAT' file from the Seasons your Grass .zip file you downloaded earlier directly into this folder (make sure it does not end up in its default ' Seasons Your Grass' folder – it must be in the same folder as the cache files themselves).
- Execute the ' Season your Grass Cache.BAT' file – you should now see this screen:
![]()
- Select winter by typing '1' and hitting <Enter>.
- Let the process complete, it should take about 10-15 seconds.
- Delete the ' Season your Grass Cache.BAT' file when done.
3.4.1.1.4 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 - Winter.zip' (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 - Winter.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. You will want to DISABLE this mod (for now).
- You can now DELETE the original ' Grass Cache - Winter.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 3.4.2 when done.
3.4.1.2 Option 2: Mod Organizer 2Spoiler:Show
3.4.1.2.1 Update po3_SeasonsOfSkyrim.ini file
- To ensure we are always editing the "winning" configuration file in the event a conflict with another mod overwrites this file (Four Seasons - Faster Seasons of Skyrim does this, for example), we're going to do this from the 'Data' tab on the right side of the main MO2 window.
- In the search box in the bottom right corner, type ' po3_SeasonsOfSkyrim.ini'. This will filter this file in the list.
![]()
- Note - if the file does not exist, you need to launch Skyrim with Seasons of Skyrim enabled so that it automatically generates. You only need to load into the main game menu, and quit.
- Right-click the file and select 'Open'.
- At the top of the file you should see the following:
;0 - disabled
;1 - permanent winter
;2 - permanent spring
;3 - permanent summer
;4 - permanent autumn
;5 - seasonal
Season Type = 5- Set Season Type = 1 (permanent winter).
- Save and close the file.
3.4.1.2.2 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 for this season is now done.
3.4.1.2.3 Rename grass files
We now need to rename these files to be in their proper seasonal format.
- Right-click the 'Overwrite' entry in MO2 (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 newly-generated ' Grass' folder inside.
- You will now want to extract the ' Season your Grass Cache.BAT' file from the Seasons your Grass .zip file you downloaded earlier directly into this folder (make sure it does not end up in its default ' Seasons Your Grass' folder – it must be in the same folder as the cache files themselves).
- Execute the ' Season your Grass Cache.BAT' file – you should now see this screen:
![]()
- Select winter by typing '1' and hitting <Enter>.
- Let the process complete, it should take about 10-15 seconds.
- Delete the ' Season your Grass Cache.BAT' file when done.
- Go up a folder level to the main 'overwrite' folder and set it aside for a moment.
3.3.1.2.4 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 season's grass cache (e.g., ' Grass Cache - Winter') 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.
- Ensure this mod stays DISABLED (for now).
- You can now close the folder(s) you opened before.
3.4.2 Remaining seasons
This process is different depending on whether you are doing a 4 seasons setup (using Seasonal Landscapes or Turn of the Seasons, etc.), or a less than 4 "grass seasons" setup (using only Seasons of Skyrim, or a mod like Simple Seasonal Grasses or similar which restrict seasonal grass changes to only 2 or 3 seasons) where some grasses are "shared" between them. The latter setup will allow you to save time with grass generation by duplicating the output of one of your seasons to one or more others, since the grass won't change that season. Follow only one of the two options and their associated step(s) below, or, in some cases, follow Option 1 and then Option 2 for any remaining (unique) season you may have.
3.4.2.1 Option 1: Shared grasses for remaining season(s)Spoiler:Show
- Update your ' po3_SeasonsOfSkyrim.ini' file, and Set Season Type = 2 (permanent spring).
- Launch the game to generate grass cache for this season.
- When done, open your /Data folder (Vortex) or ' overwrite' folder (MO2).
- COPY and PASTE the ' Grass' folder in the same directory. This should create a folder called ' Grass - Copy' (it may take a while to complete as there are lots of files in there).
- Rename this folder (temporarily) to contain the season name which has the same grass as Spring (e.g., ' Grass - Summer').
- Repeat this if, for example, your Autumn grass is the same as Spring and Summer.
- Note that if your autumn grass is not the same as spring and summer (as is the case with some Simple Seasonal Grasses patches), you may need to generate those seasons uniquely in section 3.4.2.2 (Option 2) below. Not all combinations of options are covered, but by now you should have an idea of what we are doing here.
- (Optional time saver) If you intend on running DynDOLOD, repeat this step one more time and rename the folder to ' Grass - Default' (we will come back to this later – Do NOT rename files themselves inside of this folder).
- Extract the ' Season your Grass Cache.BAT' file from the Seasons your Grass .zip file you downloaded earlier directly into the ' Grass' folder (make sure it does not end up in its default ' Seasons Your Grass' folder – it must be in the same folder as the cache files themselves).
- Execute the .bat file. Be sure to select the appropriate season.
- Delete the ' Season your Grass Cache.BAT' file from this folder when done.
- Create a mod for this season's grass cache by following steps from the previous section and name it (e.g., ' Grass Cache - Spring'). Ensure it remains disabled when done.
- Rename one of the grass folder copies you made earlier to ' Grass', and repeat this process for that season (e.g., summer).
- Skip to section 3.4.2.2 (Option 2) below if your last season requires its own unique grass cache, otherwise, repeat the previous step if your last season is also a copy.
- Skip to section 3.4.3 when done.
3.4.2.2 Option 2: Unique grasses for each remaining seasonSpoiler:Show
3.4.2.2.1 Spring
- Update your ' po3_SeasonsOfSkyrim.ini' file, and Set Season Type = 2 (permanent spring).
- Launch the game to generate grass cache for this season.
- Rename the grass files, selecting option '2' for Spring when prompted.
- Delete the .bat file when done.
- Give your mod a name (e.g., ' Grass Cache - Spring'), add to your Mod Manager, and ensure it is disabled.
3.4.2.2.2 Summer
- Update your ' po3_SeasonsOfSkyrim.ini' file, and Set Season Type = 3 (permanent summer).
- Launch the game to generate grass cache for this season.
- Rename the grass files, selecting option '3' for Summer when prompted.
- Delete the .bat file when done.
- Give your mod a name (e.g., ' Grass Cache - Summer'), add to your Mod Manager, and ensure it is disabled.
3.4.2.2.3 Autumn
- Update your ' po3_SeasonsOfSkyrim.ini' file, and Set Season Type = 4 (permanent autumn).
- Launch the game to generate grass cache for this season.
- Rename the grass files, selecting option '4' for Autumn when prompted.
- Delete the .bat file when done.
- Give your mod a name (e.g., ' Grass Cache - Autumn'), add to your Mod Manager, and ensure it is disabled.
3.4.3 Default season (optional)
Skip to section 3.5 if you do NOT plan on generating LOD with DynDOLOD, or plan to generate it later (after more testing, etc.), otherwise, proceed. If you intend on generating grass LOD using DynDOLOD, you will also want to generate a 'default' grass cache which will be used for LODs in worldspaces where seasons (or seasonal grass) are disabled altogether (based on your ' po3_SeasonsOfSkyrim.ini' file configuration). Generating these files uses the same process as above (minus the file renaming). Follow only one of the two options and their associated step(s) below, based on whether you have already prepared the default cache folder from a previous section if using shared grasses. Expand the 'Spoiler' tag for instructions.
3.4.3.1 Option 1: Cache already preparedSpoiler:Show
- Open your Skyrim /Data folder (Vortex) or ' overwrite' folder (MO2).
- Rename the previously copied ' Grass - Default' folder to ' Grass'
- Give your mod a name (e.g., ' Grass Cache - Default'), add to your Mod Manager, and ensure it is disabled. You will only ever enable this when generating LOD using DynDOLOD, so you won't need this enabled during normal gameplay.
- Skip to section 3.5.
3.4.3.2 Option 2: Generate new cacheSpoiler:Show
- Update your ' po3_SeasonsOfSkyrim.ini' file, and Set Season Type = 0 (disabled).
- Launch the game to generate grass cache for this season.
- No file renaming is required here when the process is complete, so keep the files as-is.
- Give your mod a name (e.g., ' Grass Cache - Default'), add to your Mod Manager, and ensure it is disabled. You will only ever enable this when generating LOD using DynDOLOD, so you won't need this enabled during normal gameplay.
3.5 Verification
Before proceeding, you want to be sure you have the following mods (or similarly named versions) in your mod list (the order does not matter). If you are missing one or more seasons, or the files contained within each mod are different from those noted below, you need to review and possibly repeat some of the steps above, otherwise your grass will not load properly.
- Grass Cache - Winter
- Inside this folder should be *.WIN.cgid files
- Inside this folder should be *.WIN.cgid files
- Grass Cache - Spring
- Inside this folder should be *.SPR.cgid files
- Inside this folder should be *.SPR.cgid files
- Grass Cache - Summer
- Inside this folder should be *.SUM.cgid files
- Inside this folder should be *.SUM.cgid files
- Grass Cache - Autumn
- Inside this folder should be *.AUT.cgid files
- Inside this folder should be *.AUT.cgid files
- Grass Cache - Default (only if you performed the steps for DynDOLOD preparation above)
- Inside this folder should be *.cgid files (no seasonal abbreviations)
- Inside this folder should be *.cgid files (no seasonal abbreviations)
4 Playing the game
With grass precache generation now complete, there are only a couple of steps required to restore normal seasonal functionality to the game and ensure the cache files are loaded.
- Update your 'po3_SeasonsOfSkyrim.ini' file, and Set Season Type = 5 (seasonal).
- Enable all of your seasonal grass cache 'mods' created earlier – Do NOT enable the default (non-seasonal) cache files if you created them.
- Re-enable any/all mods which you had to disable prior to generating grass cache.
- Ensure Grass Cache Helper NG is enabled (it should have been this whole time) – This mod will load the seasonal *.[WIN|SPR|SUM|AUT].cgid cache files.
- Disable No Grass in Objects – This must be done otherwise it will prevent Grass Cache Helper NG from loading seasonal grass files by overriding Grass Cache Helper NG's hooks – Don't worry, the functionality NGIO provides for your grass (i.e., preventing grass from loading in objects) has been "baked into" your cache files.
- 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.3 (06/02/2024)
- Added spoiler tags for optional sections
- Added spoiler tags for optional sections
- Version 1.17 (06/02/2024)
- Initial release
- Initial release
122 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)
Seasons Your Grass No Longer Available - Update 2/20/2025
It appears Seasons your Grass is no longer available on Nexus. I am reworking my personal file renamer which does a similar function (and more) and will upload to Nexus soon.NOTE - I have released my original script which performs similar functions here: Seasonal Grass Cache File Renamer. I will be updating the guide shortly to reflect this. The steps should be exactly the same just replace 'Season your Grass Cache.bat' with my 'renamegrasscache.bat' file, where applicable. Menus are similar but not exact, but should nonetheless be very intuitive.Please let me know in comments below if there are any other updates that are required.
This was carried into this guide, however, this information may be outdated. For example, when you generate for a season (e.g., winter), you are basically setting permanent winter in the po3_SeasonsOfSkyrim.ini file. The way NGIO works is it will take both the swapped grasses and non-swapped grasses and still generate seasonal grass cache files for all of them (e.g., *.win.cgid). Since we're generating for all worldspaces (or using the Worldsapces with Grass SSEEdit Script for NGIO), and, importantly, doing the same thing for every season, the seasonal files *should* account for all non-swapped grass as well in every season. In other words, there wouldn't be any "fallback" required to use the default grass files.
I suppose this information is on the DynDOLOD page in case people generate each season with different settings, or perhaps only generate seasonal grass cache for only worldspaces they are performing swaps for, but then generating default for all other zones, etc., in which case, there would definitely be fallback. My guide does not instruct users to do this though (same settings are used for all).
In this case, this should mean you are safe to exclude default grass cache so long as you followed my guide and/or otherwise generated seasonal grass for all worldspaces (or just valid ones which contain grass). I will mark this for review for a future guide update. Thanks for the comment.
EDIT: For other users reading this, LODGen in the highlighted portion of the quote refers to DynDOLOD's LODGen tool, not xLODGen (used for generated terrain LOD).
If you have the only-load-from-cache option set to true (detailed in the guide), is non-LOD grass loading OK with seasons (in active cells)?
Are your other objects properly swapping in autumn?
Is it possible the *.aut.cgid files were not enabled during LOD generation itself? You can always generate object/grass LOD only (skip LOD for trees/etc.) for the Autumn season in DynDOLOD (just make sure the appropriate selections are enabled). You may want to re-run LOD just for this season and export to a separate mod to see if that fixes things, and then merge the mods afterwards.
One other check - what grass mod(s) are you using? Have you tried all different areas or does this affect only a single biome/etc.? This *could* be relating to grass bounds. My guide omits this step (coming in a future update), but my understanding about this is that if grass bounds are not set properly for some grass mods, it will result in some grass being hidden when using precache, which carries into LOD. We want to exclude this as a possibility.
Hope this helps!
"Unhandled exception "EXCEPTION_ACCESS_VIOLATION" at 0x7FFD8AB214A7 po3_SeasonsOfSkyrim.dll+00014A7movss [rax], xmm2 | D:\a\SeasonsOfSkyrim\SeasonsOfSkyrim\src\Cache.cpp:26 ?GetData@DataHolder@Cache@@QEAAXXZ)"
any help on what Im doing idiotically wrong would be really needed
[20:48:44:783][info] NGIO-NG v1-4-0-0
[20:48:44:783][info] Reading .ini...
[20:48:44:783][info] ...success
[20:48:44:783][info] Game version : 1-6-1170-0
[20:48:44:783][info] Grass Cache Helper NG detected.
It takes about 5-10 seconds after reaching the title screen to crash, before any generation has even started. I'm at a bit of a loss right now, here is my full crash log: log
If you keep permanent winter enabled and start the game without generating cache, does it work? Your crashlog's unhandled exception indicates there is an issue with the plugin, not the grass generating process.
If moving to MO2 is too much work/effort, just try following the Vortex instructions so at least you're in the same mod manager for everything. Don't worry if stuff crashes a few times, this is EXPECTED in this process. Just continue from where you left off and it should only be an issue if you fail to get anywhere on a retry (crashes instantly). I don't think there is anything inherently wrong with your setup. I think you should try picking a single tool and sticking to it.
I don't use Combat Pathing Revolution, but would assume that many people would also have this same issue if it were relating to grass cache files.
Regarding your last question, what are the overlapping files? The seasonal output files themselves should all have different extensions (e.g., *.SPR.CGID, *.SUM.CGID, etc.), so they shouldn't overlap, but maybe there are some other non-impacting files in there from when you copied. If your grass files don't have the proper seasonal extensions, you'll need to ensure they are renamed properly.
Let me know if you need more info.
I did do my own seasonal dydnolod gen (took 5 hours) and although there are some visual glitches (flickering mountains, some weird flashing etc) everything seems to be working okay for right now. But very much looking forward to your guide for it! I found the seasonal documentation for all lod generation to be severely lacking, and beyond that the sheer amount of time it takes is a little frustrating. I totally understand why it has been a WIP for a while now because it is an absolute pain to do (but worth it imo :))
xx
Hope this helps!
Here are my settings. The grass cache part was greyed out before I generated any cache files or Texgen billboards, but otherwise these are the same settings that I had working for seasonal change (Medium rules):
ETA: By updating my skyrim.ini as someone said in the NGIO posts to add the line bGenerateGrassDataFiles=0, and making sure my INI for seasons was set to 5, I was able to get the text to show on the loading screen but it still freezes up and the mouse doesn't work so I can't choose to load a file. Could it be some other setting like this? I also set my skyrim.ini to bAllowCreateGrass=0 and bAllowLoadGrass=1 but perhaps that's wrong? Thanks!
It's common to enable mods temporarily while generating xLODGen, TexGen, and DynDOLOD outputs -- you didn't leave any enabled by chance? Did you disable any mods for grass generation and forget to re-enable? If so, your infinite load may be due to a missing dependency. You have no errors in the top right of MO2 citing any missing masters, correct?
Also, be sure you have DynDOLOD resources enabled when generating and also after generation. What version of DynDOLOD DLL are you using? SE or NG (or VR perhaps)? I recommend NG (which works for all Skyrim SE versions including VR), and make sure you are using the most recent version. Also, be sure to load your DynDOLOD DLL mod AFTER DynDOLOD resources because the scripts contained in the DLL mod need to overwrite those in the resources mod. Those scripts load at runtime (they are Papyrus based) so it's possible that might be causing your infinite start screen. Also, make sure you have the actual plugins (DynDOLOD.esm, DynDOLOD.esp, and Occlusion.esp) in your DynDOLOD output folder. One time I hit the 'X' button at the prompt when finishing my DynDOLOD generation and it never created those files.
That's all I've got for suggestions for now until I hear back from you.
This combination of deactivations freezes at the logo, yeah. Everything disabled with Grass Cache Helper also disabled, and NGIO enabled, got me to the menu with a warning about missing grass cache, but the mouse/keyboard didn't work to click OK on the warning so I was frozen again.
This one also freezes at the logo, both grass caches enabled with helper and with helper disabled. I actually got the Skyrim logo in the taskbar however, as the others crash with the generic box icon before it gets there, so I let it run a little to see if it would catch up, but it stayed frozen.
Yeah, nothing missing, only the warning about having things in override. I disabled Auto Parallax when I ran the cache generation and re-enabled it afterward.
Yeah, resources enabled and patches as well. I'm using the DLL found here: https://www.nexusmods.com/skyrimspecialedition/mods/97720?tab=files, so 3.00, and it looks like the site links back there so it should be the right one. It looks like the resources load before the DLL, yeah. Only thing overwriting the DLL is settings loader which I tried with disabling, but nothing. At this point I might try just undoing all the cache stuff and going back to uncached, as it was running all right except for some lag on the tundra, so I'll see if I can even do that, LOL. Thanks for the help again.Do you run any synthesis patchers or anything like that which could have been modified in some way?
I'd be interested to hear what the solution ends up being. Please keep me posted.
First comment on the POSTS page: