Space Yard Expansions (SEIV)
From SEWiki
In Space Empires IV, there is a hard-coded limit of only being able to construct one Space Yard facility per planet. This is done to prevent stacking 30 space yard facilities on a planet and get extremely expensive ships (such as black hole creators) built in a single turn. However, many games have the ability to have graduated construction rates based on the number of facilities present. Each facility adds a small amount of construction (such as 200 points), rather than a huge chunk as with a stock SEIV space yard (2000 to 3000). This can be accomplished in Space Empires IV, after a fashion.
How It Works Mechanically
While you can not build a facility with a Space Yard ability if there is already one on the planet, this restriction does not apply to facility upgrades. It is entirely possible to upgrade a non-SY facility to a SY facility and bypass the restriction. The rates of all space yards on the planet stack together.
Implementation
Space Yard Expansions are very simple to implement. There are several methods, depending on preference.
The easiest, which I strongly discourage you from using, is to add a facility with no abilities and the same family number as an existing Space Yard facility. It must be "less advanced," meaning that it should have a lower roman numeral (such as 0). After building this facility, you can then upgrade it to a Space Yard. Keep in mind that the cost of an upgrade (with stock upgrade cost settings) is one half that of building a facility directly, so this method could very easily allow you to build space yards far more quickly than normal, depending on how much the base facility costs.
A better method is to have normal Space Yards and a new type of facility, the Space Yard Expansion. A Space Yard Expansion should provide a small, incremental amount of construction, such as one tenth of that of a normal space yard. Exact values are up to the modder's discretion, of course. To implement this, you need to add two new facilities, with a new, unused family number. Do not make these have the same family number as normal space yards. The components can be called "Space Yard Expansion Project" and "Space Yard Expansion." The Space Yard Expansion Project will have no abilities. It is meant as the facility you build, then upgrade to the Space Yard Expansion facility. Give the Space Yard Expansion Project a roman numeral value of 0. The Space Yard Expansion facilities should have roman numerals of 1 or greater. Make sure to place the Space Yard Expansion Project after the Space Yard Expansion facilities in Facilities.txt. This will cause SEIV to display them as the only facility in the family when obsolete facilities are hidden. You never want to build the Space Yard Expansion directly, so this makes it much easier to use the system (no need to show obsolete facilities to build the Project facility first). In this sort of system, you would first build a normal space yard, then start with the expansions.
Another method is similar to the second, except that you have 3 different families of Space Yard Expansions, one for each resource. It is set up in much the same way. Make sure to _never_ set a space yard ability value to 0. If the space yard rate of a planet is 0 (and it is not rioting), an unlimited number of resources will be put into construction projects, allowing 1 turn builds of anything (assuming all resource rates are 0).
A final method would be to have no normal space yards. All space yards have small, incremental build values, much like Space Yard Expansion outlined above. You would build them in the same manner as a Space Yard Expansion, though it might be better to call them "Industrial Facilities" or something of that nature, since they are not really expansions anymore. This method changes construction rate to be more gradual. You might wish to lower the base construction rate without any facilities if you choose to implement this method. Otherwise, you could quite easily see construction rates drop from 2000 to 200 after building the first facility (assuming 200 is the value you chose).
