Lua - Reddit – Telegram
Lua - Reddit
31 subscribers
281 photos
31 videos
4.27K links
News and discussion for the Lua programming language.

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

Powered by : @r_channels & @reddit2telegram
Download Telegram
What is the diff between "hello"[1] and ("hello")[1]?

With the following code, I have two questions.

1. Why does it need a parenthesis around "hello"?
2. Why does it return nil for the second case?

​

$ lua -e 'local a = "hello"1; print(tostring(a))'
lua: (command line):1: unexpected symbol near ''

$ lua -e 'local a = ("hello")[1; print(tostring(a))'
nil

https://redd.it/1g5r2dl
@r_lua
Is there a way to target the current Linux window manager or desktop environment using Lua?

I am trying to write a Lua if statement based on what window manager is currently being used. It's for my wezterm config, so my terminal can work in both gnome and hyprland. Here is an example of what I'm trying to attempt.

if (--[window_manager=hyprland--])
then
config.enablewayland = false
else
config.enable
wayland = true
end

https://redd.it/1g61wdl
@r_lua
How to add a specific value from a table within a table

I'm new to LUA (learning to do it to do stuff in stormworks) and I need to figure out how to add the first value from all values of a table within a table which doesn't have a specified length. I keep trying to look up various YouTube videos and online guides but they're all either lacking this example or they use language completely unfamiliar to me since I don't have a coding background whatsoever.

These are not map coordinates

For example:

Table = {{A1,B1}, {A2,B2}... {AN,BN}}

I want to add all of the A values together.

And separately I want to add all of the B values together. I know how to do it when its just a standard table but my brain breaks trying to figure out how to do it when it's a table within a table.

Thanks for any help in advance!

https://redd.it/1g6uhh1
@r_lua
Code issues (LUA 5.1)

Using an old macro program in WoW. Having issues with this code, and i'm not a coder. It seems to be complaining about the random() and randomseed() commands. Plus it doesn;t like building indicies. I didn't write this, I pared down someone else's free macro code just to get something working to learn from.

I am limited to LUA 5.1 unfortunately. I'm guessing this code is much newer.

Any help would be appreciated. Thanks!

-- Initialize random seed for Lua 5.1
math.randomseed(os.time())

mountListGround = {
"Black War Bear",
"Purple Hawkstrider",
"Black War Wolf",
"Summon Charger",
"Traveler's Tundra Mammoth"
}

mountListFlying = {
"Green Proto-Drake",
"Blue Wind Rider",
"Albino Drake"
}

-- First run after reloading - getting indices
if not builtIndices then

mountListGroundIndices = {}
mountListFlyingIndices = {}
mountListWintergraspIndices = {}

for i = 1, GetNumCompanions("MOUNT") do
local id, name = GetCompanionInfo("MOUNT", i)
if tContains(mountListGround, name) then
tinsert(mountListGroundIndices, i)
if name ~= "Purple Hawkstrider" then
tinsert(mountListWintergraspIndices, i)
end
end
if tContains(mountListFlying, name) then
tinsert(mountListFlyingIndices, i)
end
if name == "Traveler's Tundra Mammoth" then
tundraIndex = i
end
end
builtIndices = true
end

-- Random CallCompanion alias
function callMount(indexTable)
CallCompanion("MOUNT", indexTablemath.random(#indexTable))
end

-- Dismounter
if not IsFlying() and IsMounted() then
Dismount()
end

-- Main function
if not InCombatLockdown() then
cancelShapeshifts()
if IsAltKeyDown() then
CallCompanion("MOUNT", tundraIndex)
else
if not IsFlyableArea() then
callMount(mountListGroundIndices)
else
if not IsFlying() then
if IsShiftKeyDown() then
callMount(mountListGroundIndices)
else
if GetZoneText() == "Wintergrasp" and not GetWintergraspWaitTime() then
callMount(mountListWintergraspIndices)
else
callMount(mountListFlyingIndices)
end
end
end
end
end
end

https://redd.it/1g7l88u
@r_lua
What's the best way to learn Lua?

I'm new to Lua and I'd like to learn it. I have almost no experience with coding except for a bit that I learned from Roblox coding tutorials on Lua. I'd like to learn Lua 5.3, since I heard that Lua 5.4 has some drawbacks that are not good. I'd like to know the best way to learn Lua. I want to learn Lua, to where I can use it professionally and have the deepest understanding of it. I'm thinking after I'm done; I want to build games. I would appreciate any help with this. I'm thinking of learning it from YouTube tutorials like this one: (55) Crash Courses - YouTube, but I'd like to know what would work the best.

https://redd.it/1g7oc7f
@r_lua
my first coding language to learn

Is lua a good starting language to learn and will it help in learning other languages or should i start learning another one

does roblox engine need an expert in lua or just a good knowledge



https://redd.it/1g8uuv6
@r_lua
My new project: LuAssembly

I want to make machine code writing accessible and enjoyable for everyone. My idea is to create a "language" based on Lua's syntax, which will then be converted into an assembly (.asm) file using C++. Afterward, the NASM assembler will turn it into a binary (.bin) file. Does this sound like a good idea?

https://redd.it/1g95yt7
@r_lua
YMT FILES

Hello,

I'm seeking help with modifying .ymt files in Red Dead Redemption 2, specifically for RedM compatibility. Below is a portion of the binary code from a functional .ymt file that works in both story mode and RedM:

PSIN..RP.................".".............c+¡....................ëÁ᛬#.Ú................?€......................?€......ÿÿ................................

I successfully modified the player_three.ymt file, and while it works perfectly in story mode, the character becomes invisible in RedM. I suspect the file is likely becoming corrupted because it's not encrypted as RedM requires. Even OpenIV cannot open the corrupted version, flagging it as a corrupted file.

Any help or insight on how to properly encrypt .ymt files or make them compatible with RedM would be greatly appreciated.

https://redd.it/1g9h7ed
@r_lua
Updates about my project: LuAssembly

I started making the lexer and the parser (On python, because I felt more comfortable to do it with), and I thought and realized that the language wasn't as "Lua-Like" as I initially intended. So I decided to rebrand i'ts name. Unfortunately, because of the subreddit rules, I won't be able to keep updating everyone here. The new name is... .FAST (Fast Assembly Source Translator). I'll post the Github link soon to keep everyone updated.

https://redd.it/1g9xv2t
@r_lua
Is Lua stil used for ML

As a data scientist I knew at the back of my head that one of the most popular Python libraries in ML, PyTorch, started as a Lua package named Torch. It seems that since then the field left Lua completely and turned to Python, a bit of Julia and R, maybe Matlab and C/C++ for embedded stuff.

I came to Lua via Neovim a year ago. Using it, and enjoying it, made me wonder - are there any ML/DS people using Lua these days?

https://redd.it/1ga62t3
@r_lua
Where can I learn how to make a text based game?

I noscript in Roblox Studio, and I want to try to make a text based RPG in a Lua IDE, problem is that the only Lua stuff I know is purely from Roblox Studio, and thus I have no idea what to do.

https://redd.it/1gb4czi
@r_lua
JSON library for Reddit?

I'm experimenting with API on Reddit and used dkjson, but I got parsing errors. I don't get any errors with Go's native equivalent, so I assume that the very long/complex Reddit response might trigger a bug in dkjson. What alternative do you recommend? (luarocks has tons of them)

https://redd.it/1gbncz7
@r_lua
How to deobfuscate an MLO mod from FiveM?

I recently purchased an MLO mod and tried to make it work in GTA V singleplayer (it is a house mod) And after doing research, found out that it is being obfuscated and encrypted.

these are the contents of the folder:

fxmanifest.lua

.fxap

-tream

From my research, i would want to decrypt the manifest.lua? But when i open it with notepad or visual code, it just says this:

fx\_version 'cerulean'

game "gta5"

author 'brofx'

denoscription 'brofx\_mansion\_20'

version '1.1.2'

this\_is\_a\_map "yes"

dependency '/assetpacks'

Visual code will open the .fxap into this:

# FXAP �����6����� ڝA� ��6ӵ Q^Iq� �B)�� �<���8U�~�T�œ}X���U%1��A ,�    n_�S���|w�k�U52 �~��.���v [0�C�3��C� �� �mO _� ��׌'�?��ӽ���Y٫ �4

# M�� � l\�T ��Qs�"�����{󓧵ߤn<



any way i can decrypt this to work in singleplayer?

i really want to play this in singleplayer and it cost a lot so i would be bummed out that i would not be able to get this to work. thank you all.



UPDATE: I found out that in order to decrypt, i must decrypt the .YDR files, im not certain where i would start or how different it would be to decrypt these .YDR files.

https://redd.it/1gbohar
@r_lua
Need advice for Windows + Busted + GitHub workflows

I'm trying to setup a test matrix for Windows + Linux + MacOS for lua unitests, using busted

My best attempt so far is viewable here, I got lua + luarocks installed, I'm installing the test dependencies from my .rockspec file. But it fails to build. The only error I see in the log is Error: test suite failed. The line is in the middle of a bunch of logs and the noscript keeps running but ultimately fails with exit code 1.

I have some questions about this

1. Which dependency failed to run the test suite? From the log it looks like it's a package called say. Just want to make sure I'm reading this correctly.
2. Is an error like that generally ignorable? I could completely silence the error because I could silence something important later.
3. If you know of a working "(Windows + Linux + MacOS) * Busted * GitHub" I would love to see a link to it!

https://redd.it/1gceyzj
@r_lua
Recursive directory watching

Hi guys, I'm looking for a Lua library that can watch directory recursively as luv doesn't support that feature in Linux. Thank you so much!

https://redd.it/1gch7x0
@r_lua
I can't get this program to work

https://github.com/veethree/KDP this is a keyboard only pixel art editor that i have been trying to use but no matter what i do with Lua nothing happens, i installed Lua for windows with this: https://github.com/rjpcomputing/luaforwindows/releases/tag/v5.1.5-52 but no matter what i do i can't use any lua files in the folder, double clicking does nothing, using cmd, powershell, and the lua thing it gave me on the desktop does nothing, i don't know what to do

https://redd.it/1gctr31
@r_lua
I made a version of the YCTP from Baldi's basics in Lua

https://preview.redd.it/1yebx16308xd1.png?width=1920&format=png&auto=webp&s=bb38973f01f9a21970bcbba11df637b6d269e4e3

print("Problem One, 7+2=?")
Answer = io.read("n")
if Answer == 9 then
print("Great job!")
print("Problem two, 2+3=?")
end
Answertwo = io.read("n")
if Answertwo == 5 then
print("You might be smarter than me!")
print("Problem two, 4-1=?")
end
Answerthree = io.read("n")
if Answerthree == 3 then
print("Wow, you exsist")
end

https://redd.it/1gd2cs6
@r_lua
finding better syntax

>< ideal >
if mission_temp.reward[index_mission\] == (nil or 0)

>< real >
if mission_temp.reward[index_mission\] == nil or mission_temp.reward[index_mission\] == 0

how can you deal with?

https://redd.it/1gdjpbu
@r_lua
What is the best way to learn how to use the lua
https://redd.it/1gdqfqx
@r_lua
PLEASE HELP MEEEEEEEEEEEEEE

function love.load()
math.randomseed(os.time())
love.window.setFullscreen(true)

bullets = {}

player = {}
player.width = 25
player.height = 25
player.x = love.graphics.getWidth() / 2 - player.width / 2
player.y = love.graphics.getHeight() / 2 - player.height / 2
player.speed = 350

gun = {}
gun.width = 15
gun.height = 10
gun.x = player.x + player.width
gun.y = player.y + player.height / 2 - gun.height / 2
gun.speed = player.speed

count = 0
fireRateCount = 0
fireRateTimer = 1
bulletdirection = "right"
gun
direction = "right"

wave = 0
enemies = {}
kills = 0
gameOver = false
pierceshot = false
upgrades = {"piercing","bulletspeed","playerspeed","bulletdamage"}
upgrade = 0
bullet
speed = 500
bulletdamage = 1
wave
update()
end



function love.update(dt)
if #enemies == 0 and wave > 0 then
    upgradeSelect()
    waveupdate()
end

count = count + dt
fireRateCount = fireRateCount + dt



if fireRateCount >= fireRateTimer then
    createBullet()
    fireRateCount = 0
end

--enemy movement
for i, v in ipairs(enemies) do
    if v.x >= player.x - 10 and v.x <= player.x + 10 then
        v.x = v.x + v.close
horspeed * dt
    elseif v.x < player.x then
        v.x = v.x + v.hor
speed dt
    elseif v.x > player.x then
        v.x = v.x - v.hor_speed
dt
    end
    if v.y >= player.y - 10 and v.y <= player.y + 10 then
        v.y = v.y + v.closevertspeed dt
    elseif v.y < player.y then
        v.y = v.y + v.vert_speed
dt
    elseif v.y > player.y then
        v.y = v.y - v.vertspeed * dt
    end
end
for i in ipairs(enemies) do
    if checkCollision(player,enemies[i]) == true then
        gameOver = true
    end
end

for e =
#enemies, 1, -1 do
    for i =
#bullets, 1, -1 do
        if checkCollision(bullets[i],enemies[e]) == true  and enemies[e].hit == false then
                enemies[e].health = enemies[e].health - bullets[i].damage
                enemies[e].hit = true
        elseif not checkCollision(bullets[i],enemies[e]) then
            enemies[e].hit = false
        end

        if enemies[e].health <= 0 then
            table.remove(enemies,e)
            kills = kills + 1
        end

        if pierce
shot == false then
            table.remove(bullets,i)
        elseif checkCollision(bulletsi,enemiese) == false then
            enemiese.istouching = false
            bullets[i].is
touching = false
        end
        break
    end
end

for i = #bullets, 1, -1 do
    if bulletsi.y <= 0 then
        table.remove(bullets,i)
    elseif bulletsi.x <= 0 then
        table.remove(bullets,i)
    elseif bulletsi.y >= love.graphics.getHeight() - bulletsi.height then
        table.remove(bullets,i)
    elseif bulletsi.x >= love.graphics.getWidth() - bulletsi.width then
        table.remove(bullets,i)
    end
end
--player movement
if love.keyboard.isDown("w") then
    player.y = player.y - player.speed dt
    gun.y = gun.y - gun.speed
dt
end
if love.keyboard.isDown("s") then
    player.y = player.y + player.speed dt
    gun.y = gun.y + gun.speed
dt
end
if love.keyboard.isDown("a") then
    player.x = player.x - player.speed dt
    gun.x = gun.x - gun.speed
dt
end
if love.keyboard.isDown("d") then
    player.x = player.x + player.speed dt
    gun.x = gun.x + gun.speed
dt
end

love.keypressed(key)

for i, v in ipairs(bullets) do
    if v.direction == "up" then
        v.y = v.y - v.speed dt
    elseif v.direction == "right" then
        v.x = v.x + v.speed
dt
    elseif v.direction == "down" then