# Referencia de configuración

Esta página documenta todas las claves del `config.yml` de Verité. Los valores por defecto que se muestran son los que Verité trae de fábrica. Las claves de configuración, los valores y el código aparecen exactamente como están escritos en el archivo (ASCII), mientras que la prosa usa el nombre acentuado Verité.

La configuración de Verité está agrupada en módulos:

- `general`: ajustes de todo el plugin.
- `chat.filter`: el filtro de chat, Veritédoux.
- `moderation`: el sistema de moderación, Veritésauver.
- `invsee`: visualización de inventarios.
- `vanish`: el sistema de vanish, Veritévoiler.

!!! note "Editar flags en el juego"
    Muchas de estas claves pueden leerse y cambiarse desde el juego con `/verite config`, que aplica el parche a la clave concreta en el disco y conserva todos los comentarios del archivo. Este comando está restringido por el permiso `veritedoux.flag`. Todas las claves de tipo verdadero o falso y todas las claves numéricas de `config.yml` pueden editarse así, usando su nombre corto o su ruta completa con puntos. Las claves de texto libre, las listas del árbol de sanciones y `config.language` no se pueden editar así; cámbialas en el archivo o desde el panel web. Ejecuta `/verite config` sin argumentos para listar todas las claves editables. La mayoría de las ediciones se aplican en vivo; las puertas de módulo (`chat.filter.enabled`, `moderation.enabled`, `vanish.enabled`) y las dos flags de actualización automática requieren un reinicio para surtir efecto.

## General

La sección `general` contiene los ajustes de todo el plugin.

```yaml
general:
  prefix: "<#808080>[<#B1C7F0>Verité<#808080>]<reset>"
  auto.update.config: true
  dashboard.url: "https://verite.gg"
```

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `general.prefix` | `<#808080>[<#B1C7F0>Verité<#808080>]<reset>` | El prefijo público que aparece en cada mensaje de Verité, en el formato de etiquetas de Verite. |
| `general.auto.update.config` | `true` | Añade automáticamente nuevas claves a la configuración cuando el plugin se actualiza. No omite las actualizaciones del tokenizador. Editable con `/verite config` como `auto.update.config`, pero requiere un reinicio para aplicarse. |
| `general.dashboard.url` | `https://verite.gg` | A dónde te envía `/verite dashboard`. Cámbialo solo si alojas el [Panel](page:web-dashboard) por tu cuenta. |
| `config.language` | `en` | El idioma en el que funciona todo el plugin. Uno de `en`, `es`, `fr`, `it`, `pt` o `de`. Cambiarlo requiere un reinicio completo, no una recarga. |

## Filtro de chat (Veritédoux)

La sección `chat.filter` configura el filtrado de mensajes.

```yaml
chat.filter:
  enabled: true
  auto.update.eve: false
  block.message: "@prefix Your message wasn't sent. Please keep chat friendly."
  repeat.message: "@prefix You've already sent that message. Please wait a moment before repeating yourself."
```

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `chat.filter.enabled` | `true` | Activa el módulo del filtro de chat. Editable con `/verite config` como `chat.filter.enabled`, pero requiere un reinicio para aplicarse. |
| `chat.filter.auto.update.eve` | `false` | Actualiza automáticamente los archivos de configuración `.eve` cuando se añaden nuevas entradas. Cuando está activado, las entradas personalizadas se sobrescriben o se descartan al reemplazar los archivos `.eve` por versiones actualizadas. Editable con `/verite config` como `auto.update.eve`, pero requiere un reinicio para aplicarse. |
| `chat.filter.block.message` | `@prefix Your message wasn't sent. Please keep chat friendly.` | El aviso que se muestra cuando el filtro bloquea un mensaje. Admite `&`-codes y hex `&#RRGGBB`. Usa `@prefix` para insertar el prefijo que hayas elegido. |
| `chat.filter.repeat.message` | `@prefix You've already sent that message. Please wait a moment before repeating yourself.` | El aviso que se muestra cuando un mensaje se bloquea por repetido. Admite `&`-codes y hex `&#RRGGBB`, y `@prefix`. |

!!! note "Mensaje de autolesión"
    El mensaje de bloqueo por autolesión no se puede cambiar. Esto garantiza que los usuarios siempre reciban la orientación y el apoyo adecuados al tratar con contenido relacionado con la autolesión.

### Idiomas

El bloque `chat.filter.general.lang` elige qué idiomas se comprueban por contenido y qué categorías de detección se ejecutan en cada uno. La detección de profanidad está desactivada por defecto para que los servidores que permiten palabrotas informales no se vean afectados. Ajústalos para que coincidan con la tolerancia de tu servidor.

Cada bloque de idioma admite estas claves:

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `allowed` | `true` | Si el idioma está permitido en el chat. |
| `self.harm.detection` | `true` | Detecta contenido relacionado con la autolesión en este idioma. |
| `abuse.detection` | `true` | Detecta contenido abusivo en este idioma. |
| `slur.detection` | `true` | Detecta insultos en este idioma. |

Las claves de profanidad son por idioma. Cada una es `false` por defecto. Establece una en `true` para marcar la profanidad de ese dialecto o región.

| Idioma | Claves de profanidad (todas por defecto `false`) |
| --- | --- |
| `english` | `profanity.global` |
| `spanish` | `profanity.spain`, `profanity.argentinian`, `profanity.chilean`, `profanity.colombian`, `profanity.mexican`, `profanity.peruvian`, `profanity.venezuelan`, `profanity.uruguayan`, `profanity.cuban`, `profanity.dominican`, `profanity.panamanian`, `profanity.global` |
| `french` | `profanity.france`, `profanity.canadian` |
| `portuguese` | `profanity.european`, `profanity.brazilian` |
| `german` | `profanity.global` |
| `italian` | `profanity.global` |

Dos entradas adicionales cubren el texto cuyo idioma no se ha podido resolver:

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `chat.filter.general.lang.unknown.lang.allowed` | `true` | Si se permiten los mensajes en un idioma que Verité no reconoce. |
| `chat.filter.general.lang.undeterminable.allowed` | `true` | Si se permiten los mensajes cuyo idioma no se puede determinar. |

Un ejemplo de bloque de idioma:

```yaml
chat.filter:
  general.lang:
    english:
      allowed: true
      self.harm.detection: true
      abuse.detection: true
      slur.detection: true
      profanity.global: false
```

### Avanzado

El bloque `chat.filter.advanced` contiene el ajuste fino de la legibilidad, el spam y la detección de repeticiones.

```yaml
chat.filter:
  advanced:
    keep.chat.readable: false
    block.possible.spam: false
    block.repeat.messages: false
    block.repeat.exact: true
    block.repeat.near: true
    block.repeat.history.size: 5
    block.repeat.window.ms: 5000
    block.repeat.similarity.threshold: 0.85
    block.unsupported.languages: false
```

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `keep.chat.readable` | `false` | Bloquea los mensajes que puedan hacer el chat ilegible, como las sustituciones de fuentes decorativas, incluso cuando el mensaje pasaría el filtro de otro modo. Los emojis no se bloquean. Editable con `/verite config` como `keep.chat.readable`. |
| `block.possible.spam` | `false` | Usa el tokenizador de Verité para detectar y bloquear posible spam y anuncios. Editable con `/verite config` como `block.possible.spam`. |
| `block.repeat.messages` | `false` | Activa la detección de mensajes repetidos. Todas las claves de abajo solo se aplican cuando esta está activada. |
| `block.repeat.exact` | `true` | Bloquea un mensaje idéntico a uno reciente del mismo usuario. La comparación ignora las mayúsculas, los acentos y las letras repetidas, así que `HELLO`, `hello` y `helllo` cuentan todos como el mismo. |
| `block.repeat.near` | `true` | Bloquea un mensaje que sea similar (pero no idéntico) a uno reciente del mismo usuario. El grado de similitud que cuenta como coincidencia lo establece `block.repeat.similarity.threshold`. |
| `block.repeat.history.size` | `5` | Cuántos de los mensajes más recientes de cada usuario se recuerdan y se comprueban en busca de repeticiones. Establécelo en `-1` para recordar todos los mensajes, o en `0` para desactivar por completo la detección de repeticiones. |
| `block.repeat.window.ms` | `5000` | Cuánto tiempo atrás (en milisegundos) un mensaje recordado sigue contando como repetición. Los mensajes más antiguos que esto se ignoran. Establécelo en `-1` para ignorar el tiempo y recordar los mensajes de forma indefinida, o en `0` para desactivar por completo la detección de repeticiones. |
| `block.repeat.similarity.threshold` | `0.85` | Para la coincidencia de casi-repeticiones, cuánto deben parecerse dos mensajes para contar como repetición. Un valor entre `0` y `1`, donde `1` significa idéntico. Cuanto más alto, más estricto (menos bloqueos); cuanto más bajo, más agresivo. |
| `block.unsupported.languages` | `false` | Bloquea los idiomas que Verité aún no admite. Los idiomas admitidos son inglés, español, francés, italiano, portugués y alemán. Todos los demás idiomas se bloquean cuando esto está activado. Editable con `/verite config` como `block.unsupported.languages`. |

### Pesos de detección de idioma

El bloque `chat.filter.advanced.language` ajusta cómo Verité asigna un idioma a cada palabra de un mensaje.

```yaml
chat.filter:
  advanced:
    language:
      known.word.weight: 50
      unknown.word.weight: 0.1
```

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `known.word.weight` | `50` | Peso para una palabra que el diccionario de un idioma conoce pero que la tabla de tasas no incluye. Más alto significa que la pertenencia al diccionario cuenta más. |
| `unknown.word.weight` | `0.1` | Peso mínimo para una palabra que ningún diccionario conoce y que la tabla de tasas omite. |

### Pasadas de evasión

El bloque `chat.filter.advanced.evasion` alterna las pasadas que deshacen los intentos de colar contenido por delante del filtro. Cada una es `true` por defecto. Desactivar pasadas puede reducir ligeramente la latencia.

```yaml
chat.filter:
  advanced:
    evasion:
      homoglyph: true
      entity: true
      deobfuscate: true
      segmentation: true
      fingerprint: true
```

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `homoglyph` | `true` | Repliega los suplantadores de letras fullwidth, cirílicas y math-bold de vuelta a ASCII. Editable con `/verite config` como `evasion.homoglyph`. |
| `entity` | `true` | Elimina las entidades HTML y codificaciones similares. Editable con `/verite config` como `evasion.entity`. |
| `deobfuscate` | `true` | Revierte la ofuscación con caracteres insertados y con letras espaciadas. Editable con `/verite config` como `evasion.deobfuscate`. |
| `segmentation` | `true` | Divide las palabras pegadas de vuelta en palabras separadas. Editable con `/verite config` como `evasion.segmentation`. |
| `fingerprint` | `true` | Detecta las grafías con letras transpuestas. Editable con `/verite config` como `evasion.fingerprint`. |

### Confianza de profanidad

El bloque `chat.filter.advanced.use.profanity.confidence` establece la confianza mínima antes de que un mensaje se trate como profano.

```yaml
chat.filter:
  advanced:
    use.profanity.confidence:
      enabled: true
      profanity.confidence.threshold: 0.30
```

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `enabled` | `true` | Activa el umbral de confianza de profanidad. Editable con `/verite config` como `use.profanity.confidence.enabled`. |
| `profanity.confidence.threshold` | `0.30` | La confianza mínima necesaria para considerar profano un mensaje. Editable con `/verite config` como `use.profanity.confidence.profanity.confidence.threshold`. |

## Moderación (Veritésauver)

La sección `moderation` configura el sistema de moderación.

```yaml
moderation:
  enabled: true
  use.rank.weights: true
  auto.ban.alts: false
  expire.warns.after: 7d
  shared.ip.scan.limit: 20
```

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `moderation.enabled` | `true` | Activa el módulo de moderación. Editable con `/verite config` como `moderation.enabled`, pero requiere un reinicio para aplicarse. |
| `moderation.use.rank.weights` | `true` | Compara el peso de grupo de LuckPerms para que el personal no pueda castigar a rangos iguales o superiores. Los operadores siempre se tratan como el rango más alto, sin importar el peso de LuckPerms. |
| `moderation.auto.ban.alts` | `false` | Banea automáticamente las cuentas alternativas de un jugador baneado, independientemente de si el jugador fue baneado por IP. No se recomienda en servidores que comparten direcciones IP entre usuarios distintos. Editable con `/verite config` como `moderation.auto.ban.alts`. |
| `moderation.expire.warns.after` | `7d` | Cuánto tiempo cuenta una advertencia como activa antes de que caduque. |
| `moderation.shared.ip.scan.limit` | `20` | El número máximo de cuentas que se muestran en un escaneo de IP duplicadas. Editable con `/verite config` como `moderation.shared.ip.scan.limit`. |

### Lista negra de comandos para muteados

`moderation.muted.command.blacklist` enumera los comandos que un jugador muteado no puede usar.

!!! note "Inyección por proxy"
    En una red con inyección por proxy, es posible que estos comandos no sean bloqueados por Verité, lo que significa que un usuario muteado aún podría usarlos.

La lista que viene de fábrica es:

```yaml
moderation:
  muted.command.blacklist:
    - "me"
    - "say"
    - "tell"
    - "whisper"
    - "reply"
    - "pm"
    - "message"
    - "msg"
    - "msgall"
    - "tellall"
    - "speak"
    - "emsg"
    - "epm"
    - "etell"
    - "ewhisper"
    - "w"
    - "m"
    - "t"
    - "r"
    - "mail"
```

### Exento

El bloque `moderation.exempt` controla cómo las comparaciones de peso de rango tratan a los objetivos de peso igual.

```yaml
moderation:
  exempt:
    use.group.weights: false
    permit.same.weight: true
```

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `use.group.weights` | `false` | Permite actuar sobre un objetivo de peso igual cuando se usan los pesos de grupo. Editable con `/verite config` como `moderation.exempt.use.group.weights`. |
| `permit.same.weight` | `true` | Permite actuar sobre un objetivo del mismo peso. Editable con `/verite config` como `moderation.exempt.permit.same.weight`. |

### Plantillas de mensajes de castigo

`moderation.punish.message.templates` establece el texto que se muestra a los jugadores castigados y al personal. Las plantillas admiten `\n` (salto de línea) y los cuantificadores `@duration`, `@enforcer`, `@target`, `@reason`, `@punishment`, `@total.warns` y `@remaining`. Si no se estableció ningún motivo, `@reason` se reemplaza por `No reason provided.`

```yaml
moderation:
  punish.message.templates:
    ban.template.temporary: {You have been banned for @duration.\n@reason}
    ban.template.permanent: {You have been permanently banned.\n@reason}
    mute.template.temporary: {You have been muted by @enforcer for @duration.\n@reason}
    mute.template.permanent: {You have been muted by @enforcer.\n@reason}
    mute.notice: {You are muted. Time remaining: @remaining}
    mute.notice.permanent: {You are muted.}
    warn.template: {You have been warned by @enforcer. Active warnings: @total.warns\n@reason}
    kick.template: {You have been kicked by @enforcer.\n@reason}
    admin.receipt.template: {@target was @punishment by @enforcer.\n@reason}
```

| Clave | Por defecto |
| --- | --- |
| `ban.template.temporary` | `{You have been banned for @duration.\n@reason}` |
| `ban.template.permanent` | `{You have been permanently banned.\n@reason}` |
| `mute.template.temporary` | `{You have been muted by @enforcer for @duration.\n@reason}` |
| `mute.template.permanent` | `{You have been muted by @enforcer.\n@reason}` |
| `mute.notice` | `{You are muted. Time remaining: @remaining}` |
| `mute.notice.permanent` | `{You are muted.}` |
| `warn.template` | `{You have been warned by @enforcer. Active warnings: @total.warns\n@reason}` |
| `kick.template` | `{You have been kicked by @enforcer.\n@reason}` |
| `admin.receipt.template` | `{@target was @punishment by @enforcer.\n@reason}` |

### Árbol de castigos

El bloque `moderation.tree` define las categorías de castigo, los pasos de escalada dentro de cada categoría y qué grupos de personal pueden aplicar qué categorías. Cada categoría aplica sus castigos en orden. Los tipos de castigo admitidos son `warn`, `mute`, `kick` y `ban`. Una duración después de dos puntos (por ejemplo `ban: 14d`) hace ese paso temporal; el mismo tipo sin duración es permanente. La entrada final `minecraft:` de cada categoría es el objeto que se muestra para esa categoría en la GUI de castigos.

```yaml
moderation:
  tree:
    enabled: true
    use.fields: true
```

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `moderation.tree.enabled` | `true` | Activa el árbol de castigos. |
| `moderation.use.fields` | `true` | Usa los Fields de Minecraft 1.21.7+ para completar el castigo en lugar del chat. |

#### Permisos

`moderation.tree.permissions.luckperms` asigna nombres de grupos de LuckPerms a las categorías que pueden aplicar. La jerarquía se admite de arriba abajo: si tus grupos van `helper`, luego `mod`, luego `admin`, `admin` hereda las categorías de `mod` y `helper`, y `mod` hereda las categorías de `helper`. Reemplaza los nombres de los grupos por los tuyos.

```yaml
moderation:
  tree:
    permissions:
      luckperms:
        helper: {harassment, threats, spam, advertising, macroing, misinformation, inappropriate.content}
        mod: {exploiting, discrimination, impersonation}
        admin: {hacking, fraud, evading.punishment, inappropriate.username, inappropriate.skin, griefing}
```

| Grupo | Categorías concedidas |
| --- | --- |
| `helper` | `harassment`, `threats`, `spam`, `advertising`, `macroing`, `misinformation`, `inappropriate.content` |
| `mod` | `exploiting`, `discrimination`, `impersonation` |
| `admin` | `hacking`, `fraud`, `evading.punishment`, `inappropriate.username`, `inappropriate.skin`, `griefing` |

#### Categorías

`moderation.tree.categories` enumera cada categoría y sus pasos de escalada ordenados.

```yaml
moderation:
  tree:
    categories:
      harassment: {kick, ban: 14d, ban, minecraft:nether_star}
      threats: {mute: 5h, ban: 14d, ban, minecraft:tnt}
      spam: {warn, mute: 10m, mute: 1h, ban: 3d, ban, minecraft:cactus}
      advertising: {mute: 1d, ban: 3d, ban, minecraft:redstone_block}
      macroing: {warn, kick, ban: 7d, ban: 31d, ban, minecraft:redstone_torch}
      misinformation: {warn, mute: 20m, mute: 1h, ban: 3d, ban, minecraft:paper}
      inappropriate.content: {warn, mute: 1h, mute: 7h, ban: 7d, ban, minecraft:book}
      exploiting: {warn, warn, warn, ban: 2d, ban, minecraft:lever}
      discrimination: {ban: 31d, ban, minecraft:iron_sword}
      impersonation: {ban: 7d, ban, minecraft:player_head}
      hacking: {ban: 31d, ban, minecraft:diamond_sword}
      fraud: {ban: 31d, ban, minecraft:gold_ingot}
      evading.punishment: {ban: 31d, ban, minecraft:ender_pearl}
      inappropriate.username: {ban, minecraft:name_tag}
      inappropriate.skin: {ban, minecraft:leather_chestplate}
      griefing: {ban: 7d, ban, minecraft:stone_pickaxe}
      staff.disruption: {warn, kick, ban: 7d, minecraft:bottle_o_enchanting}
      chat.violation: {warn, mute: 1h, ban: 3d, minecraft:book_and_quill}
```

| Categoría | Pasos de escalada | Objeto de la GUI |
| --- | --- | --- |
| `harassment` | `kick`, `ban: 14d`, `ban` | `minecraft:nether_star` |
| `threats` | `mute: 5h`, `ban: 14d`, `ban` | `minecraft:tnt` |
| `spam` | `warn`, `mute: 10m`, `mute: 1h`, `ban: 3d`, `ban` | `minecraft:cactus` |
| `advertising` | `mute: 1d`, `ban: 3d`, `ban` | `minecraft:redstone_block` |
| `macroing` | `warn`, `kick`, `ban: 7d`, `ban: 31d`, `ban` | `minecraft:redstone_torch` |
| `misinformation` | `warn`, `mute: 20m`, `mute: 1h`, `ban: 3d`, `ban` | `minecraft:paper` |
| `inappropriate.content` | `warn`, `mute: 1h`, `mute: 7h`, `ban: 7d`, `ban` | `minecraft:book` |
| `exploiting` | `warn`, `warn`, `warn`, `ban: 2d`, `ban` | `minecraft:lever` |
| `discrimination` | `ban: 31d`, `ban` | `minecraft:iron_sword` |
| `impersonation` | `ban: 7d`, `ban` | `minecraft:player_head` |
| `hacking` | `ban: 31d`, `ban` | `minecraft:diamond_sword` |
| `fraud` | `ban: 31d`, `ban` | `minecraft:gold_ingot` |
| `evading.punishment` | `ban: 31d`, `ban` | `minecraft:ender_pearl` |
| `inappropriate.username` | `ban` | `minecraft:name_tag` |
| `inappropriate.skin` | `ban` | `minecraft:leather_chestplate` |
| `griefing` | `ban: 7d`, `ban` | `minecraft:stone_pickaxe` |
| `staff.disruption` | `warn`, `kick`, `ban: 7d` | `minecraft:bottle_o_enchanting` |
| `chat.violation` | `warn`, `mute: 1h`, `ban: 3d` | `minecraft:book_and_quill` |

## Invsee

La sección `invsee` controla la visualización de inventarios.

```yaml
invsee:
  enable-offline-player-support: true
  enable-unknown-player-support: true
  tabcomplete-offline-players: true
```

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `invsee.enable-offline-player-support` | `true` | Permite ver el inventario de jugadores desconectados. |
| `invsee.enable-unknown-player-support` | `true` | Permite ver el inventario de jugadores que no se han visto antes. |
| `invsee.tabcomplete-offline-players` | `true` | Incluye a los jugadores desconectados en el autocompletado. |

## Vanish (Veritévoiler)

La sección `vanish` configura el sistema de vanish. El bloque `vanish.features` alterna comportamientos individuales, cada uno `true` por defecto. Cada clave de característica es editable con `/verite config` como `vanish.features.<name>`.

```yaml
vanish:
  enabled: true
  features:
    fake.message: true
    actionbar: true
    self.view: true
    fly: true
    invulnerability: true
    effects: true
    gamemode: true
    ride.entity: true
    silent.container: true
    inventory.inspect: true
    server.ping: true
    ghost: true
    prevent.chat: true
    prevent.pickup: true
    prevent.drop: true
    prevent.interact: true
    prevent.block.break: true
    prevent.block.place: true
    prevent.target: true
    prevent.damage: true
    prevent.food: true
    prevent.buckets: true
    prevent.advancement: true
    prevent.projectiles: true
    muffle.sounds: true
    muffle.particles: true
```

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `vanish.enabled` | `true` | Activa el módulo de vanish. Editable con `/verite config` como `vanish.enabled`, pero requiere un reinicio para aplicarse. |
| `vanish.features.fake.message` | `true` | Muestra un mensaje falso de entrada o salida al activar o desactivar el vanish. |
| `vanish.features.actionbar` | `true` | Muestra un recordatorio persistente en la barra de acción mientras se está en vanish. |
| `vanish.features.self.view` | `true` | Permite que el jugador en vanish siga viéndose a sí mismo. |
| `vanish.features.fly` | `true` | Concede vuelo mientras se está en vanish. |
| `vanish.features.invulnerability` | `true` | Hace invulnerable al jugador en vanish. |
| `vanish.features.effects` | `true` | Aplica los efectos de poción relacionados con el vanish. |
| `vanish.features.gamemode` | `true` | Gestiona el modo de juego del jugador mientras está en vanish. |
| `vanish.features.ride.entity` | `true` | Permite al jugador en vanish montar entidades. |
| `vanish.features.silent.container` | `true` | Abre contenedores en silencio mientras se está en vanish. |
| `vanish.features.inventory.inspect` | `true` | Permite inspeccionar inventarios mientras se está en vanish. |
| `vanish.features.server.ping` | `true` | Ajusta la contribución del jugador a la lista de ping del servidor mientras está en vanish. |
| `vanish.features.ghost` | `true` | Oculta al jugador en vanish como un fantasma para que pase desapercibido. |
| `vanish.features.prevent.chat` | `true` | Impide que el jugador en vanish envíe mensajes al chat. |
| `vanish.features.prevent.pickup` | `true` | Impide que el jugador en vanish recoja objetos. |
| `vanish.features.prevent.drop` | `true` | Impide que el jugador en vanish suelte objetos. |
| `vanish.features.prevent.interact` | `true` | Impide que el jugador en vanish interactúe con el mundo. |
| `vanish.features.prevent.block.break` | `true` | Impide que el jugador en vanish rompa bloques. |
| `vanish.features.prevent.block.place` | `true` | Impide que el jugador en vanish coloque bloques. |
| `vanish.features.prevent.target` | `true` | Impide que los mobs apunten al jugador en vanish. |
| `vanish.features.prevent.damage` | `true` | Impide que el jugador en vanish inflija o reciba daño. |
| `vanish.features.prevent.food` | `true` | Impide que el nivel de comida del jugador en vanish cambie. |
| `vanish.features.prevent.buckets` | `true` | Impide que el jugador en vanish use cubos. |
| `vanish.features.prevent.advancement` | `true` | Impide que el jugador en vanish obtenga progresos. |
| `vanish.features.prevent.projectiles` | `true` | Impide que el jugador en vanish lance proyectiles. |
| `vanish.features.muffle.sounds` | `true` | Amortigua los sonidos que el jugador en vanish produciría de otro modo. |
| `vanish.features.muffle.particles` | `true` | Amortigua las partículas que el jugador en vanish produciría de otro modo. |

## Entrada y salida falsas

La sección `fake.connect` configura los comandos `/fakejoin` y `/fakeleave`, que difunden un mensaje de conexión falso sin que nadie entre o salga realmente.

```yaml
fake.connect:
  enabled: true
  join.message: "&#FFFF55%player% joined the game"
  leave.message: "&#FFFF55%player% left the game"
```

| Clave | Por defecto | Controla |
| --- | --- | --- |
| `fake.connect.enabled` | `true` | Activa o desactiva los comandos `/fakejoin` y `/fakeleave`. Cuando está desactivado, ambos comandos se niegan cortésmente. |
| `fake.connect.join.message` | `&#FFFF55%player% joined the game` | El mensaje difundido por `/fakejoin`. Admite códigos `&` y hex `&#RRGGBB`. `%player%` se sustituye por el nombre del jugador elegido. |
| `fake.connect.leave.message` | `&#FFFF55%player% left the game` | El mensaje difundido por `/fakeleave`. Admite códigos `&` y hex `&#RRGGBB`. `%player%` se sustituye por el nombre del jugador elegido. |
