Wiki

Clone wiki

Exerelin / FactionConfig

This page documents the various faction config tags.

0.9 procgen

defenceStations

  • Array
  • Each entry is an Object containing sub-objects:
    • ids (Array)
      • Specify the industry IDs for this station type, one for each level
    • weight (Float) (default 1)
      • Chance of this station type being picked for a particular market

industrySeeds

  • Array
  • This specifies industries that will always be added to your faction at the start of the game, when in random sector mode
  • Each entry is an Object containing sub-objects:
    • id (String)
      • Industry ID to add
    • mult (Float)
      • Number of industries added = this × number of markets
    • roundUp (boolean) (default true)
      • Specifies whether to round up or down the result of above multiplication for getting number of industries

industrySpawnMults

  • Object
  • Each entry is a pair of industry type string and float multiplier for the chance of this industry being semi-randomly added to markets
    • Industry type is as specified in data/config/exerelin/industryClassDefs.csv, not the normal industry ID

bonusSeeds

  • Array
  • This "bonus items" that will always be added to your faction at the start of the game, when in random sector mode
  • Each entry is an Object containing sub-objects:
    • id (String)
      • Bonus type to add
    • count (Integer)
      • Number of bonuses to add, on top of mult
    • mult (Float)
      • Number of bonuses added = this × number of markets
  • See data/config/exerelin/industry_bonuses.csv for list of available bonuses

startSpecialItems

  • Array
  • Will place special items in player cargo at start.
  • Each entry is an array of arrays (so 3 levels of arrays in total).
    • The deepest array has 2 String elements: special item ID (e.g. "midline_package") and data (usually empty string, but can specify the hull/wing/weapon/ ID of a specific item blueprint).
    • Multiple level 3 arrays can be stored in a level 2 array. One item from each level 2 array will be picked at start.

General tags

corvusCompatible

  • Boolean (default false)
  • Prints a warning message if faction is not marked as compatible with Corvus mode (does not affect behavior)

freeStart

  • Boolean (default false)
  • If true, doesn't spawn markets in random sector mode

playableFaction

  • Boolean (default true)
  • Set to false if faction is not playable (e.g. Luddic Path). Faction will not be checked for victory.

startingFaction

  • Boolean (default playableFaction)
  • Is this faction selectable in a new game?

spawnAsFactionId

  • String
  • If specified, transfer from the config's faction to faction spawnAsFactionId after new game commences
    • Example use case: Start as Lion's Guard and get LG ships, be assigned to Sindrian Diktat to actually play the game with

spawnPatrols

  • Boolean (default true)
  • If true, factions will spawn patrols even if they are not set to do so in the .faction file read by base Starsector. Does nothing if set to false (can't make a faction that normally spawns patrols stop doing so).

Diplomacy tags

disableDiplomacy

  • Boolean (default false)

startRelationships

  • Object (default {})
  • Specify a table of other factions and their starting relationships with the config faction (ranges from -1 to 1). Overriden by the random starting relationships option.

minRelationships

maxRelationships

  • Object (default {})
  • Specify a table of other factions and their minimum/maximum relationships with the config faction (ranges from -1 to 1). Can be disabled in exerelin_config.json.
  • If two configs have conflicting values, the one that gets applied is undefined.

diplomacyPositiveChance

diplomacyNegativeChance

  • Object (default {})
  • Specify a table of other factions and their minimum/maximum relationships with the config faction (ranges from -1 to 1). Can be disabled in exerelin_config.json.
  • If two configs have conflicting values, it uses the one further from 1.

hostileToAll

  • Integer (0-3)
  • If enabled, make this faction hostile to others at start (including with random start relationships). Does not affect Corvus mode.
    • 1 = inhospitable to followers faction, hostile to everyone else
    • 2 = hostile to everyone
    • 3 = vengeful to everyone

isPirateNeutral

  • Boolean (default false)
  • Makes this faction neutral to pirate factions (see pirateFaction) at start. Does not affect Corvus mode.

pirateFaction

  • Boolean (default false)
  • Marks this faction as a pirate faction.
    • This has certain diplomacy implications (defaults to hostile to non-pirates, etc.)
    • Pirate factions do not count for victory by default (unless the player is a member). This can be modified in exerelin_config.json.

noRandomizeRelations

  • Boolean (default false)
  • Ignore this faction when randomizing faction relationships at game start.

noSyncRelations

  • Boolean (default false)
  • Player's relationship with this faction, and the player's commissioning faction's relationship with this faction, will not be synced.

morality

  • String (default neutral)
  • Available values are good, neutral, amoral, evil
  • Good factions incur double reputation hit from player selling slaves, amoral and evil factions have no penalty

alignment

  • Object (default all values zero)
  • Available alignments are corporate, technocratic, militarist, diplomatic, ideological
  • Determines compatibility for alliance formation (can be disabled in exerelin_config.json)
    • Each alliance has an alignment
    • Two factions must have at least one alignment's affinity sum to 1 to form an alliance
    • A faction must have non-negative affinity with an alliance's alignment to join it

factionsDisliked

  • Array (default [])
  • Start hostile to this faction. Deprecated, use startRelationships instead.

factionsLiked

  • Array (default [])
  • Start welcoming to this faction. Deprecated, use startRelationships instead.

Markets

freeMarket

  • Boolean (default false)
  • If true, this faction's markets will have the Free Market condition. Does not affect Corvus mode.

spawnMarketShare

  • Float (default 1)
  • Weighted share of the number of markets this faction gets in random generation mode.

tariffMult

  • Float (default 1.0)

Fleets and invasions

factionIdForHqResponse

  • String
  • If set, generate response fleet using specified faction's ship list when config faction's HQ market is invaded

invasionStrengthBonusAttack

invasionStrengthBonusDefend

  • Float (default 0)
  • Bonus/penalty fraction for marine rolls during invasions

invasionFleetSizeMod

responseFleetSizeMod

  • Float (default 0)
  • Bonus/penalty fraction for invasion/response fleet size

invasionPointMult

  • Float (default 1)
  • Multiplier for accumulating invasion points (launch invasion fleet when filled)

patrolSizeMult

  • Float (default 1)

miningVariantsOrWings

  • Array (default empty)
  • List ship variants that will be present in mining fleets

Starting ships

TBD

Fleet names

Available name tags are:

  • asteroidMiningFleetName
  • gasMiningFleetName (unused)
  • invasionFleetName
  • invasionSupportFleetName
  • responseFleetName
  • defenceFleetName
  • suppressionFleetName
  • stationName

Miscellaneous

customStations

  • Array (default empty)
  • List entity IDs for space stations the faction should use here

directoryUseShortName

  • Boolean (default false)
  • Use the faction's short name in game start faction picker and faction directory

dropPrisoners

  • Boolean (default true)
  • If true, faction will not drop prisoners or lootable green crew after battle

noHomeworld

  • Boolean (default false)
  • If true, faction will not have a market with a Headquarters market condition (does not affect Corvus mode)

showIntelEvenIfDead

  • Boolean (default false)
  • If true, faction will not be removed from the intel screen when eliminated or absent
    • Use this for factions that have a presence in the campaign even when they have no markets (e.g. pirates)

allowAgents

allowPrisoners

  • Boolean (default true)
  • If false, this faction cannot be targeted for agent/prisoner actions (including by the player).

Updated