wing_data.csv
ship_data.csv is a file of .csv format. While possible to edit with a text editor, it is highly advised to use appropriate tools for .csv format to prevent errors.
If you plan on editing .csv, please visit Required Tools page and use one of the appropriate tools.
An entry in wing_data.csv is required for all fighter type ships. This is in addition to other things a ship needs, such as a .ship file and a ship_data.csv entry and wing requirment of .variant file.
Elements
At the very top of wing_data.csv, you will see a list of categories. Going from left to right, the function of each is explained in table bellow.
You should be aware what columns accept different Type of values in the cell:
Columns accept different Type of values in the cell:
- String (ID) - this is unique ID for this separate ship, system, hullmod and so on depending on file. It most important String for most csvs and files. It how game finds things in first place. Changing ID means changing it in all other connected files, usually manually. Do ID right when you first setup entry, and try to keep it same going forward.
- String (Any) - freeform text, usually names, descriptions or designations. Usually will not get used anywhere outside UI.
- String (Keys) - these text fields accept only predefined values, either ids (of ships, shipsystems and other things) or some special key. Case sensitive. If you want to enter multiple keys in cell they need to be separated by comma (e.g
COMBAT, CARRIER) Note that not all key columns can accept multiple values. - Number (int) - accepts whole numbers. Correspond to some
intvalue in API. - Number (float) - accepts decimal numbers. Correspond to some
floatvalue in API. For decimals in.csvwhole and decimal part separated by dot (e.g.1.2)
| Column | Type | Description |
|---|---|---|
| id | String (ID) | Internal ID used to reference this fighter. Must match the id field in the ship_data.csv entry with an appended "_wing". For example the id of the broadsword fighter in ship_data.csv is "broadsword" so the id in the wing_data.csv is "broadsword_wing". Case sensitive. String |
| variant | String (Keys) | Internal variant ID for this fighter. Must match the variantId element within a .variant file. For example the broadsword variant file broadsword_Fighter.variant contains element variantId with value "broadsword_Fighter". Case sensitive. String |
| tags | String (Keys + Any) | Tags are strings used to attach additional data to wings. They can be used to define certain faction ship ownership (e. g. independents will know and use ships marked with "ind" tag - on how it implemented on faction level see .faction page), but also for interaction with other game systems. Some uses include blueprint behavior (pack/individual) or being read by other scripts (hullmods, ai, ect) to determine how script's function applies to ships with different tags. While many tags are already used by game, new ones can be created freely by adding the string to this field. For more information on already used tags see the tags section below. |
| tier | Number (int) | According to Alex For weapons, higher tier means a lower chance of being available. For fighters, this isn't the case - there aren't enough fighters, i.e. there's no "Talon, but worse" and "Talon, but better" etc progression for each kind of fighter, so that didn't work very well. Instead, it just picks a couple of the available fighters for each autofit category. com.fs.starfarer.api.impl.campaign.fleets.DefaultFleetInflater.java is a good place to look for the details; if you want specific behavior with regard to rarity etc, writing a custom one is probably the way to go. See also: CampaignPlugin.pickFleetInflater(). |
| rarity | Number (int) | Impacts the availability of this wing in loot drops. Between 0 and 1. Typical values are null, which defaults to 0 with some entries being 0.5 or 0.25 with higher being rarer. Int |
| fleet points | Number (int) | Abstract number denoting how powerful the ship is. Used for when two AI fleets clash in the campaign and for determining maximum total abstract fleet power for randomly generated fleet doctrines. Int |
| op cost | Number (int) | The cost in OP points to mount this fighter wing on a carrier. Int |
| formation | String (Keys) | The formation the fighters should fly in. Allow types are listed in the Starsector API BOX, CLAW, DIAMOND, V |
| range | Number (float) | Range the fighters may operate from their parent carrier. Due to the combat engine allowing some leeway this is effectively +1000 / -500 units. Typical fighter range is 4000. Can be set to 0. Int |
| attackRunRange | Number (float) | Range at which the fighters "should" attack. They may still fire before this range if their weapon permits it. A lower attackRunRange makes them do closer turnaround to their target. Int |
| attackPositionOffset | Number (float) | The relative position of this fighter wing in an attack run. Used to put fighters in front or behind other fighters. Lower numbers are closer to the front. Can be negative. Int |
| num | The number of fighters within the wing. Int | |
| role | String (Keys) | The role of the fighters in the game engine. Allowed types are listed in the Starsector API ASSAULT: Depreciated, can still be used but no fancy changes. BOMBER: Will return back to the carrier automatically when it runs out of ammo FIGHTER: Default Wing AI. Will appear more often than the rest but not more than the interceptor. INTERCEPTOR: Prefers to target missiles and other fighters first. Will also appear the most often in markets than the rest of the roles. SUPPORT: Will stick close to its carrier and may only escort (through its engagement range) other allied ships. |
| role desc | String (Any) | Friendly concise player-facing description of this fighter's role. String |
| refit | Base time in seconds to replace a dead fighter. Also factors into the rearm time for a fighters with limited ammo weapons. Note that if the rearm time is less than the time it takes the fighters to return to the carrier then they can potentially respawn very quickly. Int | |
| base value | Number (float) | The base value of the fighter wing in credits. Int |
| //empty columns | //nothing | //Some remnant of Alex initial format for wing_data.csv, from testing unused and deleting them didn't affect anything |
| number | Number (int) | Unknown use. Potentially similar to the ship_data.csv, impacts the sorting display of ships within a market. I.E. ships will be sorted based on hull size and then based on this number field. Int |
Tags
Tags are strings used to attach additional data to wings.
They can be used to define certain faction wing ownership (e. g. independents will know and use wings marked with "ind" tag - on how it implemented on faction level see .faction page), but also for interaction with other game systems. Some uses include blueprint behavior (pack/individual) or being read by other scripts (hullmods, ai, etc) to determine how script's function applies to wings with different tags. While many tags are already used by game, new ones can be created freely by adding the string to this field.
| Tag | Description |
|---|---|
| fighterX interceptorX bomberX supportX |
Primarily used by the autofit system to locate similar replacement weapons by providing a tiered grouping. Autofit would prefer higher numbers in the same grouping first and upgrade if possible. |
| auto_fighter | Allows ships with Automated Ship to equip these wings. |
| drone | This is used for autofit purposes if the variant has a drone wing, it will prefer to use wings with this drone tag. |
| fighter interceptor bomber |
There are tags that categorize the wings into 3 categories, this is just for UI display: |
| rapid_reform | lagging wing members catch up more quickly |
| leader_no_swarm | leader will start a new attack run on reaching target |
| wingmen_no_swarm | wing members will keep their position in the wing on reaching target |
| match_leader_facing | wing members will not face towards target but will match wing leader |
| attack_at_an_angle | aim to pass near target instead of directly over it, based on weapon range |
| independent_of_carrier | combat won't end when only these are left on the field |
| rd_no_extra_craft | Prevents Reserve Deployment from deploying extra extra wings when used. |
| rd_force_extra_craft | (defunct): Allow Reserve Deployment to deploy extra wings when used (this used to be placed on bombers when the system did not allow bombers) |
| no_drop | Prevents from being salvaged or recovered (for built-in wings). |
| no_sell | Prevents markets from selling the wing. |
| restricted | Restcricts wings from simulator, mission refit and arms dealer bar event |
| hist1t hist2t hist3t |
The hist1t, hist2t, and hist3t tag means the historian can tell the player about the location of a blueprint with this weapon. |
Tags also help control which factions know a weapon and which blueprint packages it appears in. Some such tags include:
- lowtech_bp
- midline_bp
- hightech_bp
- base_bp (known to all factions, including player at start of game)
- rare_bp (will appear as a standalone blueprint)
- merc (used by mercenary fleets)