返回 Skill 列表
extension
分类: 开发与工程无需 API Key

visual-feedback

使用截图工具查看正在运行的Decentraland预览,并直观地验证场景变化。在预览运行时,如果您需要检查代码更改后的场景外观,请使用此功能。

person作者: jakexiaohubgithub

Visual Feedback — Seeing Your Scene

The screenshot tool lets you capture what the Decentraland preview looks like right now. The browser stays open between calls — only the first screenshot takes ~15s (launch + enter scene). After that, screenshots are instant.

Prerequisites: The preview server must be running (/preview). The tool auto-detects the preview URL.

When to Use Screenshots

  • After completing code changes — verify the final result looks correct
  • When the user asks "how does it look?" — show them and describe what you see
  • When debugging visual issues — "the tree is invisible" → screenshot to see what's actually rendering

Do NOT use screenshots to explore or navigate the scene. Make all code changes first, then take 1-2 screenshots to verify.

Basic Usage

Take a screenshot of the current view:

Use the screenshot tool with no actions to capture the current scene view.

The tool returns the image directly — you'll see it and can describe what's visible.

Movement & Camera

The scene camera always faces north in headless mode. Movement is relative to compass direction, not camera:

| Action | Direction | Key | |--------|-----------|-----| | moveForward | North (toward top of screen) | W | | moveBack | South (toward bottom) | S | | moveRight | East (toward right) | D | | moveLeft | West (toward left) | A |

Movement speed is ~6 meters/second. Default holdMs is 300ms (~1.8 meters).

Camera rotation

Use look actions to rotate the camera view (arrow key holds):

| Action | Effect | |--------|--------| | lookLeft | Rotate camera left | | lookRight | Rotate camera right | | lookUp | Tilt camera up | | lookDown | Tilt camera down |

Default rotation hold is 300ms. Use holdMs for more or less rotation.

Interacting Before Capture

Click on objects

screenshot with actions:
1. click (x: 640, y: 400) — click center of viewport
→ captures the result (e.g., object selected, door opened)

Coordinates are in pixels (viewport is 1280×720).

Press keys

screenshot with actions:
1. key (key: "1") — toggle editor camera
2. wait (ms: 500) — let camera settle
→ captures the overhead editor view

Workflow

  1. Make all code changes (write to src/index.ts)
  2. Take one screenshot with wait: 2000 to let hot-reload settle
  3. Evaluate — describe honestly: what works, what's wrong
  4. Fix if needed — then take one more screenshot to confirm

Keep it to 1-2 screenshots per task. Each screenshot consumes significant tokens.

Scene Layout Awareness

  • Each parcel is 16×16 meters. A 1×1 scene has coordinates 0-16 in X and Z.
  • Y is up. Ground level is Y=0.
  • The avatar spawns near the south-west corner (low X, low Z).
  • Objects at the center of a 1×1 scene are at roughly (8, 0, 8).

WARNING: If you see empty/gray space, "No scene", or no content — you've walked outside the scene boundaries. STOP moving. Keep movements small (holdMs: 300).

Troubleshooting

| Problem | Solution | |---------|----------| | Screenshot shows welcome screen | The scene hasn't loaded yet — increase wait time | | Black/empty screenshot | Preview server may have crashed — check /tasks | | Objects not visible | They may be behind the camera (south of avatar) — use moveBack or lookLeft/lookRight to find them | | Scene looks different after code change | Hot reload takes ~1-2s — add a wait action of 2000ms | | "No preview server running" | Start it with /preview first | | Empty/gray space, no scene content | You've left the scene boundaries — stop moving | | Z-fighting (flickering surfaces) | Two surfaces at the same position | Move one surface slightly (0.01m) away from the other | | Missing textures (pink/magenta) | Texture file not found or wrong path | Verify file exists in project and path matches code | | Objects appear wrong scale | Scale values off or model exported at wrong scale | Check Transform.scale values; 1,1,1 is original model size | | Lighting looks flat | No LightSource components in scene | Add point or spot lights — see lighting-environment skill | | Custom lights look too dim or invisible | Intensity value too low | Point/spot lights typically need intensity: 8000–32000 candela. Values below ~1000 are usually invisible |

What to Look For in Screenshots

When evaluating a screenshot, check these common issues:

  • Missing objects — entity exists in code but not visible. Check: wrong position (behind camera, underground, outside parcels), scale of 0, VisibilityComponent set to false
  • Z-fighting — flickering or shimmering where two surfaces overlap. Fix: offset one surface by 0.01m
  • Texture issues — pink/magenta means missing texture file, black means missing material, white means missing texture coordinates
  • Scale problems — objects too large (clipping through ceiling) or too small (invisible dots). Compare against parcel size (16m x 16m)
  • Lighting — very flat/uniform usually means no custom lights. Dark scene may need SkyboxTime adjustment
  • UI elements — check that HUD elements are positioned correctly and text is readable

Tips

  • First screenshot is slow (~15s) because it launches a browser and enters the scene. After that, screenshots are instant.
  • The browser persists across all screenshot calls in the session — no repeated logins.
  • Keep movements small — use holdMs: 300 (default) to avoid walking out of the scene.
  • Hot reload — after writing code, wait ~2s before screenshotting to let the scene update.
  • Describe honestly — if something looks wrong, say so. The user trusts your visual assessment.