Cách tạo Mod Baldur's Gate 3: Tùy chỉnh, Kiểm tra và Phân phối bằng Bộ công cụ Chính thức
Đây là hướng dẫn cách tạo một phép thuật lửa cận chiến thực hành bằng cách sử dụng Stats Editor và UUID Object Editor của Baldur’s Gate 3 Toolkit chính thức. Bạn sẽ học cách xử lý dữ liệu, bản địa hóa và kết nối danh sách phép thuật mà không cần tạo mô hình 3D. Hãy tách biệt môi trường tạo trên PC Windows với môi trường sử dụng mod trong trò chơi, và làm việc phù hợp với phiên bản trò chơi được hỗ trợ bởi trình quản lý mod chính thức.
1. Cài đặt Bộ công cụ và Dự án trống
Kiểm tra thứ tự cài đặt Toolkit và Toolkit Data cho cửa hàng sở hữu của bạn trong tài liệu Installing the Toolkit của Larian. Đối với Steam, quy trình là kiểm tra hiển thị công cụ trong thư viện và Toolkit Data của DLC trò chơi. Ghi lại các phiên bản trò chơi, bộ công cụ và file lưu hiện có, sau đó tạo một dự án mới theo tài liệu Creating a New Mod. Đặt tên duy nhất như TroubleMakerPracticeSpell và giữ nguyên cài đặt phần phụ thuộc (dependency) mặc định theo tài liệu chính thức. Lần đầu tiên làm việc, việc tải toàn bộ dữ liệu trò chơi có thể mất chút thời gian.

2. Tạo Dữ liệu Phép thuật Mục tiêu trong Stats Editor
- Mở Stats Editor ở đầu trình chỉnh sửa.
- Mở rộng dự án của riêng bạn thay vì nguồn Shared.
- Chọn dấu + trong SpellData và thêm dữ liệu Target.
- Tạo một hàng trong bảng Target mới và đặt Name là TMPracticeFlame. Đây là tên nội bộ không có khoảng trắng.
- Tên nhận dạng kỹ thuật sẽ là Target_TMPracticeFlame. Đừng nhầm lẫn tên hiển thị với ID nội bộ này.
- Mở rộng các cột bắt buộc trong tài liệu Basic Spell chính thức cùng nhau để điền các giá trị dưới đây và các mục hoạt ảnh.
3. Điền các Giá trị Bắt buộc của một Phép thuật Nhỏ
Dưới đây là một tập hợp các giá trị thực hành. Thay vì dán khối này vào một tệp, hãy tìm cột tương ứng trong Stats Editor và nhập từng giá trị một. Định cấu hình đơn giản với Cấp độ 1, cận chiến 1,5m, ném cứu nguy Dexterity và lửa 1d6. Kiểm tra một hiệu ứng trước khi thêm tấn công bán kính hoặc hồi máu cùng lúc.
Name: TMPracticeFlame
Level: 1
SpellSchool: Evocation
TargetRadius: 1.5
SpellRoll: not SavingThrow(Ability.Dexterity, SourceSpellDC())
SpellSuccess: DealDamage(1d6,Fire,Magical)
SpellFail: DealDamage(1d6/2,Fire,Magical)
TargetConditions: Character() and not Dead()
CastTextEvent: Cast
UseCosts: ActionPoint:1;SpellSlotsGroup:1:1:1
Icon: Spell_Evocation_FireballTài liệu chính thức giải thích rằng một phép thuật cần có Spell Animation để có thể thi triển thực tế. Tìm phép thuật gốc loại Touch từ Shared → SpellData → Target, sao chép giá trị Spell Animation và dán vào hàng của bạn. Số hàng thay đổi tùy theo phiên bản dữ liệu trò chơi, vì vậy hãy tìm kiếm bằng cách tra cứu. Chọn các mục PrepareEffect, CastEffect và HitEffect cần thiết làm các mục hậu tố tương ứng được liệt kê trong tài liệu chính thức. Đối với SpellFlag, hãy kiểm tra IsSpell, IsHarmful, IsMelee và các điều kiện thi triển phù hợp.
4. Tên và Mô tả do Người chơi Đọc
Trong DisplayName, hãy nhập tên của riêng bạn như chạm lửa thực hành, và trong Description, hãy nhập mô tả như gây [1] cho mục tiêu. Quản lý cửa sổ nhập bản địa hóa và chuỗi xử lý theo cách của tài liệu Adding Localisation. Sử dụng DealDamage(1d6,Fire) cho DescriptionParams và TooltipDamageList, và Dexterity cho TooltipAttackSave để đảm bảo các con số thực tế và chú thích công cụ (tooltip) không bị lệch. Việc dịch ID nội bộ có thể làm đứt kết nối danh sách phép thuật, vì vậy chỉ dịch các chuỗi hiển thị.

5. Đưa vào Danh sách Phép thuật và Kiểm tra trong Chế độ Trò chơi
- Tạo bảng Lists → SpellLists của dự án trong UUID Object Editor.
- Viết mô tả để nhà phát triển có thể hiểu trong Name của mục mới.
- Đặt Target_TMPracticeFlame vào Spells. Giá trị này yêu cầu tiền tố loại phép thuật.
- Trong MergedInto, chọn danh sách phép thuật lớp hiện có cho cấp độ đó. Ví dụ này là Cấp độ 1, vì vậy hãy chọn danh sách phù hợp như Cleric SLevel 1.
- Lưu tất cả các thay đổi và tải cấp độ kiểm tra Basic_Level_A.
- Vào Chế độ Trò chơi (Game Mode) và chọn lớp và phép thuật tương ứng trong quá trình tạo nhân vật và tăng cấp. Bạn có thể tận dụng tính năng tăng cấp Ctrl+Shift+L phía trên chân dung từ hướng dẫn chính thức.
- Kiểm tra khoảng cách mục tiêu, sát thương thành công/thất bại khi ném cứu nguy, chi phí ô phép/hành động, tên, mô tả và hoạt ảnh lần lượt.
6. .pak Cục bộ và Phân phối Công khai
Viết tên, mô tả và hình thu nhỏ trong Project → Project Settings. Publish Local là tính năng tạo tệp .pak mà không cần tải lên công khai và bạn có thể chọn vị trí tạo. Kích hoạt gói cục bộ bằng trình quản lý mod chính thức trong một cấu hình trò chơi riêng biệt và kiểm tra lại trong bản lưu kiểm tra mới. Phân phối công khai trên mod.io yêu cầu liên kết tài khoản Larian và mod.io bổ sung, xác thực, quét tệp, mô tả, thẻ và cài đặt phần phụ thuộc. Kiểm tra hướng dẫn gốc nêu rằng các phần phụ thuộc của trình chỉnh sửa và phần phụ thuộc của mod.io phải được thiết lập riêng.

7. Khi Phép thuật Không Hiển thị và Cách Xóa
Nếu phép thuật không hiển thị, hãy kiểm tra tiền tố Target_ của tên nội bộ, MergedInto của SpellLists, cũng như cấp độ phép thuật và cấp độ lớp theo thứ tự. Nếu không thi triển được, hãy kiểm tra Spell Animation, CastTextEvent và UseCosts. Nếu các con số chú thích công cụ khác nhau, hãy so sánh DescriptionParams và SpellSuccess thực tế. Việc xóa mod khỏi bản lưu đã sử dụng có thể ảnh hưởng đến quá trình tải và hoạt động, vì vậy hãy so sánh bằng một bản sao thay vì bản lưu gốc. Viết các bản dựng được hỗ trợ, các lớp đã kiểm tra, phần phụ thuộc cần thiết và điều kiện nhiều người chơi trong mô tả phân phối, đồng thời kiểm tra kết quả đánh giá chính thức theo từng nền tảng để biết tính khả dụng trên bảng điều khiển.
Tài liệu Gốc và Tiêu chí Xác minh
Đây là hướng dẫn nhập môn do đội ngũ vận hành TroubleMaker viết bằng cách kiểm tra tài liệu của người tạo và công cụ chính thức vào ngày 7 tháng 10 năm 2026. Mã và biểu đồ là các ví dụ tự tạo để giải thích và không phải là kết quả xác minh lối chơi thực tế của trò chơi trên máy chủ này. Kiểm tra và phân phối với phiên bản được chỉ định trong văn bản trong một bản lưu kiểm tra riêng. Đối chiếu các phiên bản mới nhất và phần phụ thuộc của từng công cụ từ bản gốc bên dưới.
Bản dịch tự động Gemini · Giữ nguyên văn bản và khu vực gốc.
Ngôn ngữ gốc · ko
발더스 게이트 3 모드 만드는 법: 공식 Toolkit으로 주문 제작·테스트·배포
공식 Baldur’s Gate 3 Toolkit의 Stats Editor와 UUID Object Editor로 연습용 근접 화염 주문을 만드는 공략입니다. 3D 모델 제작 없이 데이터·현지화·주문 목록 연결을 익힙니다. Windows PC 제작 환경과 게임 내 모드 이용 환경을 구분하고, 공식 모드 관리자 지원 게임 빌드와 맞춰 작업합니다.
[1. Toolkit 설치와 빈 프로젝트]
Larian의 Installing the Toolkit 문서에서 보유 스토어의 Toolkit과 Toolkit Data 설치 순서를 확인합니다. Steam은 라이브러리의 도구 표시와 게임 DLC의 Toolkit Data를 확인하는 흐름입니다. 기존 게임·툴킷 버전과 세이브를 기록하고, Creating a New Mod 문서에 따라 새 프로젝트를 만듭니다. 이름은 TroubleMakerPracticeSpell처럼 고유하게 정하고 기본 의존성 설정은 공식 문서대로 유지합니다. 처음 작업할 때는 게임 전체 데이터의 로딩에 시간이 걸릴 수 있습니다.
[image:conditions]
[2. Stats Editor에서 Target 주문 데이터 만들기]
1. 에디터 상단의 Stats Editor를 엽니다.
2. Shared 원본이 아니라 자신의 프로젝트를 확장합니다.
3. SpellData에서 +를 선택하고 Target 데이터를 추가합니다.
4. 새 Target 표에 행을 만들고 Name을 TMPracticeFlame으로 지정합니다. 공백 없는 내부 이름입니다.
5. 기술 식별 이름은 Target_TMPracticeFlame이 됩니다. 표시 이름과 이 내부 ID를 혼동하지 마세요.
6. 공식 Basic Spell 문서의 필수 열을 함께 펼쳐 아래 값과 애니메이션 항목을 채웁니다.
[3. 작은 주문의 필수 값을 채우기]
아래는 연습용 값의 묶음입니다. 이 블록을 파일에 붙여넣는 방식이 아니라 Stats Editor에서 해당 열을 찾아 각각 입력합니다. Level 1, 근접 1.5m, 민첩 내성 굴림, 화염 1d6으로 단순하게 구성합니다. 반경 공격·치유를 한꺼번에 추가하기 전에 한 가지 효과부터 테스트합니다.
```text
Name: TMPracticeFlame
Level: 1
SpellSchool: Evocation
TargetRadius: 1.5
SpellRoll: not SavingThrow(Ability.Dexterity, SourceSpellDC())
SpellSuccess: DealDamage(1d6,Fire,Magical)
SpellFail: DealDamage(1d6/2,Fire,Magical)
TargetConditions: Character() and not Dead()
CastTextEvent: Cast
UseCosts: ActionPoint:1;SpellSlotsGroup:1:1:1
Icon: Spell_Evocation_Fireball
```
공식 문서는 주문이 실제 시전되려면 Spell Animation이 필요하다고 설명합니다. Shared → SpellData → Target에서 Touch 유형의 원본 주문을 찾아 Spell Animation 값을 복사해 자신의 행에 넣습니다. 행 번호는 게임 데이터 버전에 따라 바뀌므로 검색으로 찾으세요. 필요한 PrepareEffect·CastEffect·HitEffect는 공식 문서에 나온 대응 접미사 항목으로 선택합니다. SpellFlag에는 IsSpell·IsHarmful·IsMelee와 적절한 시전 조건을 확인합니다.
[4. 플레이어가 읽는 이름·설명]
DisplayName에는 연습용 화염 접촉이라는 자체 이름을, Description에는 대상에게 [1]을 가합니다라는 설명을 입력합니다. 현지화 입력 창과 문자열 handle은 Adding Localisation 문서 방식으로 관리합니다. DescriptionParams와 TooltipDamageList에는 DealDamage(1d6,Fire), TooltipAttackSave에는 Dexterity를 사용해 실제 수치와 툴팁이 어긋나지 않게 확인합니다. 내부 ID를 번역하면 주문 목록 연결이 끊길 수 있으므로 표시 문자열만 번역합니다.
[image:request]
[5. 주문 목록에 넣고 게임 모드에서 확인]
1. UUID Object Editor에서 자신의 프로젝트 Lists → SpellLists 표를 만듭니다.
2. 새 항목의 Name에 개발자가 알아볼 설명을 적습니다.
3. Spells에 Target_TMPracticeFlame을 넣습니다. 이 값에는 주문 유형 접두사가 필요합니다.
4. MergedInto에서 해당 레벨의 기존 클래스 주문 목록을 선택합니다. 이 예제는 Level 1이므로 Cleric SLevel 1처럼 맞는 목록을 선택합니다.
5. 모든 변경을 저장하고 Basic_Level_A 테스트 레벨을 로드합니다.
6. Game Mode로 들어가 캐릭터 생성·레벨업에서 해당 클래스와 주문을 선택합니다. 공식 안내의 초상화 위 Ctrl+Shift+L 레벨업 기능을 활용할 수 있습니다.
7. 대상 거리, 내성 성공·실패의 피해, 주문 슬롯·행동 비용, 이름·설명·애니메이션을 각각 확인합니다.
[6. 로컬 .pak과 공개 배포]
Project → Project Settings에서 이름·설명·썸네일을 작성합니다. Publish Local은 공개 업로드 없이 .pak을 만드는 기능이며 생성 위치를 선택할 수 있습니다. 별도 게임 프로필에서 공식 모드 관리자로 로컬 팩을 활성화하고 새 테스트 세이브에서 다시 확인합니다. mod.io 공개 배포는 Larian·mod.io 계정 연결과 인증, 파일 스캔, 설명·태그·의존성 설정이 추가로 필요합니다. 에디터 의존성과 mod.io 의존성은 각각 설정해야 한다는 원본 안내도 확인하세요.
[image:contact]
[7. 주문이 안 보일 때와 제거]
주문이 안 보이면 내부 이름의 Target_ 접두사, SpellLists의 MergedInto, 주문 레벨과 클래스 레벨을 순서대로 확인합니다. 시전되지 않으면 Spell Animation과 CastTextEvent, UseCosts를 확인합니다. 툴팁 수치가 다르면 DescriptionParams와 실제 SpellSuccess를 비교합니다. 모드를 사용한 세이브에서 제거하면 로딩·동작에 영향을 줄 수 있으므로 원본 세이브가 아닌 복사본으로 비교합니다. 배포 설명에는 지원 빌드·테스트한 클래스·필요 의존성·멀티플레이 조건을 적고, 콘솔 이용 가능 여부는 플랫폼별 공식 검토 결과를 확인합니다.
[원본 문서와 확인 기준]
2026년 10월 7일 제작자·공식 도구 문서를 확인해 TroubleMaker 운영팀이 작성한 입문 공략입니다. 코드와 도식은 설명을 위한 자체 예제이며 이 서버에서 해당 게임의 실제 플레이를 검증한 결과는 아닙니다. 본문에 명시한 버전으로 별도 테스트 세이브에서 확인하고 배포하세요. 도구별 최신 버전·의존성은 아래 원본에서 대조합니다.
https://docs.baldursgate3.game/index.php?title=Getting_Started:_Installing_the_Toolkit
https://docs.baldursgate3.game/index.php?title=Getting_Started:_Creating_a_New_Mod
https://docs.baldursgate3.game/index.php?title=Making_a_Basic_Spell
https://docs.baldursgate3.game/index.php?title=Adding_Localisation
https://docs.baldursgate3.game/index.php?title=Getting_Started:_Publishing_a_Mod
bình luận 1
Stats Editor에서 Spell Animation 값을 복사할 때, 원본 주문의 행 번호가 게임 업데이트에 따라 변경될 수 있다고 하셨는데, 특정 애니메이션 데이터를 찾기 위해 검색 기능을 활용할 때 가장 효율적인 키워드나 분류 기준은 무엇인가요?