Wiki

Clone wiki

DynaSector / 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 and NO_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