Fleet Targets (used by the fleet attack task) fleet id target object id Object Subsystem *** (used to build object) object id subsystem id health (0 means defunct, >0 means ok) Object Classes (used to build an object) id |-- unique key name vague name description vague description uri to image flag: can orbit technology [technologies id] complexity (time to create) surface area (how much can land on it) footprint (how much space it takes when landing) resource capacity (as total mass) category (only used to determine what groups to display the objects in) Object Categories id name Object Class Subsystems (used to build a subsystem) class [classes id] |__ unique subsystem id [scoped to class] | key name max health for this subsystem health regeneration rate (increase in health when sentient population of object > 0) decay rate (decrease in health when sentient population of object = 0) damage factor per unit mass for exceeding resource capacity of object internal type id (e.g. structural integrity, targetting, engines, ecosystem, cloak, whatever) power (a type-dependent modifier, e.g. firing range, engine speed, cloaking sensitivity required) Knowledge (used to build a player) player [players id] technology [technologies id] fraction known Resource Classes (used to build resource; e.g. "metal", "gas", "human", "humanoid") id superclass [resource classes id] name technology required [technologies id or 0 if everyone can tell] Resource Subclasses *** id resource class [resource classes id] name vague name description vague description uri to thumbnail image quality (waste products will be at most of this quality) technology required [technologies id or 0 if everyone can tell] required subsystem type (one of the tasks being run has to be using a subsystem of this type for growth/breeding to occur) minimum subsystem health (trigger level for growth, breeding rates) growth rate (can be -ve for radioactive materials, for example. for sentient species, should offset the death rate) breeding rate child resource class id death rate (probably only > 0 for sentient resources) nominal unit mass per item amount remaining after moved by owner who doesn't know technology levels (these are all floats, 0 meaning "resource useless for this" and 1 meaning "resource optimal at this". Higher than 1 is allowed. These levels are only relevant when the material (a) _can_ be used by the ability, and (b) _is_ used by the ability. These values are used in conjunction with the subsystem powers to find the actual power.) - intelligence (non-zero for sentient) - shielding level (non-zero for armouring materials) - thrust level (non-zero for fuels) - fire level (non-zero for ammunition materials) etc... Resource Requirements (used to build an object object) class [classes id] |__ unique resource [resource classes id] (not subclass!) | key initial (amount when created) comment (like, what it's used for or something) Resources (part of an object) object [objects id] resource [resource subclasses id] allegiance [players id] (only set for sentient materials) amount hostility (0: neutral; 1: attacking controller and its allies; 2: defending controller and its allies; 3: defend allies) -- if attacking, then at each tick after attacking try and take over control of the ship, if successful, switch to 0 Abilities *** (used to build an object) id class [classes id] task [internal task id] name description ability parameter 1 ability parameter 2 flag: trigger defensive behaviour Ability System Groups ability id | group number | minimum number of systems required maximum number of systems required (0 = unlimited) System Subsystems ability id | (scoped to class) group number | (scoped to ability) system id | (scoped to group) subsystem id | (scoped to class) e.g. Photo Torpedo Ability Group 1: Photo Torpedoes; requires at least 1 of: System 1: Torpedo Bay A Subsystems: Weapons A, Main power System 2: Torpedo Bay B Subsystems: Weapons B, Main power System 3: Torpedo Bay C Subsystems: Weapons C, Main power Life Support Group 1: Air Recycler System 1: Main Power A, Life Support A Group 2: Oxygen Tanks System 1: Main Power B, Life Support B Basically, the first group is used, and within that group, as many systems as possible (up to the maximum) are used. Resource Usage (used to build an ability) ability id | group number | system id | resource class id | (the subclass selected will be the 'best' whose required subsystem is online) waste resource class id (the subclass selected will be the one with the highest quality factor not greater than the resource's) fixed amount converted (e.g. 3kg per tick) fractional amount of fixed amount converted to waste material (e.g. 95% per tick, implying that 5% is converted to energy) Internal Messages (from objects to players, used to create players) id from object [objects id] to player [players id] datetime type (Disappear At Tick: information, warning; Remain Until Deleted: news, critical) flag: saved (overrides the 'disappear at tick' modes) message (string) Alliances (Message Boards) *** id name brief description / subject line flag: existence of board is public flag: this is an alliance (causes all members to become allies) rank required to read posts (0 = anyone can read, even non-members) rank required to add posts (0 = anyone can post, even non-members) rank required to mark posts as saved rank required to invite new members (0 = everyone is a member) headquarters object [objects id] root post [posts id] (author of that message is creator of this board) government type -- one of: dictatorship: creator is leader, no votes republic: votes set leader, one vote each, ranks set by leader meritocracy: rank set by votes, leader is highest rank military: rank can be changed by people with their rank > rank+2 or leader, leader has highest rank open: creator is leader, no other members, anyone can post leader player id (cached) Posts (for Message Boards) id parent [posts id] (0 if root) author [players id] datetime (delete threads older than days) flag: saved (prevents deletion, can only be set by members with rank) flag: deleted (hides the thread if all children posts are marked deleted) text Alliance Members board [message boards id] |__ unique membership id | key member type (player, another alliance) member id (player id or alliance id) rank (non members are assumed to have rank 0) Votes board id | membership id |-- unique key vote [membership id] | Player *** id rho, theta, phi (coordinate system origin) thetaPrime, phiPrime (coordinate system direction) rho, theta, phi (home point) (has knowledge, internal messages, alliance memberships) Points *** rho, theta, phi (position) last tick