This will be an extensive tutorial on how to work with groundcover, as well as how to generate groundcover. This is mainly an extension of my previous Northern Gold Coast Grass Tutorial, which you can still find further down in this post.

First things first, you are going to need Yacoby's Mesh Generator. The latest version should be available for download here.

Once you have installed the Mesh Generator, you should find a small file called Grass.ini inside the installation folder. There's two ways to alter the settings stored in this file... eitheruse the Settings Editor (next to Output file when you run the generator), or just open the bad boy and do it manually (it's what I do). Keep in mind the settings editor is untested, so it might not work properly after all.

Let's go through all the options we have here. Feel free to use the settings editor to change these lines. I'll just go through the ini itself.

[GL_Grass_03]

- Basically this is the texture that grass will be generated on top of. For some reason no texture other than GL_grass_03 has ever worked for me. It doesn't really matter what texture you use... I'll base this tutorial on the fact that I am using this texture. But even if you could make it work with custom textures from PC_data, it's incredibly useful to be able to generate grass to certain areas that you can apply GL_Grass_03/whatever on instead of generating grass all over the damn place.

There's several more options to restrict grass generation to a certain cell/region/certain cells.

[GL_Grass_03:Balmora]

- Affects only cells with the name Balmora

[GL_Grass_03:ANY_NAMED_CELL]

- Affects any cell with a specific name

[GL_Grass_03:Bitter Coast]

- Affects only the Bitter Coast region

[GL_Grass_03]

- Affects all cells

bPlaceGrass=1

- I don't see a reason to turn this off...

bPosRand=1

- This will generate random positions for the grass. If you turn this off, it will look as if you had placed grass with gridsnap:

bRandClump=0

- Generates clumps of grass. Pretty worthless in my opinion.

bSclRand=1

- Makes the generator randomly scale all generated objects

fMinHeight=0

- The minimum height a mesh can be generated on. Obviously you might want to leave this at 0. Grass doesn't grow underwater.

fMaxHeight=256000000

- Can you guess it? The maximum height a mesh can be generated on. For instance, you can achieve such an effect:

fPosMax=100/fPosMin=-100

- The higher/lower the number, the more grass. You can achieve the same effect by lowering/increasing the gap between individual meshes, so I always leave it on these numbers. Apparently it doesn't matter if the value is unsigned or not.

fSclMax=1.5

- The maximum scale the mesh may have if generated randomly, range goes from 1.03 - 2

fSclMin=1

- The minimum scale the mesh may have if generated randomly; Obviously you could set this lower for more variety. Range goes from 0.5 - 1.03

iBanOff0=128

- This is the number of ingame units that *should* lie between the banned ground texture and the spots you generate grass on. This is quite a broken mechanic though.

iGap=200

- Defines the gap between each individual grass mesh. 200 is a good number, though your mileage may vary...

iWeight=0

- Only works when generating containers, which remains untested and probably doesn't work

sBan0=GL_Dirtroad

- Grass will not be generated on this texture. Seems like it works only with one

sChance[n]=5

- The chance in percent that mesh [n] will be generated. In case you are generating only one mesh, obviously you should set this to 100. The numbers should add up to 100 (keep that in mind this time, wolli!)

sID[n]=

- In theory these should automatically set the generated objects' CS IDs to what you put in here. For some reason it only spits out error messages for me.

sMesh[n]=grass\[ScampIsAwesome].nif

- This is the directory your mesh/es is/are located in. /Captain Obvious

sName=

- Only relevant when generating containers.

sRecType=STAT

- The type of object you are generating. The program will make new entries for the generated objects in the appropriate section

sScript=

- Only relevant when generating containers.

That should be all regarding the ini. The settings editor should be pretty straightforward, though I've never used it. Now let's head over to the actual Grass.exe.

Settings Location

- Captain Obvious: This is the location of your Grass.ini that you have edited accordingly.

Morrowind Location

- This is just so that the game knows where to find the meshes folder and where to put the output file.

Output File

- Feel free to change the file name to something other than Grass.esp. This is especially useful if you want to generate multiple files in a row without overwriting the previous output.The settings editor is the GUI to use if you don't have the balls to edit your ini manually. /pun

Data files to search

- The program will generate grass only for the plugin or master files listed here. Since I am using GL_grass_03, I need to remove Morrowind.esm via the "remove" button before I generate anything. Don't wanna have grass all over the actual grazelands. It's not good having dirty files.

ID Append

- Pretty self-explanatory. This will put a prefix in front of your object ID in the CS. I usually leave it at "GRS_" because I replace new grass meshes with the PC_ ones after merging, anyway.

Z Offset

- Decides upon how much grass will be sunk into the ground. SGM claims that this has no effect. See for yourself.

Generate

- C'mon, are you really reading this? As if this needed any kind of explanation.

Now, there is just about two ways to work with the groundcover. I will talk about each of these in detail in the next parts of this tutorial.

Generating Grass Afterwards

This is probably the most common way of working with groundcover, and what you should be doing in the Southern Gold Coast. Mostly I would do this when having a lot of "solid" objects like rocks scattered around a cell, you should generate grass after placing all the actual statics.

I am going to skip to the part where you have already done the good stuff. Your cell looks somewhat like this now:

Make sure you backup your file now so that you won't have to apply textures twice. Waste of delicious time.Now, load the backup file and apply GL_Grass_03 to all areas where you'll want to have grass. In this case, it would be restricted to areas with PC_tx_GL_grass applied to them.

Status report:

Now do you want cookies? No cookies for you! We're not done yet. Naturally, you will generate grass next. The ini for the Southern Gold Coast should look as follows:

Got that? Now you should have a [whatever].esp containing the groundcover in your Data Files directory. If it's something like 1 KB you shouldn't even bother loading it up, it hasn't worked. This could be because you had a wrong texture, wrong file paths or because your ini had typos or invalid values.It will look like this now:

Keep in mind you should load the grass file with your first file that does NOT have the GLified spots in it.

Don't forget to delete the dependencies on any esms via Enchanted Editor.

The real fun begins now! You thought this was over, didn't ya? Think again! We will need to fix any placement errors that the generator has produced. Unfortunately, the program is not able to determine whether grass is being placed into other statics or not. Furthermore, it happens ever so often that grass ends up in spots that it's not supposed to end up in.Decide for yourself which method you like best for this. I can say that this is a very time-consuming part, no matter what. It pays out in the end though.

Before you do anything, though... It is not needed to combine the Grass.esp and the main file into one esp to work on the grass. It's actually a lot easier and safer to just load up both, but set the Grass.esp as the active file. You will have both loaded, but only changes made to the groundcover file will be saved.

In this shot, you see a couple grass meshes stuck on the road. Kill those with fire unless you wish to have an overgrown road for aesthetical reasons.

As you can see, grass on rock textures doesn't make sense either:

There are several ways I usually go on about deleting grass underneath or half in, half out of rocks. Firstly, you can turn the camera upside down, so that you'll be looking at the rocks from underneath. Now you can very clearly see any grass meshes camping beneath rock meshes. Simply select them and delete.

A more convenient way is to leave the camera as is and just make a whole selection of the rock and all the grass beneath it, then deselect the rock. Now your selection will contain just the grass meshes that are bleeding into the rock or that have been generated underneath it.

Well, you do that until you think it's fine. Yes, SGM, this might not be necessary. I am a perfectionist though. At least any bleeding grass should be moved out of the rock. You can simply handpick them and drag them around, make small adjustments to the rotation if necessary.

Generating grass Beforehand

In areas that are supposed to have a lot of groundcover and that don't really have a lot of rocks overall, I would highly recommend generating the grass before placing statics.

(This is, for the most part, the oldish NGC tutorial)

Let's just assume for now that you have a certain patch of land that you want to have groundcover on. Load your file and look straight at it until your eyes burn. Now you're doing it right!

Before you generate anything, make sure all of your terrain is perfectly free of any jagged or rough terrain. You must keep in mind that, with this method, you will not be able to change anything about your terrain layout once the grass has been generated. Smooth away! Given how generally flat the terrain in this region is, any jagged terrain should be fairly easily detectable. Make sure you apply ground textures already as well, as you want to know which areas should have groundcover and which should not. Naturally, if you wish to generate grass next to your roads, sink them first!

It should look somewhat like this:

Once you're done, save your file and close the CS. Now you want to make a copy of your file that you should give an easily recognizable name, such as GENERATEGRASSFORTHISMUM.esp . Now load that as an active file.

What you will be doing (again) now is paint the ground that has the GC_grass texture on it with the texture GL_Grass_03. Only apply this texture to areas that should have grass!

After staring at your screen some more and after the occasional bits of noticing that the texture looks quite cool together with all the GC stuff, you can now move on to generating your grass.

Save the GENERATEGRASSFORTHISMUM.esp and close the CS. Fire up the Mesh Generator. It should use the following Grass.ini for the Northern Gold Coast:

Have you got that? Neat. Now, shoot up Grass.exe. Set your Morrowind location and make sure you have only the GENERATEGRASSFORTHISMUM.esp in the list of data files to search. In other words, remove Morrowind.esm before you generate as you don't want to have grass all over the actual Grazelands. (As mentioned earlier in the tutorial)

Now click on the 'Generate' button and watch the bar fill up!

If you haven't done anything completely wrong, you should now have a Grass.esp in your Morrowind folder. In theory, you could load just that file in the CS now and see whether your grass is actually there:

But because that looks like rotten scamp skin, we are going to load it together with our original file, not the one we used for generating the grass.

Behold!

Lookin' good, eh? Now click on File -> Combine Loaded Plugins. Save that as a new file (for instance, NEWFILE.esp). It will automatically be set as your active file. It's probably best if you do not replace the GRS_ objects with anything yet, it'll be done when it gets merged with the existing Gold Coast areas so that we have one universal grass object for each of the 4 meshes. There you go! You're ready to work on the area.

Make a copy of your NEWFILE.esp . You should name the other file SCAMPISGREAT.esp in order for this to work properly.

Open NEWFILE.esp in TESAME. Look for the four entries of the grass objects as shown in this picture, and delete them.

Now save that file and open it in the CS as your active file. You will receive a couple of warnings that the grass is missing. Save the file once it has loaded. You will not receive any further error messages. This is your file without grass.

The process of creating a file that has only the grass in it is a bit more complicated. In theory, you just delete everything except the grass in TESAME - and the cells it is in. In practice, that can get quite a bit silly.

If your file contains only the cells you have generated grass for, just remove the landscape entries and you're done. In my case, these should be the only cells with objects in them that don't have a region applied to them (You can see the objects located in a cell by double clicking on it in the Advanced Mod Editor). Easy as well. If it's more complicated than that, just name your grass cells to something you will easily recognize, such as FARGOTH. Keep only those and the four grass pieces. No landscape entries.

Depending on how many cells are affected by your groundcover, it should look somewhat like this afterwards:

There you go once more! This is your file that has only the grass. Again, don't forget to remove the .esm dependencies of your grass file with the Enchanted Editor. You have now successfully split the groundcover from your main file!

I still don't understand your logic behind merging the grass plugin with the main file. Especially when you split it afterwards. Neither do I understand why you generate grass before detailing the landscape. It looks to make for very flat bland looking landscape anyway.

Pretty sure the reason you gave for doing it first was so that you don't end up with grass underneath objects. I honestly can't see that doing it this way is worth the time spent on it. Having a few grass meshes underneath a rock or whatever doesn't cause any problems, least of all performance wise. The grasses hardly affect fps in the slightest so a couple extra in each cell isn't going to make a difference.

SGMonkey wrote:I still don't understand your logic behind merging the grass plugin with the main file. Especially when you split it afterwards. Neither do I understand why you generate grass before detailing the landscape. It looks to make for very flat bland looking landscape anyway.

Pretty sure the reason you gave for doing it first was so that you don't end up with grass underneath objects. I honestly can't see that doing it this way is worth the time spent on it. Having a few grass meshes underneath a rock or whatever doesn't cause any problems, least of all performance wise. The grasses hardly affect fps in the slightest so a couple extra in each cell isn't going to make a difference.

It's merged so that you can manipulate the grass directly, if you throw a rock in the cells then you can grab a chunk of nearby grass and stick it besides it. Add a whole bunch of rocks and you know where to delete any generated grass. It's just to ease decorating the grass and to make it look much smarter than average generated grass.

You use the grass to help detail the claim, but users can simply load it separately (and increase FPS, I believe.) You can move the grass and still make detailed terrain that isn't flat. I thought you had done exteriors for SHOTN, SGmonkey? Lestat does this for all (all 0 of them) the claims at SHOTN, as far as I understand.

I thought the Z Offset was broken too. Also, this tutorial is written for the NGC for some reason, and the location is pretty flat, so it's alright to have the ground so flat when you generate grass for it.

Although, Scamp, I'm using this tutorial for Solstheim and whatever the heck else I make (Colovian Highlands, etc) and anyone else using this tutorial is likely not going to be doing the Gold Coast, considering. Maybe you could make it a little bit more accessible and less about the NGC, or whatever.

Wollibeebee wrote:It's merged so that you can manipulate the grass directly, if you throw a rock in the cells then you can grab a chunk of nearby grass and stick it besides it. Add a whole bunch of rocks and you know where to delete any generated grass. It's just to ease decorating the grass and to make it look much smarter than average generated grass.

Even so, this can all be done last. I can't imagine moving around thousands of separate pieces of grass to be too productive. It also limits you to making any changes in the landscape, no matter how subtle or drastic. Your telling me you would reposition these by hand?

Like I said. I imagine its a lot less of a pain in the ass to generate grass last. You can always move it around by hand then if you must. But personally i doubt mos people would notice the difference or give a fuck that individual bits were moved manually.

SGMonkey wrote:Even so, this can all be done last. I can't imagine moving around thousands of separate pieces of grass to be too productive. It also limits you to making any changes in the landscape, no matter how subtle or drastic. Your telling me you would reposition these by hand?

You can always cut and paste. And I wouldn't say it limits it at all, it can be in the way a sometimes. But the end result looks better.

SGMonkey wrote:I still don't understand your logic behind merging the grass plugin with the main file. Especially when you split it afterwards.

I may not be as disciplined as Lestat, but I do certainly want to ensure we have as few grass bleeders as possible. Also, grass on rock textures looks a tad weird. It's necessary to edit the position of grass meshes in order to sustain the quality of this mod, and in order to bring it in context with the surroundings and terrain you have to merge it with the main file. Even if you generate grass later on (as I do it for the Southern Gold Coast, don't forget that!), you should always double check placement of groundcover. I hate how even professional game developers like Crytek keep having grass in their houses and cars. You may not be that fussy when playing games, but it immediately makes my eyes bleed. It looks unprofessional.

Neither do I understand why you generate grass before detailing the landscape. It looks to make for very flat bland looking landscape anyway.

So what's wrong with flat and bland landscape? God also thought that this was flat and boring landscape, and he still created it. The reason I generate grass before detailing the landscape is because it's much easier to work with the grass if it's already in place. Especially in this case it's much less work overall as you have more grass in a cell than other objects; The difference is less noticable in the southern parts, that's why I generate the grass for that afterwards. The focus in the southern Gold Coast is on the rocks, so I focus on them, it's much easier to work on that when you don't have all that grass in front of your eyes. In the NGC, I focus on flora.

(Little side note, I don't believe in God, this was just a sarcastic element used to show that the real world has, in some way, been created exactly this way)

Like wolli has asked, haven't you worked with Lestat before? He's a lot more nitpicky regarding that, and the only reason why the groundcover and overall fluidness of the landscape is so overly magnificent at ShotN is because Lestat generates groundcover as a basis for all the rest.

Might be, but I tried 9, 10, 11, 12 and 13 and if I'm not crazy I did see a difference.

Although, Scamp, I'm using this tutorial for Solstheim and whatever the heck else I make (Colovian Highlands, etc) and anyone else using this tutorial is likely not going to be doing the Gold Coast, considering. Maybe you could make it a little bit more accessible and less about the NGC, or whatever.

Ah ok. Sorry, you asked about the NGC so that's what I delivered. I will certainly expand this tutorial .

No, because the grass is not dependent on PC_data and it only has the cells and the grass in it, so, what the file will eventually do is place all that grass in a cell, nothing else. The other statics are not part of your grass file.

(It's important that you actively load the grass esp after cleaning stuff out and removing dependencies, you'll get a couple error messages for the missing statics and then you should save the grass file in the CS. Didn't I mention this in the tutorial?)

Scamp wrote:No, because the grass is not dependent on PC_data and it only has the cells and the grass in it, so, what the file will eventually do is place all that grass in a cell, nothing else. The other statics are not part of your grass file.

(It's important that you actively load the grass esp after cleaning stuff out and removing dependencies, you'll get a couple error messages for the missing statics and then you should save the grass file in the CS. Didn't I mention this in the tutorial?)

I have a question. When removing objects that aren't grass from the new grass.esp, how do I ensure that any assets not from the .esp that I'm cutting the grass out of, are removed in TESAME?

Say, If I were to detail a cell in the WG, and the only new, none-vanilla models added by the mod to the cell is my grass. How would I make sure that the vanilla WG rocks, trees, etc that were just placed in the cell (and ergo, don't appear under the model section in TESAME) were not a part of the grass.esp, but the new detailed cell.esp. Wouldn't the rocks and trees still appear in the cell, floating alongside the grass in the grass.esp? I see no way of deleting them.

You have to remove the dependency on vanilla. It should be just a TES plugin with no dependencies. Then you open it up and it gives you a couple of error messages, you save it, and it's done. Then it has only the grass in it because the grass is not in the Morrowind.esm.