How to start scripting

Hi! I wanna know how everyone got into scripting and got really experienced with it! I’ve been wanting to make a game since I was 10 and since then, I never found out how to code, or to work well around the ROBLOX studio app. I only know how to animate and build. I just wanna know, what experiences and challenges did pro scripters have to go through? And if you can, recommend things I can do to get better at scripting? Please if any experienced scripters are reading this, please reply!!

66 Likes

I took the best solution and played around with Lua until my script worked. Experiment and play with the language, and compared to other programming languages Lua is incredibly easy. Just another tip, don’t watch too many tutorials. Another thing that works is to look at already existing code, learn how it works, and branch from that to create your own code.

33 Likes

Technically, I’m not a pro anything, but I’ve learnt my fair share of Roblox Studio.

21 Likes

Noted! Its just really hard to find a place to start

16 Likes

I would start with moving parts, blocks, and making basic but functional code. Doors, lights, and other basic interactable objects that aren’t too hard. As you learn and improve, remake these same models over time but make them more polished and clean. Of course there are many more ways to start, but it sounds like a good way to rethink everything once in a while.

16 Likes

Alright! I’ll try that later! Its really late but I just wanted to know something before I go to bed so I can learn tomorrow, I wanna see other scripters feedback as well. Thank you!

9 Likes

It’s 3:00 AM for me right now, and good luck!

11 Likes

As rough as it sounds, you just have to try and create things. Programming is problem solving. Recognize patterns and solutions will be remembered for the future. Get a good grasp on the fundamentals of programming.
If you watch a video, make sure they explain what they are doing and how it works. I would recommend you watch the video entirely before coding it, so you retain the knowledge better. After that, try and add your own little twist onto it, maybe instead of 1 thing spawning in a specific spot, you make it spawn multiple, and in random positions.
It may be tough in the beginning, but the more and more you attempt to create things, the more knowledge you gain and can remember for the future.
Roblox has Documentation to reference, and google and the RobloxnDev Forum are great resources for help.

19 Likes

Alright thank you very much! Cant wait to try these tomorrow morning, or to see more feedback.

8 Likes

Scripting (in the really early stages, very basic and oversimplified) is basically just understanding the property window, and how you can change one property to another. Basically, a simple start is making a screen gui, that when clicked, makes a frame visible. Scripting is just using your logic and problem solving how you can achieve this.

Back to my example in a GUI button. This is a basic example of the questions I ask myself:


How can you know when the player clicks a textbutton? Well There is a MouseButton1Click Event in TextButtons.

Well ok MouseButton1Click exists, but how can I know when they click THAT button and not other buttons? Well in order to use MouseButton1Click Event in TextButtons, you need to Mention the button, before mentioning the event, so roblox knows your talking about THAT button.

Ok Well sure I can use the MouseButton1Click Event, How do you connect lines of code to it so I can make a Frame Visible? Well you can connect lines of code by Using :Connect. And well if you don’t already have a function made, you can Connect a new one too with :Connect(function().

So Now I have a Event that I can add lines of code with that Function… But How can I make a Frame Visible? Well Gui Frames have a property called Visible. You just mention the frame before using .Visible so roblox knows its that frame. Since Visible is a property and a Boolen Value (true or false), you would want to use something like Frame.Visible = True or Frame.Visible = False

Ok so Now I have a Frame that I can change the .Visible property. But How can I make this Button so when I click it when the frame is Visible, It becomes Invisible, and if the Frame is invisible and they click it, It becomes Visible? Well there is a not statement in Lua that returns the opposite of a Boolen Value. You can use this to make a statement like Frame.Visible = not Frame.Visible , which will return the opposite of it being visible.


This above is really how I think and make systems. I just ask simple questions, and Answer them. If I can’t answer them, then I use the Roblox docs page (which contains info on every Luau Event, property, Services etc.) , and/or the developer forum!

Now, as you get more complex in scripting, you can write the same thing, that does the same thing, but making it more effective. For example, here is 2 scripts, that all they do, is make a Folder, and a IntValue (Value that stores Numbers).


Example 1:

local folder = Instance.new("Folder")
folder.Parent = player
folder.Name = "leaderstats"

local IntValue = Instance.new("IntValue")
IntValue.Parent = folder
IntValue.Name = "Money"

and then Example 2:

local function MakeInstance(Classname, Parent, Name)
  local Object = Instance.new(Classname, Parent)
  Object.Name = Name
  return Object
end

local Folder =  MakeInstance("Folder", Player, "leaderstats")
local Money =  MakeInstance("IntValue", Folder, "Money")

Now these 2 examples are very different. However Example 2 is a lot more effective, if you have more then 1-2 Instances that need to be made, as you aren’t having to assign it a Parent and a Name in new lines of code, rather to make a Folder, It is one line, which mentions a 5 line function, that you can reuse again and again.


TL;DR: You can go about scripting how you like. But learning how to ask questions to yourself to make your script a reality is important (atleast for me). As you learn more and more, also learning how you can make effective code is also important (don’t stress about this when starting out, this is after you have learned the basics of Luau when your like around 6 months from starting your scripting journey so you have some basic knowledge). Using the Roblox Docs and Developer Forum is important. Also as a side note, if you specialize in certain development, it can be helpful starting out, as your have to learn less, as there is so much to scripting! (if your gonna use datastores in your game, focus a lot of them, but don’t focus about raycasting if you aren’t gonna use it)

~ Hope this helps, and feel free to ask questions! (Ik this is a long post so sorry!)

13 Likes

Hi, if your looking for basic starting point in scripting, then I would recommend to explore Roblox studio yourself and explore the object browser, then watch YouTube videos on what Roblox studio has to offer and finally watch YouTube videos on what scripting you would want to make the thing you want in your game. :100:

Overall, understand things about scripting and other relations to it in Roblox studio, try to do it yourself, get help from YouTube if your stuck. :ok_hand:

6 Likes

Scripting can be tricky and hacky. I suggest you to do the basic functions first. Or you could watch some other youtube tutorial (AlvinBlox recommended, change my mind). Here I will write some basic server script :

game.Players.PlayerAdded:Connect(function(Player)
print("a cool romanian joined game lol xd") -- example
end)

The code I wrote is when a player joined the game it will print through the server panel idk what does it call.

Sometimes I learn script from Tutili. I don’t know how he learn me to script without showing a single tutorial.

13 Likes

As a person that knows scripting for no reason. I went to visual scripting since I was like 10.

Scratch was my first programming language.
I did nothing there but messed around till I get some of the things.

Then I slowly moved onto real scripting. At first I got confused quickly and watched a YouTube tutorial. I watched multiple, however some of it did not help me. I think it was either they didn’t explain what those things do. I just copied from the video to my game and hit run.

Yeah, so scripting is not only to remember instructions, but to know what those instructions do.

Break big problems into smaller problems and figure out which instruction to use to that sub-problem.

Or just go to any DevForum article to find answers to your problems.

I’m sorry I’m trash at explaining how I got good at scripting. I didn’t truly know how I know.

I could teach u and help u scripting if you want. Because YouTube videos can’t see what you really did wrong. Maybe a lil’ typo or something.

3 Likes

Too many videos result in tutorial hell, which is relying too much on tutorials / YouTube videos to code. You learned it right! YouTube videos aren’t the right way to go with learning Lua.

Another great option to get rolling after you’ve learned the basics is Lua Learning, which is only tutorials and it’s on Roblox.

4 Likes

Sometimes I make random games and learn on the way.

Also I actually tried Lua Learning. Pretty great game, was thinking of remaking it for fun but…

I’m already working on another game.

2 Likes

I never finish any game. None of my games are 100% completed. So far, the most impressive one is idolize insanity, but having 400 uncompleted places is part of the fun of being a Roblox developer lol

4 Likes

Yooo me too! (except one)

The easy part is thinking of an idea for a game.
But the hard part is maintaining that idea and working on the game, because you end up with newer ideas that you want to make.

I keep telling myself and my friends that. They also have many unfinished games.

I’ve managed to keep myself into focusing into one game, but I did slip out of it sometimes and work on 2-3 other games that I didn’t even finish quarter-way through.

5 Likes

Right now the most impressive thing I’ve ever made is a completely working gun system that dosen’t do a lot besides let you shoot. I use it in 2 games and maybe soon a third.

3 Likes

My most impressive thing is some sort of pathfinding that looks less robotic. I’m using it for my dream game (or should I say one of my dream games).

4 Likes

It’s probably what I mentioned or this:

2 Likes