Source Documentation

Under Construction

## Introduction

This **Source Documentation** page is intended to provide information and links to resources regarding the released Spacebase-DF9 source code. This page is not intended to specifically provide class lists or class members but rather cover topics in structure and how the games inner systems work. Eventually we would love to provide code documentation generated directly from the source (i.e. luadocs) but at this time (as far as we know) is unavailable. Right now we are working on getting this and other resources put together to assist people in modding the game so please be patient.

## Licensing

Open source license available at: http://opensource.org/licenses/cpal\_1.0

## Debugging

### Debug Mode

To launch the game in debug mode locate the bootconfig.cfg in the savegame directory (Windows: %userprofile%\Documents\SpacebaseDF9\Saves Linux: ~/.local/share/doublefine/spacebasedf9/Saves) and set the line "dev\_mode" to true. Once debug mode is configured starting the game will display **DEBUG VERSION** under the game version at the bottom of the splash screens and starting menu.

### Debug Info Overlay Subpages

After pressing F4 to get the debug information overlay these keys let you cycle through debug pages related to the selected object

 5 | Display Task History

## File Formats

### General

* **.lua** - Primary scripting language files, these files contain programming logic for the game
* **.log** - Log / Debug / Profiling output textual files
* **.tmp** - temporary data generated by an application
* **.zip** - compressed archive of data, used for mods
* **.sav** - A savegame file, contains state information about a game session and other blob/serialized data important for the game
	+ The savegame file itself is a chunk of msgpack data, compressed using zlib.
* **.setting** - Setting/Configuration file
* **.cfg** - Setting/Configuration file

### Graphic and Animation

* **.rig** - Generated LUA data structures containing reference/meta data for companion .brig files
* **.brig**- Binary files containing rigging/skeleton data for entity animations
* **.anim** - Generated LUA data structures containing reference/meta data for companion .banim files
* **.banim** - Binary files containing animations
* **.tex** - Compresses .dds images with custom headers containing sprite sheets, textures, etc...
* **.texparams** - Generate LUA files containing texture meta data
* **.material** - LUA files that define values related to game shaders
* **.matmod** - Contains extra information for materials/shaders (possibly transitions?)
* **.bshd** - Binary files for shaders
* **.particles** - LUA files that define the behavior of particle effects
* **.effect** - LUA files that are associated with .particles files (not entirely sure if used yet)

### Audio

* **.fsb** - Soundbanks/Packages of audio that contain sound effects, music, etc...
* **.fev** - FMOD project files?

### Extra

* **.lib** - linked library file commonly found on WIN based operating systems
* **.so** - shared object file on \*NIX based systems generally the equivalent of .lib files
* **.exp** - Export files associated with linked .lib files

## Contributing

If you'd like to contribute to this documentation or help out with something else please join us in the Talk section or on irc.freenode.net #SBDF9modding (WebClient)