# onElementDataChange (Servidor)

> 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.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Evento Lua
- **Lado**: Servidor
- **Categoría**: Elementos
- **Cancelable**: `cancelEvent`
- **URL**: https://wiki.mymp.gg/es/onElementDataChange

## Sintaxis

```lua
addEventHandler("onElementDataChange", root, function(string key, any oldValue, any newValue) ... end)
```

## Parámetros del handler

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `key` | `string` | Nombre del dato. |
| `oldValue` | `any` | Valor anterior, o `nil` si la clave no existía. |
| `newValue` | `any` | Nuevo valor, o `nil` si el dato se eliminó. |

## Source

El elemento cuyo dato cambió.

Los datos de un cliente nunca llegan al servidor, así que el cambio siempre viene de un script del servidor.

## Ejemplo

```lua
addEventHandler("onElementDataChange", root, function(key, oldValue, newValue)
    if key == "admin" and getElementType(source) == "player" then
        cancelEvent()
    end
end)
```

## Ver también

- [setElementData (Servidor)](https://wiki.mymp.gg/es/setElementData-server.md): Guarda un dato en un elemento y, según sync, lo envía a los jugadores.
- [getElementData (Compartido)](https://wiki.mymp.gg/es/getElementData.md): Lee un dato guardado en un elemento.
- [removeElementData (Compartido)](https://wiki.mymp.gg/es/removeElementData.md): Borra un dato guardado en un elemento.
