Have you made some custom content?Polish it up to shiny perfection before uploading using our Creator Feedback Forum where you can get tips and tweaks from downloaders, creators, and staff to improve your work.

Just installed the Sims 3 patch or about to?Read this article for helpful advice about patching and keeping your custom content working!

I've been wanting to make sims 2 hairs for a long time but I wasn't able to find a complete hair meshing tutorial on any of the sites, forums, social medias that involved sims 2 meshing community. They were either in pieces, incomplete, or just plain outdated. Which made this whole journey of discovering sims 2 hair creation all about learning the tools and the hows and whys behind all the needed steps.

The dificulty of this tutorial is, I would say medium. It's not for the mere beginners completely as it might confuse them because of the lot of the terms used and the sheer length of it, but then it might help a beginner because it's organized and in-depth, includes a lot of details behind steps which are usually glossed over or outdated in the other tutorials.

For the image explanations I recommend opening spoiler tags. Because of the sheer amounts of details and info, there are a lot of screenshot explanations. I also apologize for the S4S (sims 4 studio) icon on sims 2 packages.

And with that, here is my in-depth Sims 2 hair making tutorials, step by step:

-Blender 3D (up to version 2.79): https://download.blender.org/release/
This program should make it much easier to make models and assign joints, even though milkshape is mandatory for re-export (find the 2.79 version at the bottom of the page).

-Blender 3D GMDC Plugins from MTS: http://modthesims.info/d/612164/upd...ender-2-79.html
This speaks for itself, but even though it exports the joints it does not export weighs and normals properly so milkshape is needed for re-export (read how to install the plugin to blender on the plugins download page).

For the cloning of hair, first thing to do is to decide on what type of alpha group you need. For layering alpha there is a lot of different precoded 'types' of alpha that you will use based on what model you envisioned for your hair. For one layer of alpha there's always two alpha groupsSimPE reads. One is the normal alpha faces the other ones are alpha backfaces, which naturally doubles your alpha part poly count.
That is why this part of hair creation is the most important one. You both have to choose a hair that has the number of alpha groups you need and you also have to appropriate your models alpha layering to the number of those groups. There is a way to change the group numbers but it's a bit of a hassle. If you want to do that and have a hard time, go ahead, I recommend this tutorial: http://www.modthesims.info/article.php?t=213184
But if you want to do it the normal way, read on.
The easiest way to see the number of alpha groups on base game hairs is an MTS repository thread on different types of hairs you can find here: http://modthesims.info/t/149677
It includes all ages and different numbers of alpha groups.

Now that you've chosen a hair to clone, you can get down to cloning the package. The way to do this is via The Sims 2 Bodyshop. Once the bodyshop is open, under Create Parts, choose Start New Project an then Create Genetics and then go to hair section and choose the hair you've chosen and the hair color you want exported. Then choose to export it (small folder icon with an arrow going out of it). Name your new export and confirm. It will be exported in the form of a project. This method is used for retexturing a hair that already has a fixed mesh but that's not what we are doing here.

For creation of hair that includes a completely new mesh, you will want to import it back in the game. After the hair has been exported there is a menu that allows you to import it back in the game. Once you do it (click on a button that says import, a small icon of a folder with arrow going into it), your texture package is saved by the name you gave it on export in SavedSims folder in the games data files, usually found in My Documents> EA Games> The Sims 2> Saved Sims or My Documents> EA Games> The Sims 2 Ultimate Collection> SavedSims (if you have Ultimate Collection). Now you can close the Bodyshop. For the sake of making it easy for you, it would be good to move your texture package from SavedSims folder to an easily accessible folder on desktop, like for example "Hair Project" folder. That way you can easily access all your project files.
However, this is only the texture package that game reads as the main package. To change a mesh you will need to form a mesh package and link the texture package to it so that the hair would appear properly in the game.

Now we can carry on to Extracting Stage.

EXTRACTING STAGE

To import a custom mesh hair in the game, you will need a mesh package. To do this you will use SimPE.
Open SimPE and create a new package from the dropdown File menu or on the topmost toolbar line. Save it in your project folder (NOT the Projects Folder in Sims 2 documents, but the one you made on desktop for this project). Give it any name you want to and then save it (click save under the same File menu, or on the same toolbar line).

Now the extracting stage of the mesh files can begin. To do this go to Tools menu, then choose PJSE, then Body Mesh Tool and then Extracting Stage.
This will open up a selection window where you have to either type in the name of the in-game file of the texture package you want to clone the linked mesh from. But you want to clone a mesh from your existing, bodyshop cloned texture package. There is a Browse button below. Click it. This will allow you to browse for and choose your cloned package. Select it, click yes on a popup that tells you that you are importing multiple mesh resources, and it will import all the meshes for all the ages that the texture package you cloned is linked to.

Once all the resources have been extracted and imported into your new mesh package file, you need to fix their integrity which means, changing the name of each resource so that it's referenced and connected properly, and to do this go to Tools again, then Object Tools, then Fix Integrity. Choose a name that will be added upon current resource names (make it a bit random but recogniseable, eg. add your creator name and the name of the package), click the little update button and then OK. After this save the mesh package file and then, for proper linking you need to delete all the resources for the other ages except for your desired one (eg. you only want this package to be adult mesh package so you delete all the other resources except the ones that start with af or am, which stands for adult female/male). To do this, select all the resources you want to delete with either Shift+Click or Ctrl+Click and then Rightclick and select Delete. This is NECESSARY because when it comes to the linking stage, you can only link a texture package to a mesh package that includes only one age. Save the mesh package once more.

Now we can get to the Meshing Stage.

MESHING STAGE

So there is not a lot to say about meshing because it's expected that you have some degree of meshing knowledge. If you don't, before even attempting to mesh anything for the game, you should watch or follow some of the tutorials on your chosen 3D programs online and practice untill you are confident in your skills.

Now if that is out of the way, we can start talking about the files necessary. The file that you will need, which has the base mesh, mesh groups and the joints is GMDC file, short for Geometric Data Container.
To export this resource and import it in your 3D modeling program, just right click on it and then select Extract. You should place it in your hair project folder so it's easier to access because you will probably be making changes to it often, which means exporting and reimporting.

Currently there is only two programs that support this but if you are meshing and assigning bones in Blender 3D, you still NEED milkshape3D for re-export because it fixes underweigh bones and other unknown stuff that blender plugin does not support.

To import a GMDC file in blender you go to File at the top, then on the dropdown list you choose Import and then Sims 2 GMDC (.5gd). It's the same for exporting, but instead of Import menu, you choose Export.

In milkshape it's also File then Import and then you have to scroll down untill you reach an option called Sims 2 UniMesh Import V4.09. Again, same method is used for exporting the GMDC file from milkshape but including Export option instead of Import and having an option called Sims 2 UniMesh Export V4.09.
What is important to remember is to TICK OFF Auto Smooth option under Groups tab in milkshape before importing GMDC file in the program.

For meshing, you should get familiarized with alpha groups and see how they work on EA hair that you've exported. Each group has it's second group that's for backfaces of that alpha group. For example hair_alpha5 group has hair_alpha3 group for it's backfaces. These (backface groups) should always be meshed if you are meshing alpha parts. This MTS thread/tutorial has some info on those: http://www.modthesims.info/showthread.php?t=139819

If you are regrouping more than one group in milkshape (select the faces you want in new group and click regroup), you also need to change comments to what they were originally and rename the new group accordingly to what it was named on EA's mesh.

After meshing, UV mapping, bone assigning and regrouping is done you can export the edited GMDC with your 3D modeling programs export option. (export as GDMC in blender or as UniMesh in milkshape).
If you exported the file with blender, you will need to import it into milkshape. If there is a popup saying that it needs to fix weighs that do not weigh 100%, click YES. If it does not show up, go to Vertex menu on the top and find Sims 2 UniMesh Fix Underweighted Bones V4.09 option. After that is done, export the file trough milkshape.

You now have your edited GMDC file ready for import into mesh package, but first we need to take care of the Linking Stage.

LINKING STAGE

For now we've worked with two packages, one being the texture package and another one being the mesh package. The way the game reads these is, it reads the texture package and then mesh package, so the texture one is the main one that handles ages, genetics, hair colors, eyebrow colors etc etc. Mesh is just there to be displayed as geometry after all this info is acquired by the game.
For this to work properly, you need to link the texture package to the appropriate mesh package. This is done via 3D ID resources in the texture package file.

Each 3D ID resource corresponds to one and only one age group. This allows different meshes per age group. For that reason our mesh package NEEDED to have only one age group resource of the same type.
Open up the texture package with SimPE. To find out what age group the 3D ID resource corresponds to, you do not look into 3D ID resources directly. Where you need to look at are names of the Property Set resources and their instances. Each property resource name will have one of these in them:
- pu (pf/pm) - toddler (universal, female or male)
-cu (cf/cm) - child (universal, female or male)
-tf(tm) - teenage (female/male)
-af(am) - adult (female/male)
-yf(ym) - young adult (female/male)
-ef(em) - elder (female/male)

If there is more than oneaf/am named property sets, some of them are either young adult or elder resources, but this does not matter as all three of them can easily be linked to the same mesh without problem.

Once you decide what ages you want to link to what mesh, you need to remember the instance number of the property set and match it to the instance number of the 3D ID resource. Once you find the 3D ID resource with matching instance number, select it and then go to Tools, PJSE, Body Mesh Tool and then choose Linking Stage. Now this is where things go just a tad bit complicated.

You will get a popup warning that will tell you that you won't be able to save your previous work after the linking is done and that you should save your work before you attempt this. You made no changes to the actual package, so in this context this is not really that important. You can just click OK.
Now you will be presented with a window where you get to chose a mesh package file to which you want to link your 3D ID resource. Select the mesh package saved in your hair project folder and click OK. Once that is done, there will be yet another popup, however this one is IMPORTANT. In order for changes to be committed, you need to, WITHOUT clicking on that commit button in the corner, select another 3D ID resource in the list. Once that is done, save and your texture package is now linked to your mesh package for a sim age of your choice. Rest of the ages in the texture package can be either deleted if you don't want them showing up in the game, or you could link them as well to other corresponding mesh packages that fit them. Or perhaps you can just leave them connected to EA mesh packages.

If you want more texture colors for your hair, you will need to link MULTIPLE texture packages to your mesh package (as much as the number of haircolors you want).Adult, young adult and elder 3D ID resources are most commonly linked to the same mesh package because they have the same bone structure and same face/body mesh, so the hair will fit all of them.
Now that you've prepared both packages, you can start the Replacing Stage.

REPLACING STAGE

Now that both packages are ready and linked, it's time to start replacing your resources.
First, is the GMDC file you edited and exported via blender/milkshape. This one should replace the GMDC file in mesh package. So open your mesh package in SimPE and select the present GMDC file in it. Do not replace the resource just yet. For this to work you need to select the name of the file down in the plugin view, and copy it. This is important because of the fix integrity step you did previously. The import of new GMDC resource will change it's name so we need old name to be restored after the replacing.

Now that you copied or saved the old name, you can right-click the resource in the resource list and select Replace, then find your edited GMDC file in your hair project folder and open it. Now that the resource has been replaced, you need to paste the name of the previous resource you copied into the new GMDC's filename in plugin view, click on fix tgi and then Commit. Finally save your mesh package.

Now you can replace the textures in the texture package. Open up the texture package in SimPE and under Texture Image (TXTR) resources there should be multiple image files. Find the ones that matches sim age that your hair uses. This is a bit tricky because there's no names involved this time so you need to understand what texture corresponds to what age. The adult and young adult texture will always be same in shape to the elder texture, which will always be black and white. Toddler hair textures are almost always simple. Sometimes teenage and child textures will be the same as adult texture, other times they will be their own thing, so take care when deciding what texture you want to replace.

Now to replace a texture you need NvidiaDDS tools. It's not necessary to only install them, but they also have to be linked to SimPE.
To do this go to Extra in the top, then Preferences and under System Folders there should be a field with text Nvidia DDS Tool Folder. Click Browse next to the text field and select the path to where Nvidia DDS tools are installed, then press OK.

Finally you can replace your desired texture. Select the img file you want and then in plugin view, in texture preview, you will see the current hair texture. Right click on it and find option called Build DXT. Click it. Now here you will be prompted to choose the compression level, sharpening, the overall filter during the import and the texture file you want to import.
Set compression level to either DXT3 or DXT5, sharpening to None, do not check any filter and then click Open Image to open and import the texture you made. After that click Build and it should bring you back to SimPE. Click Commit and save. You can delete the rest of the ages textures or leave them if you want to make your hair for more ages.

Now that the replacing part is done, the new hair should work in the game.

If it is not, you either made a mistake in these steps or your SimPE is 'corrupted', by which I mean it just won't work. I've had this happen to me before I reinstalled my system and I have no idea what caused it. However, all of the steps above, under normal conditions, should import your hair properly in the game, given that you did 3D Modeling and Bone Assigning part correctly. Bone assigning is a bit harder part of all of this so I have some tips and visual presentations about it incoming in the next post.

Assigning bones is not the easiest task to do and it sometimes requires lots of trial and error. Do this if you really know what you want and are familiar with assigning bones/weighing vertices already. If you are not, you can always transfer weighs from an EA mesh to your mesh and do a bit of manual cleanup, if your mesh is not complicated or similar to EA mesh.

Wether you assign bones in milkshape only or first in blender and then fix them in milkshape, there are some things that need to be known before assigning bones. Lets start with more fun ones:

HAIR ANIMATION BONES

Animating hair in Sims 2 depends on 6 hair bones which are:

-b_hair: back of the hair
-l_hair: left of the hair
-r_hair: right of the hair
-f_hair: front of the hair (bangs)
-c_hair: center of the hair (top/scalp)

Depending on what type of hair you have (short, long, braid, pigtails, hair with bangs) or how do you want your hair to move and if you want it to move at all, you would assign different values to different bones.EXCLAIMER: If you are using blender to assign hair bones, each of the vertice should be assigned 100% over maximum 4 bones. This means that if you assigned 25% to a f_hair bone, you should assign the rest of the 75% to another bone that's logical to be assigned (eg. head bone or c_hair bone).

ASSIGNING HAIR AND NECK BONES

If the hair is short and the intersection with the scalp is visible (there are neck seams), the hair has to have assigned neck bones around the scalp area with 50% to the neck and 50% to the hair bone.
For the neck bone you would want to assign these vertices that intersect with the scalp edge to 50%:

For longer hairs it's basically this. S2 stands for spine2 bone and H is hair bone. But keep in mind that the 5 lower vertices that intersect with the scalp edge STILL NEED to be assigned to the neck bone, sometimes even when they are hidden by the rest of the hair, because Sims move in all sorts of unpredictable ways, and their hair moves with them.

The only thing that's left is hair and eyebrow bining, which is helpful if you want to have a genetic hair color, or have all maxis genetic hair colors in their proper 'bins'.
I won't write a tutorial on that process because there's already a lot of the good ones here and it is a fairly easy process, but I wanted to keep all things that have to do with making Sims 2 hairs in one place so I'll kindly link to them here:

And there's the bining tool that, even though it's included in the link above, I recommend quite a lot. It lets you easy and fast bin your genetic hair colors properly, having one elder hair color for all recolors and with them being connected in a family (meaning that if your sim changes color of the hair, the hair will stay the same). It also allows you to decustomize a hair, which will get rid of the custom content badge and will bunch it with base game hairs. Get it here:

If you want to make more than one hair color, you will need more than one texture packages, meaning that you will need to export and import more of the packages you chose from Bodyshop. To not lose time and energy to reopen and reexport from Bodyshop each time, you should choose a set number of colors you want to make before you even start exporting and then export the same hair as many times as haircolors you want to make. Name them differently because that's how you will easier find them in SavedSims folder.

LINKING TO MORE AGES

As we have already seen, one 3D ID resource in texture package can correspond only to one GMDC (mesh), which makes linking stage a pain because you need to make your mesh packages contain only one age. Well there is a trick that lets you link the 3D ID resources to one combined mesh package with all the ages you need in it (Thanks to simmer22 for telling me about this).

What you want to do is, in EXTRACTING STAGE, after you've fixed integrity and saved the package, SKIP deleting all the age resources, CLOSE the package and then make copies of that mesh package and name them based on ages you want to make the hair available for. Then, after you've done that, open each one of them in SimPE, EXCEPT the main package you copied.
In them delete all of the resources (GMDC, CRES, SHPE,GMND) except the ones that are for the age (single age) that you named the package for.

You also need to export a GMDC for each age you want to have the hair for. That is so that you can actually have a skeleton for each age to work with, and the actual number of alpha groups. Then you import it into your 3D program of choice, make meshes, assign bones to them and save your new GMDC resources.

After that, in LINKING STAGE you would link the 3D ID resources to each separate age mesh package that you just made. Once every single 3D ID you wanted to link has been linked, you can delete all of the mesh packages that contain only single age data, the ones you copied, and keep only the main one that has all the age data.
That one will be your actual mesh package that will contain all the age meshes because you already linked 3D ID resources to the resources (GMDC, CRES, SHPE, GMND) that are contained in it, just via helper packages that you made earlier and now deleted (because they were not needed anymore).
After this, if you don't want some ages in mesh package, you can just delete them from that package.

FINAL WORDS

The rest of you guys are free to comment on this tutorial thread and prompt me to improve it or point out my mistakes (if there is any).

Just a small note on linking - the instance number way doesn't always work, because on occasion the ages tend to switch around a bit. (Also don't even bother looking at the PropertySet 3DIR, because that one is usually incorrect). If you want to be certain, compare the "Material Definition (TXMT)" Instance of the correct age/gender to the last numbers in the Material Definition lines in the 3DIR. That always works.

In the meshing stage it's adviceable to include the (proper age/gender) scalp, particularly in alpha-editable hairs, even if the hair covers most of it, because even mostly hidden neck gaps or missing heads are a pain. DO NOT resize the scalps when resizing the rest of the hair. Always use the proper age/gender scalp. If you don't know how to get them, just extract the GMDC (right-click resource, Extract) of the "--hairbald" meshes for the ages you want with the PJSE tool, with any of these prefixes: af, am, tf, tm, cu, pu (Example: af would be "afhairbald"). EF/EM can use the AF/AM ones. This one should be the "Hair" group in the finished hair, and have the "simskin" setting in the TXMT, so it takes on the skin color of the sim.

Yes. It is not about instance number ordering. Ages do get switched around when it comes to that. But property sets have correct naming and are always connected to 3D ID by instance number. Thats why instead of instance number ordering you look at the property set naming.
Ive tested this on a lot of base game hairs and it always turned correct.

Also you are right. If you are a beginner and your hair ends up with a bit of seams or wrongly assigned bones, scalp migh help to make it less noticeable.
But I would also advise to give your best and not make that happen, because often times they wont be minor, unnoticeable issues. Plus if your hair has no issues and you tested it troughly in the game, you wont need scalp.
And then there are instances where the scalp can pose a problem on hairs that have vertices move a bit inwards on certain sim animations, and then the scalp is revealed. In thos instances it would just be better to remove the scalp if everything else is working. Also scalps are included in the examples of faces I posted but Im not quite sure how accurate they are to EA head plus they need to be assigned so I guess they are not really valid for this use.

Whether you need a scalp depends on the hair. If it's a meshed hair that isn't directly alpha-editable (like several of the ingame hairs), you may not need one. However, if the hair is alpha-editable all the way, it's safer to add a scalp. Makes things easier in case you later want to shorten down the hair or some such (I've seen so many hairs that look fine in their original format, but when shortened via the alpha they look awful because of either a missing or borked scalp - I'm currently in the process of fixing one such hair, and the child + toddler meshes are giving me a lot of grief because the original scalp is bulky and has a large gap, and removing the scalp makes everything worse).

Quote:

And then there are instances where the scalp can pose a problem on hairs that have vertices move a bit inwards on certain sim animations, and then the scalp is revealed.

Shouldn't be a problem if you do bone assignments properly, and use the scalp as a guideline for meshing. It can be much easier to shape the hair if you have the scalp, because then it won't turn out too large or too small. Most of the scalp except for the 5 lowest vertices are assigned to the head, so that much of the hair should be assigned to the head, too.

I still do not understand what do you mean by: "Shortened via the alpha"

Are you shortening the mesh? Or the texture?

Either way, both scalp and scalp outline on the head are included in the example files which you can import as .obj files, which should make hair meshing easier and more accurate. I should have included this info in the meshing stage too. Will do it eventually when I get a bit more time.

The texture. Working off an old Peggy mesh I've used for some recolors previously, and the buggy scalps for the younger ages always bothered me. Plus, the original hair is way too long for my use, so I shortened down the alpha (I still want the originals the way they are, so the mesh stays roughly the same). I'm also working on fixing and making some other meshes where editing the alpha may be an issue if the hairs don't have a proper scalp.

I've seen a lot of shortened (by texture) hair recolors from older hairs, and they often end up not looking good because of a missing scalp, so it's often a good idea to have a full head back there.

Resource files (for me and other lazy people who can't be bothered to extract the base files every time)
I made some starting meshes for myself a few months back, and extracted all the bases, added the faces and scalps with proper bone assignments and comments - might save some work for people. Wouldn't recommend using the Milkshape files for clothes (you should always start fresh), but they've got working scalps for hairs, and accessory resources (frame/lens with proper comments for copy/pasta). Just in case, all the extracted GMDC and OBJ files are there (the face GMDCs don't work very well to import). Make sure to remove the unneeded mesh parts before exporting, though. Everything is sorted by age via filenames.

Extracted resources and basefiles: https://www.simfileshare.net/download/938754/
(there are GMDC/SimPE files for the hair+face, if you want it with bone assignments for testing with clothes or some such. They're the "--head" files, and have proper bone assignments without causing morph issues with the face).

PS: Don't use them for animations (they're not made for that since they still have the hair bones active - I've got fixed files for animations right here in case anyone wants them, with hair bones deactivated).

Oh I wanted to make those and make it easier for people to start (but with exported bones, make a repository of them with different alpha types)... but I was too lazy. Good idea. Might link to it in the tutorial, and credit you.

I had a lot of random resource files floating around, never finding them when looking, so I just sat down and did it all over again so I have a folder with everything I need - mostly for myself, but if anyone else find them useful, that's great

Could have made the whole process easier without the need for export of the GMDC resource. Actually, now that I see it, you probably won't even need extracting stage if you already have the all mesh files ready (GMDC, CRES...). Too bad there's no library of those haha

My basefiles only have the scalp, not other hair parts - you still have to import the hair you're working on into the program to get the proper group names and comments and such, because they're not always the same from hair to hair.

The resources are just meant to be a help so you don't need to extract the base files every single time, and so that you can get an easy start on a project instead of having to hunt them all down.

I actually have a few base files for accessories that I can just do "fix integrity" on, and they're ready to use. I make a lot of all-age acccessories, so that's easier. This is probably a good idea for hair meshes too - BUT I also think it's important to show the steps. If you just give people a base file, they may have a harder time when troubleshooting because they've skipped learning a lot of the steps.

Tip for linking:
If you make all-age meshes for accessories and hairs, you CAN'T use the PJSE tool for linking, because it ONLY works for single meshes (one set of GMND/GMDC/SHPE/CRES). However, there's a little trick that gets you out of the tedious manual SHPE/CRES linking in the 3DIR, which you'd normally use for hairs/accessories with multiple sets of mesh resources (tutorial shows the PJSE method). Make copies of the finished mesh file with all the resouces included, then delete all but the needed resources for one age/gender in each (one file for AF, one for TF, one for CU, etc.), rename them to match the age/gender, and then use the PJSE linking in the 3DIR with the single files. You can of course use separate meshes for each age/gender, but personaly I prefer a single mesh file. It's basically the same method you use when linking clothes to meshes, or linking single-age hairs or accessory meshes.

Making all-age hair meshes in one file:
To make all-age meshes, you first make a Bodyshop recolor of a hair, then extract the resources you need using the PropertySet in the recolor file as a guide (usually different mesh names for some of them). Then do file->new, right-click the resource window, click "add", and add in all the resources you extracted. Now you can do "fix integrity", giving it a new name. If you don't ever want to do these steps again, name the file something like "mesh", and save. Now you have a base (you often need one female and one male base for hairs, though it's also possible to combine them) and you should be able to do "fix integrity" on that base mesh, instead of extracting everything all over again for the next mesh. Just be sure you use the same base hair in Bodyshop each time so the resources match (or make a fixed basefile linked to the base mesh that you can recolor), and you're good to go.

Wait that's super useful.. But I did not understand the point where you make copies and then delete all the unneeded. You still have each separate age mesh file, just starting from the base main mesh file, right?

Also I realized that once you make one texture package file, you can then just by simple Cloning and texture replacement make more hair colors without ever bothering with linking again. Will add this to the tutorial too.

You leave the finished mesh file with all ages/genders untouched, and make copies of it - then edit the copies (and you can delete the copies when you're done). They're just there to assist with linking if you don't already have the meshes separate
You can also do it the opposite way - have the meshes separate, link them to the 3DIRs, and then combine them together into one mesh file in SimPE. Because it's always nice to just need to keep track of one mesh...

You always have to link the mesh to the texture for the new mesh/recolor you make. However, you can use a base mesh (needs "fix integrity" for each new mesh, or it won't be standalone) to ease up that part of the work. Recolors also need to be standalone, and linked to the new mesh each time.
However, if you find yourself doing the exact same changes to the recolor, make those once, link to the base mesh, and then use this oen to make the first recolor. May save you some work.

You should NEVER clone CAS recolors. They don't work that way, won't be properly standalone, and you'll end up creating a lot of issues. You should ALWAYS make new recolors in Bodyshop.
Or do it like me - make several recolors intended for mesh linking while you're at it, so you don't have to go through Bodyshop until the testing/recoloring stage. For accessories I have a folder with 3 base all-age meshes (different age combos), and a bunch of matching recolor files (batch-made for this purpose). When I want to start a project I take one of the recolor files, do "fix integrity" on the mesh and save with a new name, and link them together, and fix everything that needs fixing like the base texture and PropertySet in SimPE. This way I can make several projects in a go, and then open Bodyshop to make recolors for all of them. Pretty sure this would work for hairs, too.

Another nifty trick (mesh-related) is that if you work smart you only ever need 2-3 group names even when making multi-layered hairs. If you use the Opacity setting and group layering in Milkshape for layering the hairs, you can have multiple layers with the same names (hair, hair_alpha3, hair_alpha5). Very handy if you get into troubles with layer opacity. Milkshape works inner to outer, so you'd want the "hair" group at top, then hair_alpha3, hair_alpha5, hair_alpha3, hair_alpha5, etc. Bodyshop will instead of making a ton of textures use just as many as you have group names for. This is handy when you make multi-layered hairs, because those can be a bit troubly, and can sometimes cause opacity issues if not layered right. Same method works for clothes and semi-transparent objects, too. You can even get away with just one group name if need be (and 1-2 textures per age in Bodyshop).

Oh wait I did not know that linking to copied mesh files links to the main one. That's something definitely worth noting. I will add both recolor and multiple age linking to the tidbits tutorial, like michelanious or something XD. And the note about the scalp.

And yes I realized that they won't be standalone and that exporting as much as you want in the first place then linking each of them would be better.

Thanks so much, I hope for this tutorial to be complete and answer all the questions, and make it easier for people to make hairs.

EDIT: I read about the opacity settings and are you telling me that you can just reuse hair_alpha5 and hair_alpha3 if you layer them properly? Wouldn't that require the change of opacity settings to be the lowest on the most inner layer to highest on the topmost one? Or is it the other way around?

Not exactly.
- I make a finished mesh file (the .package file) with all ages/genders included (this is the main file you'll use in your game or upload)
- I then copy this file as many times as there are ages/genders
- Rename the copied files AF, TF, CU, etc.
- Remove the resources for all ages but the single one you want to have left in the copied files (keep the AF resources in the AF file, or the CU resources in the CU file, etc.)
- link the recolor file to the copies of the meshes (AF to the AF 3DIR, CU to the CU 3DIR, etc.) with the PJSE tool.
- Delete the copied files (no longer needed).
*As I said, you can make the meshes separate from the start and link them that way - and combine them together into one file in SimPE later. I think most creators nowadays use one mesh file for hairs. It's tedious to keep track of 4 mesh files in the Downloads folder.
(mesh file = the ".package" file containing the mesh resources)

For the layering, you use the opacity from the lowest setting to the highest setting (top is inner layer with the lowest number, bottom is outer layer with the highest number) in Milkshape, so start with -1 and continue up (-1, 0, 1, 3, 5, 7, 9, etc. - I don't think I've seen any hair meshes with even numbers). Blender layers work a bit different, and don't have the same opacity setting.

When you copy a file it's essentially the same file with the same information. Even if you delete resources, the files still have the same information in the remaining resources. You'd need to do "fix integrity" to a CAS mesh file to make it standalone.