roblox-api
When to Use
Use this skill when the task is mainly about identifying or confirming the correct Roblox engine surface:
- Finding which class or service owns a capability.
- Checking whether a member is a property, method, event, or callback.
- Confirming datatype constructors, properties, methods, constants, or math behavior.
- Choosing the correct enum family and item for a property or parameter.
- Looking up globals such as
game,workspace,script,plugin, orEnum. - Confirming built-in library behavior such as
task,math,string,table,os, orvector. - Verifying exact parameter shapes, return values, and deprecation status before writing code.
Do not use this skill when the task is mainly about:
- Overall Roblox project structure, code placement, or client-server responsibility.
- Remote security, replication architecture, persistence design, or Open Cloud workflows.
- Broader system design where API lookup is secondary to structural decisions.
Decision Rules
- Use this skill if the main question is "what engine API should I call or read here?"
- Use this skill when a known problem needs the correct class, member, datatype, enum, global, or library surface.
- Start with the narrowest surface that matches the question:
- Class or service for engine objects and services.
- Datatype for value objects such as
Vector3,CFrame,RaycastParams, orTweenInfo. - Enum for preset values such as
Enum.RaycastFilterType.Exclude. - Global for always-available names like
game,workspace,script, orEnum. - Library for free functions under tables like
task,math,table, orstring.
- If the task is really about where code belongs, which side owns state, or how systems should be arranged, hand off to
roblox-core. - If the task centers on remotes, trust boundaries, replication correctness, or server authority, hand off to
roblox-networking. - If the task centers on persistent storage, quotas, save design, or cross-server state, hand off to
roblox-data. - If the task centers on Open Cloud, OAuth, or external integrations, hand off to
roblox-cloudorroblox-oauth. - If a request mixes referential lookup with out-of-scope design, answer only the engine-reference portion and explicitly exclude the rest.
Instructions
- Identify the missing fact before searching:
- Which engine object or service is responsible?
- Which member kind is needed?
- Which datatype or enum is expected by the API?
- Which global or library helper fits the job?
- Choose the correct reference file first:
references/engine-overview.mdfor surface selection.references/classes-reference.mdfor class, service, and member lookup.references/datatypes-reference.mdfor value types and their usage.references/enums-reference.mdfor enum families and items.references/globals-reference.mdfor Luau and Roblox globals.references/engine-library-yaml-files.mdfor built-in libraries.references/datatype-yaml-files.mdfor interpreting datatype YAML shape and overloads.
- Confirm the exact API contract before coding:
- Member name.
- Member kind.
- Parameter order and types.
- Return type.
- Property type.
- Enum family and item names.
- Deprecation or other tags.
- Prefer the documented modern surface when an older global or legacy form also exists:
- Prefer
task.wait()overwait(). - Prefer
task.delay()overdelay(). - Prefer
game:GetService()for service access when clarity matters.
- Prefer
- When a datatype or library page shows overloads, read all overloads before choosing a call pattern.
- When a parameter or property type points to another datatype or enum, follow that dependency and confirm it separately.
- Keep the answer referential and implementation-facing:
- Name the correct surface.
- State the relevant signature or property type.
- Mention any important enum values, tags, or constraints.
- Do not drift into architecture, persistence, or security-system design.
Using References
- Open
references/engine-overview.mdfirst when the user only knows the problem and not the engine surface. - Open
references/classes-reference.mdwhen the question is about classes, services, or member discovery. - Open
references/datatypes-reference.mdwhen a value object or helper container is involved. - Open
references/enums-reference.mdwhen an API expects a preset constant. - Open
references/globals-reference.mdwhen the question involves built-in names available in scripts. - Open
references/engine-library-yaml-files.mdwhen the needed API lives undertask,math,string,table,os,utf8,coroutine,debug,buffer,bit32, orvector. - Open
references/datatype-yaml-files.mdwhen constructor overloads, mutable-vs-immutable behavior, constants, or member lists need careful interpretation.
Checklist
- The missing fact is identified as class, member, datatype, enum, global, or library lookup.
- The chosen engine surface is the narrowest one that matches the problem.
- Member kind, parameter order, return type, and property type are confirmed before use.
- Required enum family and item names are spelled exactly.
- Datatype constructors or methods match the documented overload.
- Deprecated globals or legacy forms are not recommended unless necessary for compatibility.
- The response stays referential and does not drift into project architecture, persistence, or cloud workflows.
- Out-of-scope systems are handed off to the proper Roblox skill when needed.
Common Mistakes
- Using
roblox-apifor project structure questions that belong toroblox-core. - Guessing a member name without confirming whether it is a property, method, event, or callback.
- Passing raw numbers where an enum item is expected.
- Treating a datatype like an Instance class, or vice versa.
- Missing constructor overloads and choosing the wrong parameter order.
- Recommending deprecated globals like
wait()ordelay()whentaskequivalents are the modern surface. - Assuming a global exists in every context, especially
plugin. - Expanding a simple API lookup into networking, data, or cloud-system design.
Examples
Choose the right surface for a raycast
- Class or service:
Workspace(viaWorldRootbehavior) - Method:
Workspace:Raycast(origin, direction, raycastParams) - Datatype:
RaycastParams - Enum:
Enum.RaycastFilterType - Result datatype:
RaycastResult
Confirm a tween API call
- Class or service:
TweenService - Method:
TweenService:Create(instance, tweenInfo, propertyTable) - Datatype:
TweenInfo - Enums often involved:
Enum.EasingStyle,Enum.EasingDirection
Distinguish global, datatype, and enum usage
local Workspace = game:GetService("Workspace")
local params = RaycastParams.new()
params.FilterType = Enum.RaycastFilterType.Exclude
local cf = CFrame.lookAt(Vector3.new(0, 5, 10), Vector3.zero)
gameis a Roblox global.RaycastParams,CFrame, andVector3are datatypes.Enum.RaycastFilterType.Excludeis an enum item.