Skip to content

FactionConfig

L.J. Lim edited this page Jun 26, 2022 · 6 revisions

This page documents the various faction config tags.

General tags

corvusCompatible

  • Boolean (default false)
  • Prints a warning message if faction is not marked as compatible with non-random sector (does not affect behavior)

difficultyString

  • String (default "")
  • Used in new game dialog; you can write "hard" or "easy" here, for instance

enabledByDefault

  • Boolean (default true)
  • Set to false to make this faction disabled by default in random sector (no effect in non-random sector)

freeStart

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

ngcTooltip

  • String (default null)
  • Use to display a tooltip for your faction in new game dialog).

playableFaction

  • Boolean (default true)
  • Set to false if faction is not playable (e.g. independents). 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

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. Only applied in non-random sector, except when useConfigRelationshipsInNonRandomSector is set.

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
  • Affects which commodities faction wants for stabilization package; currently does nothing otherwise

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
  • Factions with matching alignments will have a better diplomacy disposition towards each other

diplomacyTraits

  • Array (default empty)
  • Affects disposition of factions towards each other
  • See here for information

factionsDisliked

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

factionsLiked

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

useConfigRelationshipsInNonRandomSector

  • Boolean (default false)
  • Set to true to apply faction's starting relationships in non-random sector (normally a mod would apply this in code)

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.

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

tariffMult

  • Float (default 1.0)

Fleets and invasions

canInvade

  • Boolean (default true)
  • If false, invasions are replaced by raids

factionIdForHqResponse

  • String
  • Currently only used for generating special forces fleets, see "Special forces" section

groundBattleSettings

  • Map (default null)
  • Used for miscellaneous ground battle configuration, normally you don't need to set this

invasionOnlyRetake

  • Boolean (default false)
  • If true, only invades to retake planets or stations lost to another faction

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)

miningVariantsOrWings

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

raidsFromBases

  • Boolean (default false)
  • If true, will allow functionality like mod's Remnant raids

Starting ships

TBD

Fleet names

Available name tags are:

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

Colonies

colonyExpeditionChance

  • Float (default 0)
  • Weighting for when the game picks a random faction to found a new colony.

maxColonyDistance

  • Float (default 18)
  • After the game picks a random existing faction market to launch the colony expedition from, valid targets must be within this many light-years of the origin market.

colonyTargetValuator

  • String (default "exerelin.campaign.colony.ColonyTargetValuator")
  • Code to decide which colonization target is the most desirable. Other defaults available are IndustrialColonyTargetValuator and LuddicColonyTargetValuator, or the mod can define its own.

noHomeworld

  • Boolean (default false)
  • If true, faction will not receive a planet that has the "homeworld" features in random sector

Special forces

Tags that control the special task groups.

specialForcesMaxFleets

  • Integer (default 2)

specialForcesPointMult

  • Float (default 1)
  • Multiplier for how quickly the faction generates spawning points for STGs.

specialForcesSizeMult

  • Float (default 1)

specialForcesNamerClass

  • String (default exerelin.campaign.intel.specialforces.namer.CommanderNamer)
  • Can define a custom Java class to generate the name of the task group.

specialForcesFlagshipVariants

  • Array (default null)
  • Specify variants here to enforce their use as flagships for a special task group.

Vengeance fleets

The use of the name values is best illustrated by the following example for Luddic Church:

    "vengeanceLevelNames":["Excommunication", "Interdiction", "Jihad"],
    "vengeanceFleetNames":["Evangelists", "Inquisition", "Crusade"],
    "vengeanceFleetNamesSingle":["Evangelists", "an Inquisition", "a Crusade Fleet"],

vengeanceLevelNames

  • Array (default empty)
  • The length of this list determines how high the vengeance level can go. If list is not provided, max level defaults to 2.

vengeanceFleetNames

  • Array (default empty)
  • Should have same length as vengeanceLevelNames

vengeanceFleetNamesSingle

  • Array (default empty)
  • Entries should be a singular form of the names in vengeanceFleetNames

vengeanceFleetSizeMult

  • Float (default 1)

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 crew after battle

noMissionTarget

  • Boolean (default false)
  • Blocks the faction from being picked for various missions (e.g. those given by contacts)

noStartingContact

  • Boolean (default false)
  • If true, does not generate a contact for player when starting with this faction

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)

stabilizeCommodities

  • Array (default null)
  • Set to specify which commodities the faction's officials want to receive as stabilization assistance
    • Normally this is supplies and food for "good" or "neutral" factions, supplies and heavy armaments for "amoral" and "evil" factions

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.

allowAgentActions

allowPrisonerActions

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

Clone this wiki locally