Thanks for your interest in improving xlua-decompiler.
git clone https://github.com/GabHST/xlua-decompiler.git
cd xlua-decompiler
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"pytest # unit tests only
pytest --cov=xlua_decompiler --cov-report=term # with coverageAll new code must keep test coverage at or above 80 percent.
ruff check .
ruff format .Both must succeed before opening a pull request. CI runs the same commands on every push.
Place a real xLua bytecode file under ./sample/ and a copy of
unluac.jar at the project root,
then:
python -m xlua_decompiler decompile sample/script.lua \
--unluac unluac.jar \
--overwrite \
-o sample/script.dec.lua- New behaviour covered by tests
-
ruff check .passes -
ruff format --check .passes -
pytestpasses locally - README or docstrings updated if user-facing behaviour changed
- Commit messages follow the existing convention
(
feat:,fix:,refactor:,docs:,test:,chore:,perf:,ci:)
Open an issue with:
- The xLua bytecode format details if known (xLua version, Lua version).
- A minimal input file or the stack trace from the failure.
- The exact command line used and the unluac version you tested against.
Please do not attach proprietary or copyrighted content. Synthetic or public-domain samples only.
This tool intentionally focuses on a narrow problem: reshaping xLua's file header and root proto so that an unmodified unluac can decompile the rest. Feature requests that broaden the scope (e.g. re-implementing a Lua decompiler, shipping a patched unluac JAR, decrypting arbitrary obfuscated bundles) are unlikely to be merged.