Lua

Lua scripting best practices for games and embedded systems. Trigger: When writing Lua scripts or game development.

odjaramillo 3e5e6dc 3 files · 8.0 KB Updated

File contents

Critical Patterns

Table Patterns (REQUIRED)

-- ✅ ALWAYS: Use tables for structured data
local user = {
    name = "John",
    age = 30,
    greet = function(self)
        print("Hello, " .. self.name)
    end
}

user:greet()  -- method call with self

Module Pattern (REQUIRED)

-- ✅ ALWAYS: Return table for modules
local M = {}

function M.process(data)
    return data:upper()
end

return M

Error Handling (REQUIRED)

-- ✅ Use pcall for protected calls
local ok, result = pcall(function()
    return risky_operation()
end)

if not ok then
    print("Error: " .. result)
end

Decision Tree

Need class-like?           → Use metatables
Need error handling?       → Use pcall/xpcall
Need iteration?            → Use pairs/ipairs
Need configuration?        → Use external .lua files

Commands

lua script.lua             # Run script
luac -o out.luac script.lua  # Compile
luarocks install package   # Install package

Resources

  • Best Practices: best-practices.md
  • Performance: performance.md
  • Scripting: scripting.md

odjaramillo/custom-rules/tree/main/registry/skills/lua commit 3e5e6dc71b

Frequently asked questions

npx skillmds@latest add odjaramillo/lua