Mousetick Posted September 14, 2023 Share Posted September 14, 2023 The following time-saving procedure allows for adding new worldspaces to an existing grass cache, or for updating the current grass cache of specific worldspaces, without re-generating the cache of all worldspaces from scratch, which as we all know can be a very time-consuming process. This is not a guide about precaching grass from scratch with NGIO. It is assumed you have already precached grass with NGIO successfully at least once, and know how to repeat the operation. The procedure assumes Mod Organizer 2 is used as the mod manager. IMPORTANT: Grass Cache Helper NG is required for Skyrim SE/AE 1.6.x players. The existing grass cache must have been generated with Grass Cache Helper NG activated, and it must remain activated at all times for incremental precaching, and for playing. Step 1: Note the Editor ID of the worldspace(s) you want to add or update. Figuring out which worldspace(s) and their Editor ID is a task left up to the reader. See some suggestions at the end about finding out this information. Step 2: EXTREMELY IMPORTANT. Disable your existing grass cache mod[1] on the left side of MO2. Failure to do so will wipe out the entire grass cache during the later steps, which will then need to be exhaustively re-generated from scratch, which would make this tip completely pointless. Step 3: Edit NGIO configuration and specify the list of worldspaces to add or update. The NGIO configuration file is [..]\NetScriptFramework\Plugins\GrassControl.config.txt. Edit it with a text editor. You may want to make a backup copy of that file before editing it. Search for 'OnlyPregenerateWorldSpaces' or scroll down until you see it. Then comment out the line by prepending it with a # character. Add a new line like this, containing the Editor IDs you gathered in Step 1: OnlyPregenerateWorldSpaces = "Worldspace1EditorID;Worldspace2EditorID;Worldspace3EditorID" The list of worldspace(s) to add or update must be enclosed in double quotes, multiple Editor IDs separated by semicolon. Example showing the result of editing and specifying only one worldspace: Spoiler ######################################################################################################################## # Only pregenerate world spaces # # # # If this is not empty then skip every worldspace that isn't in this list. # # # # Type: (string) # ######################################################################################################################## OnlyPregenerateWorldSpaces = "WhiterunWorld" # OnlyPregenerateWorldSpaces = "000MSJCStoicBooksLand;3DNPCGabaniasWorld;aaaLucOblivionRealm;aaaWereBalokDungeonWorld;AlftandWorld;ArnimaDagonRealm;arnimaDUPLICATE003;arnimaEvermore;ArnimaJehanna;ArnimaJehannaSlums;arnimaTheHollow;Arnimatown;ArnimaVoid;Blackreach;BlastedLands;BlindCliffCaveWorld;BloatedMansGrottoWorld;BluePalaceWingWorld;BrinewaterGrottoWorld;BurningWorldspace;DarkwaterWorld;DeepwoodRedoubtWorld;DesertIsland;Dimfrost;DLC01Boneyard;DLC01FalmerValley;DLC01SoulCairn;DLC1AncestorsGladeWorld;DLC1DarkfallPassageWorld;DLC1ForebearsHoldout;DLC1HunterHQWorld;DLC1VampireCastleCourtyard;DLC2SolstheimWorld;EastEmpireWarehouse;EldergleamSanctuaryWorld;ElthericOcean;FallowstoneCaveWorldEnd;FallowstoneCaveWorldStart;FFAOBBoethiahPlane;FrostmereCryptWorld;HNTWorld;JaphetsFollyWorld;KA_RevakheimWorld02;KarthspireRedoubtWorld;KatariahWorld;LabyrinthianWorld03;LabyrinthianWorld04;Lastendell;mannyGFDesert;MarkarthWorld;MidwoodIsle;MIOblivionRealmDNN;MIOblivionRealmDSE;MIOblivionRealmQ14;MIOblivionRealmQ27;MIOblivionRealmSCE;MIOblivionRealmSCW;MossMotherCavernWorld;PalePass;RedEagleRedoubtWorld;ReichCorigateMountainPass;RiftenWorld;SancreTorWorld;ShadowgreenCavernWorld;SkuldafnWorld;SMSInnocenceHighSplendorWorld;SMSInnocencePrisonWorld;SMSJonestead;SMSLegacyBastionWorld;SMSShipCatalystWorld;SMSSkyNexusWorld;SMSSkysDivideCloudburstCaveWorld;SMSSkysDivideWorld;SMSVoidAetheriusWorld;SMSVoidFarShoresWorld;SMSVoidSovngardeWorld;SolitudeWorld;Sovngarde;ssgwaHomeWorld;ssgwaOrcWorld;ssLightHouseWorld02;Tamriel;TSRRestWorld;TSRShipWorldOpenSea;TSRVampWorldspace;WhiterunDragonsreachWorld;WhiterunWorld;WindhelmPitWorldspace;WindhelmWorld;WindPassWorld;WyrmstoothWorld;zAoMWitchWorld;zBMLamaeWorld;zCHOldForestWorld;zCHTrueEndWorld;zCOBruiantWorld" Step 4: Launch the NGIO precaching process from MO2 as usual. You may need to make preparations[2] specific to your mod setup before launching the process. The process should only take a few minutes[3], more or less depending on the number and size of specified worldspaces. Wait until it completes successfully. Step 5: Move the grass folder from MO2's Overwrite folder to your existing grass cache mod. If you are updating the grass cache of worldspace(s), you will be prompted to confirm replacing the existing cache files with the new ones. Step 6: Undo the NGIO configuration changes you made in Step 3. If you made a backup copy of GrassControl.config.txt as suggested, simply restore it. If you added new worldspace(s), don't forget to edit GrassControl.config.txt and append their Editor ID to the existing OnlyPregenerateWorldSpaces line. Otherwise they'll be missing the next time you re-generate the entire grass cache from scratch. Step 7: Re-enable your grass cache mod on the left side of MO2. That's it. Enjoy[4] your updated or added grass. Notes [1] Your existing grass cache mod is the mod containing the grass folder, not the mod containing NGIO (inside a NetScriptFramework folder). If you have merged both mods, then you're doing it wrong. Split them into two separate mods. [2] Preparations such as reducing Skyrim's display resolution, disabling mods that may interfere with the precaching process, switching environments/profiles... Anything that had to be done when generating from scratch. [3] If you're updating Tamriel (Skyrim's main worldspace), the largest of all worldspaces, it will take quite a while, but it will still be faster to process it individually than processing all worldspaces in the entire load order. [4] You're not yet completely done if you use the grass cache for grass LODs. You'll need to (re-)generate LODs with DynDOLOD for the specific worldspace(s) you added or updated. Refer to the official DynDOLOD documentation for details: Updating or Updating. How to find out the Editor ID of worldspace(s) with grass Method 1: Recommended when adding new worldspace(s) for its accuracy. Requires xEdit, basic knowledge of its operation, and Worldspaces with Grass SSEEdit Script for No Grass In Objects. Install 'Worldspaces with Grass SSEEdit Script for No Grass In Objects' as instructed on its mod page. Load up in xEdit the plugins of the mods adding new lands, as well as any grass/landscape mod plugins. Omit other plugins. Run the 'List worldspaces with grass' script. When it's done, copy the resulting list and paste it to some place where you can edit it. Remove all vanilla worldspaces from the list. The remaining worldspaces are the new ones with grass. Example with Wyrmstooth: AlftandWorld;Blackreach;BloatedMansGrottoWorld;BluePalaceWingWorld;DarkwaterWorld;DeepwoodRedoubtWorld;Dimfrost;EastEmpireWarehouse;FallowstoneCaveWorldEnd;FallowstoneCaveWorldStart;FrostmereCryptWorld;JaphetsFollyWorld;KarthspireRedoubtWorld;KatariahWorld;LabyrinthianWorld03;LabyrinthianWorld04;MarkarthWorld;RedEagleRedoubtWorld;RiftenWorld;ShadowgreenCavernWorld;SkuldafnWorld;SolitudeWorld;Sovngarde;Tamriel;WhiterunDragonsreachWorld;WhiterunWorld;WindhelmPitWorldspace;WindhelmWorld;WyrmstoothWorld Method 2: Suitable when adding or updating worldspace(s). Physically go to the place in-game where there is already grass to be updated or where there should be grass to be added. Use fast-travel, coc or cow console commands, whatever works to get there. Open the (More Informative) Console and press the Tab key until the Worldspace & Cell information card is displayed. Ctrl+Click the 'World Space' field in the information card, to display more details. Note the Editor ID. See following screenshot for illustration: Method 3: When adding new worldspace(s), less accurate than Method 1. Requires xEdit and basic knowledge of its operation. Load up the plugin of the mod adding new lands in xEdit. Expand the Worldspace node. Select a new worldspace entry (i.e. not vanilla), and check the 'DATA - Flags (sorted)' section on the right panel. If it contains 'No Grass' then skip it, go to step 6. Otherwise note its Editor ID. Repeat from step 3 for each new worldspace entry. Illustrated example showing the first two worldspaces from Beyond Reach: 3 Link to comment Share on other sites More sharing options...
nikwriter Posted Sunday at 04:15 AM Share Posted Sunday at 04:15 AM In case anyone ends up here to solve grass not appearing in their new land mods, like Beyond Skyrim: Bruma, Beyond Reach, Wyrmstooth, etc. after following step, here's a quick note to expand on "Method 1" of Mousetick's post. I'm sure I'm not the only follower of Step who doesn't know much about xEdit. 0. Install all your new land/worlds mods. 1. Install Worldspaces with Grass SSEEdit Script for No Grass In Objects by pasting its script (it's only contents) into the folder: Tools/xEdit/Edit Scripts/ 2. Run xEdit and be sure to check all the worldspaces you want to generate for. You can use Mousetick's method of only doing the new .esp's added by your new land/world mods, but I re-ran it all because I had to redo DynDOLOD anyways. 3. Select all the files in the left panel (CTRL+A), right click, choose "Apply Script". In the next screen that appears, use the drop down at the top to find the script "List worldspaces with grass" and then click ok/run. 4. When it is done, it will literally present a list of all the worldspaces, formatted correctly to be added to your NGIO "GrassControl.ini". There's even instructions in this window to explain these steps. Copy the list. 5. Double click the Step mod "SKSE64 Output" in MO2 and go to the INI tab. Choose GrassControl.ini. Replace the text in "quotes" after the line: Only-pregenerate-world-spaces = argument with your new list that you copied from the xEdit script. Be sure to keep/add the quotes around the list you paste. Be sure to back up the old list to be safe (though it can be found in the Step 2.3 guide, under "No Grass in Objects". 6. Save and close everything. You'll need to repeat the steps from the Step guide for LODgen, TexGen, and DynDOLOD (basically everything in Step 7). Mousetick's post basically answers this already, but like they wrote for Method 1 "Requires xEdit, basic knowledge of its operation" - this should cover the solution for anyone who is less knowledgeable with its operation Cheers! 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now