Resource Superclass id superclass id name vague name description vague description technology required Resource Categorisation class id superclass id Resource Class id name vague name description vague description uri to thumbnail image technology required footprint area surface area volume room mass max health (at 0, falls into constituent parts) intelligence tensile strength Resource Allowed Relationships parent superclass child superclass relationship type: part of, connected to, inside, on, orbitting Resource id parent id relationship to parent: part of, connected to, inside, on, orbitting quantity allegiance (player id) health Ship Hull made of: Metal #1 connected to: Engine made of: Metal #1 Electronics #1 connected to: has inside: has on top: has orbitting: Bridge made of: Metal #1 Electronics #1 connected to: Person x 5 made of: connected to: has inside: has on top: has orbitting: has inside: has on top: has orbitting: has inside: has on top: has orbitting: Knowledge (used to build a player) player [players id] technology [technologies id] fraction known 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) 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