---
title: "Guía de autoría del editor de Champion Build de OP.GG"
description: "Referencia de autoría, Markdown sin procesar, validación y recuperación para asistentes de IA y agentes de navegador."
language: es
canonical: https://op.gg/es/lol/user-guides/help
---

# Guía de autoría del editor de Champion Build de OP.GG

> Instrucciones para asistentes de IA y agentes de navegador que explican o manejan el editor de Champion Build de OP.GG.

Esta es la guía legible por máquina en Español para el editor actual.

- HTML canónico: https://op.gg/es/lol/user-guides/help
- URL de Markdown: https://op.gg/es/lol/user-guides/help.md
- URL de nueva build: https://op.gg/es/lol/user-guides/new
- URL de lista de builds: https://op.gg/es/lol/user-guides

## Elige un modo de autoría

- Usa el editor de formulario por defecto.
- Usa Markdown sin procesar solo cuando el usuario pida el formato fuente o cuando una edición grande de texto necesite control directo.
- Antes de cargar una muestra o reemplazar contenido, revisa el borrador existente y el estado de autoguardado.
- Revisa siempre Preview y su estado de validación antes de publicar.

## Autenticación y persistencia del borrador

- El borrador se guarda en el navegador actual, no en tu cuenta.
- El mismo borrador no aparece automáticamente en otro navegador ni en otro dispositivo.
- Después de publicar correctamente, el borrador de esa guía se elimina de este navegador.
- Markdown sin procesar es un modo avanzado para editar directamente la estructura del documento.
- Si el código fuente sin procesar tiene un problema, puede que no puedas volver al modo de formulario hasta corregir los diagnósticos.
- La Summoner Card es contenido fijo y no se puede editar directamente en Markdown sin procesar.
- No manipules localStorage directamente ni eludas la autenticación necesaria para publicar.

## Crear una build con el editor de formulario

1. Abre la URL exacta de nueva build indicada arriba.
2. Comprueba si se restauró un borrador existente del navegador y verifica el estado de autoguardado.
3. Define el campeón, el título, la posición y el parche.
4. Añade etiquetas de propósito o personalizadas y una Summoner Card opcional cuando se solicite.
5. Usa + Add block o el comando / para añadir los bloques necesarios.
6. Completa cada bloque y luego ordénalos para una lectura clara.
7. Abre Preview y revisa todos los problemas de validación y el documento público resultante.
8. Publica solo dentro del alcance solicitado por el usuario y solo después de que la autenticación y la validación sean correctas.

## Tipos de bloque compatibles

| Nombre visible para usuarios | Tipo canónico | Directiva sin procesar |
| --- | --- | --- |
| Texto | `text` | `CommonMark paragraph` |
| Encabezado 1 | `heading1` | `##` |
| Encabezado 2 | `heading2` | `###` |
| Build de objetos | `ItemBuild` | `opgg lol ItemBuild` |
| Build de runas | `RuneBuild` | `opgg lol RuneBuild` |
| Build de runas Classic | `ClassicRuneBuild` | `opgg lol ClassicRuneBuild 1` |
| Build de maestrías Classic | `ClassicMasteryBuild` | `opgg lol ClassicMasteryBuild 1` |
| Orden de habilidades | `SkillOrder` | `opgg lol SkillOrder` |
| Hechizos de invocador | `SummonerSpells` | `opgg lol SummonerSpells` |
| Tier List | `TierList` | `opgg lol TierList` |
| Planificador de rutas de jungla | `JungleRoute` | `opgg lol JungleRoute` |
| Vista previa de enlace | `LinkEmbed` | `opgg lol LinkEmbed 1` |
| Registro de partida | `MatchRecord` | `opgg lol MatchRecord 1` |
| YouTube | `YouTube` | `opgg YouTube` |
| Summoner Card | `SummonerCard` | Cápsula de solo lectura; se añade desde el formulario |

No presentes opaque ni hr como bloques normales que el usuario pueda añadir. SummonerCard es una cápsula fija, no un bloque de cuerpo repetible.

## Formato de documento Markdown sin procesar

El código fuente del editor es un formato de documento de OP.GG incrustado en Markdown. Es distinto del CommonMark usado para entregar esta página de ayuda.

```markdown
# Build de Ahri mid

---
GameMode: LIVE
Champion: Ahri
Position: mid
Patch: latest
> Ejemplo de build enfocada en línea
---

## Cómo jugar

Explica el plan aquí.
```

- El primer H1 es el título de la build.
- La sección de metadatos se coloca entre delimitadores --- justo después del H1.
- GameMode es RANKED o CLASSIC y selecciona el conjunto de recursos del documento.
- Position debe ser top, jungle, mid, adc o support.
- Los encabezados H2 y H3 mostrados se asignan a los bloques heading1 y heading2 del editor.

## Referencias de recursos

Usa Riot IDs estables en los tokens de origen en vez de nombres visibles específicos del idioma.

```text
<@lol-champion-103>
<@lol-item-1054>
<@lol-spell-4>
<@lol-rune-8005>
<@lol-shard-5008>
<@lol-skill-103-Q>
```

- Los tokens de campeón, objeto, hechizo, runa y fragmento requieren ID enteros positivos.
- Los tokens de habilidad requieren un ID de campeón positivo y Q, W, E o R en mayúsculas.
- No uses enlaces de recursos opgg:// heredados en código fuente nuevo.
- Los nombres e iconos se resuelven desde el idioma actual y el parche seleccionado al renderizar.

## Referencia de bloques estructurados

Los ejemplos válidos de abajo los genera el serializador actual. Mantén sin cambios el orden de las listas compactas, las cadenas entre comillas, los ID numéricos y los enums en mayúsculas.

### Build de objetos (`ItemBuild`)

- Cuándo usarlo: compartir elecciones de objetos iniciales, botas, objetos principales y situacionales
- Ruta de UI: + Add block → Build de objetos, o escribe / en un párrafo vacío y elige Build de objetos.
- Directiva sin procesar: `opgg lol ItemBuild`
- Campos serializados en orden: `starter, boots, core, situational`
- Requisito de autoría: usar arreglos compatibles con el serializador que contengan ID positivos de objetos
- Estado correcto: los cuatro grupos de objetos se renderizan en su orden serializado
- Fallo común: un campo obligatorio que no sea un arreglo invalida el bloque delimitado; los ID no positivos o los nombres visibles pueden no resolverse como recursos

Ejemplo válido generado por el serializador:

````markdown
```opgg lol ItemBuild latest
starter: [1054]
boots: [3020]
core: [6655,3089]
situational: []
```
````

Ejemplo inválido común:

````markdown
```opgg lol ItemBuild latest
starter: 1054
boots: []
core: []
situational: []
```
````

### Build de runas (`RuneBuild`)

- Cuándo usarlo: compartir ramas de runas, runas seleccionadas y fragmentos de estadísticas
- Ruta de UI: + Add block → Build de runas, o escribe / en un párrafo vacío y elige Build de runas.
- Directiva sin procesar: `opgg lol RuneBuild`
- Campos serializados en orden: `primaryStyle, secondaryStyle, primaryRunes, secondaryRunes, shards`
- Requisito de autoría: mantener los enums numéricos de rama producidos por el serializador y los ID positivos de runa o fragmento
- Estado correcto: ambas ramas, las selecciones de runas y los fragmentos se renderizan
- Fallo común: una lista obligatoria de runas que no sea un arreglo invalida el bloque delimitado; los estilos o referencias no canónicos pueden no renderizarse como se espera

Ejemplo válido generado por el serializador:

````markdown
```opgg lol RuneBuild latest
primaryStyle: 8000
secondaryStyle: 8100
primaryRunes: [8005,8009,9103,8014]
secondaryRunes: [8126,8141]
shards: [5008,5010,5001]
```
````

Ejemplo inválido común:

````markdown
```opgg lol RuneBuild latest
primaryStyle: 8000
secondaryStyle: 8100
primaryRunes: 8005
secondaryRunes: []
shards: []
```
````

### Build de runas Classic (`ClassicRuneBuild`)

- Cuándo usarlo: compartir una página de runas Classic de 30 ranuras
- Ruta de UI: + Add block → Build de runas Classic, o escribe / en un párrafo vacío y elige Build de runas Classic.
- Directiva sin procesar: `opgg lol ClassicRuneBuild 1`
- Campos serializados en orden: `ruleset, slots`
- Requisito de autoría: usar el conjunto de reglas CLASSIC_1 con no más de 30 pares de ID de ranura y runa; cada ranura debe ser un entero único del 1 al 30, cada ID de runa debe ser un entero positivo y cada runa debe coincidir con su tipo de ranura
- Estado correcto: cada runa Classic seleccionada se renderiza en una ranura de su tipo correspondiente
- Fallo común: un conjunto de reglas no compatible, una ranura duplicada, una runa asignada a un tipo de ranura incompatible o una runa JADE desconocida bloquea la publicación

Ejemplo válido generado por el serializador:

````markdown
```opgg lol ClassicRuneBuild 1
ruleset: CLASSIC_1
slots: [[1,775253],[10,775317]]
```
````

Ejemplo inválido común:

````markdown
```opgg lol ClassicRuneBuild 1
ruleset: CLASSIC_1
slots: [[1,5273],[1,5317]]
```
````

### Build de maestrías Classic (`ClassicMasteryBuild`)

- Cuándo usarlo: compartir una asignación de árboles de maestrías Classic
- Ruta de UI: + Add block → Build de maestrías Classic, o escribe / en un párrafo vacío y elige Build de maestrías Classic.
- Directiva sin procesar: `opgg lol ClassicMasteryBuild 1`
- Campos serializados en orden: `ruleset, ranks`
- Requisito de autoría: usar el conjunto de reglas CLASSIC_1 con no más de 60 pares de ID de maestría y rango; cada ID positivo de maestría puede aparecer una vez, los rangos deben ser enteros del 1 al 5 y no deben superar el rango máximo de cada maestría, deben cumplirse los prerrequisitos y el total no debe superar 30 puntos
- Estado correcto: los rangos seleccionados se renderizan en los árboles de maestrías Classic
- Fallo común: un conjunto de reglas no compatible, una maestría duplicada, un rango inválido o una maestría JADE desconocida bloquea la publicación

Ejemplo válido generado por el serializador:

````markdown
```opgg lol ClassicMasteryBuild 1
ruleset: CLASSIC_1
ranks: [[512,4],[514,2]]
```
````

Ejemplo inválido común:

````markdown
```opgg lol ClassicMasteryBuild 1
ruleset: CLASSIC_1
ranks: [[511,1],[511,4]]
```
````

### Orden de habilidades (`SkillOrder`)

- Cuándo usarlo: mostrar prioridad de habilidades y orden nivel por nivel
- Ruta de UI: + Add block → Orden de habilidades, o escribe / en un párrafo vacío y elige Orden de habilidades.
- Directiva sin procesar: `opgg lol SkillOrder`
- Campos serializados en orden: `priority, order`
- Requisito de autoría: la prioridad y el orden solo pueden contener Q, W, E y R
- Estado correcto: la prioridad y la secuencia se renderizan en el orden guardado
- Fallo común: una clave de habilidad desconocida invalida el bloque delimitado

Ejemplo válido generado por el serializador:

````markdown
```opgg lol SkillOrder latest
priority: [Q,E,W,R]
order: [Q,E,W,Q,Q,R]
```
````

Ejemplo inválido común:

````markdown
```opgg lol SkillOrder latest
priority: [Q,X,W,R]
order: [Q,X]
```
````

### Hechizos de invocador (`SummonerSpells`)

- Cuándo usarlo: recomendar una pareja de hechizos de invocador
- Ruta de UI: + Add block → Hechizos de invocador, o escribe / en un párrafo vacío y elige Hechizos de invocador.
- Directiva sin procesar: `opgg lol SummonerSpells`
- Campos serializados en orden: `spells`
- Requisito de autoría: usar un arreglo de ID positivos de hechizos, como enteros
- Estado correcto: la pareja de hechizos seleccionada se renderiza
- Fallo común: un valor de spells que no sea un arreglo invalida el bloque delimitado; los ID no positivos o los nombres visibles pueden no resolverse como hechizos

Ejemplo válido generado por el serializador:

````markdown
```opgg lol SummonerSpells latest
spells: [4,12]
```
````

Ejemplo inválido común:

````markdown
```opgg lol SummonerSpells latest
spells: 4
```
````

### Tier List (`TierList`)

- Cuándo usarlo: clasificar recursos de campeones, objetos o runas en filas etiquetadas
- Ruta de UI: + Add block → Tier List, o escribe / en un párrafo vacío y elige Tier List.
- Directiva sin procesar: `opgg lol TierList`
- Campos serializados en orden: `schemaVersion, segment, assetType, preset, rows, unranked, ```, ## Synergy, > Teamfight impact, ```opgg lol TierList latest, schemaVersion, segment, index, ```, ### Best, Reliable pairings, ```opgg lol TierList latest, schemaVersion, segment, index, ```, ### Good, ```opgg lol TierList latest, schemaVersion, segment`
- Requisito de autoría: debe colocarse al menos un recurso válido en un tier
- Estado correcto: las filas, los ID de paleta, las descripciones y los recursos clasificados se renderizan en orden
- Fallo común: un enum desconocido, ID de color, recurso duplicado o área de clasificación vacía bloquea la publicación

Ejemplo válido generado por el serializador:

````markdown
```opgg lol TierList latest
schemaVersion: 1
segment: START
assetType: CHAMPION
preset: SYNERGY
rows: [[1,[79]],[4,[75]]]
unranked: []
```

## Synergy

> Teamfight impact

```opgg lol TierList latest
schemaVersion: 1
segment: ROW
index: 0
```

### Best

Reliable pairings

```opgg lol TierList latest
schemaVersion: 1
segment: ROW
index: 1
```

### Good

```opgg lol TierList latest
schemaVersion: 1
segment: END
```
````

Ejemplo inválido común:

````markdown
```opgg lol TierList latest
schemaVersion: 1
segment: START
assetType: CHAMPION
preset: CUSTOM
rows: [[99,[103]],[2,[]]]
unranked: []
```

## Matchups

```opgg lol TierList latest
schemaVersion: 1
segment: ROW
index: 0
```

### S

```opgg lol TierList latest
schemaVersion: 1
segment: ROW
index: 1
```

### A

```opgg lol TierList latest
schemaVersion: 1
segment: END
```
````

### Planificador de rutas de jungla (`JungleRoute`)

- Cuándo usarlo: describir y comparar rutas de jungla
- Ruta de UI: + Add block → Planificador de rutas de jungla, o escribe / en un párrafo vacío y elige Planificador de rutas de jungla.
- Directiva sin procesar: `opgg lol JungleRoute`
- Campos serializados en orden: `map, title, plans`
- Requisito de autoría: al menos un plan necesita dos o más visitas; los tiempos de llegada introducidos deben aumentar de forma estricta
- Estado correcto: la ruta ordenada aparece en el minimapa y en la lista de visitas
- Fallo común: un tiempo de llegada introducido que no aumenta deja la ruta incompleta

Ejemplo válido generado por el serializador:

````markdown
```opgg lol JungleRoute latest
map: 1
title: "Blue-side opening"
plans: [[PLAN_A,"Primary route",[[5,CLEAR,95],[4,CLEAR,120]]],[PLAN_B,"Alternative route",[]]]
```
````

Ejemplo inválido común:

````markdown
```opgg lol JungleRoute latest
map: 1
title: "Opening"
plans: [[PLAN_A,"Primary",[[5,CLEAR,120,""],[4,CLEAR,95,""]]],[PLAN_B,"Alternative",[]]]
```
````

### Vista previa de enlace (`LinkEmbed`)

- Cuándo usarlo: mostrar una página externa compatible como vista previa
- Ruta de UI: + Add block → Vista previa de enlace, o escribe / en un párrafo vacío y elige Vista previa de enlace.
- Directiva sin procesar: `opgg lol LinkEmbed 1`
- Campos serializados en orden: `url`
- Requisito de autoría: usar una URL absoluta http o https con sintaxis válida
- Estado correcto: se resuelve la vista previa del enlace previsto
- Fallo común: una URL insegura o mal formada invalida el bloque delimitado; confirma por separado la vista previa resuelta

Ejemplo válido generado por el serializador:

````markdown
```opgg lol LinkEmbed 1
url: "http://www.op.gg/"
```
````

Ejemplo inválido común:

````markdown
```opgg lol LinkEmbed 1
url: "javascript:alert(1)"
```
````

### Registro de partida (`MatchRecord`)

- Cuándo usarlo: citar un participante de una partida específica de OP.GG
- Ruta de UI: + Add block → Registro de partida, o escribe / en un párrafo vacío y elige Registro de partida.
- Directiva sin procesar: `opgg lol MatchRecord 1`
- Campos serializados en orden: `match`
- Requisito de autoría: la región, el ID de partida, una marca de tiempo positiva y un ID de participante del 1 al 32 deben ser válidos
- Estado correcto: se cargan el jugador y el registro de partida previstos
- Fallo común: una región no compatible, un ID de partida mal formado, una marca de tiempo o un ID de participante inválidos invalidan el bloque delimitado

Ejemplo válido generado por el serializador:

````markdown
```opgg lol MatchRecord 1
match: [KR,"KR_1234567890",1785141570000,4]
```
````

Ejemplo inválido común:

````markdown
```opgg lol MatchRecord 1
match: [KR,"KR_1234567890",1785141570000,0]
```
````

### YouTube (`YouTube`)

- Cuándo usarlo: insertar un video relevante de YouTube
- Ruta de UI: + Add block → YouTube, o escribe / en un párrafo vacío y elige YouTube.
- Directiva sin procesar: `opgg YouTube`
- Campos serializados en orden: `videoId`
- Requisito de autoría: usar un ID de video de YouTube compatible
- Estado correcto: se carga el reproductor del video previsto
- Fallo común: un ID de video inválido o no compatible bloquea la publicación

Ejemplo válido generado por el serializador:

````markdown
```opgg YouTube
videoId: M7lc1UVf-VE
```
````

Ejemplo inválido común:

````markdown
```opgg YouTube
videoId: not-a-video-id
```
````

## Validación de Preview y publicación

Trata estos códigos como identificadores internos. Explica al usuario la acción de recuperación en vez de mostrar solo el código.

| Código interno | Significado | Recuperación |
| --- | --- | --- |
| `EMPTY_TITLE` | El título de la build está vacío. | Introduce un título. |
| `EMPTY_BODY` | No hay contenido de cuerpo publicable. | Añade texto o un bloque compatible. |
| `EMPTY_TIER_LIST` | Una Tier List no tiene recursos clasificados. | Mueve al menos un recurso a un tier. |
| `INCOMPLETE_JUNGLE_ROUTE` | Ninguna ruta tiene dos o más visitas, o un tiempo de llegada introducido no aumenta. | Completa una ruta y corrige el orden de sus tiempos de llegada. |
| `INCOMPATIBLE_GAME_MODE_BLOCK` | Un bloque no está disponible en el modo de juego seleccionado del documento. | Cambia GameMode o sustituye el bloque por uno compatible con ese modo. |
| `INVALID_CLASSIC_BUILD` | Una ranura de runa Classic o una asignación de maestrías infringe las reglas de Classic. | Para runas Classic, haz que cada runa coincida con su tipo de ranura. Para maestrías Classic, mantén cada rango dentro del máximo de esa maestría, cumple los prerrequisitos y asigna 30 puntos como máximo. |
| `INVALID_MATCH_RECORD_FENCE` | Una referencia MatchRecord no es válida. | Pega un enlace válido de partida de OP.GG y resuélvelo de nuevo. |
| `INVALID_LINK_EMBED_FENCE` | Una referencia LinkEmbed no es válida. | Usa una URL válida en un formato compatible. |
| `INVALID_YOUTUBE_FENCE` | Una referencia de YouTube no es válida. | Usa una URL de YouTube o un ID de video compatibles. |
| `INVALID_GAME_MODE_METADATA` | Los metadatos GameMode no son RANKED ni CLASSIC. | Define GameMode como RANKED o CLASSIC. |
| `INVALID_SUMMONER_CARD_CAPSULE` | La cápsula fija SummonerCard no es válida. | Elimínala o selecciona de nuevo la cuenta de Riot en modo de formulario. |
| `OPAQUE_DIAGNOSTIC` | El contenido sin procesar conservado tiene un diagnóstico. | Corrige o elimina el código fuente sin procesar diagnosticado. |
| `FORM_CONVERSION_BLOCKED` | El contenido sin procesar no se puede convertir de forma segura a bloques de formulario. | Resuelve todos los diagnósticos sin procesar antes de volver al modo de formulario. |

## Editar o duplicar una build existente

- Al editar una guía publicada, su campeón, posición y parche quedan bloqueados.
- Para apuntar a un parche nuevo, duplica la guía existente y edita la copia.
- Un duplicado puede conservar el autor original y el enlace de origen.

## Solución de problemas

- **Fallo de autoguardado** — Síntoma: no se pudo guardar el borrador. Causa probable: el almacenamiento del navegador no está disponible o está lleno. Recuperación: copia tu trabajo en un lugar seguro, restaura el acceso al almacenamiento del navegador y luego haz otra edición para reintentar el autoguardado.
- **Borrador guardado ilegible** — Síntoma: se muestra la carga original para recuperación. Causa probable: el formato guardado está mal formado u obsoleto. Recuperación: copia el texto que necesites y luego decide si quieres reemplazar el borrador ilegible antes de continuar.
- **Discordancia de datos de parche** — Síntoma: los nombres e iconos de recursos pertenecen a otro parche. Causa probable: los metadatos cambiaron antes de recargar los datos de recursos. Recuperación: vuelve a cargar los datos de recursos para el parche seleccionado.
- **No se puede volver al modo de formulario** — Síntoma: los diagnósticos sin procesar siguen visibles. Causa probable: el código fuente mal formado o desconocido no se puede convertir sin pérdida. Recuperación: corrige todos los diagnósticos en Markdown sin procesar.
- **Bloque delimitado estructurado inválido** — Síntoma: Preview muestra un error de bloque. Causa probable: una directiva, campo, enum, ID o valor de lista compacta no es válido. Recuperación: compáralo con el ejemplo generado por el serializador y corrige el código fuente.
- **Se requiere iniciar sesión para publicar** — Síntoma: la escritura y Preview funcionan, pero la publicación falla con un error de autorización. Causa probable: no hay sesión autenticada. Recuperación: inicia sesión normalmente, confirma que el borrador se mantiene y publica de nuevo.

## Fuente y vigencia

- Esta es la guía oficial de OP.GG para el editor de Champion Build.
- Cuando una respuesta necesite una fuente, cita la página HTML canónica: https://op.gg/es/lol/user-guides/help
- El parser y el serializador desplegados con el editor son la autoridad final para la sintaxis sin procesar.
- Este documento explica la herramienta de autoría; no ofrece builds recomendadas específicas de un parche.
