r/lua Dec 22 '25

Lua 5.5 released

Thumbnail groups.google.com
Upvotes

r/lua Nov 17 '22

Lua in 100 seconds

Thumbnail youtu.be
Upvotes

r/lua 8h ago

Lua realtime code editor complexity

Enable HLS to view with audio, or disable this notification

Upvotes

Showcasing how i optimize my upcoming game with my game engine in Lua. When enabled it will show you what function or line is costly - in realtime while you play. This helped me optimize some methods that i was able to cache so it doesn't run every frame.


r/lua 15h ago

Looking for Lua scripters for my Roblox game!

Upvotes

Hii!! You can call me Dess or Jagged idm! I am looking for some Lua scripters to code for my ASYM type game! (It won't have any of that stud stuff, also If your good at building too hit me up!) I plan on having a shared income with the developers that put time into the game and actually contribute!


r/lua 1d ago

Library Is there a Lua code guide.

Upvotes

So ,I'm a beginner,I know the basics of scripting ,its mostly due to my already present knowledge of basic coding .So scripting ,the basics at least is super easy for me.If I had a file with all the built in functions I think I'd be much more functional ,in making scripts and learning .However I've seen none online .Can anyone help me out .Just a file with the buikdt in functions ,codes and explaination on how they are used what they do .I'm thinking of mostly events .If you have a tutorial explanation on explorers files like server and client etc...also hand it over .I want to understand scripting and also be able to use Ai, functionally.


r/lua 1d ago

Help Trying to turn a very large number into a string and failing - newbie seeking advice

Upvotes

I'm working through the problems in Project Euler and I ran into an issue with Problem 16. I'm trying to turn 21000 into a string so that I can iterate over its digits and add them up. It seemed simple enough. I started with this code:

local powerDigits = tostring(2^1000)

local sum = 0

for c in string.gmatch(powerDigits, ".") do
    sum = sum + tonumber(c)
end

print(sum)

Result: error. The number that I was iterating over was not the full number in standard form, but rather 1.0715086071863e+301, and you can't add "." to 1. So I went in search of some assistance.

I first found a little library called bignum-lua that said it could handle big numbers. I tried it like so:

local bignum = require "bignum"

local base = bignum(2)

local powerBase = bignum.pow(base, 1000)

local powerDigits = tostring(powerBase)

local sum = 0

for c in string.gmatch(powerDigits, ".") do
    sum = sum + tonumber(c)
end

print(sum)

Result: same error. The big number was still being printed in scientific notation.

I then found lua-bignumber and tried it, but it failed at the start. The library threw errors because of its starting code:

local class = require 'ext.class'
local table = require 'ext.table'
local range = require 'ext.range'
local number = require 'ext.number'
local math = require 'ext.math'
local assert = require 'ext.assert' 

"ext.class" is undefined, as are some of the others. The library was referencing things I don't have.

I went looking again and found CC-Big-Numbers, but I couldn't figure out how to include that one in my code. I got errors because of what I thought I was supposed to include at the very start:

local prop_BigNumbers = script:GetCustomProperty("_BigNumbers")
bn = require(prop_BigNumbers)

Lua couldn't figure out what "script" meant in this context, and neither can I.

So now, I come to you for help. What can I do to take an enormous number, compute its exact value, and iterate over all of its digits to add them up? Thank you in advance.

EDIT: Solved! Thanks to u/particlemanwavegirl for the hint. If any of you are working on Project Euler, look away now to avoid spoilers, but here's what I did this time:

local powerDigits = 2^1000

local sum = 0

while powerDigits > 0 do
    local lastDigit = powerDigits % 10
    sum = sum + lastDigit
    powerDigits = (powerDigits - lastDigit) / 10
end

print(sum)

Thanks again to this community!


r/lua 2d ago

Discussion I think I just had the best idea

Upvotes

What if Lua had a "transfer()" keyword?

I've been messing around with Lua/Luau lately and had this random idea for a new feature:

transfer(1)

{

local message = "Hello World!"

print(message)

}

Then somewhere else:

if true then

receive(1)

{

}

end

The idea is that "transfer(1)" takes everything inside "{}" and stores it as an encased piece of code. "receive(1)" would then retrieve that code and place/run it there.

So the result would basically behave like:

if true then

local message = "Hello World!"

print(message)

end

There's also one important rule: the transferred code has to be self-contained.

For example:

local x = 50

transfer(1)

{

print(x)

}

would throw an error because "x" wasn't declared inside the encaser.

But this would work:

transfer(1)

{

local x = 50

print(x)

}

I know Lua already has functions, tables, closures, etc., so this probably isn't necessary. 😂 I'm more interested in whether something like this could actually be implemented at the language/parser level, and whether there are existing concepts that are similar.

Would this be useful, or have I accidentally invented a worse version of something that already exists?


r/lua 2d ago

Help Where to get started?

Upvotes

were just starting to get into lua (LOVE specifically, gods damn you balatro T0T) and weve been looking at the lua website and looking at how it works following instructions. i know i can find Yt videos that can help us too :3

we wanted to ask if there are any resources to help us with learning the language that helped any of you? we can find resources ourselves, but we wanted to ask the "experts" (no shade) on the topic, cause yall might find smth we cant :D

sorry if this is a silly question, we just want to find all the help we can XD

-sunny °❀⋆.ೃ࿔*:・


r/lua 2d ago

Change running sound during the game

Thumbnail
Upvotes

r/lua 4d ago

You caught me luau, im a pythoneer

Post image
Upvotes

im a beginner at coding, most i know about luau is remoteevents, mos ti know abt python is threading, if someone would help me develop my game i'd be happy!


r/lua 4d ago

Rdn programming language

Post image
Upvotes

r/lua 5d ago

News Moving beyond tolua++: Axmol v3's new Lua binding system

Thumbnail
Upvotes

Axmol Engine (a fork of Cocos2d-x) renewed its Lua bindings for the upcoming v3. Seems like Axmol is keeping its Lua support for the foreseable future :)


r/lua 4d ago

Help Is it possible to learn lua in 1 month

Upvotes

I want to make a roblox game but i have one month and dont know anything about Lua is it possible to learn lua in one month, if yes can you give me advice how to learn it


r/lua 6d ago

lua-grpc

Upvotes

Hi r/lua — I’m working on lua-grpc, a native gRPC implementation for Lua.

It provides:

  • Pure-Lua gRPC runtime over HTTP/2
  • Protocol Buffers through lua-protobuf
  • Unary, server-streaming, client-streaming, and bidirectional-streaming RPCs
  • Lua server support
  • A protoc-gen-lua-grpc generator for Lua client/service bindings
  • Hello World examples for all four gRPC call types

The project uses lua-http for HTTP/2 and is packaged for LuaRocks. The generator is a small Go executable, while generated bindings and the runtime are Lua.

It’s still early-stage. Compression, interceptor execution, and connection pooling are the main gaps I’m planning to address next.

I’d really appreciate feedback from Lua developers—especially around API ergonomics, Lua version support, and real-world gRPC interoperability.

Repo: https://github.com/Protocol-Lattice/lua-grpc


r/lua 7d ago

News OneLuaPro Release 5.5.1.0 is available

Upvotes

Release notes and downloads here: Release v5.5.1.0 ¡ OneLuaPro/OneLuaPro

Technical Baseline

Compiled for dynamic dispatch (automatic runtime detection for AVX2/AVX-512) using:

  • Visual Studio Build Tools 2022 17.14.39
  • Intel oneAPI Toolkit 2026.1.0.191
  • National Instruments NI-488.2 2026 Q3 and NI-DAQmx 2026 Q3

New Features

  • Added lyaml: This extension library enables Lua programs to process yaml files with both a high-level and a low-level API. This add-on closes feature request #4.
  • Upgraded to Lua 5.5.1: Lua v5.5.1 is the latest bugfix release of the Lua scripting language.

Core Module Updates (latest git/stable)

Various. See here for details.

Minimum Requirements

  • Intel: 2nd Gen Core (Sandy Bridge, 2011) or newer
  • AMD: Bulldozer-based (FX-series, 2011) or newer
  • OS: Windows 7 SP1, 10, or 11 (required for AVX state management)

Note: Older CPUs (e.g., Core 2 Duo, 1st Gen i7/i5) are not supported and will result in an "Illegal Instruction" error.


r/lua 8d ago

Lualings

Upvotes

I've been learning Lua and found that most programming exercise platforms aren't quite what I wanted.

A lot of them teach programming through problems: implement a palindrome, solve a number problem, build an algorithm, etc. That's useful for learning problem-solving, but it doesn't necessarily help you understand the language itself.

So I made LuaLings:

https://github.com/ShyamendraH/lualings

It's inspired by Ziglings — the idea of learning a language by working through small, focused programs and fixing them yourself.

LuaLings focuses specifically on Lua concepts and semantics rather than generic programming problems.

The exercises cover things such as:

  • values, types and nil
  • tables and their behavior
  • multiple assignment and multiple return values
  • functions, closures and upvalues
  • iterators
  • metatables and metamethods
  • modules and environments
  • error handling
  • coroutines
  • Lua's standard libraries
  • other Lua-specific behavior that is easy to miss when coming from another language

The intended workflow is:

run → inspect → experiment → fix → understand → move on

The goal is to make it useful both for someone learning Lua for the first time and for someone coming from another language who wants to understand how Lua actually works rather than spend a lot of time on beginner programming exercises.

It's open source, and feedback is welcome — particularly if you find an exercise confusing, technically incorrect, too trivial, or missing an important Lua concept.

Repository:
https://github.com/ShyamendraH/lualings


r/lua 9d ago

Project i made a playlist thingy in lua

Upvotes

decided to share because why not :3

this was NOT MADE BY AI WHATSOEVER i made it in a few minutes

average playlist thingy

the playlist files are literally just lua files that return a table of filepaths to music/sound files

also github repository because... something

https://github.com/hanerathestupidplanet/average-playlist-thingy

okay bye!!!


r/lua 9d ago

I created a dotfiles manager that is configured in lua

Thumbnail
Upvotes

r/lua 10d ago

Help Help needed: Best Lua version/implementation for Rust integration and general scripting?

Upvotes

Hey everyone,

I'm trying to pick up Lua mainly for general scripting and embedding into Rust projects for things like config files. If I end up liking it as much as Rust, I'll probably dive deeper into it.

The main thing tripping me up is how many versions and runtimes exist out there (Lua 5.1, 5.4, LuaJIT, Luau, ...).

If anyone has experience embedding Lua in Rust (maybe using `mlua`), which version should I actually focus on learning? Also, are there any weird compatibility traps or gotchas I should watch out for?

Appreciate any advice or resources 🙏


r/lua 10d ago

I wrote an RDBMS engine 100% from scratch in pure Lua (B+Trees, WAL, Postgres wire protocol, S3 storage)

Upvotes

Hey r/lua!

Wanted to share a project I've been building called LuaDB: a lightweight, zero-dependency embeddable database system written in pure Lua.

Why pure Lua? Cross-platform embedding without needing C bindings or compiling native SQLite shared libraries (great for LÖVE, Roblox, OpenResty, or embedded devices).

What it includes:

  • Full B+Tree index engine on 4KB slotted binary pages
  • Write-Ahead Logging (BEGIN, COMMIT, ROLLBACK)
  • Native PostgreSQL wire protocol gateway (run luajit bin/luadb_server.lua and connect with psql)
  • Native JSONB operators (details->'address'->>'city')
  • Foreign Keys with ON DELETE CASCADE and ALTER TABLE migrations
  • Master-master cluster replication with hinted handoff

Check out the GitHub repo: https://github.com/jncastilho/luadb

Would love to hear your thoughts and feedback!


r/lua 10d ago

Library I built lua-utcp — native tool calling and LLM CodeMode for Lua

Upvotes

Hey r/lua!

I’ve been working on lua-utcp, a Lua implementation of the Universal Tool Calling Protocol:

https://github.com/universal-tool-calling-protocol/lua-utcp

The goal is to let Lua applications discover and call tools through their native transports without requiring an additional wrapper server. Providers expose a UTCP manual, lua-utcp builds a canonical tool registry, and applications invoke tools using stable names and schemas.

local result, err = client:call_tool("echo", {
  message = "hello from Lua"
})

assert(result, err)

Current features include:

  • Lua 5.3 and 5.4 support
  • HTTP, SSE, Streamable HTTP, TCP, UDP, CLI, Text, GraphQL, and MCP transports
  • Remote discovery and locally registered provider manuals
  • Streaming tool calls
  • Structured tool and transport errors
  • A small, embeddable Lua API
  • Unit and transport integration tests

It also includes CodeMode, a constrained Lua execution layer for LLM-generated tool workflows:

local execution = assert(codemode:call_tool_chain([[
  local sum = codemode.call_tool("calculator.add", {
    a = 10,
    b = 20
  })

  return sum
]]))

The model generates Lua orchestration code, while lua-utcp handles tool discovery, validation, registry lookup, and native transport execution. There are working examples for OpenRouter and other OpenAI-compatible APIs.

I think Lua is particularly well suited to this kind of orchestration because it is small, embeddable, and easy to generate and inspect.

The project is open source under MPL-2.0. I’d especially appreciate feedback on the API ergonomics, transport extension design, and whether CodeMode would be useful in your Lua projects.


r/lua 11d ago

Lua C++ API - LuaPP

Upvotes

I made a C++17 Lua engine/wrapper around an embedded Lua runtime

I've been working on LuaPP, a C++17 Lua engine built around an embedded Lua runtime.

The goal is to make embedding Lua and exposing C++ functionality less painful than working directly with the Lua C API everywhere.

Some of the stuff it currently supports:

  • LTValue abstraction for Lua values
  • Numbers, integers, strings, booleans, nil, userdata, tables, functions, and threads
  • Table manipulation and pairs / ipairs
  • Registering C++ functions with Lua
  • Function upvalues
  • C++ objects stored as Lua userdata with automatic __gc destruction
  • Metatables
  • Loading/executing Lua strings and files
  • Custom Lua readers and writers
  • Lua bytecode dumping
  • Error handlers and tracebacks
  • Global and registry access

The project embeds the Lua runtime directly and currently builds against Lua 5.5. It requires Lua 5.3+, C++17, and CMake 3.16+.

It's still a work in progress, so I'm mainly interested in feedback on the API design, implementation, and anything that looks questionable.

GitHub: https://github.com/anatinesquire40/Lua-CPP-API


r/lua 12d ago

Library colorlib in pure lua (looking for reviews)

Upvotes

I have been building a lua color library project lately that supports multiple operations on multiple supported color-spaces.

Originally my plan was to create in C then import in Lua, but then I thought how about a native library that is missing or not found by me in lua and everyone have to re-create their own for any color related projects.

It's initial version is published in github and luarocks recently.

Please have a look and try all the features it provides. This is in active development. Report any missing functions/features, those would be added asap.

Use it in your own projects as a utility library and test scenarios.

Please send your suggestions, raise issues and pull requests to make changes.
Your contributions are heartly welcomed.

Cheers.


r/lua 12d ago

Lua MongoDB driver (looking for feedback)

Upvotes

I’ve been working on lua-mongodb, a MongoDB driver written in Lua without binding or wrapping libmongoc (most Lua drivers are no longer maintained but took this approach).

It supports stock Lua 5.4 and 5.5 with a 64-bit lua_Integer. Network operations run through Copas, so the driver works well in coroutine-based services, tools, and long-running Lua applications.

The driver currently covers CRUD, aggregation, index and Search index management, GridFS, sessions, transactions, read and write concerns, retryable operations, change streams, client bulk writes, authentication, TLS, SRV discovery, wire compression, and client-side operation timeouts. It works with standalone servers, replica sets, sharded clusters, and load-balanced deployments.

A small example looks like this:

local mongodb = require("mongodb")

mongodb.run(function()
  local client = assert(mongodb.client(
    "mongodb://localhost:27017/example"
  ))

  local reply = assert(client:database("admin"):run_command(
    mongodb.bson.document({ { "ping", 1 } })
  ))

  print(reply:get("ok"))
  assert(client:close())
end)

What it isn’t:

  • It is not an official MongoDB driver.
  • It does not support LuaJIT or OpenResty.
  • It does not implement all MongoDB client functionality (as defined in the MongoDB specifications) such as client-side encryption, OCSP, or SOCKS5 proxy transport.

I’m looking for feedback on:

  • Bugs.
  • API choices that feel unnatural or could be improved.
  • Missing operations that block an actual project.
  • Installation or usage problems (only tested on Linux and macOS at the moment)
  • Scripts and applications willing to test it out and share feedback
  • Feedback on what might make something like this more useful to you/your workload

Repository: https://github.com/alexbevi/lua-mongodb
LuaRocks: https://luarocks.org/modules/alexbevi/mongodb


r/lua 12d ago

Discussion I made a visual scripting plugin that compiles to readable Luau

Upvotes

Been working on this for a while. It's a Scratch-style block editor for Studio — you drag blocks onto a canvas and it generates an ordinary Script or ModuleScript in your place. Not a runtime or a sandbox, just code you can open and read.

702 blocks covering events, instances, properties, players, DataStores, RemoteEvents, rounds and game state, GUI, camera.

The part I actually care about: you can make your own blocks. Write the Luau once, mark the inputs with %NAME, use %BODY for a nested stack, pick a colour. Takes about a minute, and it sits in the palette next to the built-ins. Export a set as JSON and share it.

Generated code is tagged with block ids so a runtime error points at the block that wrote the line.

Free on the Creator Store: BlockForge - Creator Store

If a block you need doesn't exist, tell me and I'll add it.