LuaMaker is a Windows command-line tool that generates SteamTools-ready Lua files and copies matching depot manifests from games already installed through Steam.
It automatically fetches app metadata with SteamCMD, extracts usable depot keys from your local Steam config, includes DLC app IDs when available, and exports everything into a clean output folder.
- Automatically bootstraps
steamcmd.exeif it is missing. - Detects your local Steam
configanddepotcachefolders. - Saves the detected Steam config path to
luamaker_config.json. - Fetches and logs app info to
logs/steam_response_<APPID>.log. - Extracts public depot manifest IDs from Steam app info.
- Reads depot decryption keys from your local
config.vdf. - Includes DLC app IDs when Steam exposes them in
extended.listofdlc. - Copies matching
.manifestfiles into[APPID] Game Name. - Generates a SteamTools Lua file with:
addappid(appID)addappid(dlcAppID)addappid(depotID,1,"decryptionKey")setManifestid(depotID,"gid")
- Provides an animated terminal banner and a repeat prompt with default
Yes.
- Windows 10 or newer
- Steam installed
- The target game already installed in Steam
- Python 3.10+ if running from source
Python dependencies:
pip install requests vdf richmain.py: thin entrypoint used by PyInstallerluamaker_app.py: main application logic1.2.3.py: compatibility wrapper for the current script versionmain.spec: PyInstaller spec filebuild.bat: helper to build a versioned executabletest_main_module.py: automated tests for core logic
python main.pyWhat happens:
- LuaMaker shows the animated header in the terminal.
- You enter a Steam App ID.
- The tool fetches app info via SteamCMD.
- It resolves available depots, keys, DLC app IDs, and manifest files.
- It creates an output folder named
[APPID] Game Name. - It writes
<APPID>.luainside that folder. - It asks
Process another App ID? (Y/n):and pressing Enter continues by default.
If you use the built .exe:
- Place the executable in any folder you want.
- Launch it normally.
- On first run, LuaMaker auto-detects your Steam config path and stores it in
luamaker_config.json. - Enter the Steam App ID you want to export.
- The tool exports manifests and Lua files into a dedicated output folder beside the executable.
PyInstaller:
pyinstaller --clean --noconfirm .\main.specOr with the helper script:
build.batThe executable is generated in dist/.
Run the automated tests:
python -m unittest .\test_main_module.py -vRecommended local verification before release:
python -m py_compile .\luamaker_app.py .\main.py .\1.2.3.py .\test_main_module.py
pyinstaller --clean --noconfirm .\main.spec- If Steam app info parsing fails, inspect
logs/steam_response_<APPID>.log. - If some depots are skipped, it usually means Steam did not expose a usable local decryption key for those depots.
- If you need to re-detect Steam paths, delete
luamaker_config.jsonand launch again.
MIT (c) xPokerr