Development ​

Build from the repository root. See the design notes for current progress and planned work.

Source folders ​

PathContents
apps/launcherDesktop app
apps/cliswofty command
packages/coreMod management, profiles, launch setup and restore
packages/formatsGame file readers and writers
packages/sdkPlugin SDK (MIT)
native/In-game loader
mods/swoftymodBuilt-in mod
templates/modSample mod (MIT)
tools/Python tools for game files
re/Game research and signatures
docs/This site

Build and check ​

On NixOS, nix develop provides the development tools and libraries.

sh
cargo build
cargo test
cargo clippy --all-targets -- -D warnings
cargo fmt --all --check
cargo build -p swofty-launcher

The launcher is built separately from the default workspace members.

Test with game files ​

These tests only read your game files. They are skipped when F1_25_DIR is unset.

sh
F1_25_DIR="/path/to/F1 25" cargo test -p swofty-formats

To compare with the Python tools, set F1_25_DIR in your shell, then run:

sh
python3 tools/gamedb.py roundtrip "$F1_25_DIR/game_package/gamedatabases/gamedatabases.2025.bin"
python3 tools/erpw.py rebuild "$F1_25_DIR/2025_asset_groups/ui_package/databases.erp" /tmp/databases.erp

Native loader ​

sh
native/build.sh
native/test/run_wine_test.sh

The build uses Zig to produce Windows DLLs in native/dist/. The Wine test uses a small test executable to check the loader and MOD SETTINGS menu entry.

Documentation ​

sh
pnpm install
pnpm docs:dev
pnpm docs:build

Commits ​

Use Conventional Commits. The commit hook checks Rust formatting and clippy.