Star Traders Wiki
Advertisement
Star Traders Wiki

_id Values for Modders[]

It is recommend to use _id values for your modded data that are an order of magnitude higher than the existing data in the game data database. For example, if the highest _id in the ShipComponent table is currently 626, considering using _id=1000 or _id=2000 for your new ShipComponents as this will make your mod (and the saved games players create with it) more update-ready.

A mod creator does not need to update their mod's game data database to match the latest version shipped with the baseline of the game. However, if you do decide to update your data database, you may find that we have added a ShipComponent with _id=627. Starting at a higher order _id for your mods would remove any chance of a conflict in this case.

data.db Schema[]

The game's data dabase (data.db) is a SQLite database that contains all of the read-only run-time data used by Star Traders: Frontiers during gameplay and contains the following tables and schemas.

Version PRAGMA[]

The game's data database is version-stamped using a SQLite3 PRAGMA called 'version' which must match the current mod build. To extract the version, run the command '.pragma user_version' and to write the version, run the command '.pragma user_version = XXXX' where XXXX is your version ID number (a large six or seven digit number.)

https://sqlite.org/pragma.html#pragma_user_version

Enums[]

Many tables use enums that can be found here.

Table CharacterType[]

CREATE TABLE CharacterType (_id INTEGER PRIMARY KEY, tech INTEGER, name TEXT, HPFactor REAL, HPFactor2 REAL, MPFactor REAL, MPFactor2 REAL, resistanceFactor REAL, toughnessFactor REAL, dodgeFactor REAL, enabled INTEGER, sku INTEGER, shortDesc TEXT, longDesc TEXT);
Column Usage Min / Max Reference
_id
tech integer,
name text,
HPFactor floating point,
HPFactor2 floating point,
MPFactor floating point,
MPFactor2 floating point,
resistanceFactor floating point,
toughnessFactor floating point,
dodgeFactor floating point,
enabled integer,
sku integer,
shortDesc text,
longDesc text,

Table CharacterLevel[]

CREATE TABLE CharacterLevel (_id INTEGER PRIMARY KEY, xp INTEGER, level INTEGER, skill INTEGER, job INTEGER, talent INTEGER, levelType INTEGER);
Column Usage Min / Max Reference
_id
xp integer,
level integer,
skill integer,
job integer,
talent integer,
levelType integer,

Table ShipType[]

For details on modding ships, see Modding Ships.

CREATE TABLE ShipType (_id INTEGER PRIMARY KEY,shipTypeName TEXT, startShipCost INTEGER, shipCost INTEGER,skeletonDataFile TEXT,atlasFile TEXT, skinName TEXT, skinGroup TEXT, hullPoints INTEGER,baseArmor INTEGER, baseDeflection INTEGER, baseMass INTEGER, baseFuel INTEGER, maxOfficer INTEGER, maxLifeSupport INTEGER, maxCraft INTEGER, maxCraftDefense INTEGER, startingShip INTEGER, factionId INTEGER, gameState INTEGER, unlockId INTEGER, smallSlots INTEGER, mediumSlots INTEGER, largeSlots INTEGER);
Column Usage Min / Max Reference
_id
shipTypeName text,
startShipCost integer, the price of a ship when it is purchased as a starting ship
shipCost integer, the price of a ship when it is purchased through the starport
skeletonDataFile text,
atlasFile text,
skinName text,
skinGroup text,
hullPoints integer,
baseArmor integer,
baseDeflection integer,
baseMass integer,
baseFuel integer,
maxOfficer integer,
maxLifeSupport integer,
maxCraft integer,
maxCraftDefense integer,
startingShip 1 = Starting Ship

2 = For purchase in Staport

-1 = Not available for players (xeno)

-1, 1, 2
factionId integer, if set to non-zero this component is faction specific. See Modding Enums for Factions
gameState integer,
unlockId integer,
smallSlots integer, convenience field used to cache number of smallslots as defined for this ship type in data.ShipDataCompartment. Changing this will not grand additional slots. Must be kept in sync with data.ShipDataCompartment
mediumSlots integer, convenience field used to cache number of medium slots as defined for this ship type in data.ShipDataCompartment. Changing this will not grand additional slots. Must be kept in sync with data.ShipDataCompartment
largeSlots integer, convenience field used to cache number of large slots as defined for this ship type in data.ShipDataCompartment. Changing this will not grand additional slots. Must be kept in sync with data.ShipDataCompartment

Table ShipComponent[]

CREATE TABLE ShipComponent (_id INTEGER PRIMARY KEY AUTOINCREMENT, componentSize INTEGER, componentType INTEGER, componentName TEXT, componentDesc TEXT, componentPng TEXT, componentLevel INTEGER, shipWeaponId INTEGER, skPilot INTEGER, skShipOps INTEGER, skGunnery INTEGER, skElectronics INTEGER, skNavigation INTEGER, skExplorer INTEGER, holdsCargo INTEGER, holdsCrew INTEGER, holdsOfficer INTEGER, jumpCost INTEGER, armorBonus INTEGER, fuelBonus INTEGER, holdsGuest INTEGER, holdsPrisoner INTEGER, holdsCraft INTEGER, medicalRating INTEGER, shipEffectId INTEGER, deflectionBonus INTEGER, mass INTEGER, shipEngineId INTEGER, driveMass INTEGER, installCost INTEGER, installValue INTEGER, installTime INTEGER, subType INTEGER, signature INTEGER, sortPriority INTEGER, factionId INTEGER, gameState INTEGER, minEcon INTEGER, minMil INTEGER, minStar INTEGER, unlockId INTEGER);
Column Usage Min / Max Reference
_id
componentSize integer, must be 1=Small, 2=Medium or 3=Large 1-3
componentType Determines gameplay function of the component, see Modding Enums Ship Component Types
componentName text,
componentDesc text,
componentPng text,
componentLevel integer,
shipWeaponId integer, references ShipWeapon._id if the componentType = 4 (WEAPON)


If the componentType = 10 (WEAPONSLOCKER) then shipWeaponId is used to indicate the groupId of weapons and armor that the component grants

All weapons and armor where shipWeaponid = Weapon.groupId and shipWeaponId = Armor.groupId are granted

data.ShipWeapon._id

OR

data.Weapon.groupId and data.Armor.groupId

skPilot integer,
skShipOps integer,
skGunnery integer,
skElectronics integer,
skNavigation integer,
skExplorer integer, this field does not increase Explorer Skill for the ship. Instead, it determines the % bonuses available to different types of components.


If the ComponentType is SHIP_COMPONENT_TYPE_ORBIT_DATA_BONUS (22) then values 1 through 5 will grant bonuses 10%, 20%, 25%, 33% and 42% respectively to Orbital Intel finds


If the ComponentType is SHIP_COMPONENT_TYPE_EXPLORER_DATA_BONUS (18) then values 1 through 4 will grant bonuses 25%, 50%, 75% or 100% respectively to Intel finds when Exploring


If the ComponentType is SHIP_COMPONENT_TYPE_ORBIT_SALVAGE_BAY(24) then values 1 through 5 will grant bonuses 15%, 25%, 35%, 49% and 54% respectively to Salvage Credit finds


If the ComponentType is SHIP_COMPONENT_TYPE_ORBIT_SHIP_PROTECT (21) then values 1 through 3 will grant 20%, 25% or 40% reduction to Orbital Ship Damage


If the ComponentType is SHIP_COMPONENT_TYPE_ORBIT_CREW_PROTECT (20) then values 1 through 3 will grant 20%, 25% or (33% and 20% Crew Damaged) reduction to Orbital Crew Damage


If the ComponentType is SHIP_COMPONENT_TYPE_EXPLORER_CARGO_BONUS(15) then values 1 through 5 will grant 6, 12, 16, or 20 bonus cargo when cargo is discovered during Exploration


If the ComponentType is SHIP_COMPONENT_TYPE_EXPLORER_SHIP_PROTECT (17) then values 1 through 4 will grant 20%, 30%, 35% or 40% reduction to Exploration Ship Damage


If the ComponentType is SHIP_COMPONENT_TYPE_EXPLORER_CREW_PROTECT (16) then values 1 through 4 will grant 25%, 30%, (30% and 50% Crew Damaged) or (40% and 66% Crew Damaged) reduction to Exploration Crew Damage.

These effects do not stack with multiple components, only the best is applied. These effects do damage to the component each time they activate.

holdsCargo integer,
holdsCrew integer,
holdsOfficer integer,
jumpCost integer, positive values increase jump cost where negative values decrease
armorBonus integer,
fuelBonus integer,
holdsGuest integer,
holdsPrisoner integer,
holdsCraft integer,
medicalRating integer,
shipEffectId integer, data.ShipEffect._id
deflectionBonus integer,
mass integer,
shipEngineId integer, references ShipEngine._id if the componentType = 3 (ENGINE) data.ShipEngine._id
driveMass integer,
installCost integer,
installValue integer,
installTime integer, the number of turns required to install this component
subType Determine grouping for sale in starport but has no impact on actual gameplay function of component see Modding Enums for Ship Component Sub Types
signature integer,
sortPriority integer,
factionId integer, if set to non-zero this component is faction specific. See Modding Enums for Factions
gameState integer,
minEcon integer,
minMil integer,
minStar integer, minimum Starport rating to sell this component
unlockId integer,

Table ShipWeapon[]

CREATE TABLE ShipWeapon (_id INTEGER PRIMARY KEY AUTOINCREMENT,weaponType INTEGER,damage INTEGER,damageDice INTEGER,winTies INTEGER, baseToHitCraft INTEGER, range INTEGER, attackType INTEGER, pngPath TEXT,hudPngPath TEXT,sound2 INTEGER,ap INTEGER,sound INTEGER,accuracy INTEGER,priority INTEGER, weaponName TEXT, level INTEGER, critChance INTEGER, effectChance INTEGER, radDamage INTEGER, voidDamage INTEGER);
Column Usage Min / Max Reference
_id
weaponType integer, 1:10
damage integer, minimum damage
damageDice integer, random_uniform(damageDice) added to damage
winTies integer, 0,1
baseToHitCraft integer, chance to hit craft
range integer, optimal range for weapon.

Allowable range +/-1. Craft attacks are range = 0

0:5
attackType integer, 1:7
pngPath text,
hudPngPath text, Null, unused
sound2 integer,
ap integer, Reactor Point cost
sound integer,
accuracy integer, to hit dice
priority integer, 1:2
weaponName text,
level integer,
critChance integer, chance of critical hit
effectChance integer, chance of effect
radDamage integer, Radiation damage on attack.

Base damage is 30% to 100% of radDamage.

voidDamage integer, Void damage on attack.

Base damage is 30% to 100% of voidDamage.

Table ShipEngine[]

CREATE TABLE ShipEngine(_id INTEGER PRIMARY KEY AUTOINCREMENT, actionPoints INTEGER, moveCost INTEGER, shipSpeed INTEGER, shipAgile INTEGER, mapFuelCost INTEGER, combatFuelCost INTEGER, designMass INTEGER, safetyRating INTEGER, pngPath TEXT, description TEXT, name TEXT);
Column Usage Min / Max Reference
_id
actionPoints integer,
moveCost integer,
shipSpeed integer,
shipAgile integer,
mapFuelCost integer,
combatFuelCost integer,
designMass integer,
safetyRating integer,
pngPath text,
description text,
name text,

Table ShipEffect[]

CREATE TABLE ShipEffect (_id INTEGER PRIMARY KEY AUTOINCREMENT,effectType INTEGER,boardingBonus INTEGER, rangedAttackBonus INTEGER, damageBonus INTEGER, craftDamageBonus INTEGER,critBonus INTEGER,defensiveBonus INTEGER,armorBonus INTEGER,deflectionBonus INTEGER,reactorBonus INTEGER,moveBonus INTEGER, craftAttackBonus INTEGER, craftDefenseBonus INTEGER, craftMoveStatus INTEGER, radDamage INTEGER, voidDamage INTEGER, dotComponent INTEGER, dotCrew INTEGER, dotMorale INTEGER,radRes INTEGER, voidRes INTEGER,initBonus INTEGER,targetRule INTEGER,escapeBonus INTEGER, cloakBonus INTEGER, hullPoints INTEGER, jumpTime INTEGER, engineSafety INTEGER, patrol INTEGER, blockade INTEGER, spy INTEGER, salvage INTEGER, explorer INTEGER, effectName TEXT,effectDesc TEXT,pngPath TEXT);
Column Usage Min / Max Reference
_id
effectType integer, 1= Crew Crippling Effects, 2 = Ship Crippling Effects, 3 = Boarding, 4 = ShipComponent Buff,

5= Ship Combat Talent Buffs, 6 = Ship Combat Talent Debuffs, 7 = Captain Traits, 8 = Small Craft Buff, 9 = Small Craft Debuff,10 = Interdictor Buff (0 duration?)

1-10
boardingBonus integer,
rangedAttackBonus integer,
damageBonus integer,
craftDamageBonus integer,
critBonus integer,
defensiveBonus integer,
armorBonus integer,
deflectionBonus integer,
reactorBonus integer,
moveBonus integer,
craftAttackBonus integer,
craftDefenseBonus integer,
craftMoveStatus integer, Percentage increase to craft damage, boarding chance, and hit chance.
radDamage integer,
voidDamage integer,
dotComponent integer,

Negative values provide resistance to Components. Positive values deal damage per turn to Components.

dotCrew integer,

Negative values provide resistance to Crew Damage. Positive values deal damage per turn to crew health.

dotMorale integer,

Negative values provide resistance to Morale Damage. Positive values deal damage per turn to crew morale.

radRes integer,
voidRes integer,
initBonus integer,
targetRule integer, 0 = default no effect, 1 = protects engine from damage, 10 = prevents craft launch 0,1,10
escapeBonus integer,
cloakBonus integer, Increases or decreases ship encounter rate.
hullPoints integer,
jumpTime integer,
engineSafety integer,
patrol integer, not currently used
blockade integer, not currently used
spy integer, not currently used
salvage integer, not currently used
explorer integer, not currently used
effectName text,
effectDesc text,
pngPath text, this PNG must be in the combatbatch sprite sheet and should be 42x42px

Table SmallCraft[]

CREATE TABLE SmallCraft (_id INTEGER PRIMARY KEY AUTOINCREMENT, maxHull INTEGER, cost INTEGER, craftTypeId INTEGER, shipWeaponId INTEGER, craftArmor INTEGER, craftDeflection INTEGER, launchFuelCost INTEGER, skPilot INTEGER, skElectronics INTEGER, skGunnery INTEGER, baseActionPoints INTEGER, craftAgile INTEGER, craftSpeed INTEGER, repairCost INTEGER, maintCost INTEGER, baseToHitShip INTEGER, baseToHitCraft INTEGER, baseToDodgeHit INTEGER, factionId INTEGER, gameState INTEGER, minRank INTEGER, minEcon INTEGER, minMil INTEGER, minStar INTEGER, unlockId INTEGER, level INTEGER, skeletonDataFile TEXT, atlasFile TEXT, skinName TEXT, pngPath TEXT,description TEXT, craftName TEXT);
Column Usage Min / Max Reference
_id
maxHull integer,
cost integer,
craftTypeId integer,
shipWeaponId integer,
craftArmor integer,
craftDeflection integer,
launchFuelCost integer,
skPilot integer,
skElectronics integer,
skGunnery integer,
baseActionPoints integer,
craftAgile integer,
craftSpeed integer,
repairCost integer,
maintCost integer,
baseToHitShip integer,
baseToHitCraft integer,
baseToDodgeHit integer,
factionId integer, if set to non-zero this component is faction specific. See Modding Enums for Factions
gameState integer,
minRank integer,
minEcon integer,
minMil integer,
minStar integer,
unlockId integer,
level integer,
skeletonDataFile text,
atlasFile text,
skinName text,
pngPath text,
description text,
craftName text,

Table Weapon[]

CREATE TABLE Weapon (_id INTEGER PRIMARY KEY,weaponType INTEGER,damage INTEGER,damageDice INTEGER,parry INTEGER,penetration INTEGER,initScore INTEGER, range INTEGER,cost INTEGER,autoBlock INTEGER, mass INTEGER, pngPath TEXT,projectilePngPath TEXT,sound2 INTEGER,groupId INTEGER,sound INTEGER,accuracy INTEGER,effectId INTEGER, weaponName TEXT, level INTEGER, factionId INTEGER);
Column Usage Min / Max Reference
_id Unique identifier
weaponType 1 - Mainhand melee

2 - MGs

3 - Pistols

4 - Sniper rifles

5 - Shotguns

6 - Offhand melee

7 - Grenades (for crew combat talents)

damage Minimum damage
damageDice Added to 'damage' to determine max damage
parry integer,
penetration integer,
initScore integer,
range integer,
cost Price if relevant
autoBlock integer,
mass What stat the melee weapon uses. 0 uses strength, 1 uses quickness.
pngPath text,
projectilePngPath text,
sound2 integer,
groupId Weapon availability.

1-10 indicates the weapon will appear in corresponding Weapon Locker levels

100 indicates this weapon is for sale by Contacts

102 indicates a weapon that can be Salvaged while 103 is Salvage but only through the Relic cards

groupId 2000 indicates this weapon is a story reward

sound integer,
accuracy integer,
effectId integer, doesn't seem to be used.
weaponName text,
level integer,
factionId integer,

Table Armor[]

CREATE TABLE Armor( _id INTEGER PRIMARY KEY, armorType INTEGER,protection INTEGER, absorption INTEGER, hardness INTEGER,dodge INTEGER, initScore INTEGER, effectId INTEGER,cost INTEGER, groupId INTEGER, gearLevel INTEGER, factionId INTEGER, pngPath TEXT,armorName TEXT);
Column Usage Min / Max Reference
_id Unique identifier.
armorType 1 - Normal

2 - Heavy

4 - Stealth

protection integer,
absorption integer,
hardness integer,
dodge Dodge bonus or penalty. Stealth Armor (ArmorType = 2) uses negative Dodge for the stealth value.
initScore Initiative bonus or penalty.
effectId integer, partial support.

Effects will affect character IF armor is assigned.

Auto-assigned armor will not provide benefits.

Effects will NOT appear on Armor description in Equip Screen.

Effects are active during Crew Combat. Health and Morale are NOT automatically raised if their maxes are increased.

cost Price if tradable.
groupId Armor availability.

1-10 indicates the armor will appear in corresponding Weapon Locker levels

100 indicates this armor is for sale by Contacts

102 indicates armor that can be Salvaged while 103 is only available through Relic cards

2000 indicates this armor is a story reward

gearLevel integer,
factionId integer,
pngPath text,
armorName text,

Table Gear[]

CREATE TABLE Gear ( _id INTEGER PRIMARY KEY, level INTEGER, gearType INTEGER, effectId INTEGER, cost INTEGER, factionId INTEGER, groupId INTEGER, pngPath TEXT, gearName TEXT);
Column Usage Min / Max Reference
_id
level integer,
gearType integer, must be 1 = Weapon Enhancement, 2 = Defensive Improvement or 3 = Personal Buff
effectId integer, references Effect._id
cost integer,
factionId integer,
groupId integer, which determines how the gear is made available.

100 - Contacts - Military Gear

101 - Contacts - Specialist Gear

102 - Story Reward

103 - Salvage

104 - Salvage - Relic

105 Salvage - Medical

106 - Salvage - Medical Relic

107 Salvage - Military

108 - Salvage - Military Relic

109 - Contact - Wing Specialist Gear

203 - Bearhart Gene

204 - Witchfire Aegis, Kloxian Recoil, Dynamo Tactset

206 - Trauma Harness

208 - Azure Personal Shield, Witchfire Personal Shield

pngPath text,
gearName text,

Table JobConfig[]

CREATE TABLE JobConfig(_id INTEGER PRIMARY KEY AUTOINCREMENT, groupId INTEGER, option1 INTEGER, option2 INTEGER, option3 INTEGER, option4 INTEGER, option5 INTEGER, option6 INTEGER, option7 INTEGER, pngPath TEXT, name TEXT, name2 TEXT, desc TEXT, desc2 TEXT);

See Modding Jobs and Professions for full details on how to add, edit or remove Jobs and Professions using the JobConfig table.

Table Job[]

CREATE TABLE Job (_id INTEGER PRIMARY KEY AUTOINCREMENT, jobName TEXT, jobType INTEGER, jobLevel INTEGER, skLightFirearms INTEGER, skHeavyFirearms INTEGER, skMelee INTEGER, skEvasion INTEGER, skTactics INTEGER, skStealth INTEGER, skGunnery INTEGER, skPilot INTEGER, skShipOps INTEGER, skRepair INTEGER, skElectronics INTEGER, skNavigation INTEGER, skDoctor INTEGER, skCommand INTEGER, skNegotiate INTEGER, skIntimidate INTEGER, skExplorer INTEGER, enabled INTEGER, sortBy INTEGER);

Each Job needs 36 entries, all with the same JobType key and covering jobLevel 1 to 36. Each row indicates the Skill granted by that row.

Column Usage Min / Max Reference
_id autoincremented ID
jobName text,
jobType integer, Job ID as seen in data.JobConfig Cross references the Job Id from data.JobConfig as detailed in Modding Jobs and Professions
jobLevel integer, Level 1 to 36
skLightFirearms integer, Pistol Skill
skHeavyFirearms integer, Rifle Skill
skMelee integer, Blades Skill
skEvasion integer, Evasion Skill
skTactics integer, Tactics Skill
skStealth integer, Stealth Skill
skGunnery integer, Gunnery Skill
skPilot integer, Pilot Skill
skShipOps integer, Ship Ops Skill
skRepair integer, Repair Skill
skElectronics integer, Electronics Skill
skNavigation integer, Navigation Skill
skDoctor integer, Doctor Skill
skCommand integer, Command Skill
skNegotiate integer, Negotiate Skill
skIntimidate integer, Intimidate Skill
skExplorer integer, Explore Skill
enabled integer, if set to 1 this job can be trained 0 | 1
sortBy integer,

Table Trait[]

CREATE TABLE Trait ( _id INTEGER PRIMARY KEY, traitName TEXT, traitDesc TEXT, characterEffectId INTEGER, traitScore INTEGER, actionType INTEGER, resultType INTEGER, traitGroupId INTEGER, traitGroupId2 INTEGER);
Column Usage Min / Max Reference
_id
traitName text,
traitDesc text,
characterEffectId integer, references Effect._id.

For the Captain ONLY, if it is negative it is a ShipEffect where data.ShipEffect._id = abs(data.characterEffectId.effect._id)

traitScore integer, a meta score indicating relative value of Trait
actionType integer,
resultType integer,
traitGroupId integer,
traitGroupId2 integer,

Table Talent[]

For more details on modding Talents, see Modding Talents.

CREATE TABLE Talent (_id INTEGER PRIMARY KEY,talentType INTEGER,talentLevel INTEGER,useMinPos INTEGER, useMaxPos INTEGER,targetType TEXT,targets INTEGER, minPos INTEGER, maxPos INTEGER, skillType TEXT,actionType INTEGER, resultType INTEGER, reqCraftType INTEGER, talentAccuracy INTEGER,weapon INTEGER,targetEffect INTEGER,targetDuration INTEGER,effect INTEGER,duration INTEGER, posChange INTEGER, targetPosChange INTEGER, heals INTEGER,healsType TEXT, jobType INTEGER, jobLevel INTEGER, sfx INTEGER, cooldown INTEGER, pngPath TEXT, projectilePngPath TEXT, partEffect TEXT,partEffect2 TEXT,talentName2 TEXT,talentName TEXT);
Column Usage Min / Max Reference
_id
talentType integer, duplicates _id = data.talent._id
talentLevel integer, Most values are 0, 4 non-0 values. Probably deprecated. 0-2
useMinPos integer, 0 for non-combat talents. For Combat this is the minimum valid position for talent use. In Ship Combat this is distance. In Crew Combat this distance from enemy (0 - adjacent to enemy, 3 = farthest away). 0-5
useMaxPos integer, 0 for non-combat talents. For Combat this is the maximum valid position for talent use. In Ship Combat this is distance. In Crew Combat this distance from enemy (0 - adjacent to enemy, 3 = farthest away). 0-5
targetType text,

ENEMY_CREW, TARGET_NONE, SELF_SHIP, FRIEND_CREW, ENEMY_SHIP, TARGET_SELF, FRIEND_CRAFT, ENEMY_CRAFT

targets integer, Number of effected targets. 0-5
minPos integer, 0 for non-combat talents. For Combat this is the minimum valid position for a target. In Ship Combat this is distance. In Crew Combat this distance from enemy (0 - adjacent to enemy, 3 = farthest away). 0-5
maxPos integer, 0 for non-combat talents. For Combat this is the maximum valid position for a target. In Ship Combat this is distance. In Crew Combat this distance from enemy (0 - adjacent to enemy, 3 = farthest away). 0-5
skillType text,

SKILLS_MELEE, SKILLS_LIGHT_FIREARMS, SKILLS_HEAVY_FIREARMS, SKILLS_COMMAND, SKILLS_INTIMIDATE, SKILLS_PILOT, SKILLS_NAVIGATION, SKILLS_NEGOTIATE, SKILLS_STEALTH, SKILLS_GUNNERY, SKILLS_GRENADES, SKILLS_TACTICS, SKILLS_EXPLORER, SKILLS_ELECTRONICS, SKILLS_REPAIR, SKILLS_SHIPOPS, SKILLS_EVASION, SKILLS_DOCTOR, SKILLS_NONE

actionType integer, Action that triggers the talent. -1 = crew combat talents, -2 =ship talents, 1:9 = skill saves, 10 = mission start, 11 = mission step, 13 = recruiting, 15 = landing, 18 = spice hall, 19 = xeno ship encounter, 20 = Radiation Storms, 21 = pay crew, and many more
resultType integer, Result of the talent triggering. Often linked to special hard coded behaviors.

42 different values.

32 = Ripcord's retreat from Crew Combat

reqCraftType integer, 0 = No Craft, 1 = Interdictor, 2 = Bomber, 3 = Shuttle 0-3
talentAccuracy integer, all set to 0, deprecated?
weapon integer, 0 except for grenades where reference data.Weapon._id =data.weapon.id for grenade talents
targetEffect integer, id of the effect applied to the target. = data.effect_id or data.shipEffect_id
targetDuration integer, length of the target effect in combat.
effect integer, id of the effect. = data.effect_id or data.shipEffect_id
duration integer, length of effect in combat. -1, 0, 1 current values.
posChange integer, talent moves the character. -1, 0, 1 current values.
targetPosChange integer, talent moves the targeted charcater.
heals integer, heals target this amount.
healsType text, HEALS_NONE, HEALS_MP, HEALS_BOTH, HEALS_HP
jobType integer, job that is required for this talent, = data.JobConfig._id
jobLevel integer, job level required for this talent.
sfx integer, the SFX integer key to run when this Talent is used in crew combat
cooldown integer, Number of turns for a talent to become available after use.


For crew combat Talents that rely on a weapon, the possible values are 1 (Init of Weapon), 2 (twice Init of Weapon) or 3 (1.5x Init of weapon)

For crew combat Talents that do not rely on a weapon (healing, buffing) the cooldown value is the Initiative cost.

pngPath text, Icon Graphic
projectilePngPath text, Projectile Graphic used in combat animation
partEffect text, Particle Effect 1 used in combat animation
partEffect2 text, Particle Effect 2
talentName2 text, Description
talentName text, Talent Name

Table Effect[]

CREATE TABLE Effect (_id INTEGER PRIMARY KEY AUTOINCREMENT,effectType INTEGER,attackBonus INTEGER, rangedAttackBonus INTEGER, damageBonus INTEGER, damageMelee INTEGER, critBonus INTEGER,defensiveBonus INTEGER,armorBonus INTEGER,dodgeBonus INTEGER,stealthBonus INTEGER,initBonus INTEGER,fire INTEGER, plasma INTEGER, rad INTEGER, poison INTEGER, bleed INTEGER, fireRes INTEGER, plasmaRes INTEGER, radRes INTEGER, poisonRes INTEGER, bleedRes INTEGER, stunned INTEGER, pinned INTEGER, attQuickness INTEGER, attStrength INTEGER, attFortitude INTEGER, attWisdom INTEGER, attCharisma INTEGER, attResilience INTEGER, penBonus INTEGER, hardBonus INTEGER, purgeChance INTEGER, maintPointAvoid INTEGER, craftAttackBonus INTEGER, craftDefenseBonus INTEGER, moraleCode INTEGER, effectName TEXT,effectDesc TEXT,pngPath TEXT);
Column Usage Min / Max Reference
_id
effectType integer, Type of the Effect which determines what type of actions will purge it.

For example, a buff should set its effect to FRIEND, a debuff should set its effect to

FOE, and unpurgeable effects like those from gear and Traits should always use GEAR

and TRAIT.


STEALTH effects are friendly buffs which are purged by anything that purges Stealth

(special Talents, AOE attacks, enemy buff purges).


#define EFFECT_TYPE_FRIEND 1

#define EFFECT_TYPE_FOE    2

#define EFFECT_TYPE_WEAPON 3

#define EFFECT_TYPE_ARMOR  4

#define EFFECT_TYPE_GEAR   5

#define EFFECT_TYPE_TRAIT  6

#define EFFECT_TYPE_STEALTH 8

15 - Witchfire Aegis. Nonfunctional?

20 - Dynamo Tactset, Witchfire Personal Shield

25 - Azure Personal Shield

50 - Kloxian Recoil

0-8
attackBonus integer, percentage change to melee attack roll
rangedAttackBonus integer, percentage change to ranged attack roll
damageBonus integer, percentage change to damage
damageMelee integer, percentage change to melee damage
critBonus integer, percentage change to critical hit chance
defensiveBonus integer, percentatge change to defense roll
armorBonus integer, percentage increase to armor
dodgeBonus integer, percentage change to ranged defense
stealthBonus integer, 0 for no bonus.

1 = counter-attack

10 = stealth mode

99 = auto-block

initBonus integer, add to initiative
fire integer, adds fire damage
plasma integer, adds plasma damage. On gear, plasma is applied to target.
rad integer, adds radiation damage. On gear, rad is applied to target.
poison integer, adds poison damage. On gear, poison is applied to SELF.
bleed integer, adds bleed damage. On gear, poison is applied to SELF.
fireRes integer, percentage change to fire resistance (unused?)
plasmaRes integer, percentage change to plasma resistance
radRes integer, percentage change to radiation resistance
poisonRes integer, percentage change to poison resistance
bleedRes integer, percentage change to bleed resistance
stunned integer, must be multiple of 25 0, 25, 50, 75
pinned integer, set to 1 to pin target 0 | 1
attQuickness integer, adds to Quickness Attribute
attStrength integer, adds to Strength Attribute. Does not change current health.
attFortitude integer, adds to Fortitude Attribute. Does not change current health.
attWisdom integer, adds to Wisdom Attribute.
attCharisma integer, adds to Charisma Attribute
attResilience integer, adds to Resilence attribute. Does not increase current morale
penBonus integer,
hardBonus integer, Add defense dice.
purgeChance integer, a percentage chance to resist incoming debuff
maintPointAvoid integer,
craftAttackBonus integer,
craftDefenseBonus integer,
moraleCode integer,
effectName text, Effect Name
effectDesc text, not used
pngPath text, this PNG must be in the crewcombatbatch sprite sheet and should be 42x42px

Table QuestLog2[]

CREATE TABLE QuestLog2(_id INTEGER PRIMARY KEY AUTOINCREMENT, preState INTEGER, storyTypeId INTEGER, storyId INTEGER, title TEXT, desc TEXT);
Column Usage Min / Max Reference
_id
preState integer,
storyTypeId integer,
storyId integer,
title text,
desc text,

Table Block2[]

CREATE TABLE Block2 (_id INTEGER PRIMARY KEY AUTOINCREMENT, blockName TEXT, preState1 INTEGER, preState2 INTEGER, preState3 INTEGER, preHasCharacter INTEGER, preHasContact INTEGER, preHasOfficerSpace INTEGER, preHasGold INTEGER, preItem1 INTEGER, preItem1Type INTEGER, preItem1Num INTEGER, preCode1 INTEGER, preCodeArg1 INTEGER, preFactionRep INTEGER, preContactRep INTEGER, preContactInfluence INTEGER, preRank INTEGER, preEdict INTEGER, preHasSKU INTEGER, preDevOnly INTEGER, preDialogId INTEGER, preOnFailDelete INTEGER, eventType TEXT, eventId INTEGER, postState1 INTEGER, postState2 INTEGER, postState3 INTEGER, postCode1 INTEGER, postCodeArg1 INTEGER, postCode2 INTEGER, postCodeArg2 INTEGER, postItem1 INTEGER, postItem1Type INTEGER, postItem1Num INTEGER, postItem2 INTEGER, postItem2Type INTEGER, postItem2Num INTEGER, postGrantExp INTEGER, postGold INTEGER, postDeleteChar INTEGER, postDeleteContact INTEGER, postKnowContact INTEGER, postFactionRep INTEGER, postContactRep INTEGER, postContactInfluence INTEGER, postBlock1Type INTEGER, postBlock1Turns INTEGER, postBlock1Id INTEGER, postBlock1StoryId INTEGER, postUseTurns INTEGER, postDeleteGameBlock INTEGER, postQuestState1 INTEGER, postQuestState2 INTEGER, postQuestState3 INTEGER, postSetScore INTEGER, postLogEntry TEXT);
Column Usage Min / Max Reference
_id
blockName text,
preState1 integer,
preState2 integer,
preState3 integer,
preHasCharacter integer,
preHasContact integer,
preHasOfficerSpace integer,
preHasGold integer,
preItem1 integer,
preItem1Type integer,
preItem1Num integer,
preCode1 integer,
preCodeArg1 integer,
preFactionRep integer,
preContactRep integer,
preContactInfluence integer,
preRank integer,
preEdict integer,
preHasSKU integer,
preDevOnly integer,
preDialogId integer,
preOnFailDelete integer,
eventType text,
eventId integer,
postState1 integer,
postState2 integer,
postState3 integer,
postCode1 integer,
postCodeArg1 integer,
postCode2 integer,
postCodeArg2 integer,
postItem1 integer,
postItem1Type integer,
postItem1Num integer,
postItem2 integer,
postItem2Type integer,
postItem2Num integer,
postGrantExp integer,
postGold integer,
postDeleteChar integer,
postDeleteContact integer,
postKnowContact integer,
postFactionRep integer,
postContactRep integer,
postContactInfluence integer,
postBlock1Type integer,
postBlock1Turns integer,
postBlock1Id integer,
postBlock1StoryId integer,
postUseTurns integer,
postDeleteGameBlock integer,
postQuestState1 integer,
postQuestState2 integer,
postQuestState3 integer,
postSetScore integer,
postLogEntry text,

Table Dialog2[]

CREATE TABLE Dialog2(_id INTEGER PRIMARY KEY, groupId INTEGER, useContactFace INTEGER, useCharacterFace INTEGER, useCrewFace INTEGER, useDefaultFace INTEGER, stateRequired INTEGER, stateExcluded INTEGER, font INTEGER, charRequiredFlag INTEGER, pngPath TEXT, pngTitle TEXT, diagText TEXT);
Column Usage Min / Max Reference
_id
groupId integer,
useContactFace integer,
useCharacterFace integer,
useCrewFace integer,
useDefaultFace integer,
stateRequired integer,
stateExcluded integer,
font integer,
charRequiredFlag integer,
pngPath text,
pngTitle text,
diagText text,

Table BlockCrewCombat[]

CREATE TABLE BlockCrewCombat (_id INTEGER PRIMARY KEY AUTOINCREMENT, crewTypeId INTEGER, factionId INTEGER, challengeLevelBonus INTEGER, storyId INTEGER, preBlockId INTEGER, winBlockId INTEGER, lossBlockId INTEGER);
Column Usage Min / Max Reference
_id
crewTypeId integer,
factionId integer,
challengeLevelBonus integer,
storyId integer,
preBlockId integer,
winBlockId integer,
lossBlockId integer,

Table BlockShipCombat[]

CREATE TABLE BlockShipCombat(_id INTEGER PRIMARY KEY AUTOINCREMENT, shipAiType INTEGER, factionId INTEGER, challengeLevelBonus INTEGER, preBlockId INTEGER, winBlockId INTEGER, lossBlockId INTEGER, drawBlockId INTEGER, storyId INTEGER, immediateCombat INTEGER, captainGender INTEGER, shipName TEXT, captainName TEXT);
Column Usage Min / Max Reference
_id
shipAiType integer,
factionId integer,
challengeLevelBonus integer,
preBlockId integer,
winBlockId integer,
lossBlockId integer,
drawBlockId integer,
storyId integer,
immediateCombat integer,
captainGender integer,
shipName text,
captainName text,

Table Contact[]

CREATE TABLE Contact (_id INTEGER PRIMARY KEY AUTOINCREMENT, typeName TEXT, description TEXT, defaultFaceId INTEGER, offerMission INTEGER, offerRank INTEGER, offerPermit INTEGER, offerEdict INTEGER, offerMarket INTEGER, offerRecruit INTEGER, offerService INTEGER, offerBuyRumor INTEGER, offerBuyData INTEGER, offerPardon INTEGER, offerDiscount INTEGER, minRep INTEGER, notWanted INTEGER, startingContact INTEGER, zoneTypeHint INTEGER, baseInfluence INTEGER, unlockId INTEGER, powerLevel INTEGER);
Column Usage Min / Max Reference
_id
typeName text,
description text,
defaultFaceId integer,
offerMission integer,
offerRank integer,
offerPermit integer,
offerEdict integer,
offerMarket integer,
offerRecruit integer,
offerService integer,
offerBuyRumor integer,
offerBuyData integer,
offerPardon integer,
offerDiscount integer,
minRep integer,
notWanted integer,
startingContact integer,
zoneTypeHint integer,
baseInfluence integer,
unlockId integer,
powerLevel integer,

Table ContactTrait[]

CREATE TABLE ContactTrait ( _id INTEGER PRIMARY KEY, name TEXT, traitDesc TEXT, traitIcon TEXT, traitGroupId INTEGER, traitScore INTEGER);
Column Usage Min / Max Reference
_id
name text,
traitDesc text,
traitIcon text,
traitGroupId integer ranging from 1 to 4 that separates all Contact Traits into groups.

A Contact will have 1 Trait for each group.

Only Traits in traitGroupId 4 should offer recruits.

1-4
traitScore integer, if this Trait offers a special type of recruit, the Job ID can be added here

Only Traits in traitGroupId 4 should offer recruits.

See data.JobConfig._id in Modding Jobs and Professions

Table ResourcesByResource[]

CREATE TABLE ResourcesByResource (_id INTEGER PRIMARY KEY AUTOINCREMENT, popEcon INTEGER, farmEcon INTEGER, mineEcon INTEGER, refineEcon INTEGER, industEcon INTEGER, orbitalEcon INTEGER, luxEcon INTEGER, SmuggEcon INTEGER, legal INTEGER, permit INTEGER);
Column Usage Min / Max Reference
_id id of the Trade Good
popEcon integer, Pop Zone Supply. Negative Integers are Demand. Positive are Supply. -10 - 10
farmEcon integer, Farm Zone Supply. Negative Integers are Demand. Positive are Supply. -10 - 10
mineEcon integer, Mining Zone Supply. Negative Integers are Demand. Positive are Supply. -10 - 10
refineEcon integer, Refinery Zone Supply. Negative Integers are Demand. Positive are Supply. -10 - 10
industEcon integer, Industrial Zone Supply. Negative Integers are Demand. Positive are Supply. -10 - 10
orbitalEcon integer, Orbital Zone Supply. Negative Integers are Demand. Positive are Supply. -10 - 10
luxEcon integer, Luxury Population Zone Supply. Negative Integers are Demand. Positive are Supply. -10 - 10
SmuggEcon integer, Tradeaway Zone Supply. Negative Integers are Demand. Positive are Supply. -10 - 10
legal integer, Required Trade Law 0 - 10
permit integer, Required Trade Permit 0 - 4

Table Backer[]

CREATE TABLE Backer (_id INTEGER PRIMARY KEY, displayName TEXT, accountcode TEXT, featurecode INTEGER);
Column Usage Min / Max Reference
_id
displayName text,
accountcode text,
featurecode integer,

Table ShipDataCompartment[]

CREATE TABLE ShipDataCompartment(_id INTEGER PRIMARY KEY AUTOINCREMENT, shipId INTEGER, tmxId INTEGER, size INTEGER, componentType INTEGER, defaultComponent INTEGER, typeLocked INTEGER);
Column Usage Min / Max Reference
_id
shipId integer,
tmxId integer,
size integer,
componentType integer,
defaultComponent integer,
typeLocked integer,

Table ShipTypeAiRoller[]

CREATE TABLE ShipTypeAiRoller (_id INTEGER PRIMARY KEY AUTOINCREMENT, aiTypeId INTEGER, shipTypeId INTEGER, minChallengeLevel INTEGER, rollerWeight INTEGER, factionId INTEGER, patternTypeId INTEGER);
Column Usage Min / Max Reference
_id index, autoincrements index
aiTypeId integer, Captain Type Modding Enums|Captain AI Type Enum
shipTypeId integer, Ship Type ShipType._id
minChallengeLevel integer, Controls when this ShipType is added into the encounter pool.

Most likely something like: MIN(Difficulty Enemy Coefficient * Captain Level, Year Difficulty)

0,40 Game Difficulty
rollerWeight integer, Weight Frequency for encounter rate. Common values are 10, 15, 20, 25. 5,30
factionId integer, Ship Faction Modding Enums|Factions
patternTypeId integer, Skin variant? 1,2


Generated Tables[]

Some tables contain data that must be generated from other assets:

  • RegionMapData
  • RegionMapGate
  • RegionMapWorld
Advertisement