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

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

Powered by : @r_channels & @reddit2telegram
Download Telegram
the game, you can't transfer any money to or from them.\nThis program doesn't keep track of any properties or houses. You'll have to do that yourself. This is only for counting money. This program is also not designed to keep track of any money in the \"Free Parking\" space. Sorry, folks.\nTo read this again, type in \"info\". Otherwise, type in \"start\" to get started.")
elseif Input1 == "start" then
print("Let's get started!")
break
else
print("Sorry, bad input. Can you try that again?")
end
end

print("How many players do you have? Put in a number between 2 and 6.")
Amount = InputRange(2, 6)

print("What are your players' names?")
for i = 1, Amount do
while true do
Input3 = io.read("*l")
if Input3 == "Bank" then
print("Sorry, that's the bank's name! Try a different name. Perhaps a nickname?")
elseif Players[Input3] == 1500 then
print("Sorry, that name's taken! Try a different name. Perhaps a nickname?")
else
Players[Input3] = 1500
break
end
end
end

print("Let's play the game!")
DisplayTable(Players)
while true do
while true do
print("Who gained money?")
GainedMoney = FilterName(Players)
LostMoney = NeedTwoNames(GainedMoney, Players)
print("How much money?")
MoneyChange = InputRange(0, 1000000)
if LostMoney ~= "Bank" and MoneyChange >= Players[LostMoney] then
print("This will bankrupt " .. LostMoney .. ". Are you sure? Type \"yes\" or \"no\".")
ConfirmChoice = io.read("l")
if ConfirmChoice ~= "yes" and ConfirmChoice ~= "no" then
print("Try again. \"yes\" or \"no\"")
elseif ConfirmChoice == "no" then
print("Then let's try this all over again")
break
else
MoneyChange = Players[LostMoney]
NotBank(GainedMoney, LostMoney, MoneyChange, Players)
break
end
else
NotBank(GainedMoney, LostMoney, MoneyChange, Players)
break
end
end
DisplayTable(Players)
Winner = WinnerCheck(Players)
if Winner ~= false then
print(Winner .. " has won!")
break
end
end-- a counter for monopoly money


-- this table contains all the players' names
Players = {}


-- this function displays the remaining money of all the players in the game
function DisplayTable(table)
for k,v in pairs(table) do
if v == 0 then
print(k .. " is bankrupt")
else
print(k .. " has " .. v)
end
end
end


-- this function checks a name against the table of names to see if you put in a valid input
function FilterName(table)
while true do
Name = io.read("l")
if Name ~= "Bank" and table[Name] == nil then
print("I don't recognize that name. Try a different name.")
elseif table[Name] == 0 then
print("That player is bankrupt! Try a different player.")
else
return Name
end
end
end


-- this function checks your input and filters it into a number between a specified range
function InputRange(start, stop)
while true do
Input = math.tointeger(io.read("l"))
if Input == nil then
print("That's not a valid input. Please try again.")
elseif Input < start or Input > stop then
print("That number is out of range. Please try again.")
else
return Input
end
end
end


-- this function filters out the bank every time money changes
hands
function NotBank(gained, lost, amount, table)
if gained ~= "Bank" then
table[gained] = table[gained] + amount
end
if lost ~= "Bank" then
table[lost] = table[lost] - amount
end
end


-- this function makes sure that you don't put the same name twice for gaining and losing money
function NeedTwoNames(gained, table)
while true do
print("Who lost money?")
Lost = FilterName(table)
if gained == Lost then
print("You need two different names here.")
else
return Lost
end
end
end


-- this function checks to see if someone has won the game
-- this function isn't designed to handle what might happen if everyone went to zero, but hopefully that won't happen
function WinnerCheck(table)
StillAlive = 0
Winner = nil
for k, v in pairs(table) do
if v ~= 0 then
Winner = k
StillAlive = StillAlive + 1
if StillAlive > 1 then
return false
end
end
end
return Winner
end



print("Welcome to Monopoly Money Counter, the noscript that counts your money so you don't have to!\nTo read the full instructions, type in \"info\". Otherwise, type in \"start\" to get started.")
while true do
Input1 = io.read("l")
if Input1 == "info" then
print("When you start the game, you'll be prompted to enter in the names of 2 to 6 players. After entering in names, you'll then have the option of transferring money to and from players, either between players or between the player and the bank, named \"Bank\". Speaking of which, don't name any of your players \"Bank\", since that name is taken!\nIf a player would reach 0 dollars, you'll be asked to confirm whether or not you want that to happen, because going to 0 means that the player is bankrupt and out of the game. Once a player is out of the game, you can't transfer any money to or from them.\nThis program doesn't keep track of any properties or houses. You'll have to do that yourself. This is only for counting money. This program is also not designed to keep track of any money in the \"Free Parking\" space. Sorry, folks.\nTo read this again, type in \"info\". Otherwise, type in \"start\" to get started.")
elseif Input1 == "start" then
print("Let's get started!")
break
else
print("Sorry, bad input. Can you try that again?")
end
end


print("How many players do you have? Put in a number between 2 and 6.")
Amount = InputRange(2, 6)


print("What are your players' names?")
for i = 1, Amount do
while true do
Input3 = io.read("*l")
if Input3 == "Bank" then
print("Sorry, that's the bank's name! Try a different name. Perhaps a nickname?")
elseif Players[Input3] == 1500 then
print("Sorry, that name's taken! Try a different name. Perhaps a nickname?")
else
Players[Input3] = 1500
break
end
end
end


print("Let's play the game!")
DisplayTable(Players)
while true do
while true do
print("Who gained money?")
GainedMoney = FilterName(Players)
LostMoney = NeedTwoNames(GainedMoney, Players)
print("How much money?")
MoneyChange = InputRange(0, 1000000)
if LostMoney ~= "Bank" and MoneyChange >= Players[LostMoney] then
print("This will bankrupt " .. LostMoney .. ". Are you sure? Type \"yes\" or \"no\".")
ConfirmChoice = io.read("l")
if ConfirmChoice ~= "yes" and ConfirmChoice ~= "no" then
print("Try again. \"yes\" or \"no\"")
elseif ConfirmChoice == "no" then
print("Then let's try this all over
again")
break
else
MoneyChange = Players[LostMoney]
NotBank(GainedMoney, LostMoney, MoneyChange, Players)
break
end
else
NotBank(GainedMoney, LostMoney, MoneyChange, Players)
break
end
end
DisplayTable(Players)
Winner = WinnerCheck(Players)
if Winner ~= false then
print(Winner .. " has won!")
break
end
end

So far, it seems to work! What I'd like help on is making it better. When you look at this, how would you make it prettier or more efficient? Does anything stand out to you as a bad thing to do? Are there any bugs that I've missed?

Thanks in advance for your time. This language is fun!

https://redd.it/1j1wnbg
@r_lua
Full Program in Pure Lua?

I want to make a simple, shippable program in pure Lua, but for the life of cannot find how to do it.

I'm new to Lua and have been loving it. I was introduced to it through the Love game framework and want to use it to make more little CLI apps, but I can't find how to package things into a single file executable that I could easily share. The only way I know how to run a Lua program is 'lua file.lua' How can I turn Lua files into a packaged and installable program?

Is luarocks my answer? It feels like a thing for libraries and not full programs, or do I misunderstand it?

Are pure Lua programs not really the language's intend use case?

Thanks!

https://redd.it/1j1ze8s
@r_lua
Lua book for including into C

Hi all,

Im busy building an embedded system and the noscripting language on top of it will be lua. Lua rocks and i want to enable more people to work with electronics controlled by lua.

However im at the stage of implementing it into my c code and im looking for a book specific about that part of lua. Any recommendations?

https://redd.it/1j23r70
@r_lua
MDT Pull Assist

Hello everyone,

can anyone tell me if something like this still works? (https://wago.io/qy8R3Dmgl) I'm trying to make a WA with ChatGPT that marks the MDT pulls for me, or has this been disabled?

Best regards
Bene

https://redd.it/1j361cc
@r_lua
can you learn lua as 13 year old?

im a ninth grader that would like to learn lua for obiously a roblox game, however is it possible for me to do so? ill probably be too busy w school to learn every day but it will be like 4 or 3 times per week? im also pretty decent at math (but i can go back to learn old things that i never understood if needed) and i dont think im THAT dumb

https://redd.it/1j3j2ci
@r_lua
Need an edit for a .lua folding function

Hello everyone,


I am currently working with a conky on my Linux box that employs .lua. Currently it takes a paragraph of weather conditions denoscription and splits it into 4 rows of text. It currently breaks at 20, 40, and 60 characters, but this causes words to be split into two rows of text. I have been working with chatGPT, asking it to edit so that the break occurs at the closes space to the 22nd character, but all its solutions do not work.


Non working examples:

${execi 60 sed -n '6p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast | awk '{print substr($0, 1, match(substr($0, 1, 22), /[^ ]*$/) - 1)}'}${goto 135}${execi 60 sed -n '13p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast | awk '{print substr($0, 1, match(substr($0, 1, 22), /^ $/) - 1)}'}${goto 255}${execi 60 sed -n '20p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweather_conky_noscript/daily_forecast | awk '{print substr($0, 1, match(substr($0, 1, 22), /[^ ]$/) - 1)}'}

${execi 60 sed -n '6p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast | awk '{match(substr($0,1,22), /.* /); print substr($0,1,RSTART-1)}'}${goto 135}${execi 60 sed -n '13p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast | awk '{match(substr($0,1,22), /. /); print substr($0,1,RSTART-1)}'}${goto 255}${execi 60 sed -n '20p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweather_conky_noscript/daily_forecast | awk '{match(substr($0,1,22), /. /); print substr($0,1,RSTART-1)}'}


Here is the line I need edited:

${execi 60 sed -n '6p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast|cut -c1-20}${goto 135}${execi 60 sed -n '13p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast|cut -c1-20}${goto 255}${execi 60 sed -n '20p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast|cut -c1-20}
${execi 60 sed -n '6p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweather
conkynoscript/dailyforecast|cut -c21-40}${goto 135}${execi 60 sed -n '13p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast|cut -c21-40}${goto 255}${execi 60 sed -n '20p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast|cut -c21-40}$font
${execi 60 sed -n '6p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast|cut -c41-60}${goto 135}${execi 60 sed -n '13p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast|cut -c41-60}${goto 255}${execi 60 sed -n '20p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast|cut -c41-60}
${execi 60 sed -n '6p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweather
conkynoscript/dailyforecast|cut -c61-80}${goto 135}${execi 60 sed -n '13p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast|cut -c61-80}${goto 255}${execi 60 sed -n '20p' /home/logansfury/.conky/forlogan/conky/barographe/Accuweatherconkynoscript/dailyforecast|cut -c61-80}

Can anyone help?


Thank you for reading,

Logan



https://redd.it/1j3llx4
@r_lua
Is it possible?

So, if there is an IDE, that like, lets you make a game with LUA, that isn't LOVE2D, or ZeroBrane Studio, I wanna know, because I wanna take the challenge.

https://redd.it/1j3y01d
@r_lua
Love2d or defold?

After I read this kind of question many ppl always recommend love2d or defold and I can’t decide😅.
I have some little experience in game dev using pygame python and unity
I plan to make 2d game and I see a lot of u guys recommend both of these
So I want to focus only one tools(I’m really bad at learning many things in same time)
Can you tell me pros and cons? Which should I choose? Thx a lot

https://redd.it/1j4ncfj
@r_lua
Best OpenGL binding for LuaJIT?

I'm looking to mess around with a simple 3D voxel renderer/engine in Lua, just for fun. My first step is to find an opengl binding, and so far I only found the following two:

https://github.com/nanoant/glua
https://github.com/sonoro1234/LuaJIT-GL

The first one seems a bit more involved but was last updated 12 years ago. The second was last updated about 6 months ago.

I currently have close to zero experience in OpenGL (hence, this learning excersive) so I'm not sure how to compare the two. Any pointers or guidance would be much appreciated!

1. Do you have an opengl Lua binding (that supports LuaJIT) which you would recommend?
2. If not, which of the two above would you recommend?
3. Or, if the two above are both for some critical reason unusuable, would you recommend I make my own FFI bindings instead?

Note that I do not care which OpenGL version it uses (so something above 1.x would be preferable), and that it needs to have LuaJIT support, not just PUC Lua (So moongl is out of the question).

Thanks!

https://redd.it/1j4y6dn
@r_lua
i'm very new to coding in Lua, and i have a couple questions about it.

the first image is from a lua learning game in Roblox, where "MyPart" is the part we were working with, the second one is from the same game, and i have a few questions about the logic of lua. (feel free to correct me if im wrong in any type of way!!)

First of all, what is "Workspace"?

Why the periods after some words, and why those words? (first pic)

Why do i have to make some words go under others? (check second pic for refrence)

i could go on, and on because there are so many random things in lua that i'm just supposed to know for some reason i guess.

https://redd.it/1j50576
@r_lua
Is lua good in 2025 for learning as new developer?

I have a solid understanding of golang and java and i have made couple of projects with it, recently i came across lua and everyone says that its so underrated and can be use in so many other things , but all i can find is people are using this mostly for game development , and i don't want to follow that track , so will it be good learning lua as a new developer for building different projects apart from game dev, Thanks! : )

https://redd.it/1j557eh
@r_lua
No LuaLS workspace found

How to use the Lua language server in my lazyvim?

Do I need to have a LuaLS workspace in my .config/nvim or a workspace in every project??

Does anyone use Lazyvim and is getting the same error using Lua 5.4.7?


LazyDev does it have a UI similar to "lazyExtras"?
Why isn't the "lazydev" screen showing up? What do I need to fix to make it work?

https://preview.redd.it/uzqrs1rwv4ne1.png?width=812&format=png&auto=webp&s=1ce34754bdeb25ce54d7ec7bbc5b25cf04ee7f21



https://redd.it/1j566mx
@r_lua
Lua Meetup in Bay Area at Roblox

Hey everyone - I work at Roblox, and we want to host a meetup at our office in San Mateo with food, drinks, and speakers. Would anyone local be interested in attending? We also have several open front-end developer roles that we are looking to fill. Let me know if you're interested / want to learn more.


https://redd.it/1j5827w
@r_lua
Help: LuaMacros - "rCtrl"/"lCtrl" not sending commands

I have been using LuaMacros for a couple of years now, and have an issue that I haven't been able to solve

Correct function example: When I press the "x" key on my second keyboard, LuaMacros sends binds "x" to F24 (there's no key for F24, but the system still recognizes it, so it's great for this application). An AutoHotkey noscript then reads that txt file, reads "x", and executes the operation I have specified.

Broken Fuction: Same as above, when I press the right "Ctrl" key on my second keyboard, LuaMacros sends binds "rCtrl" to F24. An AutoHotkey noscript then reads that txt file, reads "rCtrl", *but the operation does not execute.*

This issue occurs with the following key presses: r / l Control, r / l Shift, Escape, Alt, Windows key

What I have tried:

* I have confirmed that LuaMacros is indeed sending "rCtrl" by looking in the txt file it writes to.
* I have changed the code in LuaMacros to send a functioning character, "x", to see if the problem was with rCtrl" being sent. Still does not function.
* I have tried a completely unused character, "!", to see if the problem was with rCtrl" being sent *and* it needed to be a unique character. Still does not function.

I cannot figure this out. Driving me crazy. Any insight would be very helpful. Thank you!

https://redd.it/1j54331
@r_lua
tutorial hell

I am an absolute beginners

I mean, I know the very basics, Variables, math, functions, for loops, while loops, if/else statement...

But all I do is remember how to type a line of code

When I sit down and try to explore something or do something on my own, nothing comes to my mind. I get immersion is important and I want to try to figure out bits by myself. But all I end up typing is a line from whatever tutorial I saw and read.

https://redd.it/1j5crmx
@r_lua
How to start making games and stuff with lua for free?

I know theres roblox but try to avoid saying roblox or anything related to roblox, as im not a fan of the company.

Hello im a young adult with autism (if that maters), i struggle to learn things and be creative but yet i want to make a game or something of that nature. I still want to bypass theses struggles but where do i start with lua? i want to explore 2d and 3d but i feel like lua dosent offer much for 3d, i could be wrong.

https://redd.it/1j5ektj
@r_lua
Gmod LUA

Anyone able to tell me why this doesn't work???

function(ply)

if IsValid(ply) then

local pname = ply:Nick() -- Get the player's name

RunConsoleCommand("sa", "setrank", pname, "verified")

end

end



ERROR:

[mc_simple_npcs\] addons/mc_simple_npcs/lua/mcs_npcs/sh_npcspawn.lua:78: attempt to call method 'Nick' (a nil value)

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