# setElementData (Servidor)

> Guarda um dado num elemento e, conforme o `sync`, envia aos jogadores.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Função Lua
- **Lado**: Servidor
- **Categoria**: Elementos
- **URL**: https://wiki.mymp.gg/pt/setElementData-server
- **Contraparte**: Também existe no cliente, com outra implementação: [setElementData (Cliente)](https://wiki.mymp.gg/pt/setElementData-client.md)

## Sintaxe

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

## Parâmetros

| Nome | Tipo | Descrição |
| --- | --- | --- |
| `element` | `element` | O elemento. |
| `key` | `string` | Nome do dado. Chaves com mais de 128 caracteres são cortadas, com um aviso. |
| `value` | `any` | O valor a guardar. |
| `sync` | `bool\|string` | `true` ou `"broadcast"` envia a todos os jogadores; `false` ou `"local"` fica só no servidor; `"subscribe"` envia só aos jogadores inscritos com `addElementDataSubscriber`. Outro valor dá erro. *(padrão: `true`)* |

## Retorno

`true` se guardou, `false` se o elemento já tinha esse valor com esse `sync`, se um handler cancelou a mudança ou se o valor é grande demais para sincronizar.

Dispara `onElementDataChange`. Cancelar o evento devolve o valor anterior. Ao trocar para `"subscribe"` um dado que já existia, os inscritos continuam.

## Exemplo

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

### Atenção

Um valor que passa de 10 MB ou de 1048576 valores não é sincronizado: a função registra um erro e devolve `false`.

## Veja também

- [setElementData (Cliente)](https://wiki.mymp.gg/pt/setElementData-client.md): Guarda um dado num elemento, só neste cliente.
- [getElementData (Compartilhado)](https://wiki.mymp.gg/pt/getElementData.md): Lê um dado guardado num elemento.
- [addElementDataSubscriber (Servidor)](https://wiki.mymp.gg/pt/addElementDataSubscriber.md): Inscreve um jogador num dado de elemento definido com o modo de sincronização "subscribe". O jogador recebe o valor atual na hora e cada mudança depois disso.
- [onElementDataChange (Servidor)](https://wiki.mymp.gg/pt/onElementDataChange.md): 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.
