I just had a bit of a further look in the My Documents\my games\GratuitousSpaceBattles folder.
I don’t understand why a ship in the campaign would require its design to remain existing. Because in the fleet file (\campaignprogress\default\fleets\fleet33.txt) all design information of the ship is already stored separately for each ship, apart from the name of the hull.
Let’s say I made a fighter design called “painter bomber tribe”, this would be stored in the design folder (\ships) as “painter bomber tribe.txt” like so:
[config]
name = painter bomber tribe
guiname = painter bomber tribe
hull = Tribe Serenity Fighter
[modules]
0 = fighter_engine,
1 = fighter_engine II,
2 = fighter_rocket,
3 = fighter target painter,
If I went to the campaign and produced this fighter, it would store it inside the fleet file (\campaignprogress\default\fleets\fleet33.txt) like:
[config]
fleetid = 33
guiname = 502nd Galactic Navy
[ship0]
design = painter bomber tribe
name = Kaw
quantity = 4
num_mods = 4
integrity = 1.00
id = 123
moved = 0
captured = 0
0 = 0,fighter_engine
1 = 1,fighter_engine II
2 = 2,fighter_rocket
3 = 3,fighter target painter
The only extra information the game could get from the design folder for this ship is “hull = Tribe Serenity Fighter”. If that’s all it needs, why not store it separately for each ship in the fleet33.txt as well as you already do for the modules and design name. Then a ship would no longer require its design to remain existing.
The only other reason I can think of at the moment is: if I changed my design of the fighter and produced it, I would have two groups of fighters called “painter bomber tribe”, but they would be unable to merge because their modules aren’t the same.
I’m probably talking out of my neck though. It would be too much work to change now anyway I bet.