# Novas versões

> Atualizar a ficha na mesa sem perder os dados dos jogadores: a versão, o que não pode mudar e como migrar um campo renomeado.

Página: https://docs.rpgdesk.com/fichas/versoes/

## Publicar uma versão nova

1. Mude a ficha e suba a `version` do manifesto: `1.0.0` → `1.0.1` para um conserto, `1.1.0` para algo novo, `2.0.0` para uma mudança grande.
2. Em **Configurações da mesa → Plugins**, instale o arquivo de novo. O diálogo mostra **Atualizar**: “Atualiza a versão 1.0.0 instalada para 1.0.1. As fichas mantêm os dados.”
3. Quem estiver com a ficha aberta passa a ver a versão nova.

Se a versão for menor que a instalada, o diálogo avisa antes (às vezes é isso mesmo: voltar a uma versão que funcionava).

## O que não pode mudar

- **O `id` do plugin:** com outro `id`, é outro plugin.
- **O `type` de cada ficha e tabela:** as fichas da mesa são de um tipo. Se o tipo muda, as fichas antigas ficam sem plugin (“Nenhum plugin da mesa edita fichas do tipo…”) até o tipo antigo voltar.

Cada tipo é de um plugin só na mesa: um segundo plugin não pode trazer um tipo que já é de outro.

## Os dados

Os dados ficam no documento de cada ficha, pelos nomes dos campos. A versão nova encontra tudo o que a anterior gravou com os mesmos nomes.

- **Um campo novo** começa vazio.
- **Um campo que você tirou da página** continua guardado, só não aparece.
- **Um campo renomeado** começa vazio, e o dado continua no nome antigo. Para levar o dado ao nome novo, faça uma pequena migração no JavaScript:

```js
RPGDesk.connect().then(({ doc, me, item }) => {
  // de "pontos_vida" (versão 1.0) para "pv.atual" (versão 1.1); uma pessoa só faz a migração:
  // o dono da ficha, ou um mestre, se a ficha não tem dono
  const migra = me.isOwner || (!item.ownerId && me.role === 'gm');
  const antigo = doc.get('pontos_vida');
  if (migra && antigo !== undefined && doc.canWrite('pv.atual')) {
    doc.update({ 'pv.atual': antigo, pontos_vida: null });
  }
});
```

> **Dica**
>
> Uma pessoa só migra: assim o mestre e o jogador, com a ficha aberta ao mesmo tempo, não gravam duas vezes. É o mesmo cuidado da Ficha Básica do RPG Desk ao criar os atributos de uma ficha nova.

## Remover o plugin

Remover um plugin não apaga as fichas: elas ficam na biblioteca, sem poder ser editadas, até o plugin ser instalado de novo. As tabelas dele são desativadas, com os dados guardados.
