Index#

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.)

Important

Reverse conversion (standard โ†’ game) is not available.

๐Ÿš€ Installation#

Three ways to get started: download, install, or compile.

๐Ÿ’ป 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")

๐Ÿค Acknowledgments#

kommunist2021 ยท Art3mLapa ยท n1kodim ยท TeamDima ยท BoJIwEbNuK7
IExploitableMan ยท tuneyadecc ยท Hazart

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