LUAC
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
Lua Bytecode Preview.
At a glance
| Purpose | A compiled Lua chunk (luac output): a header and a tree of function prototypes. |
| Extensions | .luac |
| Poka parser | poka-luac |
| Viewer | poka-tree-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B3 Core (see Breadth tiers) |
How much Poka reads
B3 Core. Only the main content type or types are decoded (for example geometry but not materials, layers or annotations, or only one version family). The list of gaps is substantial.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-luac/src/main.rs (1121 lines) and plugin.json. The four unit tests cover little- and big-endian 5.1 chunks, a nested prototype that fails to parse and an unknown version byte; the corpus has a .luac sample, read by no test. Covers .luac and .lc. The tree reads the header for Lua 5.1 to 5.4 (sizes, endianness, integral flag) and the function-prototype hierarchy: source, parameters, vararg, maximum stack, instruction, constant and nested-function counts. Judgement: B3: the prototype tree is decoded, but the instructions and constants are counted, not shown.
What Poka does not read
- Instructions are counted, not disassembled
- Constants, upvalues and debug information (locals, line info) are not listed
- LuaJIT bytecode and Luau are not read
- Caps of 3,000 nodes and 64 levels; files over 16 MiB are cut (flagged)
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- luac-parser (candidate; MIT; Rust; https://docs.rs/luac-parser) — Lua bytecode parser; modules for Lua 5.1-5.4 and LuaJIT; repo metaworm/luac-parser-rs
- unluac (candidate; MIT; Java; https://sourceforge.net/projects/unluac/) — Decompiler for Lua 5.0-5.4 chunks (needs debug info not stripped); a decompiler rather than a plain parser
Sources
- parsers/poka-luac/src/main.rs
- parsers/poka-luac/plugin.json