Configures Claude Code hooks and Codex hooks.json/notify. Use when adding PreToolUse guards, Stop hooks, managed hooks, format-on-save, preflight, audits, or worktree/budget hooks.
日本語の概要は準備中です。原文の説明を表示しています。
Creates Roblox experiences from empty Studio place to published world. Use when starting, building, validating, or shipping a Roblox game.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Use this skill to take a Roblox experience from empty Studio place to a published, retainable world. It covers the durable build spine (greybox → first playable → detail → ship) and fences the volatile platform layer (rates, fees, limits, discovery ranking, publishing rules, renamed APIs) behind lookup steps. Roblox changes that layer without warning — the discovery algorithm, the DataStore budget model, and UGC publishing rules have each changed materially within a year — so look up the current state on create.roblox.com and in DevForum announcements before relying on any of it.
| Stage | Read or Run | Durable default |
|---|---|---|
| Setup & toolchain | references/setup-and-toolchain.md | Studio + Rojo + Rokit + Wally for git-native teams; Script Sync (Roblox-native, Team-Create compatible; check its current release status and known issues on the DevForum) for Studio-led collaboration; partially managed Rojo can keep world building in Team Create; default.project.json defines the DataModel tree |
| Language & architecture | references/luau-and-architecture.md | --!strict Luau; task.wait/spawn/defer never wait()/spawn(); server-authoritative; RemoteEvent + UnreliableRemoteEvent for high-frequency; ProfileStore for player data |
| Build the world | references/world-building.md | Greybox in Parts first; 1 stud ≈ 0.28 m; enable StreamingEnabled in Studio; Unified Lighting LightingStyle = Realistic + PrioritizeLightingQuality (the old Technology enum is deprecated) |
| Performance & traps | references/performance-and-traps.md | Anchor static parts; opaque geometry by default; profile overlapping transparency; disconnect every connection; ProfileStore (atomic update + lease lock) or hand-rolled UpdateAsync + leased lock, never both, plus BindToClose; idempotent ProcessReceipt; bounded waits plus stream-out/re-entry handling in LocalScripts |
| Discovery, economy, policy | references/discovery-economy-policy.md | Design for first-session clarity and mid-game retention, not lifetime totals — look up the current RFY signal definitions before tuning; complete the maturity questionnaire; gate paid random items per player via PolicyService; design sinks for every source; never trust the client for economy |
| AI-assisted creation | references/setup-and-toolchain.md#ai-assisted-creation | Studio Assistant, the material and texture generators, Code Assist, and a Studio MCP server for external LLMs — check each tool's current release stage (Beta vs GA) and limits in the Creator Hub docs before depending on it |
The durable spine. Each step names its verification check inline — do not advance from a state you cannot describe back.
rojo serve syncs a filesystem edit into Studio; with Script Sync, test both directions for supported scripts; default.project.json maps src/ to the right services. See references/setup-and-toolchain.md.references/world-building.md.references/luau-and-architecture.md.references/world-building.md and references/performance-and-traps.md.OnServerEvent; serialize economy remotes; disconnect every connection; BindToClose save; one lease lock on player data (ProfileStore's, or a hand-rolled one, never both); idempotent ProcessReceipt; PolicyService gate on paid random items → verify: walk references/performance-and-traps.md Known Traps as a checklist; MicroProfiler shows no runaway frame peaks.GetRequestBudgetForRequestType() reports the current server’s available requests, not the experience’s remaining pool. Fix observed failures before expanding the audience.references/discovery-economy-policy.md.task library, always. task.wait/spawn/delay/defer and signal:Once(). The legacy wait()/spawn()/delay() globals are deprecated and drift under load.Instance.new("Part"), configure, then set .Parent last — avoid replicating intermediate property changes.StreamingEnabled in Studio; use bounded waits for missing Workspace objects, handle timeout nil, and clean up/rebind when objects stream out and back in; keep ReplicatedStorage/ReplicatedFirst lean (they never stream).UpdateAsync (never SetAsync for shared keys) plus a leased lock keyed on game.JobId only when not using ProfileStore. Never do both on the same data. Either way, flush in BindToClose and save on cadence and on critical events, not on every stat change.references/luau-and-architecture.md.part:SetNetworkOwner(player) makes their own vehicle/tool physics simulate locally with more responsive input; SetNetworkOwner(nil) forces server ownership for contested/exploitable physics. This — not RemoteEvents — is why "my car lags for the driver."references/discovery-economy-policy.md#economy-design-judgment-sinks-sources-and-exploit-economics.references/discovery-economy-policy.md#when-roblox-is-the-wrong-platform.OnServerEvent for economy or stat changes instead of computing on authoritative server state.SetAsync on a shared key from multiple servers (race → data loss); no BindToClose (lose the last autosave on shutdown).RenderFidelity = Precise on background geometry; unanchored static parts; per-instance Scripts where one tagged manager would do.while ... do wait() end loops.Lighting.Technology enum in a new project instead of LightingStyle + PrioritizeLightingQuality.Remote mutation gate.
For every RemoteEvent or RemoteFunction that can change inventory, currency, progression, trades, or purchases, write the server-owned invariant beside the handler. Validate instance ancestry, types, bounds, entitlement, and current server state; rate-limit by player and action; then perform the mutation once under an idempotency key or atomic update. A client request is an intent, never evidence that the action is allowed.
wait() drift — legacy scheduler resumes on ~1/30s minimum and accumulates drift; use task.wait.nil; later stream-out needs removal handling and re-entry binding too.Humanoid/HumanoidRootPart are not all present the instant CharacterAdded fires; :WaitForChild them.GetRequestBudgetForRequestType(); check current experience/request-type limits and SetRateLimitForRequestType() semantics in the official limits docs, and wrap operations in pcall with structured logging.RemoteFunction:InvokeClient() from the server — a malicious client can yield forever and hang the thread; never call it.Parent/Model type narrowing after reparenting or reassignment, and high Studio memory use. If strict-typed code reports impossible type errors after moving instances, suspect the solver, not your code.ProcessReceipt) — the most common way a game loses money or dupes items. When using ProcessReceipt, assign one central dispatcher in each server, shared by all its developer products; another assignment in that server replaces it. Use durable receipt deduplication across servers. Make it idempotent: commit each grant and its PurchaseId together in the player's persisted profile and return PurchaseGranted immediately for one already recorded. Return PurchaseGranted only after the grant and the PurchaseId are saved; return NotProcessedYet on any error, a failed save, or when the player is no longer in the server, so Roblox retries later.PolicyService:GetPolicyInfoForPlayerAsync(player) on the server for each player and block the purchase where paid random items are restricted, and disclose odds as current Roblox policy requires. The field names, affected regions, and disclosure rule are volatile: look them up in the PolicyService and monetization-policy docs before shipping.| Need | Pick | Status |
|---|---|---|
| Player data persistence | ProfileStore | Community standard; successor to the deprecated ProfileService |
| Tag/component architecture | CollectionService (optionally Stamp wrapper) | Built-in; idiomatic |
| Typed networking | Jolt (community) or ByteNet | Community options; check whether Roblox now ships an official typed networking API before adding one |
| ECS | Matter (matter-ecs) | Maintenance has been in doubt; do not adopt for new production ECS without confirming recent activity on the canonical or fork repos |
| Module framework | Modular OOP, or ECS if needed | Knit has been declared unmaintained — confirm repo status; do not start new projects on an unmaintained framework |
| Build automation / CI | Lune + Wally + Rokit | Git-native production stack |
Resources:
Related skills:
When prior decisions or pitfalls are relevant, consult learnings.consolidated.md if present; use learnings.md only for needed history or as the available fallback. Otherwise skip both.
After applying it, if you encountered a pattern worth remembering, a mistake worth preventing, or a domain fact that surprised you, append one dated bullet to learnings.md via agents-skills-feedback-loop/scripts/append_learning.py. Do not modify SKILL.md itself.
verify labels rather than dated values.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Configures Claude Code hooks and Codex hooks.json/notify. Use when adding PreToolUse guards, Stop hooks, managed hooks, format-on-save, preflight, audits, or worktree/budget hooks.
日本語の概要は準備中です。原文の説明を表示しています。
Configures and hardens Claude Code and Codex MCP servers. Use when connecting databases, APIs, SaaS, building servers, or serving a clearance-filtered knowledge base.
日本語の概要は準備中です。原文の説明を表示しています。
Owns instruction files: AGENTS.md, CLAUDE.md, personal and repo rules. Use when writing, pruning, auditing them, sharing rules across Claude and Codex, or fixing ignored rules.
日本語の概要は準備中です。原文の説明を表示しています。
Creates and audits agent skills: SKILL.md, references, scripts, runtime metadata. Use when writing, validating, or security-reviewing a skill, or fixing truncated skill listings.
日本語の概要は準備中です。原文の説明を表示しています。
Adds per-skill learnings loops for dated patterns, mistakes, and domain facts. Use when wiring skill memory, consolidation, or drift audits.
日本語の概要は準備中です。原文の説明を表示しています。
Chooses subagent, team, workflow, or debate and launches it on Claude Code or Codex. Use when delegating, running agent review boards, or installing shared agents.
日本語の概要は準備中です。原文の説明を表示しています。