MCPInstall

roblox-core

Choose Roblox services, script locations, and execution contexts. Use for Luau types, serialization, module loading, streaming, and client-server data model questions.

Installs
310
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/nonlooped/roblox-suite --skill roblox-core
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads roblox-core automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

roblox-core

Key sources: https://create.roblox.com/docs/en-us/scripting/services, https://create.roblox.com/docs/en-us/luau, https://create.roblox.com/docs/en-us/luau/tables, https://create.roblox.com/docs/en-us/luau/type-checking, https://create.roblox.com/docs/en-us/scripting/locations, https://create.roblox.com/docs/en-us/projects/data-model, https://create.roblox.com/docs/en-us/projects/client-server, https://create.roblox.com/docs/en-us/workspace/streaming, https://create.roblox.com/docs/en-us/scripting/multithreading, https://create.roblox.com/docs/en-us/scripting/attributes

Script initialization

  1. local Service = game:GetService("ServiceName"). Do this once, name the variable after the service.
  2. local Module = require(ReplicatedStorage:WaitForChild("Module"))
  3. Local helper functions.
  4. Connect to events.

Services are the primary way you access engine functionality instead of a traditional standard library.

Modern task library

Use the modern task API; the legacy globals wait(), spawn(), and delay() are deprecated/soft-deprecated:

  • task.wait(n?): yields for about n seconds (default one frame) and returns elapsed time.
  • task.spawn(f, ...): schedules f to run asynchronously.
  • task.defer(f, ...): defers f until after the current event cycle.
  • task.cancel(thread): cancels a thread returned by task.spawn/task.defer.

For parallel code, task.desynchronize() and task.synchronize() move the current thread between the parallel and serial phases.

Services by purpose

Container / hierarchy services (visible in Explorer, part of the DataModel):

  • Workspace (3D content)
  • Lighting (environment, atmosphere, post effects)
  • ReplicatedStorage / ReplicatedFirst (shared code & assets)
  • ServerScriptService (server-only logic)
  • StarterGui / StarterPlayer / StarterPack (templates cloned to players)
  • Players, Teams, SoundService, etc.

Core runtime & scripting services:

  • RunService: Heartbeat fires after physics on both sides; PreSimulation fires before physics on both sides; PreRender is client-only and fires before rendering.
  • TweenService (see animation skill)
  • CollectionService (tags)
  • ContextActionService, UserInputService, GuiService
  • ContentProvider (preloading)

Cloud / persistence / cross-server:

  • DataStoreService, MemoryStoreService, MessagingService (see roblox-datastores skill)

Monetization:

  • MarketplaceService (gamepasses, dev products; see dedicated skill)
  • BadgeService, etc.

Other high-value ones: TeleportService, AnalyticsService, HttpService (outbound only + JSONEncode/Decode), PathfindingService, etc.

Discover services with game:GetService (known services) or game:FindService (optional). Avoid using game:GetChildren() for service discovery. Not every DataModel child is a service, and services can be lazily created. Acquire each service once per script/module.

Instance creation best practice

Configure an instance before parenting it to avoid redundant replication and extra changed events:

local part = Instance.new("Part")
part.Anchored = true
part.Size = Vector3.new(4, 1, 2)
part.Position = Vector3.new(0, 10, 0)
part.Parent = workspace

Set Parent last; do not use the Instance.new("Part", parent) two-argument form.

Types and serialization

Read luau-data-types-and-serialization.md before designing persisted values or debugging serialization. DataStores, JSON, and remotes have different supported types. A successful JSONEncode is a useful check, but it does not prove that a value meets every DataStore constraint.

Type checking

Gradual and opt-in. Use --!strict at the top of a file (it is file-level) or a .luaurc project configuration for project-wide type checking. Add annotations (local x: number, function signatures) for large modules. Inference does a lot of the work. Catches bugs at edit time with zero runtime cost.

Script locations and execution contexts

  • ServerScriptService + Script (RunContext.Server) → server only, with access to server APIs such as DataStores.
  • ReplicatedStorage → stores shared ModuleScripts/assets. A Script here only runs if its RunContext is set to Client or Server; use ModuleScripts for shared logic.
  • StarterGui + LocalScript → per-player client only (inside the cloned PlayerGui).
  • ReplicatedFirst + LocalScript → very early client execution (loading screens).
  • Actor + Script with RunContext.Client/Server → can run Parallel Luau when the code calls task.desynchronize() or uses ConnectParallel(). The Actor must be parented to the DataModel and the Script must have an explicit RunContext; placing a Script inside an Actor alone does not parallelize it. require() can be called from parallel contexts only when the module itself is parallel-safe; most engine APIs and many modules are not.
  • Tools have special execution contexts. HopperBins are deprecated/legacy and should not be used for new work.

Modern Roblox uses BaseScript.RunContext (Legacy, Server, Client, Plugin). Legacy exists only for backward compatibility and is location-dependent; prefer explicit Server or Client for new code. RunContext is set in Studio's Properties window and is read-only at runtime.

Always branch runtime authority with RunService:IsServer() and IsClient(). IsStudio() detects the environment (Studio vs. live), not runtime context, so use it only for test/development guards.

Never put datastore writes, economy, or authoritative gameplay logic anywhere a client can influence it directly.

"Files" and data in Luau/Roblox

Inside a running experience there is no direct filesystem access (security). You cannot open arbitrary files or write player-visible logs.

What you have instead:

  • DataStores / MemoryStores for persistent or temporary "save data".
  • ModuleScripts for reusable code (require works like a cached module system: a ModuleScript runs once and returns the same value on subsequent requires).
  • HttpService:JSONEncode/Decode + web calls for external data exchange.
  • In Studio: plugins have limited file APIs, and external tools (Rojo, Script Sync) can sync code from the filesystem, but experience scripts never have arbitrary filesystem access.

For complex data you often serialize tables to JSON strings for storage or transmission.

Additional runtime considerations

  • Attributes: use :SetAttribute/GetAttribute for lightweight per-instance data; prefer them over legacy Value objects.
  • Random: use the Random class (Random.new(seed)) for deterministic or independent random streams instead of global math.randomseed.
  • StreamingEnabled: on the client, instances can stream in/out; always use WaitForChild/Instance.StreamingMode defensively and avoid hard references to far-away parts.
  • table utilities: table.create(n, value), table.find(t, value), table.clone(t), and table.freeze(t)/table.isfrozen(t) are the modern helpers.
  • BaseScript.Enabled: disables/enables a script without deleting it.
  • ModuleScript caching: require executes a ModuleScript once per environment and caches the returned value.
  • Sequence / physical types: NumberSequence, ColorSequence, and PhysicalProperties are common Roblox datatypes for particles, beams, and part materials.

Architecture foundations

  • Server authority is the default safe posture.
  • Replication is selective and streaming-aware.
  • Use ReplicatedStorage for shared modules/assets, ServerScriptService for server logic, StarterGui for client UI entry points.
  • CollectionService tags + Attributes for lightweight grouping and data without heavy Instance hierarchies.
  • Parallel Luau + Actors when you need CPU-bound work off the main thread.

Scripts

  • scripts/ServiceHelper.lua: small utilities for safely acquiring services and requiring modules with timeouts.
<!-- catalog:references:start -->

Reference index

  • luau-data-types-and-serialization.md: Choose data types or diagnose serialization failures.
  • script-locations-contexts-and-architecture.md: Decide where scripts run or debug loading and replication.
  • services-catalog-and-usage.md: Choose a service or load services and modules.
<!-- catalog:references:end -->

FAQ

What does the roblox-core skill do?

Choose Roblox services, script locations, and execution contexts. Use for Luau types, serialization, module loading, streaming, and client-server data model questions.

How do I install roblox-core?

Run npx skills add https://github.com/nonlooped/roblox-suite --skill roblox-core in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/roblox-core/ (personal) or .claude/skills/roblox-core/ (project).

Which AI agents can use roblox-core?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is roblox-core safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains roblox-core?

It is published by nonlooped in nonlooped/roblox-suite. It has 310 recorded installs.

More from nonlooped/roblox-suite

View all →

roblox-vfx

nonlooped/roblox-suite

Build or optimize Roblox particles, beams, trails, and highlights. Use for emitter shapes, flipbooks, one-shot bursts, animation-marker effects, distance culling, and overdraw.

Frontend & Design685 installs

roblox-animation

nonlooped/roblox-suite

Build or debug Roblox character animations, IK poses, animation-marker events, and UI or object tweens. Use for locomotion, emotes, motion blending, and timed effects.

Frontend & Design414 installs

roblox-user-interfaces

nonlooped/roblox-suite

Build or debug Roblox HUDs, menus, and world-space interfaces. Use for GUI containers, responsive layouts, input handling, ViewportFrame previews, and particle effects in 2D UI.

Frontend & Design341 installs

roblox-testing

nonlooped/roblox-suite

Test, debug, or profile Roblox experiences. Use for Studio debugging, TestEZ, logging, connection cleanup, memory or network diagnostics, MicroProfiler, Scene Analysis, and Script Profiler.

Testing & QA330 installs

roblox

nonlooped/roblox-suite

Open the skill to read its SKILL.md instructions.

322 installs

roblox-mcp

nonlooped/roblox-suite

Connect an AI client to Roblox Studio through MCP. Use for connection setup, Studio tools, multiple Studio windows, playtesting, or combining MCP with Script Sync.

AI & Agents321 installs

Popular backend & apis skills

View category →

find-skills

vercel-labs/skills

Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.

OfficialBackend & APIs4.1M installs

entra-app-registration

microsoft/azure-skills

Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.

OfficialBackend & APIs566.7K installs

This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).

Backend & APIs514.8K installs

embedded-captions

heygen-com/hyperframes

Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.

Backend & APIs453.3K installs

entra-agent-id

microsoft/azure-skills

Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).

OfficialBackend & APIs336.6K installs

neon

neondatabase/agent-skills

Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.

Backend & APIs237.1K installs