Lua - Reddit – Telegram
Lua - Reddit
30 subscribers
278 photos
31 videos
4.23K links
News and discussion for the Lua programming language.

Subreddit: https://www.reddit.com/r/lua

Powered by : @r_channels & @reddit2telegram
Download Telegram
First mini program in Lua

I don't know if I should be posting this on here, but I followed a tutorial to make a basic calculator program using Lua. It's really basic, but my end goal is to make a basic game in Lua using Love2D, and I just wanted to start with something basic. The code is here:



function adding(x, y) return x + y end function subtraction(x, y) return x - y end function calculate(x, y, f) return f(x, y) end print("enter a number") local x = io.read("*n" , "*l") print("enter another number") local y = io.read("*n", "*l") print("Do you need to add or subtract? (Type + or -) ") local op = io.read(1, "*l") if op == "-" then operation = subtraction else operation = adding end print(calculate(x, y, operation))

https://redd.it/1mkdpvy
@r_lua
Help with uniforms

So I am making a war game and I need help with uniforms. One is model and another is folder. Photo is in the link.

https://preview.redd.it/sjsf5dyb9rhf1.png?width=1920&format=png&auto=webp&s=45876bdec80e5c7b5dbf4f669a851fca5316cbb6



https://redd.it/1mkplpg
@r_lua
Math question

How do you feel about this way of solving 2 variabled math equations?

local num1 = 4
local num2 = 3
local sub = "+"
local function mul(a, b, op)
return loadstring("return " .. a .. op .. b)()
end

local success, result = pcall(mul, num1, num2, sub)
if success then
print(result)
else
warn("error")
end

https://redd.it/1mkqc7j
@r_lua
Are there any free luraph obfuscators out there? The site I was using patched free luraph obfuscation smh

It was panda development

https://redd.it/1mkz2w6
@r_lua
Should PascalCase be used in the name of a "class" in a preloaded module

So I want to embed lua in my program. I saw it's common to use a preloaded module for all the functionality provided(for example neovim). if I have a class per LuaRocks guidelines(because these were only ones that I could find), a table that does OOP stuff should have it's name in PascalCase. Then calling the constructor of a class in this namespace would look like this:

local bar = foo.Bar.new()

I haven't really used lua all that often so I can't really tell. But is this casing considered idiomatic? Doesn't it look kind of weird/out of place? I haven't been able to find an example of this. The other option would be to have a table that contains the constructor and it's name would be snake_case due to not being a "class". Which would result in:

local bar = foo.bar.new()

Where the bar is a table not a class.

My apologies if I used the term "class" incorrectly I'm not haven't done much in lua, so this is my way of calling the table that emulates a class.

Am I obsessing over the casing of one letter? Yes. But an answer would be greatly appreciated.

https://redd.it/1ml726d
@r_lua
a bit of a math problem (iam kinda new to lua)

My code makes a large table with many different numbers and i want my code to take the numbers from that table (i know how tables work) and find the closest number in the table to a preset number.

For context i have made a few programs already, but none of them needed this.

https://redd.it/1mluuvs
@r_lua
Is it better to declare the core module globally in an embedded environment?

My program exposes it's main functionality through lua, there is not that much of it so it's in one module. Now I'm wondering if it's better to expose it globaly, or should the user require the module themselves(one benefit of this would be no lsp warnings). I looked around and saw other projects doing this like love2d or neovim(I'm strictly referring to the module providing the core functionality), but I'm still not sure.

https://redd.it/1mnijpq
@r_lua
Luans - a Lua learning App inspired by Koans

Hello everyone

We’re excited to share that Luans has leveled up—version 2.0 is now live at [play.tenum.app](https://play.tenum.app).

Here’s what’s new:

* **More lessons** — a broader range of topics to help you build your Lua skills step by step.
* **Cleaner feedback** — clearer, more immediate answers when tests fail or pass, so you always know what’s going on.
* **Mission‑style format** and **Layout improvements**

We’d love your feedback on v2.0. We’re planning to implement user-submitted lessons, letting the community contribute topics and challenges. This would open the door for even more diverse content and learning paths.

https://redd.it/1mp83sf
@r_lua
Best Online Resources for Learning?

I've had a little experience with Lua but I want to learn a lot more so I can start modding and developing games of my own. What's the most effective way I can learn?

https://redd.it/1mp96te
@r_lua
cant install luasocket

module mime/core.dll cant compile. idk what is the problem

>C:\\Users\\Intel>luarocks install luasocket

>Installing https://luarocks.org/luasocket-3.1.0-1.src.rock

>

>

>luasocket 3.1.0-1 depends on lua >= 5.1 (5.4-1 provided by VM: success)

>x86_64-w64-mingw32-gcc -O2 -c -o src/luasocket.o -IC:\\Lua\\5.4\\src src/luasocket.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/timeout.o -IC:\\Lua\\5.4\\src src/timeout.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/buffer.o -IC:\\Lua\\5.4\\src src/buffer.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/io.o -IC:\\Lua\\5.4\\src src/io.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/auxiliar.o -IC:\\Lua\\5.4\\src src/auxiliar.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/options.o -IC:\\Lua\\5.4\\src src/options.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/inet.o -IC:\\Lua\\5.4\\src src/inet.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/except.o -IC:\\Lua\\5.4\\src src/except.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/select.o -IC:\\Lua\\5.4\\src src/select.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/tcp.o -IC:\\Lua\\5.4\\src src/tcp.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/udp.o -IC:\\Lua\\5.4\\src src/udp.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/compat.o -IC:\\Lua\\5.4\\src src/compat.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/wsocket.o -IC:\\Lua\\5.4\\src src/wsocket.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -shared -o C:\\Users\\Intel\\AppData\\Local\\Temp\\luarocks_build-LuaSocket-3.1.0-1-2048758\\socket\\core.dll src/luasocket.o src/timeout.o src/buffer.o src/io.o src/auxiliar.o src/options.o src/inet.o src/except.o src/select.o src/tcp.o src/udp.o src/compat.o src/wsocket.o -lws2_32 C:\\Lua\\5.4\\lua54.dll -lm

>x86_64-w64-mingw32-gcc -O2 -c -o src/mime.o -IC:\\Lua\\5.4\\src src/mime.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -O2 -c -o src/compat.o -IC:\\Lua\\5.4\\src src/compat.c -DLUASOCKET_DEBUG -DWINVER=0x0501 -Ic:\\windows\\system32\\include

>x86_64-w64-mingw32-gcc -shared -o C:\\Users\\Intel\\AppData\\Local\\Temp\\luarocks_build-LuaSocket-3.1.0-1-2048758\\mime\\core.dll src/mime.o src/compat.o -Lc:\\windows\\system32 C:\\Lua\\5.4\\lua54.dll -lm

>C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../lib/dllcrt2.o: in function `_CRT_INIT':

>D:/W/B/src/mingw-w64/mingw-w64-crt/crt/crtdll.c:126:(.text+0x8e): undefined reference to `_execute_onexit_table'

>C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/W/B/src/mingw-w64/mingw-w64-crt/crt/crtdll.c:79:(.text+0x117): undefined reference to `_initialize_onexit_table'

>C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/W/B/src/mingw-w64/mingw-w64-crt/crt/crtdll.c:126:(.text+0x1c6): undefined reference to `_execute_onexit_table'

>C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../lib/dllcrt2.o:
in function `atexit':

>D:/W/B/src/mingw-w64/mingw-w64-crt/crt/crtdll.c:183:(.text+0x2db): undefined reference to `_register_onexit_function'

>C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../lib/libmingw32.a(lib64_libmingw32_a-pseudo-reloc.o): in function `__report_error':

>D:/W/B/src/mingw-w64/mingw-w64-crt/crt/pseudo-reloc.c:150:(.text+0x28): undefined reference to `__acrt_iob_func'

>C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/15.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: D:/W/B/src/mingw-w64/mingw-w64-crt/crt/pseudo-reloc.c:151:(.text+0x46): undefined reference to `__acrt_iob_func'

>collect2.exe: error: ld returned 1 exit status

>

>Error: Build error: Failed compiling module mime\\core.dll



https://redd.it/1mpoe1p
@r_lua
ELM11 (Embedded Lua Machine) maker board

This is possibly of interest to readers of this subreddit - https://brisbanesilicon.com.au/elm11/.

I don't think I am breaking any 'R/LUA' rules by posting this here - apologies in advance if so.

https://redd.it/1mqo6fq
@r_lua
Help figuring out "requires" with c++ and windows

Hello,

I'm reading a book that teaches Lua and C++ together (Integrated Lua with C++), and I'm having difficulty figuring out how to accomplish this portion of the book. They use a Makefile and create a file called Destinations.SO, which is a Unix thing (I'm using Windows). I'm trying to figure out what exactly it wants so it can read it correctly.

Destinations = require "destinations" -- This loads `destinations.so` and assigns the module to the Destinations global variable.

I'm getting " Failed to execute: noscript.lua:1: module 'destinations' not found:" and a bunch of locations saying "no file 'D:....."

I'm going to provide the snippet of the book, and hopefully that makes it clearer:

>So far in this book, we have only explicitly registered C++ modules to Lua in C++ code. However, there is another way to provide a C++ module to Lua.

>You can produce a shared library for a module and place it in Lua’s search path. When the Lua code requires the module, Lua will load the shared library automatically.

>To test the standalone module, in the folder where `destinations.so` resides, start a Lua interactive interpreter and execute the following statements:

>Chapter09 % ../lua/src/lua
Lua 5.4.6 Copyright (C) 1994-2023 Lua.org, PUC-Rio
\> Destinations = require "destinations"
\> dst = Destinations.new("Shanghai", "Tokyo") Destinations instance created: 0x155a04210 > dst:wish("London", "Paris", "Amsterdam") > dst:went("Paris")
\> print("Visited:", dst:list_visited()) Visited: Paris
\> print("Unvisited:", dst:list_unvisited()) Unvisited: Amsterdam London Shanghai Tokyo > os.exit()
Destinations instance destroyed: 0x155a04210

>The most important statement is the require statement. This loads destinations.so and assigns the module to the Destinations global variable.

>We started the Lua interactive interpreter in the same folder where the module binary resides because require will search the current working directory for modules. Alternatively, you can put the library in a system search path. You can check the reference manual to learn more about require and its behaviors.

>A standalone C++ module is useful when you need to reuse the module in the binary form across multiple projects or enforce code isolation on the C++ side, but this is just a design choice.

Any help would be appreciated, because this is driving me crazy.

https://redd.it/1mrdml0
@r_lua