What Studio Actually Is
Studio looks like a level editor, and it is also a server, a client, and a publishing pipeline running together on your laptop. Notice which of those you are looking at before you write a line, because each one fails differently.
Studio looks like a level editor, and it is also a server, a client, and a publishing pipeline running together on your laptop. Knowing which of those you are looking at before you write a line matters, because each one fails in a different way.
One program wearing three hats
The obvious reading of Studio is that it is where you drag blocks around. That is true and it is the least interesting third of it. When you press Play, Studio stops being an editor and starts being an actual Roblox server, with an actual Roblox client connected to it, both running inside the same window.
This is why the same script can work while you are editing and fail the moment you test, or work in a test and fail in a real server. You have not moved the script. You have changed which of Studio's three hats is on.
The tree of objects sits still and you rearrange it. Nothing is running; scripts are inert text.
Press Play and Studio starts a server, connects a client to it, and runs your scripts on both. This is the mode where bugs live.
File → Publish uploads the tree to Roblox's servers, where other people's clients will connect to it.
An experience is not a file on your laptop
You can save a .rbxl file to your desktop, and doing so publishes nothing. What players open is a copy Roblox is hosting, and it only changes when you push a new one. A saved file and a published place are two separate things that happen to contain the same objects.
Roblox's own vocabulary makes this worse before it makes it better. A place is one level. An experience is the thing players search for, and it contains one or more places, one of which is the start place. Your obby is a place; the page with the play button on it is an experience.
The four windows you will live in
Studio has dozens of panels and you will use four of them almost exclusively. If any are missing, they are all under the View tab.
The tree of every object in the place. This is not a file browser — it is the running state of the game, and the next chapter is entirely about it.
Every setting on whatever is selected in the Explorer. Anything you can change here, a script can change too, using the same name.
Where print goes and where errors land. Keep it open permanently. A closed Output window is why a beginner thinks their script did nothing.
Other people's models. Useful, and the usual way a place acquires a script nobody wrote — check what you insert.
Luau is Lua with the edges filed off
Roblox does not run Lua. It runs Luau, its own fork — the syntax you will find in a Lua tutorial from 2009 mostly still works, and the parts Roblox has added are the parts worth using.
Two differences show up on your first day. Luau has an optional type system, so you can write local health: number = 100 and have Studio catch a mistake before you run it. And Luau has a proper task scheduler, which is why task.wait() exists alongside the older wait().
-- The old global. Throttled to about 30 updates a second, and it drifts-- further the busier the server gets.wait(1) -- The scheduler-aware version. Resumes on the next frame after the time is up.task.wait(1)Use task.wait. Every example in this track does. You will still meet wait() constantly in older tutorials and in free models, and now you know what it is and why it was replaced.
What Studio will happily let you do wrong
This is the honest part, and it is the reason this track spends four chapters on fundamentals before building anything. Studio has almost no opinions about what you are doing, and it warns you about very little.
It will let you put a script somewhere it can never run, and say nothing. It will let you name two parts the same thing. It will let you write a killbrick that works perfectly alone and fails with two players in the server. None of these produce an error, a red underline, or a message. They produce a game that does not do what you expected, and no explanation.
Key takeaways
- Studio is an editor, a live server and client, and a publisher. Most confusing behaviour comes from expecting one of those while looking at another.
- Saving a file is not publishing. Players open Roblox's hosted copy, which changes only when you push a new one.
- A place is one level; an experience is what players search for and can hold several places.
- Explorer, Properties, Output, and Toolbox are the four panels you will actually use. All of them live under the View tab.
- Roblox runs Luau, not Lua — an optional type system and a real task scheduler are the differences you will notice first.
- Prefer task.wait() over wait(). The older global is throttled to roughly 30Hz and drifts further as the server gets busier.
- Studio warns you about almost nothing. A script in the wrong place produces silence, not an error.
Quick check
Answer these to unlock the next chapter — 3 of 4 to pass. You can retake it anytime.
Answer every question to check.
Make a free account to read on
Every chapter is free — an account is how your progress, XP, and streak follow you from your laptop to your phone, and how you show up on the leaderboard. No payment, no trial.