# Big List of Lua Resources!

**URL:** <https://forum.defold.com/t/big-list-of-lua-resources/1586>\
**Category:** The Defoldmine\
**Created:** [April 17, 2016, 1:32am UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586 "2016-04-17T01:32:51Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pkeod](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/pkeod/32/606_2.png) [@Pkeod](https://forum.defold.com/u/Pkeod)\
**Post date:** [April 17, 2016, 1:32am UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/1 "2016-04-17T01:32:51Z")

</div>

Post links and I may add to the main list. Admins feel free to edit directly to modify and add links.

## Learn Lua

- Defold uses Lua 5.1 [Lua 5.1 Reference Manual - contents](http://www.lua.org/manual/5.1/)
- [Progamming in Lua](http://www.lua.org/pil/contents.html) (best Lua book - buy a physical copy of latest edition)
- [Learn Lua in a Single Video](https://www.youtube.com/watch?v=iMacxZQMPXs) + [Related Cheat Sheet](http://www.newthinktank.com/2015/06/learn-lua-one-video/)
- [Official Lua Language Reference](http://www.lua.org/manual/5.1/)
- [Learn X in Y Minutes Where X=Lua](https://learnxinyminutes.com/docs/lua/)
- [Lua Short Reference](http://lua-users.org/files/wiki_insecure/users/thomasl/luarefv51.pdf)
- [A Functional Introduction to Lua](https://pragprog.com/magazines/2013-05/a-functional-introduction-to-lua)
- [Lua Users Wiki](http://lua-users.org/wiki/)
- [Lua Programming - Wikibooks, open books for an open world](https://en.m.wikibooks.org/wiki/Lua_Programming)
- [http://stackoverflow.com/questions/tagged/lua](http://stackoverflow.com/questions/tagged/lua)
- [http://lua-users.org/files/wiki\_insecure/users/thomasl/luarefv51single.pdf](http://lua-users.org/files/wiki_insecure/users/thomasl/luarefv51single.pdf)
- [Lua Missions (Koans)](https://github.com/kikito/lua_missions)
- [http://kiki.to/blog/2014/03/30/a-guide-to-authoring-lua-modules/](http://kiki.to/blog/2014/03/30/a-guide-to-authoring-lua-modules/)
- [lua-users wiki: Detecting Undefined Variables](http://lua-users.org/wiki/DetectingUndefinedVariables)
- [Lua: Good, bad, and ugly parts - ZeroBrane](http://notebook.kulchenko.com/programming/lua-good-different-bad-and-ugly-parts)
- [Learn Lua in 15 Minutes](http://tylerneylon.com/a/learn-lua/)
- [Lua Programming Gems](https://www.lua.org/gems/)

## Tools

- [LuaRocks - Lua Package Manager](https://luarocks.org/)
- [ZeroBrane - Lua IDE](https://studio.zerobrane.com/)
- [Atom IDE](http://atom.io/)

## Lua Libraries

- [Jumper - fast pathfinding for grid based games](https://github.com/Yonaba/Jumper)
- [Knife - collection of Lua micro modules](https://github.com/airstruck/knife)
- [lume - Lua helper functions for gamedev](https://github.com/rxi/lume/)
- [Vivid - Color math, manipulation, conversion](https://github.com/WetDesertRock/vivid)
- [binser - Customizable Lua Serializer](https://github.com/bakpakin/binser)
- [Busted - Lua unit testing](https://github.com/Olivine-Labs/busted)
- [Telescope - test library for Lua](https://github.com/norman/telescope)
- [luassert extends Lua’s built-in assertions to provide additional tests and the ability to create your own](https://github.com/Olivine-Labs/luassert)
- [json-lua](https://github.com/rxi/json.lua)
- [coil - A tiny cooperative threading module for Lua. Coil is based around coroutines, allowing many cooperative threads to run simultaneously.](https://github.com/rxi/coil)
- [flux - Tweening library](https://github.com/rxi/flux)
- [tick - delayed function calls](https://github.com/rxi/tick)
- [translate / localize - say is a simple string key/value store for i18n or ay other case where you want namespaced strings.](https://github.com/Olivine-Labs/say)
- [GitHub - kikito/i18n.lua: A very complete i18n lib for Lua · GitHub](https://github.com/kikito/i18n.lua) localization
- [GitHub - kikito/inspect.lua: Human-readable representation of Lua tables · GitHub](https://github.com/kikito/inspect.lua) human readable lua tables

## OO in Lua

- [middleclass](https://github.com/kikito/middleclass)
- [30 lines library for object orientation in Lua](https://github.com/Yonaba/30log)
- [class.lua](https://github.com/jonstoler/class.lua)
- [GitHub - rxi/classic: Tiny class module for Lua · GitHub](https://github.com/rxi/classic/)

## Collections of Lua Snippets

- [lua\_snippets/lua at master · mirven/lua\_snippets · GitHub](https://github.com/mirven/lua_snippets/tree/master/lua)
- [GitHub - blitmap/lua-snippets: Just a random collection of Lua snippets I find interesting or have authored myself · GitHub](https://github.com/blitmap/lua-snippets)
- [GitHub - jonstoler/lua-snip: various lua snippets · GitHub](https://github.com/jonstoler/lua-snip)
- [GitHub - XuJiandong/lua-recipe: Useful code snippet for lua. One file for one feature, require no external libs. · GitHub](https://github.com/XuJiandong/lua-recipe)
- [GitHub - wcbubel/lua-stuffs: Assorted collection of Lua snippets and modules · GitHub](https://github.com/wcbubel/lua-stuffs)

## Websites / Communities / Events About Lua

- [Lua Workshop Videos](https://www.youtube.com/channel/UCW5AXY0vcX2KZY1pB79C3vQ/videos)
- [Lua.Space - Unofficial Lua Community Blog](http://lua.space/)
- [Lua Reddit Community](https://www.reddit.com/r/lua)

## Lua Style Guides

- [lua-users wiki: Lua Style Guide](http://lua-users.org/wiki/LuaStyleGuide)
- [GitHub - Olivine-Labs/lua-style-guide: Olivine Labs Lua Style Guide · GitHub](https://github.com/Olivine-Labs/lua-style-guide)

## Other Lua game engines

Tutorials etc. written for these can be adapted to Defold

- [http://www.amulet.xyz/](http://www.amulet.xyz/)
- [https://love2d.org/](https://love2d.org/)
- [GitHub - moai/moai-dev: This is the development repo of Moai SDK. · GitHub](https://github.com/moai/moai-dev)
- More: [http://stackoverflow.com/questions/5053134/what-is-a-good-game-engine-that-uses-lua](http://stackoverflow.com/questions/5053134/what-is-a-good-game-engine-that-uses-lua)

## General gamedev resources

- [Amit’s Game Programming Information](http://www-cs-students.stanford.edu/~amitp/gameprog.html)
- [The guide to implementing 2D platformers | Higher-Order Fun](http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/)
- [http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1/](http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1/)
- [Acceleration Due to Gravity: Super Mario Brothers - The Physics Factbook](http://hypertextbook.com/facts/2007/mariogravity.shtml)
- [Integral - Wikipedia](http://en.wikipedia.org/wiki/Integral)
- [http://info.sonicretro.org/Sonic\_Physics\_Guide](http://info.sonicretro.org/Sonic_Physics_Guide)
- [https://love2d.org/wiki/Free\_Game\_Resources](https://love2d.org/wiki/Free_Game_Resources)

---

<div class="post-metadata">

**Author:** ![Lukas\_Palmer](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/lukas_palmer/32/722_2.png) [@Lukas\_Palmer](https://forum.defold.com/u/Lukas_Palmer)\
**Post date:** [April 17, 2016, 1:21pm UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/2 "2016-04-17T13:21:36Z")

</div>

What about Atom ([atom.io](http://atom.io)) as an IDE?

 ![](https://forum-defold-uploads.b-cdn.net/original/1X/d9de836ee636fe4ee3648ac58be0f010a08b81ca.png)  
Your mileage may vary, but personally I’ve found that Atom works great as an IDE for a multitude of languages, including Lua as I recently discovered. It’s also quite easy to get it set up to work properly with Defold. The package for Lua support ([language-lua](https://atom.io/packages/language-lua)) recognizes the .lua extension, so for any scripts you open you need to specify them as Lua files with the shortcut control-shift-L (same shortcut on OS X, not command but control).

---

<div class="post-metadata">

**Author:** ![Hanz](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/hanz/32/720_2.png) [@Hanz](https://forum.defold.com/u/Hanz)\
**Post date:** [April 17, 2016, 8:59pm UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/3 "2016-04-17T20:59:50Z")

</div>

As far as I know, the advantage of ZeroBrane over Atom is that you can do remote Lua debugging with ZeroBrane. Since Defold doesn’t have real debugging, working with an IDE that does support this can come in handy 🙂

---

<div class="post-metadata">

**Author:** ![dasannikov](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/dasannikov/32/8288_2.png) [@dasannikov](https://forum.defold.com/u/dasannikov)\
**Post date:** [May 26, 2016, 7:49am UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/4 "2016-05-26T07:49:00Z")

</div>

![](https://forum-defold-uploads.b-cdn.net/original/2X/f/f3b382cc77da9a9347d218b8c841865946c1489f.jpg)

I use **Atom** with **linter-luaparse package** installed. I highly recommend it. Very useful package with dynamic error highlighting.

---

<div class="post-metadata">

**Author:** ![AGulev](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/agulev/32/4541_2.png) [@AGulev](https://forum.defold.com/u/AGulev)\
**Post date:** [May 26, 2016, 10:07am UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/5 "2016-05-26T10:07:05Z")

</div>

And one more tip for Atom.  
just add this code to config.cson (Atom-\>Config) for auto-detect script files as lua:

> core:  
> customFileTypes:  
> ‘source.lua’: [  
> ‘script’,  
> ‘render\_script’  
> ]  
> [Sunsetting Atom - The GitHub Blog](http://flight-manual.atom.io/using-atom/sections/basic-customization/#_customizing_language_recognition)

And one more link to “Learn Lua”:  
[Learn Lua in 15 Minutes](http://tylerneylon.com/a/learn-lua/)

---

<div class="post-metadata">

**Author:** ![dmitriy](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/dmitriy/32/18452_2.png) [@dmitriy](https://forum.defold.com/u/dmitriy)\
**Post date:** [May 26, 2016, 12:34pm UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/6 "2016-05-26T12:34:24Z")

</div>

How to convince Atom to show symbols list (cmd+r)? I only get “No symbols found” message.

---

<div class="post-metadata">

**Author:** ![dasannikov](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/dasannikov/32/8288_2.png) [@dasannikov](https://forum.defold.com/u/dasannikov)\
**Post date:** [May 27, 2016, 9:22am UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/7 "2016-05-27T09:22:13Z")

</div>

**Lua Finite State Machine** - [GitHub - kyleconroy/lua-state-machine: A finite state machine lua micro framework · GitHub](https://github.com/kyleconroy/lua-state-machine)

---

<div class="post-metadata">

**Author:** ![atamocius](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/atamocius/32/8386_2.png) [@atamocius](https://forum.defold.com/u/atamocius)\
**Post date:** [April 13, 2018, 6:21pm UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/8 "2018-04-13T18:21:57Z")

</div>

Hi guys, just started to tinker with Defold and also just started learning Lua. If you are coming from a JavaScript background like I am, I found a couple of resources that may help with the transition (authored by the same guy who wrote _Learn Lua in 15 Minutes_, Tyler Neylon).

I found these set of links to be very useful in quickly building up a mental model of using Lua. Highlighting the similarities between JS and Lua is helping me to _reuse_ my knowledge in JS in the context of Lua.

- [Learn Lua from JavaScript, part 1: An introduction to Lua](https://www.oreilly.com/learning/learn-lua-from-javascript-part-1-an-introduction-to-lua)
- [Learn Lua from JavaScript, part 2: Control flow and data structures](https://www.oreilly.com/learning/learn-lua-from-javascript-part-2-control-flow-and-data-structures)
- [Learn Lua from JavaScript, part 3: Object-oriented behavior](https://www.oreilly.com/learning/learn-lua-from-javascript-part-3-object-oriented-behavior)

Looking at the similarities between JS and Lua, certain JS patterns might be applicable to Lua (and most likely have already been implemented in Lua based from the other links, and given that Lua is a very mature language already). So, as a reference, I am also adding here the link to the JS Patterns book by Addy Osmani

- [Learning JavaScript Design Patterns](https://addyosmani.com/resources/essentialjsdesignpatterns/book/)

---

<div class="post-metadata">

**Author:** ![atamocius](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/atamocius/32/8386_2.png) [@atamocius](https://forum.defold.com/u/atamocius)\
**Post date:** [April 19, 2018, 6:06pm UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/9 "2018-04-19T18:06:46Z")

</div>

Not Lua specific but I always found this book extremely useful in whatever language or platform you are using:

[Game Programming Patterns](http://gameprogrammingpatterns.com/)

It is a free online book (just look for the [_Web_](http://gameprogrammingpatterns.com/contents.html) link towards the end of the page). If you want to understand the inner workings of game engines (or if you just need guidance on how to implement certain patterns), including Defold, check out this book.

Topics of note for the Defold user:

- [Observer](http://gameprogrammingpatterns.com/observer.html)
- [Prototype](http://gameprogrammingpatterns.com/prototype.html)
- [Update Method](http://gameprogrammingpatterns.com/update-method.html)
- [Component](http://gameprogrammingpatterns.com/component.html)
- [Service Locator](http://gameprogrammingpatterns.com/service-locator.html)
- And many more… (practically all chapters 😁)

If you are curious why _Entity-Component-Systems (ECS)_ are all the rage, then you need to check out the chapter about [Data Locality](http://gameprogrammingpatterns.com/data-locality.html).

---

<div class="post-metadata">

**Author:** ![Muffin](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/muffin/32/20505_2.png) [@Muffin](https://forum.defold.com/u/Muffin)\
**Post date:** [June 2, 2020, 3:47am UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/11 "2020-06-02T03:47:49Z")

</div>

Was looking for this “Resource List” for a while, now I’m bumping it so other newcomers can find/see it too.

Also adding/recommending new resources & code editor for the list:

**[Visual Studio Code](https://code.visualstudio.com/)** – open source code editor

with plugins:

- [Better comments](https://marketplace.visualstudio.com/items?itemName=aaron-bond.better-comments)
- [Code runner](https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner)
- [Defold API snippets](https://marketplace.visualstudio.com/items?itemName=selimanac.defold-vsc-snippets) – also includes a list of Useful **VS Code** Extensions for **Lua**
- [Lua and Ravi 5.3 Debugger](https://marketplace.visualstudio.com/items?itemName=ravilang.ravi-debug)

For future refrence:

[Introduction to Lua on Ravi language (Lua superset language) site](https://the-ravi-programming-language.readthedocs.io/en/latest/lua-introduction.html) explains a lot about Lua and also provides additional FAQ kind of information.

[Terra](http://terralang.org/) - it’s Lua and it’s Lua in Lua but the other Lua is **statically-typed** , **compiled language** with **manual memory management**.. so basically Lua interface for C within Lua itself. (yeah explaining this little gem is quite something) – beta 1.0.0 for now 😃

---

<div class="post-metadata">

**Author:** ![britzl](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/britzl/32/23_2.png) [@britzl](https://forum.defold.com/u/britzl)\
**Post date:** [June 3, 2020, 4:55am UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/12 "2020-06-03T04:55:57Z")

</div>



---

<div class="post-metadata">

**Author:** ![Pawel](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/pawel/32/24623_2.png) [@Pawel](https://forum.defold.com/u/Pawel)\
**Post date:** [June 8, 2024, 7:57am UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/13 "2024-06-08T07:57:58Z")

</div>

Very good video on Lua - from beginners to masters:

[![](https://img.youtube.com/vi/I_rzFahRFeE/maxresdefault.jpg "Why learn LUA?") ](https://www.youtube.com/watch?v=I_rzFahRFeE)

---

<div class="post-metadata">

**Author:** ![Alchimystic](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/alchimystic/32/33560_2.png) [@Alchimystic](https://forum.defold.com/u/Alchimystic)\
**Post date:** [April 13, 2026, 11:28pm UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/14 "2026-04-13T23:28:43Z")

</div>

Can you add a link to my Defold extension?  
I think it can be a valuable tool for all things RNG or procedural generation related.  
It can also be easily extended with more algorithms

> **[GitHub - alchimystic/defold-rng: Multi-algorithm Random Number Generator Native...](https://github.com/alchimystic/defold-rng)**
>
> Multi-algorithm Random Number Generator Native Extension for the Defold Game Engine

---

<div class="post-metadata">

**Author:** ![Pawel](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/pawel/32/24623_2.png) [@Pawel](https://forum.defold.com/u/Pawel)\
**Post date:** [April 14, 2026, 8:30am UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/15 "2026-04-14T08:30:58Z")

</div>

@Alchimystic we can add it also to the asset portal - do you want to? Do you have a thumbnail picture (3:2, preferrably 900x600px)? If not I can create one 😉

---

<div class="post-metadata">

**Author:** ![Alchimystic](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/alchimystic/32/33560_2.png) [@Alchimystic](https://forum.defold.com/u/Alchimystic)\
**Post date:** [April 14, 2026, 7:39pm UTC](https://forum.defold.com/t/big-list-of-lua-resources/1586/16 "2026-04-14T19:39:45Z")

</div>

Sure, that would be nice.  
A thumbnail like the ones we can see [here](https://defold.com/assets/), right?  
I think i can slightly modify the Defold logo, which is nice
