# Variables de comando

> Todas las variables de comando de KickBot con un ejemplo, desde {{sender.followage}} para el followage de Kick hasta números aleatorios y peticiones a APIs.

Source: https://kickbot.com/es/docs/chat-bot/command-variables

Las variables son marcadores en la respuesta de un comando. KickBot pone el valor real cada vez que se usa el comando. Por ejemplo, una respuesta de `!followage` con `{{sender.followage}}` escribe cuánto tiempo lleva el espectador siguiendo tu canal de Kick. Las variables funcionan en los [comandos personalizados](https://kickbot.com/es/docs/chat-bot/custom-commands) y en las respuestas de los [comandos integrados](https://kickbot.com/es/docs/chat-bot/built-in-commands).

Escribe cada variable con dos llaves a cada lado, tal como aparece en esta página. Las mayúsculas importan: `{{sender.username}}` funciona, `{{Sender.Username}}` no.

## Añade una variable a una respuesta

1. Abre un comando en la página [Comandos personalizados](https://kickbot.com/dashboard/commands), o haz clic en **Añadir comando**.
2. Debajo del cuadro **Respuesta**, usa **Insertar una variable**. Elige un grupo (**Remitente**, **Streamer**, **Usuario etiquetado / Parámetro**, **Stream**, **Aleatorio** o **Petición a API**).
3. Haz clic en una variable. KickBot la añade donde está tu cursor.

La vista previa **En el chat de Kick** muestra valores de ejemplo, para que revises la respuesta antes de guardar.

![El menú Insertar una variable con el grupo Stream abierto y una vista previa con valores de ejemplo para followage, categoría y espectadores](https://kickbot.com/docs/images/chat-bot/command-variables/01-variables.webp "La vista previa usa valores de ejemplo. En el chat, KickBot usa los valores reales.")

Los ejemplos de abajo usan un espectador llamado KickBotDev en un canal llamado yourchannel.

## Remitente

El espectador que escribió el comando.

| Variable | Qué escribe | Ejemplo de resultado |
| --- | --- | --- |
| `{{sender.username}}` | El nombre del espectador tal como aparece en el enlace de su canal (en minúsculas) | `kickbotdev` |
| `{{sender.followers}}` | Cuántos seguidores tiene el canal del propio espectador | `128` |
| `{{sender.followage}}` | Cuánto tiempo lleva el espectador siguiendo tu canal | `4 months 12 days` |
| `{{sender.url}}` | El enlace al canal de Kick del espectador | `https://kick.com/kickbotdev` |
| `{{sender.bio}}` | La biografía del perfil de Kick del espectador | `Streamer de variedades desde México` |
| `{{sender.instagram}}` | El nombre de Instagram del perfil de Kick del espectador | `yourhandle` |
| `{{sender.twitter}}` | El nombre de X (Twitter) del perfil de Kick del espectador | `yourhandle` |
| `{{sender.youtube}}` | El YouTube del perfil de Kick del espectador | `yourhandle` |
| `{{sender.discord}}` | El Discord del perfil de Kick del espectador | `discord.gg/your-server-code` |
| `{{sender.tiktok}}` | El nombre de TikTok del perfil de Kick del espectador | `yourhandle` |
| `{{sender.facebook}}` | El nombre de Facebook del perfil de Kick del espectador | `yourhandle` |

### Followage de Kick

Si el espectador no sigue tu canal, KickBot escribe esto en lugar de tu respuesta: `@kickbotdev is not following @yourchannel`.

El comando integrado `!followage` usa esta variable. Su respuesta es `@{{sender.username}} has been following for {{sender.followage}}`, así que en el chat se ve como `@kickbotdev has been following for 4 months 12 days`.

## Streamer

Tú, el propietario del canal.

| Variable | Qué escribe | Ejemplo de resultado |
| --- | --- | --- |
| `{{streamer.username}}` | El nombre de tu canal tal como aparece en el enlace de tu canal | `yourchannel` |
| `{{streamer.followers}}` | Tu número de seguidores | `2450` |
| `{{streamer.url}}` | El enlace a tu canal de Kick | `https://kick.com/yourchannel` |
| `{{streamer.bio}}` | Tu biografía de Kick | `Streams tranquilos todas las noches` |
| `{{streamer.instagram}}` | El nombre de Instagram de tu perfil de Kick | `yourhandle` |
| `{{streamer.twitter}}` | El nombre de X (Twitter) de tu perfil de Kick | `yourhandle` |
| `{{streamer.youtube}}` | El YouTube de tu perfil de Kick | `yourhandle` |
| `{{streamer.discord}}` | El Discord de tu perfil de Kick | `discord.gg/your-server-code` |
| `{{streamer.tiktok}}` | El nombre de TikTok de tu perfil de Kick | `yourhandle` |
| `{{streamer.facebook}}` | El nombre de Facebook de tu perfil de Kick | `yourhandle` |

> **Caution:** Las variables del perfil (biografía, Instagram, X, YouTube, Discord, TikTok, Facebook) leen el perfil de Kick. Si ese campo está vacío en el perfil, la variable se queda en la respuesta como texto, por ejemplo `{{streamer.tiktok}}`. Úsalas solo con perfiles que tengan ese campo completo.

## Usuario etiquetado y parámetro

El texto o el nombre que el espectador escribe después del comando. Por ejemplo, un espectador escribe `!so @SomeChannel` o `!hug @friend`.

| Variable | Qué escribe | Ejemplo para `!so @SomeChannel great stream` |
| --- | --- | --- |
| `{{param}}` | Todo el texto después del comando | `@SomeChannel great stream` |
| `{{taggedUser.username}}` | El nombre después de la primera `@` | `SomeChannel` |
| `{{taggedUser.url}}` | El enlace al canal etiquetado | `https://kick.com/SomeChannel` |
| `{{taggedUser.followers}}` | El número de seguidores del canal etiquetado | `57` |
| `{{taggedUser.followage}}` | Cuánto tiempo lleva el espectador etiquetado siguiendo tu canal | `2 months 3 days` |

El usuario etiquetado también tiene las variables del perfil: `{{taggedUser.bio}}`, `{{taggedUser.instagram}}`, `{{taggedUser.twitter}}`, `{{taggedUser.youtube}}`, `{{taggedUser.discord}}`, `{{taggedUser.tiktok}}` y `{{taggedUser.facebook}}`.

Si el espectador no etiqueta a nadie, `{{taggedUser.username}}` queda vacío. Si el nombre etiquetado no es un canal de Kick, las variables que buscan datos (seguidores, biografía y los demás campos del perfil) no pueden funcionar, y KickBot escribe `404 tagged user not found` en lugar de la respuesta.

Ejemplo: el comando integrado `!so` (shout-out) tiene la respuesta `Go check @{{taggedUser.username}}'s channel! {{taggedUser.url}}`.

## Stream

Tu stream actual. Estas variables funcionan mientras estás en vivo.

| Variable | Qué escribe | Ejemplo de resultado |
| --- | --- | --- |
| `{{stream.title}}` | El título de tu stream | `Stream tranquilo, ven a pasar el rato` |
| `{{stream.category}}` | La categoría de tu stream | `Just Chatting` |
| `{{stream.viewers}}` | Tu número de espectadores ahora | `342` |

Mientras estás offline, KickBot no puede leer tu stream, así que un comando con estas variables no escribe su respuesta normal. Puede escribir `404 stream not found` en su lugar.

## Aleatorio

Úsalas para juegos y comandos divertidos. Cada vez que se usa, elige un valor nuevo.

| Variable | Qué escribe | Ejemplo de resultado |
| --- | --- | --- |
| `{{randomRange(1,100)}}` | Un número entero entre el primer número y el segundo, los dos incluidos | `42` |
| `{{randomItem("piedra","papel","tijera")}}` | Un elemento de la lista, todos con la misma probabilidad | `papel` |
| `{{randomItemPercentage("común":70,"raro":25,"legendario":5)}}` | Un elemento de la lista, con la probabilidad que le das a cada uno | `común` |

Reglas:

- `randomRange` usa dos números enteros de 0 o más. El primero no puede ser mayor que el segundo.
- Pon cada elemento entre comillas dobles rectas (`"`), separados por comas. Los elementos pueden tener espacios, por ejemplo `"Pregunta más tarde"`.
- En `randomItemPercentage`, pon el número justo después de los dos puntos, sin espacio. Los números son pesos. Con 70, 25 y 5, el primer elemento sale más o menos 70 veces de cada 100. `randomItemPercentage` no está en el menú **Insertar una variable**. Escríbelo tú.

## Petición a API

`{{request("https://...")}}` trae datos de una dirección web (API) y los pone en la respuesta. Úsalo para mostrar un chiste, un rango de un juego o cualquier otra cosa que devuelva una API pública.

```text
{{request("https://uselessfacts.jsph.pl/api/v2/facts/random").text}}
```

KickBot abre la dirección, lee la respuesta JSON y escribe el campo `text`. Por ejemplo: `The praying mantis is the only insect that can turn its head`.

Cómo funciona:

- **Elige un campo.** Añade la ruta después del paréntesis de cierre. Usa puntos para los nombres y `[0]` para los elementos de una lista, por ejemplo `.data[0].name`. Sin ruta, o si la ruta no está en la respuesta, KickBot escribe la respuesta completa.
- **Usa variables en la dirección.** Por ejemplo, `{{request("https://example.com/rank?user={{sender.username}}").rank}}`. KickBot pone el valor y lo adapta para una dirección web (un espacio pasa a ser `%20`). No se permite una petición dentro de otra petición.
- **Solo peticiones GET.** KickBot no puede enviar un body ni headers. Si la API necesita una clave, ponla en la dirección como parámetro de consulta.
- **Límites.** Solo direcciones `http` y `https` de internet público. KickBot espera hasta 3 segundos una respuesta, así que usa una API que responda rápido y con una respuesta corta.

> **Caution:** Cualquier persona que pueda ver los ajustes de tus comandos puede ver una clave de API que esté en la dirección. Usa claves que solo lean datos públicos.

## Más variables

Estas variables funcionan pero no están en el menú **Insertar una variable**.

| Variable | Qué escribe | Ejemplo de resultado |
| --- | --- | --- |
| `{{user}}` | El nombre del espectador con sus mayúsculas | `KickBotDev` |
| `{{sender.fullUsername}}` | El nombre del espectador con `@` delante | `@KickBotDev` |
| `{{commands}}` | Todos los comandos activados, separados por comas | `commands, followage, lurk, me, so, welcome, discord` |

El comando integrado `!commands` usa `{{commands}}`. Su respuesta es `Enabled commands: {{commands}}`.

## Errores comunes

- **Una llave en vez de dos.** `{sender.username}` se queda como texto. Usa `{{sender.username}}`.
- **Un nombre mal escrito.** Una variable desconocida, como `{{sender.name}}`, hace que el comando no escriba ninguna respuesta. Compara cómo lo escribiste con esta página.
- **Comillas tipográficas.** `randomItem` y `request` necesitan comillas rectas (`"`). Algunos teléfonos y editores de texto las cambian por comillas tipográficas (`“ ”`). Para ir sobre seguro, escríbelas en el panel.

## Preguntas frecuentes

**¿Cómo hago un comando followage en Kick?**

KickBot tiene un comando integrado `!followage` que está activado en todos los canales. Para hacer el tuyo, añade un comando con una respuesta como `@{{sender.username}} te sigue desde hace {{sender.followage}}`.

**¿Cómo muestro el nombre del espectador en un comando?**

Usa `{{sender.username}}` para el nombre tal como aparece en el enlace del canal, o `{{user}}` para el nombre con sus mayúsculas. Añade `@` delante si quieres que Kick lo muestre como una mención, por ejemplo `@{{sender.username}}`.

**¿Un comando puede mostrar mi número de espectadores o el título del stream?**

Sí. Usa `{{stream.viewers}}` y `{{stream.title}}`. Funcionan mientras estás en vivo.
