Skip to content
Go to file

Latest commit

Added Options to control "fuzzy" matching of userdata methods, etc

Git stats


Failed to load latest commit information.

MoonSharp Build Status Build Status

A complete Lua solution written entirely in C# for the .NET, Mono, Xamarin and Unity3D platforms.


  • 99% compatible with Lua 5.2 (with the only unsupported feature being weak tables support)
  • Support for metalua style anonymous functions (lambda-style)
  • Easy to use API
  • Debugger support for Visual Studio Code (PCL targets not supported)
  • Remote debugger accessible with a web browser and Flash (PCL targets not supported)
  • Runs on .NET 3.5, .NET 4.x, .NET Core, Mono, Xamarin and Unity3D
  • Runs on Ahead-of-time platforms like iOS
  • Runs on IL2CPP converted code
  • Runs on platforms requiring a .NET 4.x portable class library (e.g. Windows Phone)
  • No external dependencies, implemented in as few targets as possible
  • Easy and performant interop with CLR objects, with runtime code generation where supported
  • Interop with methods, extension methods, overloads, fields, properties and indexers supported
  • Support for the complete Lua standard library with very few exceptions (mostly located on the 'debug' module) and a few extensions (in the string library, mostly)
  • Async methods for .NET 4.x targets
  • Supports dumping/loading bytecode for obfuscation and quicker parsing at runtime
  • An embedded JSON parser (with no dependencies) to convert between JSON and Lua tables
  • Easy opt-out of Lua standard library modules to sandbox what scripts can access
  • Easy to use error handling (script errors are exceptions)
  • Support for coroutines, including invocation of coroutines as C# iterators
  • REPL interpreter, plus facilities to easily implement your own REPL in few lines of code
  • Complete XML help, and walkthroughs on

For highlights on differences between MoonSharp and standard Lua, see

Please see for downloads, infos, tutorials, etc.


The program and libraries are released under a 3-clause BSD license - see the license section.

Parts of the string library are based on the KopiLua project ( Debugger icons are from the Eclipse project (


Use of the library is easy as:

double MoonSharpFactorial()
	string script = @"    
		-- defines a factorial function
		function fact (n)
			if (n == 0) then
				return 1
				return n*fact(n - 1)

	return fact(5)";

	DynValue res = Script.RunString(script);
	return res.Number;

For more in-depth tutorials, samples, etc. please refer to

You can’t perform that action at this time.