# `utils` This directory contains utility scripts and programs used for Principia development or for working with file formats. ## Scripts - `prepare_release_builds.sh`: Download and prepare release builds when making a release - `set_version.lua`: Update the version number across the codebase when preparing a release (See [Making a Release](https://principia-web.se/wiki/Making_a_Release#incrementing-version-tagging)). - `update-sandbox-menu.sh`: Update the pre-rendered sandbox and item menu ## Programs Most of these programs rely on source files from the main Principia codebase and need to be compiled to run. Likely only works on Linux. You can use the `Makefile` in each directory or run `make` in the `utils` directory to build all of them. - `featured-list-creator`: Generate a `fl.cache` file for use on the Principia community site - `lvl-icon-extractor`: Extract the embedded level icon in a Principia level file - `lvlbuf-decompressor`: Decompress the level buffer of a Principia level file - `lvledit`: Edit metadata of Principia level files - `package-creator`: Create a Principia package file from JSON data - `progress-dump`: Dump the contents of a data.bin file to a human-readable format - `progress-get`: Get leaderboard score for a given level from a data.bin file ## Kaitai Struct files The `kaitai` directory contains Kaitai Struct files that describe some of Principia's file formats.