hull_mods.csv
hull_mods.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- CSV editor page and use one of the appropriate tools.
A hull_mods.csv and script extending BaseHullMod combine to contain all of the information directly about a hullmod. The more commonly balance tweaked information is in the Hull_mods.csv while the less commonly edited information is in the script. It is formatted as a comma delimited CSV file.
hull_mods.csv is always located inside data/hullmods/. If csv is in wrong location or with wrong name game will not read data in it.
Elements
At the very top of hull_mods.csv, you will see a list of categories. Going from left to right, the functions of each are explained in table bellow.
You should be aware what 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 name | Type | Description |
|---|---|---|
| name | String (Any) | The human-readable name of the hullmod that is displayed in-game. The internal game engine name for the hullmod is the id. |
| id | String (ID) | ID used by the game engine. Must be unique. Highly recommended to add a unique modder prefix of some kind to avoid conflicts. |
| tier | ||
| rarity | Number (float) | Integer between 0 and 1 inclusive with higher being rarer. |
| tech/manufacturer | String (Any) | Determines if the hullmod appears in the refit screen under a distinct tech/manufacturer tab. Can be left blank to be in the default Common tab, just like all vanilla hullmods. |
| tags | String (Keys + Any) | Mostly for autofit. |
| uiTags | String (Keys + Any) | Hullmod tags for refit screen. Comma delimited strings. |
| base value | Number (float) | Base price in credits. Number. |
| unlocked | Boolean (TRUE / FALSE) |
Determines if this hullmod is unlock by player by default at the start of the game. |
| hidden | Boolean (TRUE / FALSE) |
If TRUE then this hullmod cannot be obtained by player but is visible on ships. |
| hidden everywhere | Boolean (TRUE / FALSE) |
If TRUE then this hullmod cannot be obtained by player and also is not visible on ships. |
| cost_frigate | Number (int) | OP cost of fitting this hullmod per this ship size - Frigate |
| cost_dest | Number (int) | OP cost of fitting this hullmod per this ship size - Destroyer |
| cost_cruiser | Number (int) | OP cost of fitting this hullmod per this ship size - Cruiser |
| cost_capital | Number (int) | OP cost of fitting this hullmod per this ship size - Capital |
| script | File path (dot separated) Case sensative |
Path to hullmod's script. Follows Starsector's general path guidelines: - Loose scripts -Relative path in full stop delimited format, without the file type, relative to the starsector core folder or the mod base folder. For example the vanilla hullmod AcceleratedShieldEmitter has a loose script in folder \starsector-core\data\ with name AcceleratedShieldEmitter.java so it's entry in the script path of hull_mods.csv is data.hullmods.AcceleratedShieldEmitter- Compiled code - Relative path in full stop delimited format. For example, the vanilla hullmod ECMPackage has a compiled script inside the Starsector jar file with fully qualified path com.fs.starfarer.api.impl.hullmods with name ECMPackage so its entry in the script path of hull_mods.csv is com.fs.starfarer.api.impl.hullmods.ECMPackage. To learn how this script is coded, you can navigate into the Starsector\starsector-core\starfarer.api.zip\com\fs\starfarer\api\impl\hullmods\ECMPackage. |
| desc | String (Any) | Description you see in-game. String |
| short | String (Any) | Short description, not used in game. String |
| smodDesc | String (Any) | Description for s mod effects |
| sprite | File path (slash separated) Case sensative |
Relative path to hullmod's icon sprite file from the core Starsector folder or the mod base folder. For example Accelerated Shields icon sprite is located in \Starsector\starsector-core\graphics\hullmods\accelerated_shields.png so it's entry for sprite in the hull_mods.csv is graphics/hullmods/accelerated_shields.png |
Tags
Mostly for autofit. Comma delimited strings. Not guaranteed to be an exhaustive list.
| Tags | Descriptions |
|---|---|
| carrierDamageAlways | dmod meant for carriers |
| civ | For being recognized as a civilian package. |
| civ_package | only used to detect civilian-packaged hullmods for Escort and Assault Package. |
| civOnly | same as civ |
| damage | group it as a dmod |
| damageStruct | If dmod take structural damage, add more weighting for dmods that affects structure |
| defensive | |
| destroyedDamageAlways | |
| dmod | |
| engines | |
| fighterBayDamage | |
| merc | |
| no_build_in | prevents the hullomd from being built-in. |
| no_drop | prevents dropping the hullmod in raids or salvages. |
| no_drop_salvage | perhaps prevent salvages... at least within the open-source code. Want to use no_drop. |
| non_phase | |
| notAuto | |
| notCiv | |
| notPhase | |
| offensive | |
| peak_time | |
| phaseDamage | |
| req_spaceport | makes hullmod require functioning spaceport to be able to fit it to a ship. |
| reqShields | |
| shields | |
| special | |
| weapons |
uiTags
Hullmod tags for refit screen. Comma delimited strings.
| uiTags | Col 2 |
|---|---|
| Defenses | |
| Engines | |
| Fighters | |
| Logistics | |
| Requires Dock | |
| Shields | |
| Special | |
| Support | |
| Weapons |