openstranded-s2mod-tool 0.2.3

Convert original Stranded II mods to the .s2mod Content Pack format
Documentation

openstranded-s2mod-tool

Convert original Stranded II mods to the .s2mod Content Pack format.

Usage

# Install
cargo install openstranded-s2mod-tool

# Convert a mod directory to .s2mod archive
openstranded-s2mod-tool --input "/path/to/Stranded II" --output ./stranded2.s2mod

# Convert to directory instead of zip
openstranded-s2mod-tool --input "/path/to/Stranded II" --output ./out --dir

# Skip model/texture conversion (text-only)
openstranded-s2mod-tool --input "/path/to/Stranded II" --output ./text.s2mod --skip-models --skip-textures

Pipeline

  1. Walk — scan input directory, classify files by extension
  2. Parse .inf — generic key=value parser → .ron + embedded scripts → .lua
  3. Scan references — find dialogue/msgbox/addscript etc. across all scripts
  4. Transpile .s2s — s2s → Lua (with reference-based classification)
  5. Convert .b3d.glb (3D models)
  6. Convert .bmp.png (magenta → transparent colour key)
  7. Convert .bmpf.fnt + .png (bitmap fonts)
  8. Update paths.b3d.glb, .bmp.png references in .ron files
  9. Generate manifest.toml[registry] section with domain→.ron mappings
  10. Pack.s2mod (zip) or directory

Library

Use as a Rust library:

[dependencies]
openstranded-s2mod-tool = { version = "0.2", default-features = false }
use openstranded_s2mod_tool::convert::convert_bmp_to_png;
use openstranded_s2mod_tool::scanner::{build_reference_map, S2sRefType};
use openstranded_s2mod_tool::util::parse_inf_file;

License

GPL-3.0-or-later