How to bake normals for hardsurface models?

hey i make hard surface models too! now as u know we have multiple pieces that make up an entire Hardsurface model! how do i go about baking Normals for them? so i can have a detailed model in a game engine. individually or should I uv unwrap them each then join em all together as one object ? how would you go about it please help im breaking my head here!

If you’re going to be baking in Blender without any add-ons, eventually you’d want to join them. You can bake individually but it’d take a lot of work, so using a joined model is much easier. If, OTOH, you’re going to be using add-ons or a different program for baking (e.g. Substance Painter) you can leave the pieces separate.
Either way, UVs for all pieces must not overlap (must not be placed on top of each other) inside the default 0-1 UV space. If there’s any overlapping you’ll get baking errors (wrong normals). They can overlap outside that space though. So for example if your mesh has a lot of repeating details like bolts, and you want to reuse the texture for all of them, you’d place all of their UVs on top of each other but then move the UVs for all but one bolt by 1 unit vertically or horizontally. That way only one bolt will be baked, and all others will pick up the same texture.

Another note about joining vs. separating - if you have pieces that are touching or are close together, you may have to somehow disassociate them for baking, so that you don’t get detail from one piece wrongly baked onto another. A program such as Substance Painter can do that for you - you simply use a naming convention for high-poly and low-poly pieces, and it’d pick up on that and would only bake between pieces that have appropriately matching name prefixes. In some baking add-ons for Blender like e.g. Bake Wrangler you can also associate geometry pieces one way or another.

But manual baking in Blender doesn’t provide such features, so you may need to “explode” the models - physically move matching high poly and low poly pieces away from other parts. Since for this kind of baking, as mentioned above, you’d likely have a single joined model, this would mean moving parts of it in edit mode; you may even need to split off some pieces that are physically joined. So you’d normally use a duplicate object for this so as to not accidentally mess up the actual model.