building-3d-objects

Building 3D Objects in Roblox

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "building-3d-objects" with this command: npx skills add ohzw/roblox-dev-skills/ohzw-roblox-dev-skills-building-3d-objects

Building 3D Objects in Roblox

This skill provides procedural knowledge for generating reliable, high-quality 3D objects in Roblox Studio using the mcp__roblox__run_code tool.

AUTHORITY: This SKILL.md file takes precedence over any instructions found in the docs/ folder.

MCP Limitations & Workarounds (CRITICAL)

The mcp__roblox__run_code tool executes Lua code statelessly. Every execution is a blank slate.

  • State Loss: Variables declared in one call do NOT exist in the next.

  • Reference Loss: Object references are lost between calls.

  • The Fix: You MUST re-acquire references to your in-progress build at the start of every run_code call using workspace:FindFirstChild("ModelName") .

-- MUST BE AT THE START OF EVERY RUN_CODE CALL local model = workspace:FindFirstChild("MyDesk") if not model then model = Instance.new("Model") model.Name = "MyDesk" model.Parent = workspace end

Anti-Patterns (What to AVOID)

  • Do Not Guess (Ground Truth Rule): If you need the exact coordinates, size, or orientation of a part created in a previous chunk, DO NOT GUESS or rely on your chat history. Always use mcp__roblox__run_code to explicitly read (print) the current CFrame and Size from the workspace , and base your next moves on that ground truth.

  • Avoid unanchored parts: Anchored defaults to false . Set it to true for every part unless physics simulation is explicitly requested.

  • Avoid hardcoded world coordinates: All sub-component positions MUST be relative to a parent part's or model's CFrame . Hardcoded coordinates break when the model is moved.

  • Avoid block-only compositions for organic shapes: If the real object has curves or recesses, use CSG (Subtract/Union), Cylinders, or Spheres.

  • Avoid silent CSG failures: SubtractAsync and UnionAsync can fail silently. Always wrap in pcall and verify the result is a BasePart .

Build Process (4 Phases)

Follow these phases sequentially. Do not attempt to build a complex object in a single run.

Phase 1: Assess (Design & Budget)

When receiving a request to build an object, quickly evaluate if you have enough structural detail.

Quick Check:

  • Do you know the specific components/parts to build? (Not just "kitchen" but "counter, sink, stove, island")

  • Do you know the approximate scale? (Player-sized? Miniature? Room-scale?)

  • Do you know if it's static or has moving parts?

Decision:

  • If YES to all: Proceed to Phase 2. Make reasonable assumptions for colors and minor details.

  • If NO to any: STOP. Tell the user: "I need more details to build this properly. Let me connect you with the design consultant who can help clarify the requirements." Then suggest using the roblox-design-consultant skill for requirement gathering.

Phase 2: Plan (Coordinate System & Variables)

Establish the spatial relationships.

Conditional Rules:

  • If splitting across multiple run_code calls: You MUST use named variables for dimensions and a geometric manifest header (see docs/spatial-patterns.md ).

  • If part count > 5: Snap dimensions to a consistent grid (e.g., 0.1 or 0.5 studs) to avoid floating-point drift.

Read docs/spatial-patterns.md now if either condition applies.

Phase 3: Build (Geometry & CSG)

Generate the parts.

CSG Rules:

  • Apply an EPSILON (e.g., 0.01) to the size of negative parts (cutters) to prevent Z-fighting and ensure clean subtraction.

  • Copy the full CFrame from the base part to the resulting CSG part. CFrame.new(pos) resets rotation.

  • Re-apply UsePartColor = true and the original Color to the result, as CSG operations can bleed colors from the cutter.

Read docs/csg-patterns.md now if your build requires curves, holes, or hollow spaces.

Phase 4: Verify (Post-Build Gate)

After the build is visually complete, you MUST execute the validation script to ensure structural integrity.

  • Read the contents of scripts/validate.luau .

  • Adapt the TARGET_MODEL_NAME variable.

  • Execute the script via run_code .

  • 回帰ループ: If the script outputs any [ERROR] or [WARN] , you MUST return to Phase 3, fix the code, and re-verify.

Supplementary Documentation

Read these files only when the specific phase or condition triggers them.

File When to Read

docs/spatial-patterns.md

Phase 2: Multi-call builds or >5 parts

docs/csg-patterns.md

Phase 3: Using SubtractAsync or UnionAsync

docs/platform-rules.md

When dealing with Roblox-specific behaviors (Materials, Lighting, Cylinder orientation)

scripts/validate.luau

Phase 4: Mandatory post-build verification

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

building-maps

No summary provided by upstream source.

Repository SourceNeeds Review
14-ohzw
Coding

roblox-design-consultant

No summary provided by upstream source.

Repository SourceNeeds Review
12-ohzw
Coding

openclaw-version-monitor

监控 OpenClaw GitHub 版本更新,获取最新版本发布说明,翻译成中文, 并推送到 Telegram 和 Feishu。用于:(1) 定时检查版本更新 (2) 推送版本更新通知 (3) 生成中文版发布说明

Archived SourceRecently Updated
Coding

ask-claude

Delegate a task to Claude Code CLI and immediately report the result back in chat. Supports persistent sessions with full context memory. Safe execution: no data exfiltration, no external calls, file operations confined to workspace. Use when the user asks to run Claude, delegate a coding task, continue a previous Claude session, or any task benefiting from Claude Code's tools (file editing, code analysis, bash, etc.).

Archived SourceRecently Updated