here is my lolcat race files…
no edits to family list to add anything for the new race (to prove the point that cross race is just linked by naming in the build lua and classes in the can build/buildfamily)
though having the building ship have the same prefix does seem to be important
if I used REP_FIGHTERSHIPYARD in starting fleets it wouldn’t expand the build menu, I had to make a KAT_FIGHTERSHIPYARD for it to work
races.lua entry
{ "LOLKAT", "LOLKAT", "hyperspace_gate_IMP2", "etg/HYPER_OUT", 0, Playable, 1, "KAT_"},
buildandresearch/LOLKAT/ (Republic gunship added just to show you can build ships from other races with no issue based on classes or prefixes as long as everything lines up in the build.lua)
Ship = 0
SubSystem = 1
build = {
{
Type = Ship,
ThingToBuild = "KAT_LAZERKAT",
RequiredResearch = "",
RequiredShipSubSystems = "",
DisplayPriority = 1,
DisplayedName = "LAZER KAT",
Description = "",
},
{
Type = Ship,
ThingToBuild = "rep_corellian_gunship",
RequiredResearch = "",
RequiredShipSubSystems = "",
DisplayPriority = 31,
DisplayedName = "Corellian Gunship",
Description = "",
},
}
in the shipyard which is added from the starting fleets file, copy pasted with no changes from another working production ship to show that you can modify custom races with different build classes (‘heavy_corvette_Rep’ build class doesn’t match the CIS ones nor KAT_, but does match the ship build class I want it to build and buildfamily for the shipyard doesn’t match the KAT_ prefix either)
NewShipType.BuildFamily = "Shipyard_Rep"
addAbility(NewShipType,"CanBuildShips",1,"DroidFighter_CIS, Fighter_CIS,Corvette_CIS,Heavy_Corvette_Rep,Utility_CIS,Shipyard_CIS,Platform_CIS,Probe_Ben,Resource_CIS","Utility,Fighter,corvette,platform")
in the KAT_LAZERKAT.ship not even the right class (copy pasted from another custom race)
NewShipType.BuildFamily = "Heavy_Corvette_Rep"

I just realized how messed up this example is 
Don’t ask me how to set up subsystem builds I don’t use them that way