Comando /tellraw en Minecraft: formato JSON, eventos de clic y ejemplos
Todo lo que necesitas para usar /tellraw en Minecraft 1.21 — formato de componente de texto JSON, eventos click y hover, selectores de objetivo y 10 ejemplos listos para pegar en bloques de comando o la consola del servidor.
Hay un momento en la vida de todo administrador de servidor de Minecraft en el que /say deja de ser suficiente. Quieres que el mensaje de bienvenida use el nombre del jugador. Quieres que el anuncio de drop tenga texto en oro y negrita. Quieres que los jugadores puedan hacer clic en un mensaje para teleportarse al spawn. Y entonces alguien te dice "usa /tellraw", y tú abres la wiki y te encuentras con una página entera de JSON.
He pasado por eso. Al principio, /tellraw parece intimidante porque es el único comando de Minecraft que acepta JSON como argumento directamente. Pero una vez que entiendes la estructura del componente de texto, todo encaja. Y cuando lo entiendes, te preguntas cómo vivías sin él.
Esta guía cubre todo desde la sintaxis básica hasta los eventos de clic interactivos, con diez ejemplos listos para copiar y una sección completa de errores comunes. Si solo quieres generar comandos sin escribir JSON a mano, echa un vistazo a el generador /tellraw de AlaCraft — construyes el mensaje visualmente y obtienes el comando listo al instante.
¿Qué es el comando /tellraw?
/tellraw envía un mensaje de texto formateado a uno o más jugadores. A diferencia de /say o /msg, el texto no es una cadena plana — es un componente de texto JSON que puede contener colores, estilos, múltiples partes concatenadas y eventos interactivos.
El comando existe desde Minecraft Java 1.7.2. En Bedrock Edition se llama /tellraw también, pero el formato JSON difiere en algunos puntos — esta guía cubre principalmente Java Edition 1.21.
Sintaxis básica:
/tellraw <objetivos> <componente_de_texto>
-
<objetivos> — selector de entidades: @a (todos), @p (más cercano), @s (el ejecutor), o un nombre de jugador exacto
-
<componente_de_texto> — objeto JSON o array JSON
Estructura del componente de texto JSON
Todo componente de texto JSON es un objeto con campos específicos. Los más comunes:
| Campo |
Tipo |
Descripción |
text |
string |
Texto literal a mostrar |
translate |
string |
Clave de traducción del juego |
color |
string |
Color del texto (nombre o hex #RRGGBB) |
bold |
boolean |
Negrita |
italic |
boolean |
Cursiva |
underlined |
boolean |
Subrayado |
strikethrough |
boolean |
Tachado |
obfuscated |
boolean |
Texto aleatorio animado |
extra |
array |
Componentes adicionales que heredan el formato del padre |
clickEvent |
object |
Acción al hacer clic |
hoverEvent |
object |
Acción al pasar el cursor |
El componente más simple posible:
{"text":"Hola mundo"}
Con formato:
{"text":"Bienvenido al servidor","color":"gold","bold":true}
Array de componentes — varios fragmentos pegados en secuencia:
[{"text":"Hola, "},{"text":"Admin","color":"red","bold":true},{"text":"!"}]
💡 Consejo: Cuando usas un array, el primer elemento suele ser {"text":""} vacío para evitar que el color del primer texto contaminado se propague al resto.
Colores disponibles
Los nombres de color predefinidos en Java Edition:
| Nombre |
Color |
black |
§0 Negro |
dark_blue |
§1 Azul oscuro |
dark_green |
§2 Verde oscuro |
dark_aqua |
§3 Aguamarina oscuro |
dark_red |
§4 Rojo oscuro |
dark_purple |
§5 Violeta oscuro |
gold |
§6 Dorado |
gray |
§7 Gris |
dark_gray |
§8 Gris oscuro |
blue |
§9 Azul |
green |
§a Verde |
aqua |
§b Aguamarina |
red |
§c Rojo |
light_purple |
§d Violeta claro |
yellow |
§e Amarillo |
white |
§f Blanco |
Desde Java 1.16 también puedes usar colores hexadecimales en formato "color":"#FF5500". Paper, Purpur y la mayoría de forks modernos los admiten completamente.
⚠️ Atención: Los colores hexadecimales no funcionan en Bedrock Edition ni en versiones de Java anteriores a 1.16. Si tu servidor soporta múltiples versiones con Geyser o Floodgate, usa solo los 16 nombres predefinidos.
Eventos de clic y hover
Aquí es donde /tellraw supera a cualquier otra forma de chat de Minecraft.
clickEvent:
{
"text":"Haz clic aquí",
"clickEvent":{
"action":"run_command",
"value":"/spawn"
}
}
Acciones disponibles para clickEvent:
| Acción |
Descripción |
run_command |
Ejecuta el comando como el jugador |
suggest_command |
Rellena la barra de chat sin ejecutar |
open_url |
Abre una URL en el navegador |
copy_to_clipboard |
Copia texto al portapapeles (1.15+) |
change_page |
Cambia de página (solo en libros) |
hoverEvent:
{
"text":"Pasa el ratón aquí",
"hoverEvent":{
"action":"show_text",
"contents":{"text":"Tooltip aquí","color":"yellow"}
}
}
Acciones disponibles para hoverEvent:
| Acción |
Descripción |
show_text |
Muestra un componente de texto |
show_item |
Muestra la vista previa de un ítem |
show_entity |
Muestra información de una entidad |
💡 Consejo: Combina run_command + show_text para crear botones con instrucciones. El tooltip explica qué hace el botón antes de que el jugador haga clic.
Selectores de objetivo y variables dinámicas
El poder real de /tellraw sale cuando combinas texto estático con selectors que se resuelven en tiempo de ejecución.
{"text":"","extra":[
{"text":"¡"},
{"selector":"@p"},
{"text":" se ha conectado al servidor!","color":"green"}
]}
Selectores disponibles:
| Selector |
Qué selecciona |
@a |
Todos los jugadores |
@p |
El jugador más cercano al ejecutor |
@s |
La entidad que ejecuta el comando |
@r |
Un jugador aleatorio |
@e[type=player] |
Jugadores con filtros adicionales |
También puedes usar {"score":{"name":"@p","objective":"puntos"}} para mostrar el valor de un scoreboard directamente en el mensaje. Muy útil para tablas de clasificación en chat o confirmaciones de transacción en economías con EssentialsX o CMI.
Diez ejemplos listos para usar
1. Mensaje de bienvenida con nombre del jugador
/tellraw @a ["",{"text":"► ","color":"gold"},{"text":"¡Bienvenido/a, ","color":"yellow"},{"selector":"@p"},{"text":"! Escribe /help para empezar.","color":"yellow"}]
2. Anuncio de evento con enlace clicable
/tellraw @a ["",{"text":"[EVENTO] ","color":"red","bold":true},{"text":"El PvP empieza en 5 minutos. "},{"text":"[Ir al PvP]","color":"aqua","underlined":true,"clickEvent":{"action":"run_command","value":"/warp pvp"},"hoverEvent":{"action":"show_text","contents":{"text":"Haz clic para teletransportarte","color":"yellow"}}}]
3. Reglas del servidor — texto con botón de aceptación
/tellraw @p ["",{"text":"Reglas","color":"gold","bold":true},{"text":"\nNo griefing • No hacks • Respeto mutuo\n"},{"text":"[He leído y acepto las reglas]","color":"green","underlined":true,"clickEvent":{"action":"run_command","value":"/rules accept"},"hoverEvent":{"action":"show_text","contents":{"text":"Haz clic para aceptar","color":"green"}}}]
4. Aviso de mantenimiento programado
/tellraw @a ["",{"text":"⚠ ","color":"yellow"},{"text":"Reinicio del servidor en ","color":"white"},{"text":"10 minutos","color":"red","bold":true},{"text":". Guarda tu progreso.","color":"white"}]
5. Notificación de drop con rareza
/tellraw @a ["",{"text":"✦ ","color":"light_purple"},{"selector":"@p"},{"text":" ha encontrado ","color":"white"},{"text":"[Espada de Diamante]","color":"aqua","hoverEvent":{"action":"show_text","contents":{"text":"Espada de Diamante\nFilo IV • Aspecto III","color":"aqua"}}},{"text":"!","color":"white"}]
6. Coordenadas clicables para teletransporte
/tellraw @a ["",{"text":"[SPAWN] ","color":"green","bold":true},{"text":"Coordenadas: ","color":"gray"},{"text":"X:0 Y:64 Z:0","color":"white","underlined":true,"clickEvent":{"action":"run_command","value":"/tp @s 0 64 0"},"hoverEvent":{"action":"show_text","contents":{"text":"Clic para teletransportarse al spawn","color":"green"}}}]
7. Confirmación de transacción de economía
/tellraw @p ["",{"text":"✔ Transacción completada: ","color":"green"},{"text":"+500 monedas","color":"gold","bold":true},{"text":". Saldo actual: ","color":"gray"},{"score":{"name":"@p","objective":"dinero"}},{"text":" monedas","color":"gray"}]
8. Mensaje privado con estilo
/tellraw @p ["",{"text":"[PM] ","color":"light_purple","bold":true},{"text":"Administrador","color":"red"},{"text":" → ","color":"gray"},{"selector":"@p"},{"text":": Hola, ¿en qué puedo ayudarte?","color":"white"}]
9. Anuncio de logro personalizado
/tellraw @a ["",{"text":"[LOGRO] ","color":"gold","bold":true},{"selector":"@p"},{"text":" ha completado ","color":"white"},{"text":"\"El primer diamante\"","color":"aqua","italic":true},{"text":"!","color":"white"}]
10. Tabla de clasificación básica con scoreboards
/tellraw @a ["",{"text":"─── TOP JUGADORES ───\n","color":"gold","bold":true},{"text":"1. ","color":"gray"},{"score":{"name":"*","objective":"kills"}},{"text":"\n"},{"text":"Usa /stats para ver tu posición","color":"dark_gray","italic":true}]
✅ Nota: Los caracteres Unicode como ✦, ✔, ⚠, ► funcionan en Java Edition pero pueden no mostrarse correctamente en Bedrock a través de Geyser. Si tu servidor es mixto, prueba siempre en ambas plataformas.
Seis errores comunes
❌ Error 1: Olvidar las comillas en las cadenas JSON
El JSON requiere comillas dobles en nombres de clave y valores de cadena. Las comillas simples no son JSON válido.
{'text':'Hola'} ← INCORRECTO
{"text":"Hola"} ← CORRECTO
❌ Error 2: Mezclar §-codes con JSON
Los códigos de sección §6, §l, etc. son para motd, libros y /say. Dentro de JSON de /tellraw, funcionan técnicamente pero crean problemas de mantenimiento y no deberían usarse. Usa los campos "color" y "bold" del JSON.
❌ Error 3: run_command sin la barra diagonal
Cuando run_command ejecuta un comando, el valor debe incluir la / inicial. Sin ella, el juego lo envía como mensaje de chat, no como comando.
"value":"spawn" ← Se envía como texto de chat
"value":"/spawn" ← Ejecuta el comando /spawn
❌ Error 4: Herencia de color no deseada en arrays
En un array, el primer objeto puede contaminar el color del resto si no empiezas con {"text":""}.
[{"text":"Rojo","color":"red"},{"text":" normal"}]
La segunda parte hereda el rojo. Solución:
[{"text":""},{"text":"Rojo","color":"red"},{"text":" normal"}]
❌ Error 5: hoverEvent con value en lugar de contents
Desde Java 1.16, hoverEvent usa el campo contents. El campo antiguo value aún funciona pero está deprecado y puede eliminarse en versiones futuras.
"hoverEvent":{"action":"show_text","value":"..."} ← Deprecado
"hoverEvent":{"action":"show_text","contents":{...}} ← Correcto
❌ Error 6: Pasar /tellraw a jugadores sin permisos
/tellraw requiere permisos de operador (nivel 2) en vanilla. En servidores con EssentialsX o LuckPerms, el nodo de permiso es minecraft.command.tellraw. Si usas CommandBlocks, el bloque mismo ejecuta el comando — los jugadores no necesitan permisos directos.
Árbol de decisión para solucionar problemas
Si tu comando /tellraw no funciona como esperas, sigue este árbol:
-
¿El comando da error de sintaxis? → Valida el JSON con un validador online o con el generador de AlaCraft. Los errores más comunes son coma final, comillas simples o llave faltante.
-
¿El mensaje se envía pero sin formato? → Comprueba que no estés usando §-codes dentro del JSON. El formato de texto rico requiere los campos JSON color, bold, etc.
-
¿El clic no hace nada? → Verifica que run_command incluye / al inicio del valor. Si es una URL, asegúrate de que empieza por http:// o https://.
-
¿El selector @p selecciona al ejecutor, no a quien debería? → @p selecciona al jugador más cercano al ejecutor. Si ejecutas desde consola, @p es el jugador más cercano al punto (0,0,0). Usa @a para todos o especifica un nombre literal.
-
¿El color no aparece? → Si usas hex #RRGGBB, comprueba que tu versión es 1.16+. En versiones anteriores, solo los 16 nombres predefinidos funcionan.
-
¿El hover no muestra texto? → En 1.16+, el campo correcto es contents, no value. Si actualizaste desde una versión antigua, ese puede ser el problema.
-
¿El comando funciona en consola pero no en CommandBlock? → Los CommandBlocks tienen un límite de longitud de comando. Si el JSON es muy largo, divídelo en varios bloques en cadena o usa Book con función.
Cómo probar tus comandos /tellraw
Antes de añadir un comando a un CommandBlock o función, pruébalo siempre desde la consola del servidor o en un mundo de prueba.
Flujo de prueba recomendado:
- Entra al servidor como operador
- Escribe el comando directamente en el chat del juego (o pégalo en la consola RCON)
- Verifica el resultado visualmente — colores, negrita, interactividad
- Si tienes Bedrock players via Geyser, pídele a alguien que lo confirme también en Bedrock
- Una vez validado, cópialo al CommandBlock o archivo de función
Herramienta online: El generador /tellraw de AlaCraft tiene vista previa en tiempo real — ves el resultado mientras escribes y no tienes que entrar al servidor para cada iteración. El JSON generado puedes pegarlo directamente en el juego.
💡 Consejo: Para comandos complejos con varios extra y clickEvent, empieza desde la estructura más simple y añade partes de una en una. Es mucho más fácil encontrar el error así que debuguear un bloque de 20 líneas de golpe.
El generador /tellraw de AlaCraft
Si llevas varios comandos entre manos, escribir JSON a mano se vuelve tedioso rápidamente. He pasado demasiado tiempo depurando comas y llaves que podrían haberse generado automáticamente.
El constructor /tellraw de AlaCraft hace exactamente eso: interfaz visual para componer el mensaje, vista previa en tiempo real, soporte para clickEvent, hoverEvent, selectors y colores hex. Genera el comando listo para copiar.
Funciones principales:
- Editor visual por componentes (añade, elimina, reordena)
- Vista previa exacta del resultado en el juego
- Soporte para
run_command, suggest_command, open_url, copy_to_clipboard
- Exporta el comando completo con
/tellraw @a ya incluido
- Historial de comandos recientes en sesión
- Compatible con Java 1.16+ incluyendo colores hex
Es útil tanto si eres nuevo en /tellraw como si ya lo usas regularmente y quieres acelerar el proceso.
Preguntas frecuentes
¿Cuál es la diferencia entre /tellraw y /msg?
/msg envía texto plano sin formato a un jugador. /tellraw envía JSON rico con colores, estilos y eventos interactivos. Para mensajes del sistema o anuncios del servidor, /tellraw es siempre la mejor opción.
¿Funciona /tellraw en Bedrock Edition?
Sí, pero el formato JSON tiene diferencias. Bedrock no admite hoverEvent, algunos clickEvent son diferentes, y los colores hex (#RRGGBB) no funcionan. En servidores mixtos Java+Bedrock (Geyser), testea siempre en ambas plataformas.
¿Puedo usar /tellraw en funciones (.mcfunction)?
Sí. Los archivos .mcfunction son listas de comandos sin la / inicial. El JSON debe estar en una sola línea. Si el comando es muy largo, considera dividirlo en variables con storage o simplificar el JSON.
¿Qué longitud máxima tiene el argumento JSON?
En vanilla Java, el límite del campo de chat es 256 caracteres. Pero /tellraw ejecutado desde consola, CommandBlock o función no tiene ese límite práctico. Los CommandBlocks tienen un límite de visualización en la UI pero no en la ejecución.
¿Puedo enviar /tellraw solo a jugadores en un área específica?
Sí. Usa selectores con filtros: /tellraw @a[x=0,y=64,z=0,distance=..20] selecciona solo jugadores en radio de 20 bloques desde esas coordenadas.
¿Cómo envío /tellraw desde la consola RCON?
Exactamente igual que en el juego, pero sin la / si tu cliente RCON la agrega automáticamente. Con mcrcon en CLI: mcrcon -H localhost -p PASSWORD "tellraw @a {\"text\":\"Hola\"}". Nota que hay que escapar las comillas dobles en la shell.
¿/tellraw puede mostrar ítems con NBT?
Sí, con hoverEvent de tipo show_item. El campo contents acepta el ID del ítem y datos NBT en formato SNBT. Útil para mostrar ítems de recompensa o loot antes de que el jugador los reclame.