Our Roblox Coding course has been in constant operation and development for over three years, you'll learn everything you need to know to be a successful Roblox developer - including:
LuaU Programming: Basic to Advanced
Roblox API (Gamepasses, Sounds, DataStores, Networking)
User Interface
Basic Building
We're happy to take requests, but this is our default curriculum - we'll keep track of your progress; just turn up to classes.
The basics of Roblox Studio, what the console is and how scripts work. This module will prepare you for the coming modules and should only take a few minutes.
This module will talk about the basics of scripting, how code runs in order. We'll also go over variables the basic Syntax of LUA.
Here we’ll start to expand your knowledge in programming, we'll make our first visual change to the game. We'll talk about how to "reference" physical parts inside your workspace, as well as changing the properties of these parts.
Functions are a way of storing code for later use, here we'll learn how to store code and recall it as many times as you want. We will also be returning values to another script.
Boolean - something which is either on or off. We will have an introduction into the Boolean data type as well as it's wider applications. This will include using "selection" (if statements) to control whether or not code should run.
Events are similar to built in "sensors", Roblox has already scripted these sensors to be alerted whenever something happens - we just need to connect them to functions so that we may run code when something happens, like a lava brick!
Tables and dictionaries are a type of relational data - meaning things are in a "group". A bit like a shopping list. We will cover them both extensively in this module.
In module 8 we will cover iteration! The act of repeating an action for every item in a list, or range. We'll also cover some keywords that can be used in this loop, such as how to make an early exit. This module will also cover creating new Instances, and Vector3 values.
Module 9 will cover leaderstats, the thing on the side of your screen which indicates your statistics. We'll also go over the Chat, and how to make chat commands.
We'll cover Modules, scripts which hold values that can be retrieved from anywhere! We'll also go over how to publish these modules, and the risk they hold of back doors into your game.
LocalScripts are a form of script which run on the player’s computer. We’ll look at how to use them, what the players computer can and cannot do and how exploiters can run their own LocalScripts. Finally, we’ll review how to listen for key presses.
Here we will look at how to create User Interface, and the basic elements you can use for this. Finally, we will add functionality to the UI and create a popup modal we can use for the next module.
So far we’ve created regular scripts and client-sided scripts, here we’ll recap the duties of each side and look at how to communicate between the two.
This module is dedicated to practicing putting all the topics you’ve learnt so far together, creating full scale systems rather than miniature tasks.
MarketplaceService is the service dedicated to selling and checking ownership of both game passes and developer products, we will look at how to utilise this service to monetise features within your game.
So far all of the values we’ve ever used disappear as soon as you stop the game, DataStoreService offers a way to store values for each player - so they don’t loose their hard earned coins!
Every time you use DataStoreService you put extensive work into loading, working with and saving a singular value - however with ProfileService you simply load their ‘profile’ and then use whatever values you like. It’ll save automatically!
TweenService gradually changes a value, this is how GUIs slide off the screen - and how Obby parts slowly disappear. In this module we will work on creating and running these changes.
There are many useful services outside of Roblox that you can communicate with from your game, HTTPService allows communication between Roblox and other websites / services.
Similar to how we can fetch ‘parts’ and read their properties, and use their methods - we can also create our own objects. This makes programming much more human and simple (after you’ve got over the initial bump of OOP).
In this final module, we’ll finish up with the niche topic of creating NPC characters and having them move around your game. This will involve pathfinding.
Roblox Studio Basics
Console and Explorer
Creating, editing and viewing scripts
Printing
Basic syntaxial concepts ()
Script Lines, and order of operation.
Evaluation
Mathematical operators: add, minus and divide
Comments and multi-line comments
Timed Yielding
wait(t)
Getting Started with Variables
Creating local variables
Using variables in evaluation
Printing variable values
Using existing variables in new declarations
Naming Conventions
camelCase formatting
File Paths and Navigation
Windows file explorer paths (similarities / metaphor)
URL structures and formats (similarities / metaphor)
Working with Instances
Understanding full instance names (game.Wor..)
Using instance names in code
Reading instance properties
Modifying instance properties
Value Manipulation
Basic value incrementing
Modifying instance properties
Understanding Functions
Core purpose and use cases
Common pitfalls without functions
Working with Arguments
Parameters and argument passing
Argument scope within functions
Practice with addNumbers() example
Using camelCase naming convention
Return Values (Advanced Optional)
Basic return statements
Multiple returns
Advanced functions, that take instances and adjust their properties to complete some sort of job.
MakeInvisible(Part)
MakeInvisibleFor(Part, Time)
The student must be able to complete the above with very little support in order to progress.
Boolean Values
Selection
Conditions
If
Else
Else-If
Methods
Destroy
FindFirstChild
The use of a colon (:) in method invocation
Sensors / Events
RBXScriptSignals
Connection and basic usage
Built-in RBXScriptSignals
BasePart.Touched -> Hit
ClickDetector.MouseClick -> Player
Player Instance
Exemplar Obby
Lava Brick
Timed-Access Bridge
Touch-to-sit
Anonymous functions.
Modify existing event scripts to include anonymous functions.
Creating new event scripts with the anonymous function method.
Lava/Damage Brick
Speed-enhancing Brick
The student must be able to complete the above with very little support in order to progress.
Tables
As an array
As a dictionary
Indexing from a table
The table library
table.insert
table.find
table.remove
The nil value
To clear an entry
Casting (Advanced Optional)
string.split
tonumber
tostring
table.concat
type
A list of holiday locations and an associated dictionary of location:rating
Selection of a random location
Outputting the location name and its rating
The student must be able to complete the above with very little support in order to progress.
Conditions — Recapped
While
Repeat
For
Iteration — key, value with array
Iteration — key, value with dictionary
Key-value pair customization (Rename I and V)
Crash Protection
Script exhaustion time
Command Words
continue
break
Additional Topics
Instances
Storing and creating
Cloning
Storing, original location, and template
Vector3
Instantiation
Storing within a variable
Getting the Distance between two Vector3 objects.
.Magnitude property
Iteration through an array of parts, and the connection of a function to each part - thus creating a lava brick folder with one script.
The student must be able to complete the above with very little support in order to progress.
math.random
Constructing a random Vector3
Leaderstats
String Interaction
string.split
string.lower
string.upper
Player.Chatted
Recap: About the Player class
Admin System / Commands
Simple chat-based commands, such as reset and increasespeed.
The student must be able to complete the above with very little support in order to progress.
Creation of a ModuleScript
Holding of any value and returning it
Loading the value from another script
Public modules
Applications and risks
require(ModuleScript or int)
The client-server model
Responsibilities of each entity within the model.
Limitations of each entity within the model.
Exploiting
Exploiters within a client-server model context, their capabilities and limitations.
LocalScripts
Their creation, location and functionality.
StarterCharacterScripts
StarterPlayerScripts
UserInputService
InputObject and how to handle the KeyCode.
Disregard existing Game Process’
ScreenGui
Simple UI Elements.
Frame
TextLabel
TextButton
Activated event.
TextBox
Text property.
UDIM (User Interface Dimensions)
Scale
Offset
Creation of a user interface with a button to activate a modal; the modal contains a title, password box, and a "submit" button.
If the password is correct, the baseplate is destroyed.
The student must be able to complete the above with very little support in order to progress.
Recap: Client-server model.
RemoteEvents
Client → Server
Parameters
Implementation of parameters to resolve security issues.
Server → Client
Upgrade the existing baseplate destroy UI from the previous checkpoint so it functions on the server.
Make the system exploit-proof, and identify where it is exploitable.
The student must be able to complete the above with very little support in order to progress.
RemoteFunctions
Client → Server (only)
Parameters
Callback
Implementation in a custom project.
Advanced Tables
Designing Data Structures
Indexing Recapped
Sweet Syntaxes
Algorithms (Loops)
Algorithms (Functions)
Advanced Tables in Roblox Development
Associating Instances with Values
Design and creation of various systems to utilize both user interface and networking to create a functional, high-quality product.
Attributes
GetAttribute
SetAttribute
Use of attributes as settings of instances within a loop (i.e. damage bricks).
User Interface → Expanded
ListLayout
GridLayout
ScrollingFrame
One of the following:
Shop System
Hotel Check-In System
House Purchasing
Basic Tycoon
May be assigned in lesson, as a task or not at all.
User Interface → Additional Uses
Rendering on a SurfaceGui / BillboadGui.
Checking if a gamepass is owned.
Prompting the purchase of a gamepass.
Developer Products
Prompting the purchase of a product.
Using a Callback to provide a reward.
One of the following:
Gamepass restricted team.
Currency system, purchasable with products.
The student must be able to complete the above with very little support in order to progress.
Basic Methods
GetDataStore
GetAsync
SetAsync
Utilization of basic methods to create a saving leaderstats system.
Upgrade the basic utilization to be completely safe.
pcall (protected calls to Roblox's Data API).
NoSave array.
game:BindToClose
A complete datastore system from scratch, provided a basic diagram if required.
The student must be able to complete the above with very little support in order to progress.
The third-party reputable module ProfileService.
Loading "profiles".
Utilizing tables to hold template data.
Changing and using tables as a player's data throughout a game.
Using modules.
Fetching the service within a variable.
Declaring the TweenInfo
Enumerations
EasingStyle
EasingDirection
Creating a Tween object.
Playing a Tween object.
Appropriate methods of yielding subsequent code during an active tween.
Optional: FloatCurve as an alternative to TweenService.
Fetching the service.
Rate Limits
API as a concept.
With reference to Discord and weather companies.
Fetching from an API.
PasteBin
BoredApi
Posting to an API.
Discord Webhooks
Proxies
Use the poetrydb API to create a game where users can browse a library of infinite books.
May be assigned in lesson, as a task or not at all.
The OOP paradigm
Advantages
Disadvantages
Metatables and Metamethods
setmetatable
__index
__add
__mul
__div
Use of metatables and metamethods to create classes
Methods
self
Properties
Constructor Method
Using and instantiating the classes elsewhere
PathfindingService
Humanoid
WalkTo
WalkToFinish