Skip to content

onejeuu/sc-file

Repository files navigation

sc-file

icon

Pypi License Docs Tests Build Issues DeepWiki

πŸ‡¬πŸ‡§ English | πŸ‡·πŸ‡Ί Русский

Overview

scfile is a utility and library for converting proprietary Stalcraft assets formats to standard ones.

This is an unofficial project and is not affiliated with EXBO.

✨ Supported Formats

Type Game formats β†’ Standard formats
🧊 Model .mcsb .efkmodel β†’ .obj .glb .dae .ms3d .fbx
🧱 Texture .ol β†’ .dds
πŸ–ΌοΈ Image .mic β†’ .png
πŸ—ƒοΈ TextureArray .texarr β†’ .zip
πŸ—Ί Region .mdat β†’ .mca
βš™οΈ NBT* ... β†’ .json

* NBT refers to specific files (itemnames.dat, prefs, sd0, etc.)

πŸ“š Detailed formats support β†’


Important

Reverse conversion (standard β†’ game) is not available.
πŸ“š See FAQ for details β†’

πŸš€ Installation

Three ways to get started: download, install, or compile.
πŸ“š Usage guide and CLI options β†’

πŸ’» Download executable

Standalone scfile.exe available on Releases page.
No Python required.

Usage:

  • πŸ–₯️ GUI: launch scfile.exe without arguments to open graphical interface
  • πŸ“₯ Drag & Drop: drag file onto scfile.exe
  • πŸ–±οΈ Open With: set as default app for supported formats
  • πŸ“Ÿ Command Line: scfile.exe --help
    Command example: scfile.exe model.mcsb -F glb --skeleton
    Options in example: -F picks model format, --skeleton extracts model armature.

🐍 Install Python package

Install:

pip install sc-file        # library + cli
pip install sc-file[gui]   # library + cli + gui

Usage:

  • πŸ“– Python library: See Library section
  • πŸ–₯️ GUI via package: scfile
  • πŸ“Ÿ CLI via package: scfile --help

πŸ”§ Compile from source

Build from source code using the compile guide.
For developers, contributors, or custom builds.

πŸ“– Library

Install latest version:

pip install sc-file -U

Usage example:

from scfile import convert, formats, Options

# Simple conversion (auto detect format by file suffix)
# User options to control parsing and export settings
convert.auto("model.mcsb", options=Options(skeleton=True))

# Advanced control (manual decoding and data inspection)
# Context manager ensures proper resource cleanup
with formats.mcsb.McsbDecoder("model.mcsb") as mcsb:
    # Access parsed scene data: meshes, bones, etc
    data = mcsb.decode()
    print(f"Meshes: {[mesh.name for mesh in data.scene.meshes]}")
    print(f"Materials: {[mesh.material for mesh in data.scene.meshes]}")
    print(f"Bones: {[bone.name for bone in data.scene.skeleton.bones]}")

    # Export to a specific standard format
    mcsb.to_obj().save("output.obj")

πŸ“š Complete Library API reference β†’

πŸ”— Links

🀝 Acknowledgments

kommunist2021 Β· Art3mLapa Β· n1kodim Β· TeamDima Β· BoJIwEbNuK7
IExploitableMan Β· tuneyadecc Β· Hazart

Thanks to everyone who reported issues, shared findings, or contributed ideas.

About

Stalcraft Assets Converter

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors

Languages