player-avatar

Controls player position, avatar attachments, emotes, and locomotion in Decentraland SDK7 scenes.

1|Updated Apr 4, 2026
One-click install
npx skills add https://github.com/stom66/dcl-bowling --skill player-avatar-stom66
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: player-avatar
Source: https://github.com/stom66/dcl-bowling/tree/main/agent/skills/player-avatar
Command: npx skills add https://github.com/stom66/dcl-bowling --skill player-avatar-stom66

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @dcl/sdk, and includes references (resource) components.

What problem does it solve? Decentraland scene developers frequently hit silent failures when working with the player entity: mutating the player Transform does nothing, held items parented to the wrong entity ignore camera pitch, and custom emote files fail in production due to naming rules. This Skill provides verified, working patterns for every player and avatar interaction in SDK7 so these bugs never ship. ## Core Features & Use Cases - Player Data & Teleportation: Read player position and profile via getPlayer(), teleport with movePlayerTo, and fetch off-scene avatar appearances from the catalyst /lambdas/profile endpoint. - Attachments & Held Items: Attach cosmetics with AvatarAttach anchor points, or parent aim-sensitive items (guns, reticles) to engine.CameraEntity so they track camera yaw and pitch correctly. - Emotes, Modifiers & Locomotion: Trigger built-in and custom _emote.glb scene emotes with lifecycle detection, hide avatars or nametags with AvatarModifierArea, freeze movement with InputModifier, and tune speed/jump via AvatarLocomotionSettings. - Use Case: Building a first-person bowling or shooter scene where the player picks up a ball, teleports to the lane, plays a throw emote, and has movement locked during the animation — all patterns are covered with copy-paste code. ## Quick Start Ask the assistant to teleport the player to position 8,0,8 and attach a hat to their head using the player-avatar skill patterns.

Frequently Asked Questions about player-avatar

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

FAQPage Schema
How do I teleport the player in a Decentraland SDK7 scene?▼

Use movePlayerTo from ~system/RestrictedActions with a newRelativePosition, plus optional cameraTarget, avatarTarget, and duration. Setting Transform on engine.PlayerEntity does not work because the player Transform is read-only from scene code.

How do I attach a held item like a gun to the player in Decentraland?▼

Parent the entity to engine.CameraEntity via Transform.parent so it tracks camera yaw and pitch for aiming. AvatarAttach bone anchors inherit animation jitter and engine.PlayerEntity loses camera pitch, so both are wrong for aim-sensitive items.

Why does my custom scene emote work in preview but fail after deployment?▼

The emote .glb file must end with _emote.glb (case-insensitive). Preview is permissive, but the deployed runtime rejects files without this suffix, so rename the file on disk before deploying.

How do I get avatar wearables for a wallet address not in my scene?▼

Fetch https://peer.decentraland.org/lambdas/profile/<address> and read json.avatars[0].avatar for bodyShape, wearables, and colors. getPlayer() only works for users currently connected to the scene.

How do I freeze player movement during a cutscene or emote?▼

Create an InputModifier component on engine.PlayerEntity with mode InputModifier.Mode.Standard({ disableAll: true }), then delete it when done. Gravity and camera rotation still work while movement is locked.

Can I hide avatars or nametags in a specific area of my scene?▼

Yes, use AvatarModifierArea with AMT_HIDE_AVATARS, AMT_HIDE_NAMETAGS, or AMT_DISABLE_PASSPORTS, plus an excludeIds list of wallet addresses to exempt. Set both the area field and Transform.scale to the region size.