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
Help with replacing specific term in string

I'm modifying a World of Warcraft addon, and I have player-defined strings in the form of WoW macro conditionals, which generally take the form

[conditionA,conditionB][conditionC]action;[conditionD]action; action

When the conditions change the action, the game calls an onstate method and passes me a string of the active action. The actions I am expecting are:

"hide": hides the object
"shownumber": shows the object with an alpha of number percent
"showhigh", "showmed", and "showlow": show the object with an alpha based on config settings
"show": shows the object based on its player-assigned default alpha.

The issue is, due to anti-botting measures, I cannot call global variables in the onstate method. In order to reference the config, I take the conditional string and use string.gsub to replace "showhigh", "showmed", and "showlow" with "shownumber". So for example, by default "showhigh" becomes "show75" and is handled by the same code as "shownumber".

Similarly, I would like to replace "show" with "shownumber", where number is the default alpha. But I don't know how to do that with string.gsub because it would also replace "show" in most of the other actions.

My question is, how can I replace the term "show" in a string, but only if it is not followed by numbers? (It is possible that "show" will appear at the very end of the string.)

https://redd.it/1qp3p5c
@r_lua
mote - Lightweight HTTP server for Lua

I've been working on a standalone HTTP server for Lua/LuaJIT. It started as the core of a Backend as a service (BaaS) project I was building and I decided to extract it into a standalone library. It has Koa-style routing with URL params, onion middleware, and built-in support for CORS, JWT, rate limiting, and Server-Sent Events with pub/sub. Runs on Linux, macOS, and Windows. No nginx or openresty needed, though a reverse proxy is still recommended for TLS in production.

Example:

local mote = require("mote")

mote.get("/users/:id", function(ctx)
ctx.response.body = { id = ctx.params.id }
end)

mote.create({ port = 8080 }):run()

luarocks install mote

https://github.com/luanvil/mote

I'd love to hear what you think.

https://redd.it/1qnp6g9
@r_lua
LUA dynamic concatenation

Hello guys. I need to build a message in LUA that has fixed value of 240 characters. This message is composed by a variable lenght message that I have allready processed, but the rest has to be filled with the * character. So for example if my initial message is 100 characters, I need to fill the rest until 240 with the * character. If my message will be 200 characters, I need to fill 40 * until reaching 240.

How can this be achieved?

Thanks

https://redd.it/1qr2vgk
@r_lua
can anybody help me fix this piece of code

this code is suppose to look if the new ore thats currently generating and any existing ore are overlaping .but when i run it some times idoesnt work i need help

ores = {x = {}, y = {},durability = {} ,rotation = {},alive = {} , image = love.graphics.newImage("rock.png"),image2 = love.graphics.newImage("tree.png") ,class = {}}


local pos = {x = 0 , y = 0, blocked = false}


function ores:generate(repeats,mapsizex,mapsizey,mapX,mapY,class) --tree height is 32 and rock height is 16
    for i = 1 , repeats do
        pos.blocked = false
        pos.x = mapX + love.math.random(0,40) 30
        pos.y = mapY + love.math.random(0,20)
30


        for k = 1, #ores.x do
            if ores.rotationi ~= nil and ores.xk == pos.x and ores.yk == pos.y  or ores.rotationi ~= nil and pos.y + 30 == ores.yk and ores.xk == pos.x  then
                pos.blocked = true
                break
            end
        end


        if not pos.blocked and mapX + mapsizex > pos.x and mapY + mapsizey > pos.y then
            table.insert(ores.x, pos.x)
            table.insert(ores.y, pos.y)
            table.insert(ores.durability, 10)
            table.insert(ores.rotation, 0)
            table.insert(ores.alive, true)
            table.insert(ores.class, class)
        end


    end
end

https://redd.it/1qnfggo
@r_lua
Sharing my TIC80 lua language server stubs

https://codeberg.org/firns/tic80-lua-language-server-stubs

Hi, I made some LLS stubs for TIC80 because I use an external editor that isn't VS Code. For anyone else interested, my repo will explain how to use them, its super simple if your ide has language server functionality.

Hope this helps a few people!

https://redd.it/1qrf66x
@r_lua
Grid Fusion: little puzzle like triple town

hello just a little game in love2d

i want to recreate some kind of triple town game

it s simpliest than triple town

give me your opinion / advices about it

thanks

https://pouranat.itch.io/grid-fusion

https://redd.it/1qt49cu
@r_lua
removing specific iteration of one variable from table

so what i am doing is in the beginning of the program there's a variable "monsters", which is where a created instance of a "monster" variable is created. what i want is how to figure out how to remove the specific instance of a monster from an if then statement(during a collision). this is the code:

for i, bullet in ipairs(bullets) do

if bullet.x + 10 > monster.x and bullet.x - 10 < monster.x + 80 then

if bullet.y - 10 > monster.y and bullet.y + 10 < monster.y + 80 then

--what do i do

table.remove(monsters, i)

end

end

end

end

im sorry if this is a redundant question, also im using love2d but thats kinda irrelevant

thank you.


edit: i figured it out

https://redd.it/1qw0umi
@r_lua
I am making a new package manager for lua called LuaMoon

Hi everyone!

I’m working on LuaMoon, a lightweight Lua package manager that aims to improve on existing tools like LuaRocks. LuaMoon is designed to be compatible with Love2D, LuaJIT, and Lua, making it easier to manage libraries across different Lua environments using virtual environments.

It’s still in the early stages of development, so it’s experimental — it might be buggy or insecure, and things are changing rapidly. My goal is to make LuaMoon simpler, faster, and more user-friendly than what’s currently available.

I’d love to get feedback from the community! Any advice, suggestions, or ideas for features would be hugely appreciated. If you’ve been frustrated by LuaRocks or other Lua package managers, LuaMoon is meant to address some of those pain points.

Check it out here: https://github.com/MXD-K1/LuaMoon

Thanks for looking, and I’m excited to hear your thoughts!


https://redd.it/1qw1vbb
@r_lua
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