Skip to content

Grass Cache

Grass cache generation is used to add grass to the game and to ensure it's not placed inside objects and is not floating. Any time a cell significantly changes, the grass cache for it needs to be regenerated.

NGIO is the mod used to generate grass cache. After the cache is generated, Grass Cache Helper NG is used to load it and provide season support.

Danger

Never have NGIO and Grass Cache Helper NG enabled at the same time. They are incompatible.

Grass is generated per cell. To see which cell you are in, open the console and hit Tab to switch to the cell view. You'll see cell coordinates there. To easily view cell borders, you can install the Debug Menu mod.

Generation Types

There are two ways of generating the grass cache:

  • Partial:
    • Allows spot-patching specific cells
    • Much faster than full if you only need to update a few cells
    • Easier to set up
  • Full:
    • Generates an entire worldspace or several worldspaces
    • Fully automated when ran with MO2
    • Takes a long time

Partial generation is generally recommended unless you need a full regen. You only need to fully generate when you either add a new worldspace, or change the grass models. Changing grass textures does not warrant a regeneration.

File Overview

The files generated by NGIO have the extension '.cgid' and the files will be referred to by this extension.

The CGID files generated by NGIO follow this naming pattern: {Worldspace}x{x}y{y}.cgid, where {Worldspace} is the worldspace the grass is for (Tamriel for mainland Skyrim), x is the cell's {x} coordinate, and {y} is the cell's y coordinate. Both coordinates are always four numbers with leading zeroes. For negative coordinates, the first zero is swapped for a minus sign.

Examples:

Worldspace Cell X Cell Y Result
Tamriel 10 5 Tamrielx0010y0005.cgid
Tamriel -5 -20 Tamrielx-005y-020.cgid
Wyrmstooth 0 20 Wyrmstoothx0000y0020.cgid
BSHeartland -10 25 BSHeartlandx-010y0025.cgid

The files contain grass placement data for the cell, as well as which model the grass uses.

When NGIO fails to generate grass, it will make a '.fail' file and try again automatically. You should remove those files.

Seasons

To generate seasonal grass, you need to force a specific season in Seasons of Skyrim. The configuration file is data\skse\plugins\po3_SeasonsOfSkyrim.ini. For generating non-seasonal grass, force the season to none.

GTS only uses a single seasonal grass, winter. All other seasons use the regular, non-seasonal grass.

This means that GTS requires two runs of grass generation. One for non-seasonal grass, and another for winter grass.

NGIO itself does not support seasonal swaps, Grass Cache Helper NG is used for that purpose. The seasonal grass must follow the regular Seasons of Skyrim nomenclature. A CGID file for non-seasonal grass would be Tamrielx0010y0005.cgid, and the winter variant would be Tamrielx0010y0005.WIN.cgid.

You have to rename the files manually, but it can be done with a single terminal command. For windows use: ren *.cgid *.WIN.cgid, for Linux use mv *.cgid *.WIN.cgid. These commands will rename all '.cgid' files to '.WIN.cgid' in the current directory.

Season Grass Mismatch While Generating

While doing partail generation for seasons, you may notice that grass outside the cell you generated does not match the season. This is expected, as NGIO does not support seasonal swapping.

Only pay attention to the grass in the cells of interest, and no other ones.

Before Generation

Note

This is only needed for full generation. Partal does not need anything disabled.

Temporarily remove any and all content from the AE Upgrade. Only Fishing, Rare Curios, Survival Mode, and Saints & Seducers are to stay.

Tip

The file names for the creations that should stay are:

  • ccbgssse001-Fish.esm
  • ccbgssse037-curios.esl
  • ccbgssse025-advdsgs.esm
  • ccqdrsse001-survivalmode.esl

All GTS AE content should also be disabled. You can easily find it by searching "Anniversary Edition Upgrade".

When you start the game with NGIO enabled, it will create default it's configuration file, data\skse\plugins\GrassControl.ini.

Generation

Pick the appropriate method for your needs as described above. NGIO generates directly into data\grass\, so it's best to use MO2 to capture the output, as described in Generation

  1. Disable Grass Cache Helper NG
  2. Install NGIO
  3. Force the desired season in Seasons of Skyrim
  4. Remove the CGID files you wish to regenerate from data\grass
  5. Run the game once to generate GrassControl.ini
  6. Set the following settings in GrassControl.ini:
    1. Use-grass-cache = true
    2. Only-load-from-cache = false
    3. Updating-cache = true
    4. Ray-cast-texture-forms = 112D5520:Northern Roads.esp;112D5521:Northern Roads.esp;1148E3C8:Northern Roads.esp;110425FE:Northern Roads.esp;1105190C:Northern Roads.esp;110A7B23:Northern Roads.esp;112C6203:Northern Roads.esp;112D551F:Northern Roads.esp;112DA624:Northern Roads.esp;112DF729:Northern Roads.esp;112DF72A:Northern Roads.esp;112DF72B:Northern Roads.esp;113684BB:Northern Roads.esp
  7. Start Skyrim from MO2
  8. Teleport to the cells you wish to generate with the following console command cow {Worldspace} {x} {y}. You can do this from the main menu
  9. Close the game and copy your new CGID files from MO2's overwrite to a safe location
  10. Remove any '.fail' files
  11. Rename the new CGID files for the right season, if needed
  12. Delete the CGID files from MO2 overwrite
  13. Force a different season and repeat from step 7 until all required seasons are generated
  14. Package your generated grass into a mod
  15. Install your grass mod into Vortex and make it overwrite GTS' grass
  16. If Vortex complains about external changes to GTS grass, use the staged files
  17. Disable NGIO and re-enable Grass Cache Helper NG
  18. Set Seasons of Skyrim back to Seasonal
Worldspaces

You'll want to put the editor ID of whatever worldspaces you want to generate for in the Only-pregenerate-world-spaces setting. If you don't to this, NGIO will go though every worldspace, even ones that don't have grass at all. This will make the generation take much, much longer.

If you want to regenerate all worldspaces with grass, there is an xEdit script on Nexus that can scan the whole game for all worldspaces that can contain grass.

  1. Disable Grass Cache Helper NG
  2. Disable Skyrim Souls
  3. Disable TrueHUD
  4. Make sure you have AE content disabled as described above
  5. Install NGIO
  6. If you're generating grass for GTS Tamriel, install the Grass Cache Temporary Patch file for better results.
  7. Force the desired season in Seasons of Skyrim
  8. Run the game once to generate GrassControl.ini
  9. Set the following settings in GrassControl.ini:
    1. Use-grass-cache = true
    2. Only-load-from-cache = true
    3. Updating-cache = false
    4. Ray-cast-texture-forms = 112D5520:Northern Roads.esp;112D5521:Northern Roads.esp;1148E3C8:Northern Roads.esp;110425FE:Northern Roads.esp;1105190C:Northern Roads.esp;110A7B23:Northern Roads.esp;112C6203:Northern Roads.esp;112D551F:Northern Roads.esp;112DA624:Northern Roads.esp;112DF729:Northern Roads.esp;112DF72A:Northern Roads.esp;112DF72B:Northern Roads.esp;113684BB:Northern Roads.esp
    5. Only-pregenerate-world-spaces = {Worldspaces you want to generate}
  10. Create an empty text file named 'PrecacheGrass.txt' in Skyrim's root directory, next to SkyrimSE.exe
  11. Start Skyrim with MO2, at this point NGIO should start generating grass
  12. This process is expected to crash the game at times, but MO2 should restart Skyrim automatically and NGIO will resume where it left off
  13. After NGIO finishes, copy all CGID files from MO2 overwrite into a safe location
  14. Remove any '.fail' files
  15. Rename the new CGID files for the right season, if needed
  16. Delete the CGID files from MO2 overwrite
  17. Force a different season and repeat from step 10 until all required seasons are generated
  18. Package your generated grass into a mod
  19. Install your grass mod into Vortex and make it overwrite GTS' grass
  20. If Vortex complains about external changes to GTS grass, use the staged files
  21. Disable NGIO and re-enable Grass Cache Helper NG, TrueHUD, and Skyrim Souls
  22. Remove the Grass Cache Helper file, if you have used it
  23. Set Seasons of Skyrim back to Seasonal
  24. Add pre-generated CC grass cache to your output to cover all CC worldspaces
  25. Un-remove the AE content, unless you're also generating Terrain LOD or Object LOD