# Rolagens

> A gramática das rolagens do RPG Desk: dados, números, Fudge, ordem, sucessos com dificuldade, o nome da rolagem, os limites e as mensagens de erro.

Página: https://docs.rpgdesk.com/referencia/rolagens/

Toda rolagem é sorteada pelo servidor do RPG Desk, venha de onde vier: `/r` no chat, os dados rápidos, os botões das fichas (`data-roll` e `RPGDesk.dice.roll`) e a iniciativa do combate. Para o uso no dia a dia, veja [Dados e rolagens](https://docs.rpgdesk.com/mesa/dados/).

## As partes de uma rolagem

| Parte       | Exemplo          | O que é                                                                          |
| ----------- | ---------------- | -------------------------------------------------------------------------------- |
| `NdF`       | `2d6`, `d20`     | N dados de F faces. Sem o N, é um dado: `d20` é `1d20`. O `d` pode ser maiúsculo |
| `NdF` Fudge | `4dF`            | dados Fudge (Fate): cada um dá −1, 0 ou +1                                       |
| número      | `5`              | um valor fixo                                                                    |
| `+` e `-`   | `1d20 + 5 - 1d4` | somam e subtraem                                                                 |
| `ord`       | `ord 4d6`        | mostra os dados de cada grupo em ordem crescente (a soma não muda)               |
| `> K`       | `5d10 > 7`       | conta sucessos contra a dificuldade K (veja abaixo)                              |
| `: nome`    | `1d20+5: Ataque` | o nome da rolagem, que aparece no chat                                           |

Os espaços não contam: `2d6+3` e `2d6 + 3` são a mesma rolagem. No chat, a rolagem aparece assim:

```text
Davi rolou 1d20 + 5 = 17 {[12] + 5} Ataque
```

## Sucessos (`> K`)

Com `> K` no fim, a rolagem conta sucessos em vez de somar:

- cada dado que tira **K ou mais** é um sucesso;
- cada dado que tira **1** desconta um sucesso;
- os números fixos não contam.

| Resultado         | Quando                                                              |
| ----------------- | ------------------------------------------------------------------- |
| **N sucessos**    | sobra pelo menos um sucesso                                         |
| **Falha**         | não sobra nenhum, mas algum dado chegou a K, ou nenhum dado tirou 1 |
| **Falha crítica** | nenhum dado chegou a K e pelo menos um tirou 1                      |

Por exemplo, `5d10 > 7` com os dados `[9, 7, 3, 1, 10]` dá **2 sucessos** (três sucessos, menos um pelo 1). Na ficha, `RPGDesk.dice.roll` devolve a conta em `successes`.

## Limites

- De **1 a 255** dados por grupo, e de **1 a 255** faces. Um número fora disso é trazido para dentro: `300d6` rola 255 dados, e `0d6`, um.
- Até **300** entre dados e números fixos, somando todos os grupos.
- Pelo menos **um dado**: `/r 5` não rola.
- Só existe o comparador `>`, uma vez por rolagem.
- No chat, a expressão aparece com até 120 caracteres, e o nome da rolagem, com até 80.

## Nas fichas

No `data-roll`, `{caminho}` vira o número do campo: `data-roll="1d20 + {mod_forca}"`. Um campo vazio vira `0`, e um negativo fica certo (`1d20 + -2` vira `1d20 - 2`). Um campo com texto (`"3a"`) entra na rolagem como está, e ela falha com a mensagem “A rolagem tem um caractere que não vale”. Veja [Rolagens, chat e cartão](https://docs.rpgdesk.com/fichas/rolagens-e-chat/).

## As mensagens de erro

| Mensagem                                              | Exemplo                     | O que fazer                                                        |
| ----------------------------------------------------- | --------------------------- | ------------------------------------------------------------------ |
| A rolagem está vazia.                                 | `/r : Ataque`               | ponha os dados antes do `:`                                        |
| A rolagem tem um caractere que não vale: “x”.         | `1d20 + FOR`, `2d6 < 4`     | antes do `:`, só números, `d`, `F`, `+`, `-`, `>`, `ord` e espaços |
| Faltou o número de faces do dado (d20, d8, d6…).      | `2d`                        | escreva as faces: `2d6`                                            |
| Essa rolagem de dados não existe (um “d” a mais?).    | `2dd6`                      | um `d` por grupo                                                   |
| Comparador desconhecido: “>>”.                        | `4d10 >> 7`, `4d10 > 7 > 8` | um `>` só, com um número                                           |
| A rolagem só pode ter um comparador (>).              | `2d10 > 7 + 1d6 > 8`        | role em duas vezes                                                 |
| A rolagem precisa de pelo menos um dado.              | `5`, `3 + 2`                | ponha um dado                                                      |
| Rolagem grande demais: até 300 entre dados e números. | `255d6 + 255d6`             | divida a rolagem                                                   |

No chat, o erro aparece só para você. Na ficha, a promessa de `RPGDesk.dice.roll` é recusada com a mesma mensagem, e o `data-roll` mostra o aviso “A rolagem … falhou”.

## Quantas vezes

- Cada pessoa pode rolar até **60 vezes por minuto**.
- Cada ficha aberta, até **10 rolagens a cada 10 segundos**.
