-
Notifications
You must be signed in to change notification settings - Fork 15
FactionConfig
L.J. Lim edited this page Jul 30, 2023
·
6 revisions
This page documents the various faction config tags.
- Boolean (default false)
- Prints a warning message if faction is not marked as compatible with non-random sector (does not affect behavior)
- String (default "")
- Used in new game dialog; you can write "hard" or "easy" here, for instance
- Boolean (default true)
- Set to false to make this faction disabled by default in random sector (no effect in non-random sector)
- Boolean (default false)
- If true, doesn't spawn markets in random sector mode
- String (default null)
- Use to display a tooltip for your faction in new game dialog).
- Boolean (default true)
- Set to false if faction is not playable (e.g. independents). Faction will not be checked for victory.
- Boolean (default
playableFaction
) - Is this faction selectable in a new game?
- 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
- Boolean (default false)
- 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 random sector, except when
useConfigRelationshipsInNonRandomSector
is set.
- 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.
- 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.
- 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
- Boolean (default false)
- Makes this faction neutral to pirate factions (see
pirateFaction
) at start. Does not affect Corvus mode.
- 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
.
- Boolean (default false)
- Ignore this faction when randomizing faction relationships at game start.
- Boolean (default false)
- Player's relationship with this faction, and the player's commissioning faction's relationship with this faction, will not be synced.
- String (default
neutral
) - Available values are
good
,neutral
,amoral
,evil
- Affects which commodities faction wants for stabilization package; currently does nothing otherwise
- 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
- Array (default empty)
- Affects disposition of factions towards each other
- See here for information
- Array (default [])
- Start hostile to this faction. Deprecated, use
startRelationships
instead.
- Array (default [])
- Start welcoming to this faction. Deprecated, use
startRelationships
instead.
- Boolean (default false)
- Set to true to apply faction's starting relationships in non-random sector (normally a mod would apply this in code)
- Boolean (default false)
- If true, this faction's markets will have the Free Market condition. Does not affect Corvus mode.
- Float (default 1)
- Weighted share of the number of markets this faction gets in random generation mode.
- 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
- ids (Array)
- 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
- id (String)
- 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
- Industry type is as specified in
- 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
- id (String)
- See
data/config/exerelin/industry_bonuses.csv
for list of available bonuses
- Float (default 1.0)
- Boolean (default true)
- If false, invasions are replaced by raids
- String
- Currently only used for generating special forces fleets, see "Special forces" section
- Map (default null)
- Used for miscellaneous ground battle configuration, normally you don't need to set this
- Boolean (default false)
- If true, only invades to retake planets or stations lost to another faction
- Float (default 0)
- Bonus/penalty fraction for marine rolls during invasions
- Float (default 0)
- Bonus/penalty fraction for invasion/response fleet size
- Float (default 1)
- Multiplier for accumulating invasion points (launch invasion fleet when filled)
- Array (default empty)
- List ship variants that will be present in mining fleets
- Boolean (default false)
- If true, will allow functionality like mod's Remnant raids
As an example from player config:
"startShipsCombatLarge":[
["swp_vulture_sta", "swp_striker_ass", "wolf_Assault"],
["eagle_Balanced", "sunder_Assault", "brawler_Elite"]
],
- The Combat (large) starting fleet type is defined as an array with two possible sets of starting ships, which the player can cycle through in the starting fleet picker when setting up a new game. Each set here has three ships: a cruiser, a destroyer, and a frigate; however, any new ship sets added may choose to have a different number and combination of ships.
- Ship sets are arrays of variant IDs. The first starting set contains two variants from the Ship/Weapon Pack mod; if a set contains any invalid variants (e.g. the variant does not exist), the entire set will be hidden. This means ship sets relying on other mods can be safely added; Nexerelin will automatically hide the set as needed.
Available name tags are:
asteroidMiningFleetName
-
gasMiningFleetName
(unused) invasionFleetName
invasionSupportFleetName
responseFleetName
defenceFleetName
suppressionFleetName
stationName
- Float (default 0)
- Weighting for when the game picks a random faction to found a new colony.
- 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.
- String (default
"exerelin.campaign.colony.ColonyTargetValuator"
) - Code to decide which colonization target is the most desirable. Other defaults available are
IndustrialColonyTargetValuator
andLuddicColonyTargetValuator
, or the mod can define its own.
- Boolean (default false)
- If true, faction will not receive a planet that has the "homeworld" features in random sector
Tags that control the special task groups.
- Integer (default 2)
- Float (default 1)
- Multiplier for how quickly the faction generates spawning points for STGs.
- Float (default 1)
- String (default
exerelin.campaign.intel.specialforces.namer.CommanderNamer
) - Can define a custom Java class to generate the name of the task group.
- Array (default null)
- Specify variants here to enforce their use as flagships for a special task group.
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"],
- 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.
- Array (default empty)
- Should have same length as vengeanceLevelNames
- Array (default empty)
- Entries should be a singular form of the names in
vengeanceFleetNames
- Float (default 1)
- Array (default empty)
- List entity IDs for space stations the faction should use here
- Boolean (default false)
- Use the faction's short name in game start faction picker and faction directory
- Boolean (default true)
- If true, faction will not drop prisoners or lootable crew after battle
- Boolean (default false)
- Blocks the faction from being picked for various missions (e.g. those given by contacts)
- Boolean (default false)
- If true, does not generate a contact for player when starting with this faction
- 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)
- 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
- 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.
- The deepest array has 2 String elements: special item ID (e.g.
- Example using a modified player.json:
"startSpecialItems":[
[["low_tech_package", ""], ["midline_package", ""], ["high_tech_package", ""], ["XIV_package", ""], ["missile_package", ""]],
[["modspec", "targetingunit"]]
],
- The first row is a level 2 array containing five level 3 arrays, each representing a different blueprint package. The second row is a level 2 array containing 1 level 3 array, representing the Integrated Targeting Unit modspec.
- At game start (if choosing the 'own faction' starting faction) the player will receive the ITU modspec, and one randomly selected blueprint package from the five available.
- Boolean (default true)
- If false, this faction cannot be targeted for agent/prisoner actions (including by the player).