Wiki
Clone wikiDynaSector / Externalization plan
This considers how much work needs to be done to make elements of DynaSector externalizable, allowing outsourcing of maintenance functions to the faction mod authors and easing the process of adding a new faction.
The importance tag says how essential it is to edit that thing when integrating a faction mod. High means DS will crash, fail to function or generate obviously undesirable behaviour; anything lower affects quality of DS output but is not strictly necessary. Low means most players probably won't even notice.
See also Faction integration file list
Frequently updated
Balance stuff, fleet compositions etc., etc. Anything DR needs to change often.
ship_roles.csv, weapon_categories.csv
- Already externalizable in principle
- Faction mod config changes likely to lag behind those of DS, cross-faction ship/weapon settings likely to become incoherent
- High importance
DS_VariantRandomizer
- Variant preferences by hull; asymmetrical hulls; broadside hulls; hull WeaponGroupConfig; hull missile factor: could be CSVs
- Faction stats factor for variant configuration: could be CSVs
- Hullmod picking logic not externalizable
- Moderate importance
Infrequently updated
Might be changed during a balance pass or when adding a major new feature or another faction to DS.
data/factions/*.json
- Already externalizable
DS_FleetInjector.java
- Probably not externalizable for the most part
AFFECTED_FACTIONS
andNO_SHARING_WEAPONS
: could be CSVs- High importance (
AFFECTED_FACTIONS
), high importance if applicable (NO_SHARING_WEAPONS
, custom fleets), moderate importance (FactionStyle, themes)
DS_Database.java
- FACTION_HULLMOD_BLOCK: could be moved to faction JSON
- Low importance
DS_NGCAddFactionOptions.java
- Not externalizable
- High importance
DS_WeaponGrouper.java
weaponTypeOverride
: Could be CSVs, but likely cumbersome- Fortunately mostly autodetected (excelt Low Flux)
- Moderate importance
Rarely updated
Possibly only set once, when first implementing the faction. Still would be desirable to externalize so a new DS release isn't needed to add support for new factions (but this probably isn't gonna happen).
data/factions/factions.csv
- Already externalizable
DSModPlugin.java faction check
- Not readily externalizable
- High importance
DS_Util.java (RequiredFaction enum)
- Not externalizable
- High importance
DS_SubmarketUtils.java
AFFECTED_FACTIONS
: Could be a CSV- Moderate importance
DS_Database.java
HULL_IGNORE
,FIGHTER_IGNORE
,WEAPON_IGNORE
,SHIELD_QUALITY
: Could be CSVs- High importance if applicable (
HULL_IGNORE
,FIGHTER_IGNORE
,WEAPON_IGNORE
), moderate importance (SHIELD_QUALITY
)
DS_BaseRandomBattle.java
- Not easily externalizable
- Specific items contained are:
- Fleet size modifiers
- Special planets or stars available for background
- Faction names (can fall back to faction file)
- Ship name prefixes
- Low importance
DS_FleetFactory.java (fleet numerals)
- Probably not externalizable
- Low importance
DS_VariantNamer
- Not easily externalizable
- Low importance
nexerelin_options.json (player_npc usage of other factions' stuff)
- Could be converted to CSV; non-essential
- Probably low importance
Updated