# Config Reference

## preload.xml

Defines things to load before the game starts.

### Tags

Tag name | Info | Attributes
strings | String definition file | id: id for this file (file id) src: file name
moduleTypes | Defines module types | src: file name
modules | Module definitions | src: file name
product | Defines a product | src: file name
schemes | Defines production schemes | src: file name
path | An "include" path where the game will look for files defined without specific paths | src: directory path
dir | A directory path for convenience | src: directory path

## Module Definitions

### Basic config structure

[module id string] { [data name]: [data]; }

### Valid data

Data name | Data type | Info
type | string | The module type this module is an implementation of. (See: Module Type Definitions)
wait | number | The time it takes for the module to complete a production cycle.
script | string | Script file that defines the module's behaviour. (See: Module Script Reference)
outCon | string list | Module types that the module can accept as output connections.
maxInBuffer | integer | Maximum size of input buffer.
maxOutBuffer | integer | Maximum size of output buffer.
file | string | Graphic file for the module.
size | number list | Collision dimensions of the module (X and Y).
icon | string | Filename of GUI icon for the module.
name | integer | String id of the module's name (must be defined in a string file with file id 0).
desc | integer | String id of the module's description (must be in file id 0).

## Module Type Definitions

### Basic config structure

[module type id string] { [data name]: [data]; }

### Valid data

No data yet. Currently just defines a bunch of ids.

## Product Definition

### Basic config structure

data { [data name]: [data value]; }
[property name] { [data name]: [data value]; }
One definition per file. The properties can later be checked and set/removed by scripts. The property names will be used as ids.

### Valid data for "data"

Data name | Data type | Info
id | string | The id used to later identify this product type.
cost | number | Production cost of the product.
name | integer | String id of the product's name string (in file id 0).
desc | integer | String id of the product's description string (file id 0).

### Valid data for properties

Data name | Data type | Info
default | boolean | This property will be set when the product is created (one property must have this set!).
file | string | Graphic file to load.
frame | number | Frame to set (only for sprite animations).

## Production Scheme Definitions

### Basic config structure

[scheme id string] { [data name]: [data value]; }

### Valid data

Data name | Data type | Info
scheme | string list | List of product type ids that defines a production sequence (separate with commas).
name | integer | String id of the scheme's name (file id 0).
desc | integer | String id of the scheme's description (file id 0).