This is a lifesaver. Thank you. The official documentation couldn't be less concise if it tried to be, it's 90% fluff that I can't be bothered to read to get the 10% that's actual information. A video alternative is a blessing. Plus I don't have to read a bunch of pages just to get to where I can understand what it wants from me.
Great tutorial, very compact and right to the point. As a beginner I've tried a few ways to make this work, couldn't do it without this tutorial though.
Hey Jon, thanks a lot, helped me to get my first menu ready and working straight away. I would have loved a few extra words on what the Containers (CenterContainer/V/HBox) actually are / do :)!
Hey man this is a really good tutorial, fast, efficient, teaches everything that should've been taught and everything is understandable. Thank you for making this!
Hey, people, don't be like stupid me, don't name your selector label ">" because it will fuck up the pathway hehe. Good tuto, even though it's quite fast ! It becomes a problem when you're coding long line of code using hotkeys ! You should maybe edit your video so that the line of code you just wrote is still visible when testing the result. I've had quite an hard time pausing the video to see the whole code to search for my errors.
Why didn't you just use an array for the menu options? That way you can just do a for in range loop and not have to write 2 lines of code for every single menu option. Also, you can use wrapi to wrap the menu selection around to the end/start. The tutorial was useful enough for me to figure it out, but I'd suggest optimizing the code a bit more so that the newer developers (I'm new to Godot, not programming) won't pick up bad habbits.
@@MVKHXV Instead of selector_one selector_two selector_three, selector[1] selector[2] etc, and then you can have N number of menu items and won't have to add duplicate code over and over again as you'd be able to use for loops.
THIS is the kind of tutorials that work. Good god I'm tired of the 5 hour lectures on how tweens work because the guy wants to talk about pottery or something omm
Try the following and let me know if it works: Preload the main menu in the scene you are transitioning from via `const MainMenu = preload("res/path/...MainMenu.tscn")` and then in that scene's back button pressed signal function, instance a main menu object, add it as a child to the parent of the current node and then queue free your current scene.
Umm, so I get an error saying “Invalid set index ‘text’ (on base: ‘String’) with value type ‘String’.” I don’t know what’s wrong as I copied the entire thing, but maybe someone could tell me? Edit: I forgot to ad ‘.text’ to the selectors above. Problem now solved
Fast question. If I design my own button art and make it have 2 modes Light and Dim where all non selected are Dim and the current selection is Light can't I just replace the "text" with the picture and make that if selected show _2 else _1 and name the pictures Button_Star_1 and Button_Start_2 ??? I'm asking this with no other experience in coding than playing around with game maker and GoDoT xD Just wondering and testing things to see what I can do and how flexible the GoDoT is for my own needs . . . more work but who does not like some challenge?
For some reason my Selector disappears when I try to go up. I've cross checked with the video I don't know how many times, and it's down to a tee, so I have no idea what's going on lol. Also, when I press "up" it goes down. If I use "down" when I'm at the bottom it doesn't disappear, but if I press "up" to go down, it disappears :S Edit: nevermind I'm blind. Didn't see you changed the second inputs + to - haha. Makes sense.
doesnt work.. it says "Invalid set index 'string' (on base: 'null instance') with value of type 'string'" at the part where it says selector_one.txt = "" this tutorial really took me like 2 hours to do and it doesn't work.
I would double check the `selector_one` assignment. If you're getting "null instance", it means that `selector_one` is null. In `onready var selector_one = $...`
You could use a Control node for the base - the MarginContainer actually inherits from Control so it'll still have Control properties. It's just slightly more flexible because you can always add margin later if you want. I wouldn't recommend a Node2D as a root node for the base of control nodes because it will not allow its children to inherit from its orientation properties.
ey I put me assets ,logos,and buttons in certain places on the menu screen but when I finish and try to test it out they all go all over the place ... wait let me say it better they return to there origin point
Just starting out on my Godot journey, and making a menu is a really basic skill to have in any language. I'm sure you are very good at Godot, but his was too fast to impart a how to to a beginner. good tutorial would include things like - what's a node, how to use the menu system, how to use the file system hierarchy (yes, I am reading the manual - honest!). The biggest tip on improvment would be slow down, and explain things as you do them. Cheers, Chris.
The thing is that you can't go over everything for each tutorial. Because if a user is watching more than one of your tutorial, he will be pissed of to hear the same thing again and again. So, what one usually do is giving less and less reminder as he go forward in tutorials. So, in first tutorial, you go over nodes extensively, then you progressively explain less and less about the concept as people just got tit. So, you can explain things at a higher level.
@@programathsThe thing is, a video of you doing something and talking about it while you do it isn’t a tutorial. It’s just like watching a person play a game and beat it. It’s not like truly learning anything. If I will have to pause every 7 seconds of a 9:13 minute video it’s not a tutorial.
Didn't realize speed runners made Godot tutorials,
very helpful though.
For real. Barry Allen beat your fucking heart out.
gotta be a pb
Lol I watched the video in 2x speed tho
somebody has to tell him tutorials are no competition
This was a good tutorial although in my opinion it was a bit fast and would have liked more explonation about the nodes used.
thank God a tutorial that doesn't waste your time
it did for me didnt work
This is a lifesaver. Thank you. The official documentation couldn't be less concise if it tried to be, it's 90% fluff that I can't be bothered to read to get the 10% that's actual information. A video alternative is a blessing. Plus I don't have to read a bunch of pages just to get to where I can understand what it wants from me.
Yes the docs suck. After defaulting to them for the first dozen or so problems I encountered I now avoid them because not once did I find them useful.
Great tutorial, very compact and right to the point. As a beginner I've tried a few ways to make this work, couldn't do it without this tutorial though.
Hey Jon, thanks a lot, helped me to get my first menu ready and working straight away. I would have loved a few extra words on what the Containers (CenterContainer/V/HBox) actually are / do :)!
Smart dude. No fluff. I like it.
Combined this lesson with Transition Scene...
YEAH BUDDY!
ok dannyostrovsky1636
Hey man this is a really good tutorial, fast, efficient, teaches everything that should've been taught and everything is understandable. Thank you for making this!
Thanks for being quick and concise. Subbed!
This might seem simple but for ui beginners (me) its actually really helpful
Quick, clear, and helpful. Thank you!
Thank you so much!
Your tutorial was to the point, clear and great overall!
Hey, people, don't be like stupid me, don't name your selector label ">" because it will fuck up the pathway hehe.
Good tuto, even though it's quite fast ! It becomes a problem when you're coding long line of code using hotkeys ! You should maybe edit your video so that the line of code you just wrote is still visible when testing the result. I've had quite an hard time pausing the video to see the whole code to search for my errors.
Why didn't you just use an array for the menu options? That way you can just do a for in range loop and not have to write 2 lines of code for every single menu option. Also, you can use wrapi to wrap the menu selection around to the end/start. The tutorial was useful enough for me to figure it out, but I'd suggest optimizing the code a bit more so that the newer developers (I'm new to Godot, not programming) won't pick up bad habbits.
@@MVKHXV Instead of selector_one selector_two selector_three, selector[1] selector[2] etc, and then you can have N number of menu items and won't have to add duplicate code over and over again as you'd be able to use for loops.
You are right, we can simplify code by using array.
thanks bro this really helped out
Very helpful. I had to pause every half second though. Could ya slow down a bit? You can also set playback speed lower everyone!
THIS is the kind of tutorials that work.
Good god I'm tired of the 5 hour lectures on how tweens work because the guy wants to talk about pottery or something omm
Hey Jon! Making a back button to go to main menu and im getting an error for preloading it any tips for fixing it?
Try the following and let me know if it works: Preload the main menu in the scene you are transitioning from via `const MainMenu = preload("res/path/...MainMenu.tscn")` and then in that scene's back button pressed signal function, instance a main menu object, add it as a child to the parent of the current node and then queue free your current scene.
Instead of the text arrow I have uploaded my own TextureRect for the selector. How do I change the code?
Umm, so I get an error saying “Invalid set index ‘text’ (on base: ‘String’) with value type ‘String’.” I don’t know what’s wrong as I copied the entire thing, but maybe someone could tell me?
Edit: I forgot to ad ‘.text’ to the selectors above. Problem now solved
thank you
Idk why but i dont have the custom colors option if u can help me
Is there any way we could make it touchable (like mobile buttons) ?
by the time I followed your quit script an error occurred (Unindent did not match any external identification level.)
thanks from brazil
do you need to make a new project for this to work
Fast question. If I design my own button art and make it have 2 modes Light and Dim where all non selected are Dim and the current selection is Light can't I just replace the "text" with the picture and make that if selected show _2 else _1 and name the pictures Button_Star_1 and Button_Start_2 ???
I'm asking this with no other experience in coding than playing around with game maker and GoDoT xD Just wondering and testing things to see what I can do and how flexible the GoDoT is for my own needs . . . more work but who does not like some challenge?
For some reason my Selector disappears when I try to go up. I've cross checked with the video I don't know how many times, and it's down to a tee, so I have no idea what's going on lol. Also, when I press "up" it goes down. If I use "down" when I'm at the bottom it doesn't disappear, but if I press "up" to go down, it disappears :S
Edit: nevermind I'm blind. Didn't see you changed the second inputs + to - haha. Makes sense.
Great tutorial
doesnt work.. it says "Invalid set index 'string' (on base: 'null instance') with value of type 'string'" at the part where it says selector_one.txt = "" this tutorial really took me like 2 hours to do and it doesn't work.
I would double check the `selector_one` assignment. If you're getting "null instance", it means that `selector_one` is null.
In `onready var selector_one = $...`
why not put the MainMenu container in a Node2D or control node?
You could use a Control node for the base - the MarginContainer actually inherits from Control so it'll still have Control properties. It's just slightly more flexible because you can always add margin later if you want. I wouldn't recommend a Node2D as a root node for the base of control nodes because it will not allow its children to inherit from its orientation properties.
im not able to add the custom font at 1:12 help!
Can't you just use labels? No boxcontainers
ey I put me assets ,logos,and buttons in certain places on the menu screen but when I finish and try to test it out they all go all over the place ... wait let me say it better they return to there origin point
the last arrow dosent show up on mine and im not sure why
question can i add my own custom image instead of the color brackground
Yes use a TextureRect node instead of the ColorRect
nice.
I need a tutorial for the tutorial
Thanks!! I really like this tutorial but maybe make it not so fast
Perfect Speed! If I do not need to pause the video, you're wasting time. ... and damn I paused the video a hundred times!
THX
cool video
could someone just comment the code? i have the names exactly the same as his
I added a link to the code in the description
for the algorithm
Just starting out on my Godot journey, and making a menu is a really basic skill to have in any language. I'm sure you are very good at Godot, but his was too fast to impart a how to to a beginner. good tutorial would include things like - what's a node, how to use the menu system, how to use the file system hierarchy (yes, I am reading the manual - honest!). The biggest tip on improvment would be slow down, and explain things as you do them. Cheers, Chris.
The thing is that you can't go over everything for each tutorial. Because if a user is watching more than one of your tutorial, he will be pissed of to hear the same thing again and again.
So, what one usually do is giving less and less reminder as he go forward in tutorials. So, in first tutorial, you go over nodes extensively, then you progressively explain less and less about the concept as people just got tit. So, you can explain things at a higher level.
@@programathsThe thing is, a video of you doing something and talking about it while you do it isn’t a tutorial. It’s just like watching a person play a game and beat it. It’s not like truly learning anything. If I will have to pause every 7 seconds of a 9:13 minute video it’s not a tutorial.
@@Xenonandplutonium I made a similar video, because in this tutorial, he is throwing away a lot that is already done by Godot...
Garbage does not work
Does anyone know why I get an error for this line?
selector_three.text = ""
never mind. I'll just find a better tutorial.