Finally someone does a tutorial series on this. I needed it so bad. I wished that you do this kind of LUA tutorials a while ago but I didn't want to bother you so I didn't ask for it. Amazing work! Hyped for the future tutorials :)
I know you probably won’t see this, but thank you for everything you’ve done for this community. Your tutorials are easy to follow and understand, and you explain things in a way that just makes sense. I went from knowing nothing about coding to making my own computer screen purely out of code. Thank you, NJ.
Amazing! I am super glad that you have decided to dedicate a series to this, to promote our understanding of this! I really needed this! Keep up the nice work : )
Is there a good source to learn about loops? I'd like my code a bit elegant but I have studied to become a chemical engineer and not a programmer so there is much to learn.
@@mortisCZ for i = 1, 5, 1 do //your repeating code here end How this works? Pretty easy. First comes For, this is loop itself. First argument (i = 1) is starting point for our loop, second one (5) determines where to stop loop (can be not only a number but a variable too), last one (1) is the number (it also could be a variable), which will be added to iterator (variable i which we initialized before in loop) every loop. And your code executes from "do" to "end". Example: for i = 1, 5, 1 do print(i) end This code will output: 1 2 3 4 5. Feel free to ask more, I'll be happy to help (I'm a programmer btw)!
Instead of String format, you can use math.floor here is how to use it: With this data fed in: X = 5.7896431056 Y = 12.7896431056 Instead of having this: gpsX = input.getNumber(1) gpsY = input.getNumber(2) Output = 5.7896431056 12.7896431056 Use this: gpsX = math.floor(input.getNumber(1)) gpsY = math.floor(input.getNumber(2)) Output = 5 12 I hope that makes sense.
if you want to type less, then instead of typing out your draw functions five more times simply concatenate your Strings e.g "screen.drawTextBox(1, 1, w, 6, "Fuel: " .. string.format("%0.0f", fuel))", The two periods after the "Fuel" are the Concat operator for Lua.I also left out the H_Sync, and V_Sync as when left out they default to the upper left if anyone would like to know how String concatenation works please let me know and i'll be happy to discuss it :)
I don't know if this works in stormworks lua but in the original lua you can put variables behind text by closing your quotation marks and writing two dots and the you can write your variable behind the dots
It is better to use CamelCase (first letters of words are capital and words are together) for public variables (without "local" before name of the variable, so it can be used in entire script and not only in the one function) and pascalCase (first letter always not capital but first letters of other words still capital, and words are still together) for private ones (local myVariable = 2 + 2). Also, it isn't so good to use such short variable names if word more than 4 letters long, this can very decrease readability of code by others.
as any experienced coder would say, please do not include spaces in the variable names, periods, or any symbols (numbers are fine), it will cause the code assume that that was where the variable name ends and it will produce an error saying it needs to be an = sign if im not wrong, i havent coded LUA in so long i dont even know anymore
Can you also make a tutorial of the helpful lua site for stormworks. And a position hold system so your ship could stay in place. Thanks for the helpful vid.
I remember trying to make a Lua map but somewhere while copying it I slipped up and it didn't work. Little did I know that control C control V existed😅
save your pincode in a memory block or use a constant number. subtract real pincode from guessed pincode, if answer is 0, the pincode was guessed correctly e.g. 1234 - 1234 = 0 1234 - 1235 = -1 1234 - 3782 = (not zero) then only open door if result is 0
So I have a question, I input all of the code correctly and the screen messes up as such it goes backwards. meaning the display is flipped and i dont know how to fix, Should I contact devs?
Can you connect multiple screens to the same video output of the microcontroller? If yes, what will the width and height read if they're different in size?
Just did it now The results gave me a whole new idea on how lua-video works I made a lua controller which displays the connected screens width n height and hooked it to 3 screens with different dimensions (1×1, 1×2, 3×3) Each screen displayed its own width and height (32 32, 64 32, 96 96) Thanks for giving this idea
Amazing video, i have one stupid question. There is Power Consumption in the game? And if so, how i can write it to the screen. So i can see if my generator is keeping up with the consumption
Hello, am I the only one not getting the stats from the engine 19:56 ? I use a 4 engine setup. I’m doing it step by step in as in the video but still it doesn’t work for me. Any suggestions?
I get the blue screen whenever I test the monitor. It gives me an error on line 13 saying "Attempt to call a nil value (field "SetColor")". Does anyone know how to fix this? Here is my script. -- Tick function that will be executed every logic tick function onTick() RPS = input.getNumber(1) Battery = input.getNumber(2) Fuel = input.getNumber(3) Temp = input.getNumber(4) end -- Draw function that will be executed when this script renders to a screen function onDraw() w = screen.getWidth() -- Get the screen's width and height h = screen.getHeight() screen.SetColor(0, 0, 0) screen.drawClear() screen.SetColor(200, 200, 200) screen.drawTextBox(1, 1, w, 6, "RPS", -1, 0) screen.drawTextBox(1, 8, w, 6, "Battery", -1, 0) screen.drawTextBox(1, 15, w, 6, "Fuel", -1, 0) screen.drawTextBox(1, 22, w, 6, "Temp", -1, 0) screen.drawTextBox(1, 1, w-6, 6, string.format("%.0f", RPS), 1, 0) screen.drawTextBox(1, 8, w-6, 6, string.format("%.0f", Battery), 1, 0) screen.drawTextBox(1, 15, w-6, 6, string.format("%.0f", Fuel), 1, 0) screen.drawTextBox(1, 22, w-6, 6, string.format("%.0f", Temp), 1, 0) end
@@MrNJersey I finally got it to work. I had to rewrite the entire script & somehow, when I changed the (1, 8, w-6, 6) to (1,8,w,6) and then change it back. I no longer got the blue screen. I think this might be some sort of bug when coding in Lua, not sure if anyone else had this issue. But thanks for the help! I look foward to more tutorials :)
When I add a string format thing, I get an error. It says, “bad argument #2 to ‘format’ (number expected, not gil)” Everything is copied exactly the same as yours is
as a person with a coding friend, then kinda yea. I do belive there are some much easier languages to learn, Lua is primarily used in games like Stormworks since it's easy to implement
@MrNJersey can u copy the script and paste it here as pinned comment for me to copy and paste its ins tormworks because it does not work for me idk why. Every time i start the monitor it says that it has an error PLSSSSSSSSSSSSSS AND THX
Finally someone does a tutorial series on this. I needed it so bad. I wished that you do this kind of LUA tutorials a while ago but I didn't want to bother you so I didn't ask for it. Amazing work! Hyped for the future tutorials :)
More screen Tutorials
I don’t even own the game, but these vids are just so interesting
get the game! you won't regret it
I bought it yesterday lol
@@yous1034 Noice, hope you like it, personally I LOVE the game : )
Bought it today and it didn't fail to entertain me, so if you haven't you should. You won't regret it, and sandboxes are always fun.
Quick get it the price will rise get it before it rises
I know you probably won’t see this, but thank you for everything you’ve done for this community. Your tutorials are easy to follow and understand, and you explain things in a way that just makes sense. I went from knowing nothing about coding to making my own computer screen purely out of code. Thank you, NJ.
I was baited into programming when I bought this game, but still i'm proud of myself by learning something new, nice video!
Good video, man. I've been avoiding Lua, cause it's a headache, but thanks to you it's a little easier to get into it.
Amazing! I am super glad that you have decided to dedicate a series to this, to promote our understanding of this! I really needed this! Keep up the nice work : )
Beautiful! Btw instead of copy-pasting code you can use loops, that will make your code more concise, flexible, and easy to read.
Is there a good source to learn about loops? I'd like my code a bit elegant but I have studied to become a chemical engineer and not a programmer so there is much to learn.
@@mortisCZ for i = 1, 5, 1 do
//your repeating code here
end
How this works? Pretty easy. First comes For, this is loop itself. First argument (i = 1) is starting point for our loop, second one (5) determines where to stop loop (can be not only a number but a variable too), last one (1) is the number (it also could be a variable), which will be added to iterator (variable i which we initialized before in loop) every loop. And your code executes from "do" to "end".
Example:
for i = 1, 5, 1 do
print(i)
end
This code will output: 1 2 3 4 5.
Feel free to ask more, I'll be happy to help (I'm a programmer btw)!
This is the best tutorial you explain it so well and the fact that you do it step by step is amazing.
Never have I had to learn an new programing language for a video game, but I can't say I'm disappointed I did.
Thank you so much for doing these, I have been struggling with LUA for ages and this is a real help.
Very cool video. Also thanks to yandex translator, he helped me watch a video with simultaneous translation. (I am Russian)
Instead of String format, you can use math.floor here is how to use it:
With this data fed in:
X = 5.7896431056
Y = 12.7896431056
Instead of having this:
gpsX = input.getNumber(1)
gpsY = input.getNumber(2)
Output =
5.7896431056
12.7896431056
Use this:
gpsX = math.floor(input.getNumber(1))
gpsY = math.floor(input.getNumber(2))
Output =
5
12
I hope that makes sense.
its says error near =
This guy needs more subs
Yesss, finally someone makes a tutorial on this. Thank you sooo much.
Thanks to you I now have an Idea how LUA works. Thank you!
Thank you for this tutorial. Those LUA screens have been a bit of a mystery to me. You clear up alot of confusion.
Excellent videos, to the point, easy to follow, and a simple learning curve. Great quality videos!
if you want to type less, then instead of typing out your draw functions five more times simply concatenate your Strings e.g "screen.drawTextBox(1, 1, w, 6, "Fuel: " .. string.format("%0.0f", fuel))", The two periods after the "Fuel" are the Concat operator for Lua.I also left out the H_Sync, and V_Sync as when left out they default to the upper left if anyone would like to know how String concatenation works please let me know and i'll be happy to discuss it :)
This helped me so much. I am working on a workshop creation and I wanted to try lua so this was a huge help.
I’m making a cruise ship and this will be very helpful
How do you know what tutorial I need........ that's epic dude
Thank you very much👍
Great tutorial! Hope to see bar graphs and screen dials soon!
Ahh finaly getting lua, thanks! Just building a 4 engine display.
Turns out: LUA isnt that hard, Im just dumb. Thanks for teaching us!
Спасибо, всё кратко и понятно)
Best guy who makes stormworks videos is you!
Awesome video, I'm very much looking forward to this series. Keep the good work
Would you do more LUA please????? Nobody else does this and it helps a lot ! Maybe a basic missile targeting system?
That’s more composite stuff and yeah or are you doing auto pilot
fyi you can double click item in the inventory to "equip it" so you dont need to keep pressing the button at the bottom to close it :D
Awesomeeeee!!! this is gonna be a great and very needed series.
I was waiting for this series! Great vid!
This game is awesome, I bought besiege but this is what I really wanted!!!
Nice, some more Lua
Finally, someone who’s first and doesn’t say “first”
@@Andreaspolis did you just say it twice 🤨
@@TomKaisa did someone say 3rd reply
When I saw the programming language is Lua (which is the only language I know) I thought to myself: "It's time to overcomplicate this"
Hahahaha shit. I just made my own yesterday after watching all your lua tutorials. Would have been nice to have a day ago!
no idea how this works, but my brain hurts, good tutorial! was very cool!
yay a heart
I don't know if this works in stormworks lua but in the original lua you can put variables behind text by closing your quotation marks and writing two dots and the you can write your variable behind the dots
It works just like normal lua. "Text"..value makes it a lot cleaner sometimes
I can now make advance information screens for my fleet:)
It is better to use CamelCase (first letters of words are capital and words are together) for public variables (without "local" before name of the variable, so it can be used in entire script and not only in the one function) and pascalCase (first letter always not capital but first letters of other words still capital, and words are still together) for private ones (local myVariable = 2 + 2).
Also, it isn't so good to use such short variable names if word more than 4 letters long, this can very decrease readability of code by others.
I’ve been waiting for this for so long!
This video is amazing thanks NJ ❤👌😊
Nice job!
Very Informative !
as any experienced coder would say, please do not include spaces in the variable names, periods, or any symbols (numbers are fine), it will cause the code assume that that was where the variable name ends and it will produce an error saying it needs to be an = sign if im not wrong, i havent coded LUA in so long i dont even know anymore
Thank you kindly sir! This solved the issue I was having just by removing the spaces.
Saving my time 14:58
thx man this realy helped keep up the good vids :D
Can you also make a tutorial of the helpful lua site for stormworks. And a position hold system so your ship could stay in place. Thanks for the helpful vid.
Nice
I was shocked when he said "more advanced" 23:30
Nice, realy interesting
Is better for u to add ur done script on text file
Yep I am safe
Can you make the next video on how to make a 2 function graph?
Wish this is more space efficient and simpler than a 1by1 dial.
Get him to 1million
rly interesting and helpful. When is the next one?
I remember trying to make a Lua map but somewhere while copying it I slipped up and it didn't work. Little did I know that control C control V existed😅
Could you do a tutorial on how to make a door you need a code to open like you did on your train?
save your pincode in a memory block or use a constant number.
subtract real pincode from guessed pincode, if answer is 0, the pincode was guessed correctly
e.g.
1234 - 1234 = 0
1234 - 1235 = -1
1234 - 3782 = (not zero)
then only open door if result is 0
Thanks man ;)
I did it exactly the way you did it but i used a 1x2 monitor, and all my numbers didn't align right. But still a good tutorial
i had problems like a random setnumber command showing up now there is just 64.0 and the same 64.0 showing under the first one
Survival Series when?
do the monitors work different now or what because it doesnt work even though iv done excactly what u did
Yea me to
my one says draw error 15" bad argument 2# to 'format' (number expected got nil) pls help
So I have a question, I input all of the code correctly and the screen messes up as such it goes backwards. meaning the display is flipped and i dont know how to fix, Should I contact devs?
Can you connect multiple screens to the same video output of the microcontroller? If yes, what will the width and height read if they're different in size?
Ok ima try this now
Just did it now
The results gave me a whole new idea on how lua-video works
I made a lua controller which displays the connected screens width n height and hooked it to 3 screens with different dimensions (1×1, 1×2, 3×3)
Each screen displayed its own width and height (32 32, 64 32, 96 96)
Thanks for giving this idea
I’ll wait for more advanced tutorial cause I know everything you’ve done in the video. (By the way I know it from your earlier tutorials ) :D
Amazing video, i have one stupid question. There is Power Consumption in the game? And if so, how i can write it to the screen. So i can see if my generator is keeping up with the consumption
Berserker I know Im late but there is power consumption
There is one major problem with 0 decimal places for batt it will stay as one and switch to zero after getting under 0.50
I can’t get the numbers to show up it just says 0 on them all except for one of them
Oh wait never mind
i dont want have to much number before the ( . ) what format should i use? help pls
1 block is 32x32
I need help i scripted all corretly but the screen bsod and says tick failuer can you help me thanks
Hello, am I the only one not getting the stats from the engine 19:56 ? I use a 4 engine setup. I’m doing it step by step in as in the video but still it doesn’t work for me. Any suggestions?
How to creat a laser missile guided ?(My english is bad because i speak frenche 😛)
what confuses me is how did you know to name wich
Are you a developer?!?!
I have an idea for mrnjersey new logo an N with stormworks wings and a half ring at the bottom of the logo and it says LUA
I get the blue screen whenever I test the monitor. It gives me an error on line 13 saying "Attempt to call a nil value (field "SetColor")". Does anyone know how to fix this? Here is my script.
-- Tick function that will be executed every logic tick
function onTick()
RPS = input.getNumber(1)
Battery = input.getNumber(2)
Fuel = input.getNumber(3)
Temp = input.getNumber(4)
end
-- Draw function that will be executed when this script renders to a screen
function onDraw()
w = screen.getWidth() -- Get the screen's width and height
h = screen.getHeight()
screen.SetColor(0, 0, 0)
screen.drawClear()
screen.SetColor(200, 200, 200)
screen.drawTextBox(1, 1, w, 6, "RPS", -1, 0)
screen.drawTextBox(1, 8, w, 6, "Battery", -1, 0)
screen.drawTextBox(1, 15, w, 6, "Fuel", -1, 0)
screen.drawTextBox(1, 22, w, 6, "Temp", -1, 0)
screen.drawTextBox(1, 1, w-6, 6, string.format("%.0f", RPS), 1, 0)
screen.drawTextBox(1, 8, w-6, 6, string.format("%.0f", Battery), 1, 0)
screen.drawTextBox(1, 15, w-6, 6, string.format("%.0f", Fuel), 1, 0)
screen.drawTextBox(1, 22, w-6, 6, string.format("%.0f", Temp), 1, 0)
end
Try change it to (1,1,1)
@@MrNJersey I finally got it to work. I had to rewrite the entire script & somehow, when I changed the (1, 8, w-6, 6) to (1,8,w,6) and then change it back. I no longer got the blue screen. I think this might be some sort of bug when coding in Lua, not sure if anyone else had this issue. But thanks for the help! I look foward to more tutorials :)
Im just getting bluescreen lol, ive typed exactly what you have, but its saying attempt to call nil value (field drawtextbox)
Might be missing a value
I want the next video
So Lua isn't a roblox only code type?
17:18
When I add a string format thing, I get an error. It says, “bad argument #2 to ‘format’ (number expected, not gil)” Everything is copied exactly the same as yours is
When I right string format lua get error
Хей, круто! Кто русский ставим лайк )
For some reason my screen is appearing green like the monitor is. Edit: I fixed it just did some mistakes
Where is Mrnjersy?
why does it not work i have done everything step by step and it still doesn't work
man bro for some reason my code says x.0f instead of the values
This appears not to work anymore as % is an invalid option
How do u copy and paste
is this kind of the basics behind coding? just curious I've always thought about learning to code but I'm a little intimidated.
as a person with a coding friend, then kinda yea.
I do belive there are some much easier languages to learn, Lua is primarily used in games like Stormworks since it's easy to implement
Roblox uses lua to make games
And dont be intimidated by code, its a language like any other
my text is overlapping
I wonder if we could get anime textures to stormworks
Is this still to date?
Almost everything is in this video accept, how can i make on off input
i keep getting tick failure...
@MrNJersey can u copy the script and paste it here as pinned comment for me to copy and paste its ins tormworks because it does not work for me idk why. Every time i start the monitor it says that it has an error PLSSSSSSSSSSSSSS AND THX
Is this still working?
19:38 um ..Text