# setElementData (Servidor)

> Guarda un dato en un elemento y, según `sync`, lo envía a los jugadores.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Función Lua
- **Lado**: Servidor
- **Categoría**: Elementos
- **URL**: https://wiki.mymp.gg/es/setElementData-server
- **Contraparte**: También existe en el cliente, con otra implementación: [setElementData (Cliente)](https://wiki.mymp.gg/es/setElementData-client.md)

## Sintaxis

```lua
bool setElementData(element element, string key, any value [, bool|string sync = true])
```

## Parámetros

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `element` | `element` | El elemento. |
| `key` | `string` | Nombre del dato. Las claves de más de 128 caracteres se cortan, con un aviso. |
| `value` | `any` | El valor a guardar. |
| `sync` | `bool\|string` | `true` o `"broadcast"` lo envía a todos los jugadores; `false` o `"local"` lo deja solo en el servidor; `"subscribe"` lo envía solo a los jugadores inscritos con `addElementDataSubscriber`. Otro valor da error. *(por defecto: `true`)* |

## Retorno

`true` si se guardó, `false` si el elemento ya tenía ese valor con ese `sync`, si un handler canceló el cambio o si el valor es demasiado grande para sincronizar.

Dispara `onElementDataChange`. Cancelar el evento devuelve el valor anterior. Al cambiar a `"subscribe"` un dato que ya existía, los inscritos se mantienen.

## Ejemplo

```lua
addEventHandler("onPlayerJoin", root, function()
    setElementData(source, "money", 500)
    setElementData(source, "admin.notes", "", "local")
end)
```

### Atención

Un valor de más de 10 MB o de más de 1048576 valores no se sincroniza: la función registra un error y devuelve `false`.

## Ver también

- [setElementData (Cliente)](https://wiki.mymp.gg/es/setElementData-client.md): Guarda un dato en un elemento, solo en este cliente.
- [getElementData (Compartido)](https://wiki.mymp.gg/es/getElementData.md): Lee un dato guardado en un elemento.
- [addElementDataSubscriber (Servidor)](https://wiki.mymp.gg/es/addElementDataSubscriber.md): Suscribe a un jugador a un dato de elemento definido con el modo de sincronización "subscribe". El jugador recibe el valor actual al momento y cada cambio posterior.
- [onElementDataChange (Servidor)](https://wiki.mymp.gg/es/onElementDataChange.md): Se dispara cuando un dato de un elemento cambia o se elimina. Cancelar el evento devuelve el valor anterior (o borra la clave si no existía) y el cambio no se envía a los jugadores.
