---
title: "Hướng dẫn soạn thảo cho OP.GG Champion Build Builder"
description: "Tài liệu tham khảo về soạn thảo, Markdown thô, kiểm tra hợp lệ và khôi phục cho trợ lý AI và tác nhân trình duyệt."
language: vi
canonical: https://op.gg/vi/lol/user-guides/help
---

# Hướng dẫn soạn thảo cho OP.GG Champion Build Builder

> Hướng dẫn cho trợ lý AI và tác nhân trình duyệt khi giải thích hoặc thao tác OP.GG Champion Build Builder.

Đây là hướng dẫn Tiếng Việt có thể đọc bằng máy cho trình tạo hiện tại.

- HTML chính tắc: https://op.gg/vi/lol/user-guides/help
- Markdown URL: https://op.gg/vi/lol/user-guides/help.md
- URL build mới: https://op.gg/vi/lol/user-guides/new
- URL danh sách build: https://op.gg/vi/lol/user-guides

## Chọn chế độ soạn thảo

- Mặc định dùng trình chỉnh sửa biểu mẫu.
- Chỉ dùng Markdown thô khi người dùng yêu cầu định dạng nguồn hoặc khi cần kiểm soát trực tiếp một chỉnh sửa văn bản lớn.
- Trước khi tải mẫu hoặc thay nội dung, kiểm tra bản nháp hiện có và trạng thái tự động lưu.
- Luôn kiểm tra Preview và trạng thái hợp lệ trước khi đăng.

## Xác thực và lưu giữ bản nháp

- Bản nháp được lưu trong trình duyệt hiện tại, không phải trong tài khoản của bạn.
- Cùng bản nháp đó sẽ không tự động xuất hiện trong trình duyệt khác hoặc trên thiết bị khác.
- Sau khi đăng thành công, bản nháp của hướng dẫn đó sẽ bị xóa khỏi trình duyệt này.
- Markdown thô là chế độ nâng cao để chỉnh sửa trực tiếp cấu trúc tài liệu.
- Nếu nguồn thô có vấn đề, bạn có thể không quay lại được chế độ biểu mẫu cho đến khi sửa các chẩn đoán.
- Summoner Card là nội dung cố định và không thể chỉnh sửa trực tiếp trong Markdown thô.
- Không thao tác trực tiếp với localStorage hoặc bỏ qua yêu cầu xác thực để đăng bài.

## Tạo build bằng trình chỉnh sửa biểu mẫu

1. Mở đúng URL New build được liệt kê ở trên.
2. Kiểm tra xem bản nháp trình duyệt có được khôi phục không và xác minh trạng thái tự động lưu.
3. Đặt tướng, tiêu đề, vị trí và bản vá.
4. Thêm mục đích hoặc tag tùy chỉnh và Summoner Card tùy chọn khi được yêu cầu.
5. Dùng + Add block hoặc lệnh / để thêm các block cần thiết.
6. Điền mọi block, rồi sắp xếp các block theo thứ tự đọc.
7. Mở Preview và kiểm tra từng lỗi hợp lệ cùng tài liệu công khai tạo ra.
8. Chỉ đăng trong phạm vi người dùng yêu cầu và chỉ sau khi xác thực cùng kiểm tra hợp lệ thành công.

## Các loại block được hỗ trợ

| Tên hiển thị cho người dùng | Loại chính tắc | Chỉ thị thô |
| --- | --- | --- |
| Văn bản | `text` | `CommonMark paragraph` |
| Tiêu đề 1 | `heading1` | `##` |
| Tiêu đề 2 | `heading2` | `###` |
| Build trang bị | `ItemBuild` | `opgg lol ItemBuild` |
| Build ngọc | `RuneBuild` | `opgg lol RuneBuild` |
| Build ngọc Classic | `ClassicRuneBuild` | `opgg lol ClassicRuneBuild 1` |
| Build bảng bổ trợ Classic | `ClassicMasteryBuild` | `opgg lol ClassicMasteryBuild 1` |
| Thứ tự kỹ năng | `SkillOrder` | `opgg lol SkillOrder` |
| Phép bổ trợ | `SummonerSpells` | `opgg lol SummonerSpells` |
| Tier List | `TierList` | `opgg lol TierList` |
| Trình lập lộ trình rừng | `JungleRoute` | `opgg lol JungleRoute` |
| Xem trước liên kết | `LinkEmbed` | `opgg lol LinkEmbed 1` |
| Lịch sử trận | `MatchRecord` | `opgg lol MatchRecord 1` |
| YouTube | `YouTube` | `opgg YouTube` |
| Summoner Card | `SummonerCard` | Capsule chỉ đọc, thêm từ biểu mẫu |

Không trình bày opaque hoặc hr như các block thông thường người dùng có thể thêm. SummonerCard là capsule cố định, không phải block nội dung có thể lặp lại.

## Định dạng tài liệu Markdown thô

Nguồn của trình tạo là định dạng tài liệu OP.GG được nhúng trong Markdown. Nó khác với CommonMark dùng để hiển thị trang trợ giúp này.

```markdown
# Build Ahri mid

---
GameMode: LIVE
Champion: Ahri
Position: mid
Patch: latest
> Ví dụ build tập trung vào giai đoạn đi đường
---

## Cách chơi

Giải thích kế hoạch tại đây.
```

- H1 đầu tiên là tiêu đề build.
- Phần metadata được đặt giữa các dấu phân cách --- ngay sau H1.
- GameMode là RANKED hoặc CLASSIC và chọn bộ tài nguyên của tài liệu.
- Position phải là top, jungle, mid, adc hoặc support.
- Các tiêu đề H2 và H3 hiển thị được ánh xạ tới block heading1 và heading2 của trình tạo.

## Tham chiếu tài nguyên

Dùng Riot ID ổn định trong token nguồn thay vì tên hiển thị theo từng ngôn ngữ.

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

- Token tướng, trang bị, phép bổ trợ, ngọc và mảnh cần ID là số nguyên dương.
- Token kỹ năng cần ID tướng là số nguyên dương và Q, W, E hoặc R viết hoa.
- Không dùng liên kết tài nguyên opgg:// cũ trong nguồn mới.
- Tên và biểu tượng được phân giải theo ngôn ngữ hiện tại và bản vá đã chọn khi hiển thị.

## Tham chiếu block có cấu trúc

Các ví dụ hợp lệ bên dưới được tạo bởi serializer hiện tại. Giữ nguyên thứ tự compact-list, chuỗi trong dấu nháy, ID số và enum viết hoa.

### Build trang bị (`ItemBuild`)

- Dùng khi: chia sẻ lựa chọn trang bị khởi đầu, giày, trang bị cốt lõi và trang bị tình huống
- Đường dẫn UI: + Add block → Build trang bị, hoặc nhập / trong một đoạn trống và chọn Build trang bị.
- Chỉ thị thô: `opgg lol ItemBuild`
- Các trường đã tuần tự hóa theo thứ tự: `starter, boots, core, situational`
- Yêu cầu soạn thảo: dùng các mảng tương thích với serializer, chứa ID trang bị là số dương
- Trạng thái thành công: bốn nhóm trang bị hiển thị theo thứ tự đã tuần tự hóa
- Lỗi thường gặp: trường bắt buộc không phải mảng sẽ làm fence không hợp lệ. ID không dương hoặc tên hiển thị có thể không phân giải được thành tài nguyên

Ví dụ hợp lệ do serializer tạo:

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

Ví dụ sai thường gặp:

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

### Build ngọc (`RuneBuild`)

- Dùng khi: chia sẻ nhánh ngọc, ngọc đã chọn và mảnh chỉ số
- Đường dẫn UI: + Add block → Build ngọc, hoặc nhập / trong một đoạn trống và chọn Build ngọc.
- Chỉ thị thô: `opgg lol RuneBuild`
- Các trường đã tuần tự hóa theo thứ tự: `primaryStyle, secondaryStyle, primaryRunes, secondaryRunes, shards`
- Yêu cầu soạn thảo: giữ enum nhánh dạng số do serializer tạo và ID ngọc hoặc mảnh là số dương
- Trạng thái thành công: cả hai nhánh, lựa chọn ngọc và mảnh đều hiển thị
- Lỗi thường gặp: danh sách ngọc bắt buộc không phải mảng sẽ làm fence không hợp lệ. Kiểu hoặc tham chiếu không chính tắc có thể không hiển thị như mong muốn

Ví dụ hợp lệ do serializer tạo:

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

Ví dụ sai thường gặp:

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

### Build ngọc Classic (`ClassicRuneBuild`)

- Dùng khi: chia sẻ trang ngọc Classic 30 ô
- Đường dẫn UI: + Add block → Build ngọc Classic, hoặc nhập / trong một đoạn trống và chọn Build ngọc Classic.
- Chỉ thị thô: `opgg lol ClassicRuneBuild 1`
- Các trường đã tuần tự hóa theo thứ tự: `ruleset, slots`
- Yêu cầu soạn thảo: dùng ruleset CLASSIC_1 với không quá 30 cặp ID ô và ngọc. Mỗi ô phải là số nguyên duy nhất từ 1 đến 30, mỗi ID ngọc phải là số nguyên dương và mỗi ngọc phải khớp với loại ô của nó
- Trạng thái thành công: mỗi ngọc Classic đã chọn hiển thị trong ô có loại tương ứng
- Lỗi thường gặp: ruleset không được hỗ trợ, ô bị trùng, ngọc được gán vào loại ô không tương thích hoặc ngọc JADE không xác định sẽ chặn việc đăng

Ví dụ hợp lệ do serializer tạo:

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

Ví dụ sai thường gặp:

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

### Build bảng bổ trợ Classic (`ClassicMasteryBuild`)

- Dùng khi: chia sẻ cách phân bổ nhánh bảng bổ trợ Classic
- Đường dẫn UI: + Add block → Build bảng bổ trợ Classic, hoặc nhập / trong một đoạn trống và chọn Build bảng bổ trợ Classic.
- Chỉ thị thô: `opgg lol ClassicMasteryBuild 1`
- Các trường đã tuần tự hóa theo thứ tự: `ruleset, ranks`
- Yêu cầu soạn thảo: dùng ruleset CLASSIC_1 với không quá 60 cặp ID bổ trợ và bậc. Mỗi ID bổ trợ dương chỉ được xuất hiện một lần, bậc phải là số nguyên từ 1 đến 5 và không vượt quá bậc tối đa của bổ trợ đó, phải đáp ứng điều kiện tiên quyết và tổng không được vượt quá 30 điểm
- Trạng thái thành công: các bậc đã chọn hiển thị trong nhánh bảng bổ trợ Classic
- Lỗi thường gặp: ruleset không được hỗ trợ, bổ trợ bị trùng, bậc không hợp lệ hoặc bổ trợ JADE không xác định sẽ chặn việc đăng

Ví dụ hợp lệ do serializer tạo:

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

Ví dụ sai thường gặp:

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

### Thứ tự kỹ năng (`SkillOrder`)

- Dùng khi: hiển thị thứ tự ưu tiên kỹ năng và thứ tự nâng theo từng cấp
- Đường dẫn UI: + Add block → Thứ tự kỹ năng, hoặc nhập / trong một đoạn trống và chọn Thứ tự kỹ năng.
- Chỉ thị thô: `opgg lol SkillOrder`
- Các trường đã tuần tự hóa theo thứ tự: `priority, order`
- Yêu cầu soạn thảo: priority và order chỉ được chứa Q, W, E và R
- Trạng thái thành công: thứ tự ưu tiên và chuỗi kỹ năng hiển thị theo thứ tự đã lưu
- Lỗi thường gặp: khóa kỹ năng không xác định sẽ làm fence không hợp lệ

Ví dụ hợp lệ do serializer tạo:

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

Ví dụ sai thường gặp:

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

### Phép bổ trợ (`SummonerSpells`)

- Dùng khi: đề xuất một cặp phép bổ trợ
- Đường dẫn UI: + Add block → Phép bổ trợ, hoặc nhập / trong một đoạn trống và chọn Phép bổ trợ.
- Chỉ thị thô: `opgg lol SummonerSpells`
- Các trường đã tuần tự hóa theo thứ tự: `spells`
- Yêu cầu soạn thảo: dùng mảng ID phép bổ trợ là số nguyên dương
- Trạng thái thành công: cặp phép đã chọn hiển thị
- Lỗi thường gặp: giá trị spells không phải mảng sẽ làm fence không hợp lệ. ID không dương hoặc tên hiển thị có thể không phân giải được thành phép bổ trợ

Ví dụ hợp lệ do serializer tạo:

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

Ví dụ sai thường gặp:

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

### Tier List (`TierList`)

- Dùng khi: xếp hạng tài nguyên tướng, trang bị hoặc ngọc trong các hàng có nhãn
- Đường dẫn UI: + Add block → Tier List, hoặc nhập / trong một đoạn trống và chọn Tier List.
- Chỉ thị thô: `opgg lol TierList`
- Các trường đã tuần tự hóa theo thứ tự: `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`
- Yêu cầu soạn thảo: phải đặt ít nhất một tài nguyên hợp lệ vào một tier
- Trạng thái thành công: các hàng, ID bảng màu, mô tả và tài nguyên được xếp hạng hiển thị theo thứ tự
- Lỗi thường gặp: enum không xác định, ID màu, tài nguyên bị trùng hoặc vùng xếp hạng trống sẽ chặn việc đăng

Ví dụ hợp lệ do serializer tạo:

````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
```
````

Ví dụ sai thường gặp:

````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
```
````

### Trình lập lộ trình rừng (`JungleRoute`)

- Dùng khi: mô tả và so sánh lộ trình đi rừng
- Đường dẫn UI: + Add block → Trình lập lộ trình rừng, hoặc nhập / trong một đoạn trống và chọn Trình lập lộ trình rừng.
- Chỉ thị thô: `opgg lol JungleRoute`
- Các trường đã tuần tự hóa theo thứ tự: `map, title, plans`
- Yêu cầu soạn thảo: ít nhất một kế hoạch cần từ hai điểm ghé qua trở lên. Thời gian đến đã nhập phải tăng nghiêm ngặt
- Trạng thái thành công: lộ trình theo thứ tự xuất hiện trên minimap và danh sách điểm ghé qua
- Lỗi thường gặp: thời gian đến đã nhập không tăng sẽ khiến lộ trình chưa hoàn chỉnh

Ví dụ hợp lệ do serializer tạo:

````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",[]]]
```
````

Ví dụ sai thường gặp:

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

### Xem trước liên kết (`LinkEmbed`)

- Dùng khi: hiển thị một trang bên ngoài được hỗ trợ dưới dạng bản xem trước
- Đường dẫn UI: + Add block → Xem trước liên kết, hoặc nhập / trong một đoạn trống và chọn Xem trước liên kết.
- Chỉ thị thô: `opgg lol LinkEmbed 1`
- Các trường đã tuần tự hóa theo thứ tự: `url`
- Yêu cầu soạn thảo: dùng một URL tuyệt đối http hoặc https hợp lệ về cú pháp
- Trạng thái thành công: bản xem trước liên kết mong muốn được phân giải
- Lỗi thường gặp: URL không an toàn hoặc sai định dạng sẽ làm fence không hợp lệ. Hãy xác nhận riêng bản xem trước đã phân giải

Ví dụ hợp lệ do serializer tạo:

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

Ví dụ sai thường gặp:

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

### Lịch sử trận (`MatchRecord`)

- Dùng khi: trích dẫn một người tham gia từ một trận OP.GG cụ thể
- Đường dẫn UI: + Add block → Lịch sử trận, hoặc nhập / trong một đoạn trống và chọn Lịch sử trận.
- Chỉ thị thô: `opgg lol MatchRecord 1`
- Các trường đã tuần tự hóa theo thứ tự: `match`
- Yêu cầu soạn thảo: region, game ID, timestamp dương và participant ID từ 1 đến 32 phải hợp lệ
- Trạng thái thành công: người chơi và lịch sử trận mong muốn được tải
- Lỗi thường gặp: region không được hỗ trợ, game ID sai định dạng, timestamp hoặc participant ID không hợp lệ sẽ làm fence không hợp lệ

Ví dụ hợp lệ do serializer tạo:

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

Ví dụ sai thường gặp:

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

### YouTube (`YouTube`)

- Dùng khi: nhúng một video YouTube liên quan
- Đường dẫn UI: + Add block → YouTube, hoặc nhập / trong một đoạn trống và chọn YouTube.
- Chỉ thị thô: `opgg YouTube`
- Các trường đã tuần tự hóa theo thứ tự: `videoId`
- Yêu cầu soạn thảo: dùng ID video YouTube được hỗ trợ
- Trạng thái thành công: trình phát video mong muốn được tải
- Lỗi thường gặp: ID video không hợp lệ hoặc không được hỗ trợ sẽ chặn việc đăng

Ví dụ hợp lệ do serializer tạo:

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

Ví dụ sai thường gặp:

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

## Kiểm tra hợp lệ khi xem trước và đăng

Hãy xem các mã này là định danh nội bộ. Giải thích cách khôi phục cho người dùng thay vì chỉ đưa mã lỗi.

| Mã nội bộ | Ý nghĩa | Cách khôi phục |
| --- | --- | --- |
| `EMPTY_TITLE` | Tiêu đề build đang trống. | Nhập tiêu đề. |
| `EMPTY_BODY` | Không có nội dung chính có thể đăng. | Thêm văn bản hoặc một block được hỗ trợ. |
| `EMPTY_TIER_LIST` | Tier List không có tài nguyên được xếp hạng. | Chuyển ít nhất một tài nguyên vào một tier. |
| `INCOMPLETE_JUNGLE_ROUTE` | Không có lộ trình nào có từ hai điểm ghé qua trở lên, hoặc thời gian đến đã nhập không tăng. | Hoàn thiện một lộ trình và sửa thứ tự thời gian đến của lộ trình đó. |
| `INCOMPATIBLE_GAME_MODE_BLOCK` | Một block không khả dụng trong chế độ chơi đã chọn của tài liệu. | Đổi GameMode hoặc thay block bằng block được chế độ đó hỗ trợ. |
| `INVALID_CLASSIC_BUILD` | Một ô ngọc Classic hoặc cách phân bổ bảng bổ trợ vi phạm quy tắc Classic. | Với ngọc Classic, hãy khớp từng ngọc với loại ô của nó. Với bảng bổ trợ Classic, giữ mỗi bậc trong giới hạn tối đa của bổ trợ đó, đáp ứng điều kiện tiên quyết và phân bổ không quá 30 điểm. |
| `INVALID_MATCH_RECORD_FENCE` | Tham chiếu MatchRecord không hợp lệ. | Dán liên kết trận OP.GG hợp lệ và phân giải lại. |
| `INVALID_LINK_EMBED_FENCE` | Tham chiếu LinkEmbed không hợp lệ. | Dùng URL hợp lệ ở định dạng được hỗ trợ. |
| `INVALID_YOUTUBE_FENCE` | Tham chiếu YouTube không hợp lệ. | Dùng URL YouTube hoặc ID video được hỗ trợ. |
| `INVALID_GAME_MODE_METADATA` | Metadata GameMode không phải RANKED hoặc CLASSIC. | Đặt GameMode thành RANKED hoặc CLASSIC. |
| `INVALID_SUMMONER_CARD_CAPSULE` | Capsule SummonerCard cố định không hợp lệ. | Xóa nó hoặc chọn lại tài khoản Riot trong chế độ biểu mẫu. |
| `OPAQUE_DIAGNOSTIC` | Nội dung thô được giữ lại có chẩn đoán. | Sửa hoặc xóa nguồn thô bị chẩn đoán. |
| `FORM_CONVERSION_BLOCKED` | Không thể chuyển đổi an toàn nội dung thô thành block biểu mẫu. | Xử lý mọi chẩn đoán thô trước khi quay lại chế độ biểu mẫu. |

## Chỉnh sửa hoặc nhân bản build hiện có

- Khi chỉnh sửa hướng dẫn đã đăng, tướng, vị trí và bản vá sẽ bị khóa.
- Để nhắm đến bản vá mới, hãy nhân bản hướng dẫn hiện có và chỉnh sửa bản sao.
- Bản nhân bản có thể giữ tác giả gốc và liên kết nguồn.

## Khắc phục sự cố

- **Tự động lưu thất bại** — Dấu hiệu: không thể lưu bản nháp. Nguyên nhân có thể là bộ nhớ trình duyệt không khả dụng hoặc đã đầy. Cách khôi phục: sao chép nội dung của bạn vào nơi an toàn, khôi phục quyền truy cập bộ nhớ trình duyệt, rồi chỉnh sửa thêm một lần để thử tự động lưu lại.
- **Bản nháp đã lưu không đọc được** — Dấu hiệu: payload gốc được hiển thị để khôi phục. Nguyên nhân có thể là định dạng đã lưu bị lỗi hoặc đã cũ. Cách khôi phục: sao chép mọi văn bản bạn cần, rồi quyết định có thay thế bản nháp không đọc được trước khi tiếp tục hay không.
- **Dữ liệu bản vá không khớp** — Dấu hiệu: tên và biểu tượng tài nguyên đến từ bản vá khác. Nguyên nhân có thể là metadata đã thay đổi trước khi dữ liệu tài nguyên được tải lại. Cách khôi phục: tải lại dữ liệu tài nguyên cho bản vá đã chọn.
- **Không thể quay lại chế độ biểu mẫu** — Dấu hiệu: chẩn đoán thô vẫn hiển thị. Nguyên nhân có thể là nguồn sai định dạng hoặc không xác định không thể chuyển đổi mà không mất dữ liệu. Cách khôi phục: sửa mọi chẩn đoán trong Markdown thô.
- **Fence có cấu trúc không hợp lệ** — Dấu hiệu: Preview liệt kê lỗi block. Nguyên nhân có thể là chỉ thị, trường, enum, ID hoặc giá trị compact-list không hợp lệ. Cách khôi phục: so sánh với ví dụ do serializer tạo và sửa nguồn.
- **Cần đăng nhập để đăng** — Dấu hiệu: viết và Preview hoạt động nhưng đăng thất bại với lỗi ủy quyền. Nguyên nhân có thể là chưa có phiên xác thực. Cách khôi phục: đăng nhập bình thường, xác nhận bản nháp vẫn còn, rồi đăng lại.

## Nguồn và độ mới

- Đây là hướng dẫn chính thức của OP.GG cho Champion Build Builder.
- Khi câu trả lời cần nguồn, hãy trích dẫn trang HTML chính tắc: https://op.gg/vi/lol/user-guides/help
- Parser và serializer được triển khai cùng trình tạo là căn cứ cuối cùng cho cú pháp thô.
- Tài liệu này giải thích công cụ soạn thảo. Tài liệu không cung cấp build đề xuất riêng cho từng bản vá.
