# Enlaces externos

Puedes agregar enlaces desde tu scene hacia otro contenido, ya sea a otras scenes o a sitios web externos.

## Usa el Scene Editor en Creator Hub

La forma más fácil de agregar un enlace externo o un teleport es usar el Scene Editor. Usa el **Teleport** [Smart Item](https://github.com/decentraland/docs/blob/main/creator/sdk7/scene-editor/interactivity/smart-items.md) para agregar un teleport a otra scene en Genesis City, o usa cualquiera de los **Social Links** smart items para agregar enlaces a sitios externos.

![](https://1216664193-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FoPnXBby9S6MrsW83Y9qZ%2Fuploads%2Fgit-blob-be65d3e84db80b872ee31e90d17c016a7b520fbc%2Fsocial-links.png?alt=media)

## Teleports

Para teletransportar a un player a otra scene, llama a la siguiente función, indicando las coordinates a las que quieres que los players se teletransporten.

```ts
import { teleportTo } from "~system/RestrictedActions"

(...)

teleportTo({ worldCoordinates: { x: -51, y: 1 } })
```

A los players se les presenta una pantalla de confirmación antes de ser teletransportados; esta pantalla muestra información del `scene.json file`de la scene de destino, incluyendo el `name`, `description` y `navmapThumbnail`. Consulta [scene metadata](https://github.com/decentraland/docs/blob/main/creator/sdk7/sdk7/projects/scene-metadata.md) para obtener detalles sobre cómo configurar estos datos.

Ten en cuenta que los teleports te llevan a una scene en las coordinates indicadas, pero no necesariamente a esas mismas coordinates. Esto significa que, al viajar a una scene que tiene múltiples parcels, es posible que los players no aterricen en las mismas coordinates que se especificaron, sino en uno de los spawn points designados por el creador de la scene.

Para mover a un player a otro conjunto de coordinates dentro de la scene actual, usa en su lugar la `movePlayerTo()` function. Consulta [Move a Player](https://docs.decentraland.org/creator/content-creator-es/scenes-sdk7/player-avatar#move-player).

## Teleport a un WORLD

Para enviar a un player a una scene que no está publicada en el mapa abierto de Genesis City, sino a un [Decentraland WORLD](https://docs.decentraland.org/creator/content-creator-es/worlds/about), usa la función `changeRealm()`.

```ts
import { changeRealm } from "~system/RestrictedActions"

(...)

changeRealm({realm: 'mannakia.dcl.eth'})
```

A los players se les presenta una pantalla de confirmación antes de ser teletransportados; esta pantalla muestra información del `scene.json file`de la scene de destino, incluyendo el `name`, `description` y `navmapThumbnail`. Consulta [scene metadata](https://github.com/decentraland/docs/blob/main/creator/sdk7/sdk7/projects/scene-metadata.md) para obtener detalles sobre cómo configurar estos datos.

El player aparecerá en uno de los spawn points de la scene en ese world, sin importar sus coordinates actuales en el mapa.

Para enviar a un player de vuelta a Genesis City desde un world, usa `changeRealm` configurando el campo `realm` a *'<https://realm-provider-ea.decentraland.org/main>'*.

## External links

Para agregar un enlace a un sitio web externo, usa el `openExternalUrl()` command.

```ts
import { openExternalUrl } from '~system/RestrictedActions'

openExternalUrl({ url: 'google.com' })
```

Para evitar cualquier uso abusivo de esta función para enviar spam a los players, solo es posible llamar a `openExternalUrl` desde un evento explícito de click o button en una entity. No es posible llamar a esta función como resultado de un timer, un collision area o un global click event. Consulta [Button events](https://github.com/decentraland/docs/blob/main/creator/sdk7/sdk7/interactivity/button-events/click-events.md) para obtener detalles sobre cómo hacerlo.

Cuando `openExternalUrl` se llama, a los players se les muestra una pantalla de confirmación, donde se les informa a dónde los llevará el enlace, y donde pueden aceptar o rechazar visitar el enlace.

El enlace se abre en una nueva pestaña, manteniendo la pestaña original en Decentraland.

Si los players marcan la casilla *trust this domain* , no se les volverá a pedir confirmación durante su sesión, siempre que el enlace provenga de la misma scene y sea al mismo domain.

## Copy to clipboard

Para copiar una cadena al portapapeles del player, usa `CopyToClipboard()`. Después de esto, cuando el player haga *paste* en el chat de Decentraland o en cualquier otra aplicación de su máquina, pegará tu cadena.

```ts
import { copyToClipboard } from "~system/RestrictedActions"

copyToClipboard( { text: 'My text to copy' } )
```
