
Master top bar customization in Roblox Studio by creating toolbar tabs and managing visibility and order. Duplicate default tabs, adjust alignment, and use the ribbon tab builder for advanced configurations.
Master the explorer and properties windows to manage the data model, navigate services like Workspace, Player Service, and Lighting Service, and use tags, attributes, and Collection Service for gameplay systems.
Explore the script editor, script tab, and output window; write and run server scripts, and preview output messages and debugging basics in Roblox Studio.
Explore Luau operators, including comparison and logical operators such as and, or, and not, and learn short-circuit evaluation, operator precedence, and using parentheses to clarify conditions.
Explore the built-in math library in Luau, mastering functions like clamp, random, abs, sqrt, and conversions between degrees and radians, while understanding nan and inf.
Explore Luau tables as the core data structure, learn arrays and dictionaries, indexing, and essential table library functions like insert, remove, find, and concat.
Master break and continue to control loop flow in Luau, using numeric and generic for loops, handling nested loops, early exits, and skipping iterations, with practical Roblox examples.
Explore pure functions that rely on inputs only and avoid side effects. Master variadic arguments with varargs and ellipsis, then build closures that remember outer variables.
Learn to use RBX script signals with connect, once, and wait to build event driven Roblox code while mastering deferred versus immediate signaling and memory cleanup.
Master coordinate frames (CFrames) in Roblox Studio by combining position and rotation, exploring world space and object space, and using constructors like lookAt and angles with lerp for smooth transforms.
Explore advanced CFrame techniques, including axis angle rotation, getComponents, orthonormalization, and fuzzy equality, and learn how to convert between spaces with point and vector methods.
Master Roblox leaderboards using value-based instances and configurations. Create leaderstats under players with coins and gems, control order via isPrimary or priority, and use object values for cross-script references.
explore the asset manager to upload, import, and organize assets across personal and group inventories, view version history, and learn how to reference assets with rbx-asset-id and rbx-game-asset schemes.
Learn how weld constraints connect two parts, define Part 0 and Part 1, and distinguish moving a single part via Position from moving the whole assembly via CFrame.
Explore basic Roblox effect instances—fire, smoke, sparkles, and explosions—covering properties like color, heat, size, timescale, and local transparency, plus how explosions apply force and handle hits, with cleanup considerations.
Explore Roblox Studio 2026's highlight instance to add glowing outlines and fills with depth mode and adorners. Build a color-matching minigame and master highlight rendering tips.
Explore Roblox Studio’s particle emitter to create fire, smoke, sparks, and explosions with color sequences, size, and transparency. Shape emissions with smooth sequence graphs and flip books for animated sprites.
Explore robust data store handling with session locking, exponential backoff, and GDPR tooling to protect player data, manage limits, and ensure safe data saves across Roblox experiences.
This lecture will expand upon the previous one and talks about what variables & variable types are and how you can use them in your scripts.
By the end of this lecture you should be able to understand:
The seven basic data types you will use in Luau: nil, number, boolean, string, function, thread, & table.
camelCase vs snake_case vs PascalCase
How to reference your variables
This lecture continues to expand on scripting and introduces to you how to check for conditions using if statements and variables you just learned about. This is how you let computers make decisions!
By the end of this lecture you should be able to understand:
How to create an if statement
How to use an if statement to check for specific conditions
Practice if statements by creating a weather string and printing messages for snowing, raining, overcast, or sunny days in Roblox Studio 2026.
This lecture exposes you to a new concept called lexical scope.
By the end of this lecture you should be able to understand:
What lexical scope is
How the end keyword is associated with scope
This lecture explains to you everything you need to know about the string data type in Lua. We will go more in-depth about strings, specifically: string concatenation, substrings & the string library.
By the end of this lecture you should be able to understand:
How to concatenate strings together
How to use the string library
Substrings
How to use escape characters
This lecture explains to you everything you need to know about the main data type in Lua: tables!
By the end of this lecture you should be able to understand:
How to create tables
How to index tables
How to use the table library
How to add and remove elements from a table
Differences between arrays and dictionaries
This lectures explains to you everything you need to know about the three loops available to you in Lua.
By the end of this lecture you should be able to understand:
How to use a for loop
How to use a for ipairs/pairs loop
How to use a while loop
How to use a repeat loop
How to yield in your loops
In this lecture, we practice with loops and learn two new keywords: continue and break
By the end of this lecture you should be able to understand:
How to use the continue keyword
How to use the break keyword
This lecture explains to you everything you need to know about the relational operators in Lua.
By the end of this lecture you should be able to understand:
The six relational operators in Lua: <, >, <=, >=, ==, ~=
How to use relational operators in condition checking
This lecture explains to you everything you need to know about the logical operators in Lua. Logical operators are super useful and have many more uses than what meets the eye!
By the end of this lecture you should be able to understand:
The three logical operators in Lua: and, or, & not
How to use logical operators in if statements
How to use logical operators in loops
How to use logical operators in variable declaration
This lecture explains to you everything you need to know about functions.
By the end of this lecture you should be able to understand:
How to create a function
How to 'call' a function
How to pass information to functions
How to return information from functions
Difference between arguments & parameters
Create a function with two string parameters that prints them. Yield 0.5 seconds, print them reversed, yield 0.5 seconds, print them capitalized, and call it ten times in for loop.
This lecture explains the helper table to tables: metatables, and the key-value pairs stored inside of them: metamethods.
Please note that this lecture is diving into some more complex ideas, so don't be disappointed or afraid if you do not understand the content here. You can ALWAYS come back to it later!
By the end of this lecture you should be able to understand:
Metatables & their uses
How to use the __add metamethod
How to use the __sub metamethod
How to use the __index metamethod
This lecture continues to expand on tables and metatables, shows you how to create and call functions in tables, and how to imitate a class in Luau.
Please note that this lecture is diving into some more complex ideas, so don't be disappointed or afraid if you do not understand the content here. You can ALWAYS come back to it later!
By the end of this lecture you should be able to understand:
Constructors
How to create functions & methods in tables
How to utilize the __index metamethod for object-oriented programming.
This lecture is a brief overview of coroutines and the thread data type in Luau. This topic is a little more advanced and you may or may not use coroutines while scripting your games, but it's still good to get exposed to tools that are available to you!
By the end of this lecture you should be able to understand:
The thread data type
Understand the four states of a coroutine
How to use the coroutine library
This lecture explains to you how to perform arithmetic in Lua (including the modulo operator), explains the order of operations, and shows you how to utilize the math library.
By the end of this lecture you should be able to understand:
How to use the arithmetic operators: +, -, *, /, %, and ^
How to add, subtract, multiply, divide, & exponentiate numbers
How to follow the orders of operations in Lua
How to generate pseudorandom numbers
This lecture will explain the differences between runtime and compile-time errors and how you can debug these problems.
By the end of this lecture you should be able to understand:
Differences between runtime, compile-time, and logical errors
How to use breakpoints
How to handle errors using the pcall() function
Create a fizz buzz function that takes a number and prints fizz, buzz, or fizz buzz based on divisibility by three and five, prioritizing the both condition first.
This video will explain to you the fundamental ideas of algorithms and how you can plan out and implement algorithms to solve problems.
By the end of this lecture you should be able to understand:
Algorithms
Steps to creating a working algorithm
This lecture explains to you how to reference services and index the workspace.
By the end of this lecture you should be able to understand:
workspace and game keywords
:GetService() function
This lecture explains to you the difference between local scripts and server scripts.
By the end of this lecture you should be able to understand:
What server scripts are used for & how they affect the game
What local scripts are used for & how they affect your copy of the game
This lecture explains to you how to use ModuleScripts in Roblox Studio.
By the end of this lecture you should be able to understand:
The DRY principle
The require() function
How ModuleScripts share data between scripts
This lecture explains to you how to utilize the task library in ROBLOX, which allows your code to communicate directly to the ROBLOX engine's task scheduler!
By the end of this lecture you should be able to understand:
How to use task.spawn()
How to use task.defer()
How to use task.delay()
How to use task.cancel()
This lecture explains the data types that exist in the ROBLOX engine, such as CFrame, Vector3, Enum, & more.
By the end of this lecture you should be able to understand:
The commonly used data types like: Color3, Vector3, Instance, Enum, Random, & CFrame
How to use these data types in scripts
This lecture explains, in-depth, everything you need to know about coordinate frames to manipulate the location and rotation of parts!
By the end of this lecture you should be able to understand:
How to manipulate the CFrame of a part
How to use arithmetic on CFrames
How to use linear interpolation
This lecture explains what the Enum data type is.
By the end of this lecture you should be able to understand:
What an enum is
How to refer to all enums in the Roblox API
This lecture explains how to use scripts to connect to events in ROBLOX.
By the end of this lecture you should be able to understand:
How to connect to the .Touched event
Lambda/anonymous functions
Let's practice with events by using Proximity Prompts and the Triggered event!
This lecture will explain the Client-Server communication model implemented by ROBLOX and how you can let scripts communicate between the client and server.
By the end of this lecture you should be able to understand:
How the client-server communication system works
What remote & bindable events/functions are
This lecture explains how to communicate with the client and server using remote events and remote functions.
By the end of this lecture you should be able to understand:
How to retrieve data from the server via remote functions
How to communicate and send data between the client and server
This lecture will explain the ROBLOX API Class: tool. I will show you the properties and events of the tool instance and how you can create your own donut item that heals you when you eat it!
By the end of this lecture you should be able to understand:
What tools are and how you can use them
How to connect functions to events
How to utilize remote events
This lecture will explain how to use the rig builder and animator to create custom animations.
By the end of this lecture you should be able to understand:
How to use the ROBLOX animator
How to change easing styles/directions
How to change animation priority
How to save your animations to ROBLOX
This lecture will explain how to implement and handle animations in your scripts.
By the end of this lecture you should be able to understand:
:WaitForChild()
How to load animations via the animation controller
How to handle animations using the animation track events
How to play sounds via scripts
How to 'declare' the type of a variable
This lecture will explain how to use the Tween Service.
By the end of this lecture you should be able to understand:
How to create & play a Tween
How to play tweens on the client rather than the server
Using the BetterTween module we created in the TweenService lecture, let's practice and create a sliding door!
This lecture will take a deeper dive into the toolbox and how to look out for malicious scripts in free models.
By the end of this lecture you should be able to understand:
How to search for certain keywords in scripts
Why getfenv(), require(), and string.reverse() are used in malicious scripts
This lecture will help you to understand how to read error messages that appear in the console!
Listening to input from clients is crucial for creating any game on ROBLOX, so this lecture takes a peek at how we can listen to user input via the UserInputService!
By the end of this lecture you should be able to understand:
UserInputService.InputBegan
UserInputService.InputEnded
InputObjects
What happens when we want to listen to a user's input only in specific situations? We use the ContextActionService, which allows us to bind actions (inputs) contextually!
By the end of this lecture you should be able to understand:
How to bind & unbind actions
How to let input pass to multiple bound actions
How to listen to multiple inputs simultaneously & add buttons for mobile devices
When creating things in our game, we sometimes find ourselves wanting to make multiple of the same thing, like a kill brick. To make this process easy & efficient, we use the CollectionService!
By the end of this lecture you should be able to understand:
How to collect objects with a given tag
How to check objects for specific tags
How to listen for when objects are added/destroyed with a specific tag
This lecture demonstrates how to use content streaming on Roblox to improve the loading time and memory usage of your games.
By the end of this lecture you should be able to understand:
How ModelStreamingBehavior affects nonatomic models
The different per-model streaming modes
StreamingMinRadius & StreamingTargetRadius
This lecture goes over how to store data for players in the cloud which can be accessed again when the player joins the game at a future point in time.
By the end of this lecture you should be able to understand:
How to save & grab data from a data store
The get, set, read, and write limits for data stores
How to create a leaderboard
This lecture shows how we can store player data in a sorted manner, giving us the ability to grab the top players for a given set of data (most kills, most money, etc).
By the end of this lecture you should be able to understand:
How to create an OrderedDataStore
How to grab the top keys in an OrderedDataStore
This lecture shows how we can fire an invisible ray in our workspace and grab a result if that ray hit any 3D object.
By the end of this lecture you should be able to understand:
How to fire a ray
RaycastParams
How to visualize a raycast
This lecture shows how can use the TextChatService and Rich Text Markup to modify and stylize text messages in our game.
By the end of this lecture you should be able to understand:
.OnBubbleAdded and .OnIncomingMessage
How to insert rich text tags in strings to stylize text
TextChatMessage instances
This lecture takes a look at the PathfindingService and how we can use it to move rigs along a path to get to a desired destination.
Attributes are a way for developers to store data on instances and share that data across multiple scripts. Let's take a look at how to use them!
It is commonly stated that the difference between a beginner developer and a senior developer is how well they can google or find information. And this is mostly true!
This lecture will take a look at why the Roblox Dev Forum, Google, and even ChatGPT are going to be your friends in the scripting world.
This lecture will take a closer look into the terrain tool.
By the end of this video you should be able to understand:
How generate terrain
How to create & manipulate terrain
This lecture will take a closer look at parts and their properties
By the end of this video you should be able to understand:
Properties like AssemblyLinearVelocity, CanCollide, CanQuery, Reflectance, etc
This lecture will take a closer look at the ParticleEmitter instance
By the end of this video you should be able to understand:
How to use ParticleEmitters
How to add randomness to ParticleEmitter properties
This lecture will take a closer look at the texture and decal instances.
By the end of this video you should be able to understand:
How to use textures and decals
The differences between textures and decals
This lecture exposes you to the SurfaceAppearance instance.
By the end of this video you should be able to understand:
When SurfaceAppearances are used
This lectures demonstrates the Attachment instance.
By the end of this video you should be able to understand:
How to use attachments
This lecture exposes you to the different lighting instances.
By the end of this video you should be able to understand:
How to use PointLights, SpotLights, & SurfaceLights
This lecture shows you how to use the Highlight instance on parts.
By the end of this video you should be able to understand:
How to use Highlights
How to change the visibility & colors of Highlights
This lecture takes a look at the three different GUIs in ROBLOX.
By the end of this video you should be able to understand:
The use cases of the three GUIs
Difference between scale & offset
This lecture will explain how to use CollisionGroups.
By the end of this video you should be able to understand:
How to create CollisionGroups in studio
How to use CollisionGroups in scripts
This lecture goes over the properties in the Lighting Service.
By the end of this video you should be able to understand:
Difference between Ambient and OutdoorAmbient
Difference between ColorShift_Bottom and ColorShift_Top
This lecture goes over the properties of the trail instance.
By the end of this video you should be able to understand:
The different texture modes for trails
How to manipulate the lifetime and size of trails
This lecture goes over the properties of the beam instance.
By the end of this video you should be able to understand:
How to setup beams using attachments
How to curve a beam
How to manipulate the size and speed of beam textures
This lecture goes over the properties of the cloud instance.
By the end of this video you should be able to understand:
How to insert clouds into the workspace
How to change the cloud coverage & density
How to change cloud color
In this lecture, we take a look at proximity prompts and how you can use them to detect when a player interacts with something.
In this lecture, we explore the 3 main tools you'll utilize to apply forces and manipulate physics in your game.
This next section focuses on the different GUI objects that can be displayed on the screen. We'll dive into more advanced territory regarding UI design and UI constraints.
This lecture takes a look at the GUIObject base class and the properties used to manipulate frames, image labels, and text labels on the screen.
This lecture dives more in-depth into the difference between scale and offset and how you can use the anchor point of a GUI object to position it correctly on the player's screen.
This lecture takes a look at a unique GUI object called a scrolling frame that allows you to place GUI objects in a 'canvas' and scroll through that canvas. This is very useful when you need to display a large quantity of objects that would not fit on the screen if displayed normally.
In this lecture, we look at the different UI constraints that help us extend the functionality and design of our GUI objects.
This lecture takes a look at Image Buttons and Text Buttons and how we can listen to button inputs from the client.
In this lecture, we learn how to utilize 9-slice design to properly maintain the aspect ratio of images on different screen resolutions & ratios.
In this lecture, we take a look at a unique GUI object called a Text Box that allows users to input text in the game.
Sometimes we want to be able to fade an entire GUI at once from a single property or manipulate the colors of an entire GUI at once from a single property. Canvas groups help us achieve this effect.
You've just learned a lot of information in this section, so it's now time to put your UI skills to the test!
The game we are creating in this lecture is a simple wave-style game where you fight enemies in 11 waves or more if you add them!
This game will teach us how to use leaderboards, how to create guns using raycast, how to create zombies with PathfindingService, how to create a wave system, how to spectate other players, how to create a shop, and how to use DataStoreService to save a player's kills and deaths.
This is project will be quite ambitious for you, and I can confidently say this will not be easy. If you don't think you're ready for this yet, then I recommend to continue messing around with scripting until you're comfortable to move on.
In this lecture, I lay out the foundational things you will need for your map. All game assets have been attached to this lecture!
This lecture will show you how to design a starting GUI for our game.
This lecture dives into how to detect player input with GUI buttons and how to use the TweenService to fade UI elements.
This lecture shows you how to manipulate the CFrame of a player's camera.
This lecture goes over how to create a sprinting system with a stamina bar!
This lecture goes over how to create a melee weapon with sound effects, animations, and the ability to damage humanoids!
This lecture shows you how to create a one-use medkit that heals the player!
This lecture shows you how to create a leaderboard to keep track of kills, deaths, & money.
This lecture will show you how to use the DataStoreService to store a player's data in the cloud.
This lecture demonstrates how we can use collision groups to disable collisions between the characters of players.
This lecture goes over the basic setups before we start scripting our guns.
Creating our guns is going to be a lot of work, so if you feel overwhelmed, feel free to grab the completed gun models with the scripts at the end of the lectures instead. You are always welcome to look over the scripts again later to gain a better understanding of how they work.
This lecture will explain how to listen to user input to perform raycasts in order to create a gun that can shoot and damage enemies.
This lecture will go over how to set up a server script to listen to our gun event and ensure that nothing suspicious is occurring on the clients.
The server script is attached to this lecture.
This lecture goes over how to create bullet holes & how to orient them so they're parallel to the surface they hit.
In this lecture, we create the animations for our guns, and if you'd like to make your own animations, I explain the requirements for each of the 3 animations.
This lecture shows you how to load the gun animations we created and play them on the character.
This video shows you how to implement the GUI for our guns.
In this lecture, we add hit markers that will appear on the screen when we hit a humanoid.
Attached to this lecture are the completed gun models, including the meshes, scripts, & folders.
This lecture demonstrates how to create 3 different tiers of ammo crates that automatically resupply after their reserves have been depleted.
This lecture will show you how to use the PathfindingService to create a zombie that follows and attacks players, as well as add the capability for the zombie to update its pathing in real time!
In this lecture we continue to create our Zombie AI and also listen out for specific properties for our zombie, like health regeneration.
This video shows you how to add custom walking, running, idling, and attack animations to your zombie!
This lecture will demonstrate how to give cash to players and how to script an item shop GUI.
In this lecture, we get to see how to create a wave system that spawns in zombies, listens for when they all die or all our players die, awards cash, and continues to repeat itself!
In this lecture, we continue to improve our wave system by adding music and sounds.
This lecture goes over the BadgeSerivce and how to create and award badges to your players.
In this lecture, we go over how to utilize the MarketplaceService to prompt gamepass purchases to players and how to check whether or not a player has a gamepass and act accordingly based on that information.
This lecture will go over how to script a spectating system that allows you to spectate all the players who are alive in our game!
In this lecture, we create a splash damage tool that can hurt multiple zombies at the same time.
In this lecture, we learn how to save a player's tools from their backpack when they die and give those tools back to them when they respawn on the map.
In this lecture, we play test our game to make sure everything is working as expected.
This lecture shows you how to publish your game to ROBLOX and how to update some settings.
This lecture goes over some of the tools Roblox provides to sponsor or advertise your game.
Congratulations on completing this project! The entire game has been attached to this lecture for you to play/download.
This course contains the use of artificial intelligence. AI tools helped create visuals used to explain concepts and assisted with some code examples, all reviewed and tested by me.
EARLY ACCESS NOTICE
This course is in early access. It's being rebuilt from the ground up, and new content is added over time.
Available now: 5 brand-new sections, plus all of the original course sections while they're being rebuilt.
Coming over time: Rebuilt sections and brand-new topics release one at a time until the course reaches its planned 25 sections and 4 full game projects.
No extra cost: Every new section is added to this course automatically, so you get the full course as it grows.
Since the course is actively in development, you may run into missing captions, typos, or other rough edges. If you do, please let us know in our Discord community so we can fix them!
Thank you for checking out this course!
When I started scripting on Roblox, there was no ChatGPT or Claude to lean on. I learned by experimenting, breaking things, and spending hours figuring out what went wrong. That struggle is where real skill comes from.
Today, AI can write code in seconds, but you only get the most out of it once you actually know what you're doing. This mastery course is designed to get you there. It's one structured learning path that takes you from your very first line of Luau to advanced game systems, teaching you to think like a developer so you can build whatever you imagine in Roblox Studio.
Perfect for Every Skill Level
Whether you've never opened Roblox Studio or you've been scripting for years, this course meets you where you are. No prior programming experience is required, and even seasoned developers can pick up something new.
Learn by Doing
Every new topic ends with a hands-on practice activity, followed by a walkthrough of the solution. End-of-section challenges have you build small systems on your own, and the finished course will include four complete game projects: an obby, a fighting game, a horror game, and a survival game.
Supplemental Notes and Resources
Lessons come with dedicated supplemental notes, attached as downloadable PDFs, that recap the key ideas and cover extra details that don't always fit in the videos. All of the code and resources used in the lectures are included, so you can look back at anything you didn't understand the first time. You'll never be left in the dark!
Community Support and Instructor Help
As a student, you also get access to our Discord community of students and developers at every skill level. Share your progress, get feedback, and ask questions in our dedicated scripting support forum, where you'll get help from me and other students.
What You'll Learn
Available now in the 5 rebuilt sections:
The Luau programming language, from variables and functions to tables, loops, and coroutines
Roblox Studio tools, workflows, and debugging tools like breakpoints and the call stack
Core Roblox concepts like instances, events, vectors, CFrames, module scripts, and the task library
Fundamental instances such as parts, tools, cameras, particles, beams, and proximity prompts
Essential services, including DataStoreService, MarketplaceService, TweenService, UserInputService, raycasting, and much more!
Available now in the original sections (being rebuilt over time):
User interface design
Object-oriented programming and type annotation
Intermediate services and features like PathfindingService, MemoryStoreService, developer products, and instance streaming
Hands-on projects, including a zombie wave game, an SCP-294 recreation, an admin system, and a horror game
Brand-new topics coming in future sections:
Open-source libraries
Blender basics
Entity Component System (ECS)
Studio plugin creation
Why This Course?
You could piece everything together from YouTube tutorials, forum posts, and AI answers. But you'd be juggling different teaching styles, filling in the gaps yourself, and trusting code you don't fully understand. This course puts everything in one place, in the right order, with the "why" behind every concept.
Over 700 hours of planning, scripting, recording, and editing have gone into this course so far, and that number grows with every new section. And with Udemy's 30-day money-back guarantee, you have nothing to lose.
Whether Roblox development is your future career or a fun side hobby, this course will challenge you, guide you, and give you the skills to build anything you can imagine. Who knows, maybe YOU will be the next front-page Roblox developer!
I'm excited to work with you, and I'll see you in the classroom soon!