Class reference
The Legacy Roblox Wiki features an API Reference that documents all of the classes, data types, enumerations, functions, events, callbacks, and properties that can be used to create games on classic Roblox.
- This page, the Class Reference, documents classes. Classes are core objects and services in Roblox's engine. Classes contain properties, methods, events and callbacks.
- Data Types are types unique to the Roblox engine, They can contain constructors, properties, and methods.
- Enums are groups of constants that define preset values that you can use with other APIs. Documentation for the generic Enumeration data type is here.
- Globals are functions or properties that you can use in any script. Most globals are native to the Lua programming language while some are exclusive to Roblox's implementation.
If you are looking for more information on undocumented API features, one of your best resources is the Object Browser pane (under the Help menu in Roblox Studio). There are also so many more objects used internally by the game engine which has not yet been added to the list here. If it has documentation on the wiki, it can be found at the Category:ROBLOX_Lua_Objects category.
Parts
As the essential building blocks of Roblox, these objects interact with each other physically. All classes here inherit from the BasePart abstract class.There parts all all rendered in 3D if placed in workspace.
Part modifiers
These objects, when parented to a part, will change the appearance or behavior of the part.
Body movers
Similar to part modifiers, these objects work on the part they are parented to. These objects alter the position, orientation, or movement of a part. All classes here inherit from the BodyMover abstract class.
Gameplay
These objects are used in general gameplay of a place.
Humanoids
These objects are usually found in Humanoids. An example is a Player's Character.
GUI
These objects display graphical elements in 2-dimensional space on the player's screen, in front of the 3D world.
3D GUI
These objects display graphical elements in 3-dimensional space. While they don't interact physically with parts, they are usually attached to parts in some way.
Scripting
These objects are involved in adding scripted functionality to a game.
Values
These objects exist to hold specific value types. They are essential for communicating data between Scripts.
Joints
These objects bind parts together, sometimes with an extra effect such as a hinge or motor. All classes here inherit from the JointInstance abstract class.
Containers
These objects are designed to contain other objects as children. For example, the Workspace holds objects that are simulated as the game runs.
Services
These objects generally operate in the background, and may be helpful with place development. They're unique in that they may only have one instance of themselves, and can be acquired with the GetService method.
Internal
These objects are used internally by the game engine. Generally, trying to use them in Scripts or LocalScripts will result in an error. However, Plugins and the Command Bar in Studio may use them. They might come in handy for making Plugins to enhance your Studio workflow.
Structural Classes
Structural Classes, or "superclasses", are objects which can't be created or used with Instance.new in game, but are the basis for other objects to inherit properties, events, and methods. For example, Part , TrussPart , and WedgePart , all inherit from the structural class BasePart .
Essentially, they're used for creating objects that are mostly similar, but slightly diverge, such as a Part and TrussPart. They both require the same properties and methods but their physical appearance and functionality diverge.
Objects
Services
Studio
Some classes are used directly by Studio, but others can be used by Studio plugins to analyze properties of the game engine, hardware, and more.