unluac is a decompiler for Lua 5.1. It runs on Lua chunks that have been compiled with the standard Lua compiler. It requires that debugging information has not been stripped from the chunk. (By default, the Lua compiler includes this debugging information.)

This program is written in Java. A JAR package is available in the downloads section so you don't have to compile it. It runs from the command line and accepts a single argument: the file name of a Lua chunk. The decompiled code is printed to the standard output.

Here is an example usage of unluac:
java -jar unluac.jar myfile.lua > myfile_decompiled.lua

The current version also has pretty good support for Lua 5.0 and experimental support for Lua 5.2 and Lua 5.3.

Project Activity

See All Activity >




MIT License

Follow unluac

unluac Web Site

Other Useful Business Software

Reduce Support Costs with TeamSupport’s B2B helpdesk Reduce Support Costs with TeamSupport’s B2B helpdesk Icon
Reduce Support Costs with TeamSupport’s B2B helpdesk Icon

Improve customer satisfaction with powerful and easy to use helpdesk software built specifically for business to business customer support.

We do what you do – business software – so we get it. Customer support is critical to any business and as a B2B provider you not only need to manage contacts and tickets, you need to understand your business relationships at a customer level. TeamSupport is the only helpdesk software built for B2B and made to scale with you as you grow.
  • Easy to Use and Fully Customizable to Your Business
  • Relational Customer Database and Best in Class SLAs

Rate This Project

Login To Rate This Project

User Ratings

ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 5 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5

User Reviews

  • Great for decompiling Wherigo's!

  • good~

  • Having a little problem. eg: function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end Dec: function split(_ARG_0_, _ARG_1_) do while true do if not string.find(_ARG_0_, _ARG_1_, 1) then {}[1] = string.sub(_ARG_0_, 1, string.len(_ARG_0_)) break end {}[1] = string.sub(_ARG_0_, 1, string.find(_ARG_0_, _ARG_1_, 1) - 1) end return {} end end

  • Functions great :) Very easy to use (in a shell: java unluac.jar input.lua > dec_input.lua).

  • The program is easy to use for programmers and engineers but the project needs some more support and wiki to tell people how to use it instead of running the jar or reading the source code by their own.

Read more reviews >

Additional Project Details



Intended Audience

Advanced End Users, Developers

User Interface


Programming Language