migrate-sdk6-to-sdk7

Migrates legacy Decentraland SDK6 scenes to the SDK7 ECS architecture.

Updated Sep 11, 2026
One-click install
npx skills add https://github.com/ansonj-dev/neon-reverse --skill migrate-sdk6-to-sdk7-ansonj-dev
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: migrate-sdk6-to-sdk7
Source: https://github.com/ansonj-dev/neon-reverse/tree/main/agent/skills/migrate-sdk6-to-sdk7
Command: npx skills add https://github.com/ansonj-dev/neon-reverse --skill migrate-sdk6-to-sdk7-ansonj-dev

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Porting a Decentraland scene from SDK6 to SDK7 requires rewriting class-based entity/component code into the new ECS model, updating dependencies, reorganizing asset folders, and converting every API call — a manual process that is error-prone and easy to leave half-migrated. ## Core Features & Use Cases - SDK6 verification: Confirms a project is truly SDK6 by checking package.json dependencies, scene.json runtime version, and source code patterns before touching anything. - Complete API mapping: Converts entities, components, systems, pointer events, animations, audio, materials, triggers, and timers from decentraland-ecs to @dcl/sdk equivalents using detailed reference tables. - Structured 11-step workflow: Audits the project, replaces config files, moves assets under assets/, ports components, systems, entities, input handlers, animations, and sounds, then verifies with grep-based completion checks. - Use Case: A developer has an old SDK6 game scene using new Entity(), @Component classes, and OnPointerDown handlers. This Skill walks through converting each pattern to engine.addEntity(), engine.defineComponent, and pointerEventsSystem.onPointerDown until the scene builds and runs on SDK7. ## Quick Start Migrate my Decentraland SDK6 scene in this project to SDK7, keeping the existing scene.json main field unchanged.

Frequently Asked Questions about migrate-sdk6-to-sdk7

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate a Decentraland SDK6 scene to SDK7?

Follow an ordered workflow: verify the project is truly SDK6, replace decentraland-ecs with @dcl/sdk in package.json, move assets under assets/, then port components, systems, entities, input handlers, animations, and sounds. Finish by building and grepping for leftover SDK6 symbols.

How do I convert SDK6 @Component classes to SDK7?

Replace each @Component class with engine.defineComponent(name, schema, defaults) using Schemas types. Component methods like reset() must be moved into free functions or systems, since SDK7 components are pure data with no methods.

What replaces OnPointerDown in Decentraland SDK7?

Use pointerEventsSystem.onPointerDown({ entity, opts }, handler) instead of adding an OnPointerDown component. The entity also needs a CL_POINTER collider, such as MeshCollider.setBox for primitives or visibleMeshesCollisionMask on GltfContainer.

Should I change scene.json main when migrating to SDK7?

No. Keep the existing main value (typically bin/game.js) because sdk-commands build writes the bundle to whatever path scene.json main specifies. Only add runtimeVersion: 7 and remove ECS6-specific fields.

Why does mutating Transform.get(entity) not work in SDK7?

Transform.get() returns a read-only reference, so mutating it silently fails. Use Transform.getMutable(entity) whenever writing, and reserve .get() for reads to avoid sending unnecessary CRDT deltas every frame.

When should I not use the SDK6 to SDK7 migration skill?

Do not use it for brand-new SDK7 scenes, which should use a scene creation skill instead, or for SDK7-to-SDK7 refactors. It assumes an existing SDK6 project on disk with decentraland-ecs dependencies.