Skip to content
cccskills
FreePublished on GitHub

roblox-studio-workflow

Guide changes to existing Roblox Studio projects by inspecting their structure, reusing components, and choosing where scripts run. Cover server, client, and device testing, inspect logs, and clean up temporary objects before reporting results.

OriginalShow the original description

Modify living Roblox Studio projects safely: inspect Explorer and execution locations, preserve existing structure, reuse modules/remotes, create meaningful Instances, apply Attributes and CollectionService tags, test server/client and multiple devices, inspect Output, and remove experiments/debug objects. Use when an agent edits a place or rbxl/rbxlx/Rojo project, operates in Studio, adds Scripts/LocalScripts/ModuleScripts, or must verify a Roblox change in context.

Works withX (Twitter)

Run score Not tested

See how to install

Good for

  • Add features while preserving an existing project’s structure
  • Choose server and client locations for scripts
  • Test multiplayer behavior and device inputs
  • Remove temporary objects and debug code after testing

Files included (3)

  • SKILL.md10.0 KB
  • agents/openai.yaml222 B
  • references/studio-verification.md3.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Roblox Studio workflow

Work as a collaborator inside an existing place, not as if it were a blank text repository. Targets current Roblox Studio and rolling platform APIs.

When to use

  • Use before invasive edits to a Roblox place, Studio DataModel, or Rojo-backed project.
  • Use to plan execution location, find/reuse systems, create editable Instances, and gather honest Studio verification evidence.

When not to use: this skill owns project operation, not the domain implementation. Compose it with roblox-ui, roblox-networking, roblox-characters, roblox-physics, roblox-luau, or roblox-datastores as appropriate.

Workflow

  1. Establish source of truth. Determine whether Studio, Rojo files, a package manager, or a generated build owns each subtree. Do not hand-edit generated output or create Studio-only changes that the next sync overwrites.
  2. Inventory before proposing structure. Inspect Explorer, search scripts/modules/remotes/tags, read project mapping and naming conventions, and run once to observe existing warnings. Locate the feature's current owner and dependencies.
  3. Plan the smallest compatible edit. Name the Instances and execution locations you will change. Reuse existing remotes, component modules, cleanup utilities, tags, Attributes, folders, and configuration patterns. State any unresolved ownership boundary.
  4. Create real, meaningful objects. Normal authored UI, folders, attachments, constraints, remotes, and configuration remain inspectable in Explorer. Use scripts for behavior and truly dynamic repetition—not to hide the entire feature in runtime construction.
  5. Respect execution and replication. Put authoritative logic in server containers, persistent client logic in StarterPlayerScripts, per-character client logic in StarterCharacterScripts, UI templates in StarterGui, shared assets/modules/remotes in ReplicatedStorage, and secrets/server assets in server-only containers.
  6. Test the actual risk. Choose Play, Play Here, Run, Server & Clients, Device Emulator, Controller Emulator, or scripted Studio testing based on the behavior. Inspect server and client Output, not only the viewport.
  7. Clean the experiment. Remove temporary parts, test remotes, command-bar scripts, debug UI, prints, disabled duplicate scripts, placeholder assets, and tags/Attributes created only for diagnosis. Stop the session and confirm edit-mode hierarchy is clean.
  8. Report evidence precisely. List changed Instances/files, modes and client counts, cases executed, observed Output, failures and fixes, and anything not run. Never translate “looks plausible” or static inspection into “tested in Studio.”

Execution-location map

LocationTypical roleKey constraint
ServerScriptServiceauthoritative server Scripts/modulesnot replicated to clients
ServerStorageserver-only assets/dataclients cannot access it
ReplicatedStorageshared modules/assets/remotesvisible to clients; do not store secrets
StarterPlayerScriptsclient systems across respawnsclone into PlayerScripts
StarterCharacterScriptsper-character client behaviorrecreated each character
StarterGuiauthored UI templatesclones into PlayerGui; lifecycle depends on GUI policy
Workspacereplicated world and live charactersstreaming/ownership may affect client view

Verify actual Script RunContext and project conventions; class/location shorthand does not excuse inspection of an existing custom setup.

Reuse before adding

Before creating a RemoteEvent, search by purpose and inspect both endpoints. Before adding a “manager” or service module, identify the current feature owner. Before introducing folders/tags, inspect naming and retrieval patterns. Duplicate systems are especially dangerous when both run: they double-bind input, save twice, create two UI clones, or apply gameplay twice.

Use Attributes for small typed designer-editable metadata that belongs on an Instance. Use CollectionService tags for discovering sets of Instances across hierarchy. Use folders for ownership/navigation, not as a substitute for semantic tags. Preserve established schemas and validate missing/malformed Attributes at system boundaries.

local CollectionService = game:GetService("CollectionService")

local function setupDoor(instance: Instance)
    if not instance:IsA("Model") then return end
    local accessLevel = instance:GetAttribute("AccessLevel")
    if type(accessLevel) ~= "number" then
        warn(`Door {instance:GetFullName()} needs numeric AccessLevel`)
        return
    end
    attachDoorBehavior(instance, accessLevel)
end

for _, door in CollectionService:GetTagged("Door") do setupDoor(door) end
CollectionService:GetInstanceAddedSignal("Door"):Connect(setupDoor)

The owning system must also clean behavior when a tagged Instance is removed/destroyed.

Studio MCP server (optional agent path)

Roblox Studio has a built-in MCP server. When it is connected to your AI client, drive the same inspect -> edit -> run/verify -> playtest ladder through its tools instead of manual clicking. This is OPTIONAL: when it is not connected, the manual Studio + Rojo workflow above and below is the full default path, and nothing in this skill requires MCP, Assistant, or any other tool. Enable it in Studio under Assistant, then Manage MCP Servers, then "Enable Studio as MCP server" (it speaks MCP over stdio to the client).

Map the workflow onto the documented tools. Every call also takes a studio_id; use list_roblox_studios to pick the target when several Studio windows are open.

Ladder stepMCP tools
inspect / inventorysearch_game_tree, inspect_instance, script_search, script_grep
editscript_read, multi_edit (creates the script when the path is new)
run / verifyexecute_luau (needs a datamodel_type: Edit, Client, or Server), get_studio_state, start_stop_play, get_console_output, screen_capture
playtestsubagent (types explore, playtest), character_navigation, user_keyboard_input, user_mouse_input
Roblox's own docs/skillshttp_get (allowed Roblox doc URLs), skill (Roblox-authored reference)

The discipline does not change with MCP: multi_edit still writes normal, inspectable Scripts (not a feature hidden in runtime construction), the server stays authoritative, you still edit source-of-truth files rather than generated output, and you still clean up experiments. Treat get_console_output and screen_capture as the agent-native evidence for the verification ladder, and still inspect BOTH server and client output. MCP is a transport for the same workflow, not a licence to skip it.

Roblox also ships agent-readable docs independent of MCP: an index at https://create.roblox.com/docs/llms.txt and a .md twin of every docs page (append .md to its URL). A connected client can reach these through http_get/skill; an offline agent reads the .md pages directly.

Verification ladder

  1. Static: project mapping/JSON/XML parses; links resolve; Luau diagnostics/lint if available.
  2. Single session: correct execution context, hierarchy, no new Output errors/warnings, basic happy path and cleanup.
  3. Lifecycle: respawn, reset, reopen/rejoin, streaming or character replacement as relevant.
  4. Server & Clients: at least two clients for remotes, replication, ownership, player interaction, joins/leaves, and targeted state.
  5. Device/input: representative device profiles, orientation, touch, controller navigation.
  6. Stress/failure: malformed input, spam, empty/full content, rapid transitions, simultaneous actions, disconnects, and cleanup.

Use the smallest rungs that cover the change, but never substitute a lower rung for a claimed higher-rung result.

Common failures

SymptomLikely causeRemedy
Studio edit disappears after syncgenerated/mapped subtree editedchange source-of-truth files and resync
feature runs twiceduplicate Script/remote/controllerinspect first; consolidate under existing owner
client cannot access module/objectwrong execution/storage locationmove shared content deliberately; keep secrets server-only
authored screen unreadable in Explorereverything created by one LocalScriptcreate named Instance shell and small behavior modules
test passes only in Playreplication/lifecycle untesteduse Server & Clients and relevant emulators
“clean” Output hides client errorsonly server Output inspectedinspect each client and server context
shipped place has DebugFolder/printsexperiment cleanup skippedmaintain cleanup list and inspect hierarchy after session
Attribute/tag behavior silently failsschema/class not validatedvalidate at setup boundary; warn with full Instance path

Resources

  • Read references/studio-verification.md before reporting Studio validation or when choosing test modes, constructing a temporary harness, or documenting an automation gap.

Related skills

  • roblox-luau — services, Instances, events, and basic execution model.
  • roblox-ui, roblox-networking, roblox-characters, roblox-physics — focused production workflows that use this inspection and verification discipline.

Primary references

  • https://create.roblox.com/docs/studio/testing-modes
  • https://create.roblox.com/docs/projects/data-model
  • https://create.roblox.com/docs/scripting/services
  • https://create.roblox.com/docs/studio/mcp

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Implement reusable decision systems for game characters using behavior trees, which organize conditional actions, and Utility AI, which scores available choices. Build either approach or combine them to control patrols, combat, targeting, and needs-based behavior.

  • Build a reusable behavior tree runtime
  • Choose attacks or targets using action scores
  • Combine patrol and combat trees with Utility AI
gamedev-skills/awesome-gamedev-agent-skills3.5KUpdated Oct 23, 2026

audio-design

FreeSummary

Design game audio with grouped volume controls, music that responds to gameplay, and varied sound effects. Plan how music lowers during dialogue and how events follow the beat, using principles that can be adapted to different game engines.

  • Plan grouped volume controls for music, effects, and dialogue
  • Lower background music while dialogue plays
  • Change music layers or segments with gameplay intensity
gamedev-skills/awesome-gamedev-agent-skills3.5KUpdated Oct 23, 2026

bevy-ecs

FreeSummary

Build and debug Rust games in Bevy using ECS, a way to separate game data from behavior. Organize apps and plugins, query entities, control execution order, and fix conflicting data access or frame-dependent movement.

  • Organizing a Bevy app with plugins
  • Defining components and shared resources
  • Fixing conflicting queries and execution order
gamedev-skills/awesome-gamedev-agent-skills3.5KUpdated Oct 23, 2026

camera-systems

FreeSummary

Build and tune game cameras for smooth 2D following and 3D viewing. Covers motion smoothing, look-ahead, level boundaries, wall avoidance, and framing multiple targets, with techniques that apply across engines.

  • Smooth player-follow cameras in 2D games
  • Keep the camera view within level boundaries
  • Prevent third-person cameras from clipping through walls
gamedev-skills/awesome-gamedev-agent-skills3.5KUpdated Oct 23, 2026

card-game

FreeSummary

Design the core rules of a card game, including decks, hands, discards, drawing, shuffling, turns, and resource costs. Represent card effects as data and define their resolution order so card movement and gameplay outcomes follow explicit rules.

  • Building a deckbuilder or trading card game
  • Implementing draws and discard reshuffling
  • Defining turn phases and card costs
gamedev-skills/awesome-gamedev-agent-skills3.5KUpdated Oct 23, 2026

Plan and prepare consistent game artwork, from sprites and backgrounds to UI icons and 3D briefs. Organize asset requirements, generate or source related visuals, standardize files, and check their appearance and technical fit inside the game.

  • Create sprites and backgrounds with a consistent visual style
  • Check asset dimensions, transparency, and tile seams
  • Track asset sources and licenses before release
gamedev-skills/awesome-gamedev-agent-skills3.5KUpdated Oct 23, 2026

See all skills by gamedev-skills

Report a problem with this skill