Lua - Reddit – Telegram
Lua - Reddit
35 subscribers
284 photos
33 videos
4.34K links
News and discussion for the Lua programming language.

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

Powered by : @r_channels & @reddit2telegram
Download Telegram
Free lua obfuscator

An actually solid lua obfuscator i developed, it works for normal lua, and for hvh, i will probably try to update for roblox aswell
discord: https://discord.gg/vdBnvXBaJ4

https://redd.it/1qwgrww
@r_lua
Where to learn Lua

# Where to able learn Lua coding and its free which not going waste my time. I would like to try create game.

https://redd.it/1qvqlwj
@r_lua
This media is not supported in your browser
VIEW IN TELEGRAM
I built interactive visualizations to understand Rate Limiting algorithms, implementation using lua, node.js and redis

https://redd.it/1qupxmk
@r_lua
ds.time: time objects in pure-lua including DateTime from epoch
https://civboot.github.io/lua/ds.html#ds.time

https://redd.it/1quf6mc
@r_lua
My favorite part about coding in Lua..

..is having to write a custom function to print tables so I can actually debug.

I especially love watching that function get more complex than the project I'm trying to debug with it cause I want to use nested tables.

https://redd.it/1qtk4od
@r_lua
I made a lua-based build system to help learn lua better. I've gained a good appreciation for Lua (Kindler Build System)
https://setsunasoftware.com/kindler/

https://redd.it/1qt7ki8
@r_lua
Need help finding out what's what

So I wish to modify a game to change the sound of the tinnitus ringing from flashbangs and explosions (Don't worry rule 8 enforcers, my file makes them louder and have a much more irritating tone.). I got the lua from a repository of the game files on GitHub. I have next to no experience with lua code, and I want to know what points to what or what does what, just so I know where everything points to to play the sounds and what I'd have to change (like the sound file format - currently it's .ogg, any errors in the code, or any files I'd have to create /rename to get it to work). Any help is appreciated! Game is Payday 2 by the way, in case that helps. Here's the code I copied:

function PlayerDamage:on_concussion(mul)

if self._downed_timer then

return

end



self:_start_concussion(mul)

end

function PlayerDamage:_start_concussion(mul)

if self._concussion_data then

self._concussion_data.intensity = mul

local duration_tweak = tweak_data.projectiles.concussion.duration

self._concussion_data.duration = duration_tweak.min + mul * math.lerp(duration_tweak.additional - 2, duration_tweak.additional + 2, math.random())

self._concussion_data.end_t = managers.player:player_timer():time() + self._concussion_data.duration



SoundDevice:set_rtpc("concussion_effect", self._concussion_data.intensity * 100)

else

local duration = 4 + mul * math.lerp(8, 12, math.random())

self._concussion_data = {

intensity = mul,

duration = duration,

end_t = managers.player:player_timer():time() + duration

}

end



self._unit:sound():play("concussion_player_disoriented_sfx")

self._unit:sound():play("concussion_effect_on")

end

function PlayerDamage:_stop_concussion()

if not self._concussion_data then

return

end



self._unit:sound():play("concussion_effect_off")



self._concussion_data = nil

end

function PlayerDamage:on_flashbanged(sound_eff_mul)

if self._downed_timer then

return

end



self:_start_tinnitus(sound_eff_mul)

end

function PlayerDamage:_start_tinnitus(sound_eff_mul, skip_explosion_sfx)

if self._tinnitus_data then

if sound_eff_mul < self._tinnitus_data.intensity then

return

end



self._tinnitus_data.intensity = sound_eff_mul

self._tinnitus_data.duration = 4 + sound_eff_mul * math.lerp(8, 12, math.random())

self._tinnitus_data.end_t = managers.player:player_timer():time() + self._tinnitus_data.duration



if self._tinnitus_data.snd_event then

self._tinnitus_data.snd_event:stop()

end



SoundDevice:set_rtpc("downed_state_progression", math.max(self._downed_progression or 0, self._tinnitus_data.intensity * 100))



self._tinnitus_data.snd_event = self._unit:sound():play("tinnitus_beep")

else

local duration = 4 + sound_eff_mul * math.lerp(8, 12, math.random())



SoundDevice:set_rtpc("downed_state_progression", math.max(self._downed_progression or 0, sound_eff_mul * 100))



self._tinnitus_data = {

intensity = sound_eff_mul,

duration = duration,

end_t = managers.player:player_timer():time() + duration,

snd_event = self._unit:sound():play("tinnitus_beep")

}

end



if not skip_explosion_sfx then

self._unit:sound():play("flashbang_explode_sfx_player")

end

end

function PlayerDamage:_stop_tinnitus()

if not self._tinnitus_data then

return

end



self._unit:sound():play("tinnitus_beep_stop")



self._tinnitus_data =
why do people look down at lua although its as good or even better than other languages

yea it has downsides but you can just implement it into C for example for low level power. so i dont get all the hate

https://redd.it/1qx8v0c
@r_lua
🦒 Roblox Devs Wanted!

Hire, Sell, Collab & Build — All in One Fun Hub!
Join r/DevsRus today and let your games shine!

https://redd.it/1qxjbex
@r_lua
I need help please

I need the player collects 5 patient records scattered throughout the asylum, each a clickable object that disappears when picked up. A RecordsGui is displayed on the screen: first, the 'RecordsLabel' appears showing 'Records'; as each record is collected, the 'TotalRecordsLabel' updates in real time, counting up from '0 / 5' to '5 / 5', reflecting the player's progress. The GUI visually reacts to each pickup and changes the 1-5 number. I tried myself and with AI but it was no use. If someone can help me then I'm grateful!!!!

https://redd.it/1r07mru
@r_lua
I built a Lua/Luau-first transpiler with static analysis and no runtime helpers

I built Hordr, a Lua/Luau-first frontend transpiler.



It adds flow-sensitive analysis, explicit modules, a Luau-compatible type checker,

and safe optimizations, while generating clean, readable Lua with no runtime helpers

or semantic changes.



This is not a Lua replacement and not a new runtime.

It’s a conservative tooling layer for larger Lua codebases



Repo: https://github.com/Bladiostudio/Hordr

Feedback and criticism welcome.



https://redd.it/1r0lg7c
@r_lua
ECS like behavior with objects in Lua is possible?

Most of the time, it's considered that OOP has poor performance because of the way it works internally. Arrays and data make use of the CPU's cache memory while objects are scattared across the memory and in some instances, each object has it's own copy of a method from the constructor. But in Lua... I heard that if you write your classes correctly, the "methods" are cached. So, in the end, if you run for obj in objs do obj:something() end it's like you esentially iterate through tables of data and call the same referenced function on them, right?

So, in the context of LuaJIT, how accurate is this? As soon as I have time I'mma go benchmark this idea, but curious to learn more about that stuff. Thank you!

https://redd.it/1r4rdm5
@r_lua
Lua Script

I've used WatchMaker for some time until my Pixel 3 watch was not compatible. With the new and updated version, I find some of the menu noscripts don't transfer to my watch. Can someone help with these issues especially if I need to write my own noscript?

1. Ring corners stay round instead of converting to straight lines on the ends.

2. Rings won't show a gradient for the first two chosen colors

3. Even if I choose the noscript to show the phone battery level or percentage it reverts back to the watch battery.

Thanks!

https://redd.it/1r4mo83
@r_lua
Lua 5.5.0 - "for-loop variables are read only"

Currently working on integrating Lua 5.5.0 into [OneLuaPro](https://github.com/OneLuaPro). This new "[for-loop variables are read-only](https://www.lua.org/manual/5.5/readme.html#changes)" feature is really annoying, as it impacts a lot of existing code:

[C:\...\_IMPLEMENTED]> for /r %f in (*.lua) do @(C:\misc\OneLuaPro\build64\OneLuaPro-5.4.8.3-x64\bin\luac -p "%f" >nul 2>&1 || echo Lua 5.5 Problem in: %f)
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\ldoc\ldoc\html.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\ldoc\ldoc\markdown.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\ldoc\tests\mod1.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\ldoc\tests\example\style\simple.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\ldoc\tests\factory\factory.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\lua-cjson\tests\bench.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\lua-openssl\test\4.pkey.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\luacheck\spec\samples\compound_operators.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\luacheck\spec\samples\python_code.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\luacheck\spec\samples\utf8_error.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\luacheck\src\luacheck\standards.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\luautf8\parseucd.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\wxlua\wxLua\bindings\any-bind-sync.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\wxlua\wxLua\bindings\genwxbind.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\wxlua\wxLua\bindings\stc-bind-sync.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\wxlua\wxLua\samples\editor.wx.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\wxlua\wxLua\samples\wxluasudoku.wx.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\ZeroBraneStudio\api\lua\corona.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\ZeroBraneStudio\build\messages.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\ZeroBraneStudio\lualibs\luadist.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\ZeroBraneStudio\lualibs\dist\package.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\ZeroBraneStudio\lualibs\luacheck\standards.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\ZeroBraneStudio\lualibs\luainspect\init.lua
Lua 5.5 Problem in: C:\misc\_IMPLEMENTED\ZeroBraneStudio\src\util.lua
...

Am I actually the first person to discover this?

https://redd.it/1r3nhu5
@r_lua
Lua as the IR between AI and Spreadsheets

I've been building a spreadsheet engine in Rust (mlua), and I wanted to share a pattern that's been working surprisingly well: using Lua as the source of truth for AI-generated models.

**The problem**: When you ask an LLM to build a financial model in Excel, it's a black box. You get a .xlsx with hundreds of hidden dependencies. If a formula is wrong, you're hunting through cells. There's no diff, no code review, and no way to replay the construction.

What we do instead: In VisiGrid, AI agents don't touch cells. They write Lua noscripts that build the grid.

Claude generates this instead of a binary blob
set("A3", "Base Revenue")
set("B3", 100000)
set("A4", "Growth Rate")
set("B4", 0.05)

for i = 1, 12 do
local row = 6 + i
set("A" .. row, "Month " .. i)
set("B" .. row, i == 1
and "=B3"
or "=B" .. (row-1) .. "*(1+$B$4)")
set("C" .. row, "=SUM(B7:B" .. row .. ")")
end

set("A20", "Total")
set("B20", "=SUM(B7:B18)")
style("A20:C20", { bold = true })

Lua hit the sweet spot — simple enough that LLMs generate it reliably, sandboxable so agents can't escape, and deterministic enough to fingerprint (vgrid replay model.lua --verify — same noscript, same hash).

We tried JSON op-logs first and they were brittle the moment you needed any conditional logic. Lua lets the agent write actual loops and branches while keeping the output readable enough for a human to code review.

One thing I'm still working through: performance when mapping large grid ranges to Lua tables.

Right now sheet:get() on 50k rows is row-by-row across the FFI boundary. I've been considering passing ranges as userdata with \_\_index/\_\_newindex metamethods instead of materializing full tables.

Anyone have experience with high-volume data access patterns through mlua?

Curious what's worked for batching reads/writes without blowing up memory.

CLI is open source (AGPLv3): [https://github.com/VisiGrid/VisiGrid](https://github.com/VisiGrid/VisiGrid)

https://redd.it/1r42b9a
@r_lua
Luazen support for windows

Hey!

About this project: https://github.com/philanc/luazen/

I've been looking for some cryptography libs in lua and couldn't find many, except this one using ed25519 that worked really well on mac, but I can't get it to work on windows.

Has any one ever tried to port this to windows? I saw the issues with some attempts, just curious if anyone here tried too.

Or also, if there's any other lib that I could use, I'd be happy to change - but I couldn't find any

Thanks in advance

https://redd.it/1r3n3ah
@r_lua
how to learn

i’m a beginner to lua and coding in general and i want to learn how to code it, but i dont know where to start. all the youtube videos and tutorials i’ve watched so far haven’t helped, so i decided to come to the place of eternal wisdom: reddit. i primarily intend to use it for roblox game development. i just keep getting lost and feel like im going in circles and not actually learning anything. any advice?

https://redd.it/1r54c52
@r_lua
Started 3 days ago and this recurssion is confusing
https://redd.it/1r2rzts
@r_lua
Lua 5.5 length operator now stricer than with Lua 5.4

While porting lua-cjson to Lua 5.5, I encountered a test case failure. It appears that Lua 5.5 handles table length evaluation more strictly than previous versions, especially regarding tables with holes:

C:\...\tests> lua -e "print(VERSION); t={nil,true}; print(#t)"
Lua 5.5
0

[C:\...\tests]> C:\Apps\OneLuaPro-5.4.8.3-x64\bin\lua.exe -e "print(
VERSION); t={nil,true}; print(#t)"
Lua 5.4
2

Bug or feature? I've also posted this issue into the lua-l list.

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