# onElementDataChange (Servidor)

> Disparado quando um dado de um elemento muda ou é removido. Cancelar o evento devolve o valor anterior (ou apaga a chave, se ela não existia) e a mudança não é enviada aos jogadores.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Evento Lua
- **Lado**: Servidor
- **Categoria**: Elementos
- **Cancelável**: `cancelEvent`
- **URL**: https://wiki.mymp.gg/pt/onElementDataChange

## Sintaxe

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

## Parâmetros do handler

| Nome | Tipo | Descrição |
| --- | --- | --- |
| `key` | `string` | Nome do dado. |
| `oldValue` | `any` | Valor anterior, ou `nil` se a chave não existia. |
| `newValue` | `any` | Novo valor, ou `nil` se o dado foi removido. |

## Source

O elemento cujo dado mudou.

Os dados de um cliente nunca chegam ao servidor, então a mudança sempre vem de um script do servidor.

## Exemplo

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

## Veja também

- [setElementData (Servidor)](https://wiki.mymp.gg/pt/setElementData-server.md): Guarda um dado num elemento e, conforme o sync, envia aos jogadores.
- [getElementData (Compartilhado)](https://wiki.mymp.gg/pt/getElementData.md): Lê um dado guardado num elemento.
- [removeElementData (Compartilhado)](https://wiki.mymp.gg/pt/removeElementData.md): Apaga um dado guardado num elemento.
