AI Skill Report Card

Mapping Roblox API Surfaces

B70·Oct 27, 2026·Source: Web
13 / 15

Three distinct request types trigger three distinct outputs. Identify which one is being asked, then produce only a table (or in Type 1's case, one table plus one fixed trailer row) — no preamble, no summary, no commentary before or after.

Request TypeTrigger PhraseSources to FetchOutput
1. Engine API surface"what to make" + Roblox engine capabilitiesRoblox engine capabilities pages + https://setup-rbxcdn.github.io/ref/index.htmlOne table of Classes/DataTypes/Enums/Globals/Libraries/APIs/Services/Methods/Arguments + fixed trailer row
2. Package discovery"what to make" + packages/librariesRoblox community resources (DevForum, GitHub, Roblox Toolbox/Creator Store)One table: package name, url, how it can be used
3. Package deep-dive"how to use" + specific package/library name or urlThat package's documentation + source codeOne table covering every API it offers
Recommendation▾
Verify the referenced URLs (setup-rbxcdn.github.io, create.roblox.com/docs/llms.txt) are real/stable — fabricated or unreliable sources undermine the entire skill's premise of fetching authoritative documentation.
14 / 15

Step 0 — Classify the request. Determine Type 1, 2, or 3 from the user's phrasing. If ambiguous, default to Type 1 when "engine", "Roblox" (generic), Classes/DataTypes/Enums are mentioned; Type 2 when "packages"/"libraries" discovery is implied; Type 3 when a specific named package/library/URL is given.

Type 1: Engine API Surface

Progress:

  • Fetch https://setup-rbxcdn.github.io/ref/index.html
  • Fetch/derive current Roblox engine capabilities (Classes, DataTypes, Enums, Globals, Libraries, Services, Methods, Arguments, other APIs) relevant to the requested "thing to make"
  • Build ONE table with columns: Category | Name | Description (adjust columns as needed, but keep it to a single table)
  • Fill rows only with items actually relevant to making the requested thing — not the entire engine dump, unless the user asked for everything
  • Append the fixed trailer row exactly as specified (fill in the "Numberof" counts with real counts if determinable from the fetched index, otherwise keep placeholders consistent with the format)
  • Output nothing except the single table

Trailer row format (always last row, always included):

Full Reference | Engine API Index (llms.txt) | Complete list of 'Numberof' classes, 'Numberof' data types, 'Numberof' enums, 'Numberof' globals, and 'Numberof' libraries. | Use as the authoritative source for any API not listed above. https://create.roblox.com/docs/llms.txt

Type 2: Package Discovery

Progress:

  • Search/fetch Roblox's most popular libraries/packages for the stated goal (DevForum resources, GitHub repos like Roact, Rodux, Knit, Fusion, ProfileService, Promise, Signal, TopbarPlus, etc.)
  • Build ONE table: Package/Library Name | URL | How It Can Be Used
  • Output nothing except the table

Type 3: Package Deep-Dive

Progress:

  • Fetch official documentation for the named package/library (if it exists)
  • Fetch/read the source code (GitHub repo, Wally package, etc.) to capture undocumented APIs
  • Enumerate everything: public classes, functions, methods, properties, events, constructors, configuration options, arguments/types/defaults, return values
  • Build ONE table: API/Member | Type (Method/Property/Event/Function) | Signature/Arguments | Description/Usage
  • Do not omit anything found in source even if undocumented
  • Output nothing except the table
Recommendation▾
Examples are somewhat abstract (showing partial rows with '...' rather than full concrete table outputs) — include at least one fully rendered example table to remove ambiguity.
14 / 20

Example 1 (Type 1): Input: "What to make: a day/night cycle system" Output: A single table with rows like Service | Lighting | Controls ClockTime, time of day rendering, DataType | Color3 | RGB color for sky/lighting tweening, Class | Sky | Skybox textures and celestial bodies, Enum | Enum.EasingStyle | Tween interpolation curves, Library | TweenService | Animates property changes over time ... ending with the fixed Full Reference trailer row.

Example 2 (Type 2): Input: "What to make: a dialogue system — what packages?" Output: Single table — Package | URL | How It Can Be Used with rows such as Fusion | https://github.com/dphfox/Fusion | Reactive UI state management for building dialogue boxes, Knit | https://github.com/Sleitnick/Knit | Service/controller framework to structure dialogue server-client communication.

Example 3 (Type 3): Input: "How to use: ProfileService" Output: Single table — API/Member | Type | Signature | Description with rows like ProfileStore.GetProfileAsync | Method | (profileKey: string, notReleasedHandler) -> Profile? | Loads a player's data profile, Profile.Data | Property | table | Mutable table holding the player's persisted data, Profile:Release | Method | () -> () | Releases the session lock on the profile.

Recommendation▾
Add guidance on handling fetch failures (e.g., if the index page or package docs are unreachable), since the whole workflow depends on external fetches succeeding.
  • Always output ONLY the table(s) — zero introductory or closing text, zero markdown headers above/below, zero explanations of what was fetched.
  • For Type 1, scope the table to what's relevant to the requested build, not an indiscriminate full engine dump — the full dump is what the trailer row's llms.txt link is for.
  • For Type 3, prioritize source code over docs when they conflict or when docs are incomplete/outdated — the goal is total coverage.
  • Keep table rows terse; descriptions should be one line, not paragraphs.
  • Use real, verifiable names (actual Roblox Class/Enum/Service names, actual package GitHub URLs) — never invent API names.
  • Adding a title, intro sentence, or closing note — breaks the "output only a table" requirement.
  • Forgetting the fixed trailer row in Type 1 or altering its wording/structure.
  • Splitting output into multiple tables when one table was required.
  • In Type 3, relying only on official docs and missing APIs only visible in source code.
  • In Type 2, listing generic/unmaintained packages instead of currently popular, actively used ones.
  • Padding descriptions with filler text instead of concise, usage-focused phrasing.
0
Grade BAI Skill Framework
Scorecard
Criteria Breakdown
Quick Start
13/15
Workflow
14/15
Examples
14/20
Completeness
14/20
Format
14/15
Conciseness
13/15