返回顶部
u

ue-datatable-editor

>

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.1.0
安全检测
已通过
72
下载量
0
收藏
概述
安装方式
版本历史

ue-datatable-editor

# UE DataTable Editor Edit Unreal Engine DataTable configuration through JSON files — auto-discover projects, search, modify, validate, and import back to the engine. ## Overview UE projects commonly store DataTable data in `.uasset` files, with corresponding JSON source files that serve as the editable representation. This skill provides a complete workflow for discovering, modifying, and re-importing these data tables. **This skill works with any UE project** — it automatically detects the project structure and locates DataTable JSON files. No hardcoded paths required. ### Supported DataTable Format The JSON file should be an array of objects, each with a `Name` field as the row key: ```json [ { "Name": "230000", "DevName": "技能名", "LOC_Name": "NSLOCTEXT(...)", ... }, { "Name": "230001", ... } ] ``` ### Important Notes - JSON files may be encoded in **UTF-16 LE (with BOM)**, UTF-8 BOM, or UTF-8. All scripts handle encoding automatically. - The `.uasset` files are binary and cannot be edited directly — always modify through JSON then import. ## Workflow ### Step 0: Discover UE Project and DataTable Files **ALWAYS run this step first** when the user has not provided a specific JSON path. Use `scripts/dt_discover.py` to auto-detect UE projects and DataTable JSON files: ```bash # Auto-discover all UE projects and DataTable JSON files in common locations python {SKILL_DIR}/scripts/dt_discover.py # Search in a specific directory python {SKILL_DIR}/scripts/dt_discover.py --root "<directory>" # Find a specific table by name (matches JSON filename) python {SKILL_DIR}/scripts/dt_discover.py --table "AI_Skills" # Filter by UE project name python {SKILL_DIR}/scripts/dt_discover.py --project "SMG" # Output as JSON for parsing python {SKILL_DIR}/scripts/dt_discover.py --json-output ``` **When the user provides a table name** (e.g. "修改 AI_Skills 表"), use `--table` to locate the matching JSON file: ```bash python {SKILL_DIR}/scripts/dt_discover.py --table "<user_provided_table_name>" ``` Once the JSON file is identified, store its absolute path for use in subsequent steps. ### Step 1: Search for Target Rows Use `scripts/dt_search.py` to locate the row(s) to modify. The `--json` parameter takes the path discovered in Step 0. ```bash # Search by row ID python {SKILL_DIR}/scripts/dt_search.py --json <json_path> --id 230000 # Search by name keyword python {SKILL_DIR}/scripts/dt_search.py --json <json_path> --name "蓄力" # Search by any field python {SKILL_DIR}/scripts/dt_search.py --json <json_path> --field DevName --value "瞬移" # List all rows in a Part (for AI Skills tables) python {SKILL_DIR}/scripts/dt_search.py --json <json_path> --part 1 # Show full JSON for results python {SKILL_DIR}/scripts/dt_search.py --json <json_path> --id 230000 --full # List all available fields python {SKILL_DIR}/scripts/dt_search.py --json <json_path> --list-fields ``` Present search results to the user before proceeding with modifications. ### Step 2: Modify Data Use `scripts/dt_modify.py` to modify fields. The script automatically: - Wraps plain text in `NSLOCTEXT()` format for localization fields - Validates all data after modification - Creates a timestamped backup before saving ```bash # Modify LOC_Desc (auto-wraps in NSLOCTEXT) python {SKILL_DIR}/scripts/dt_modify.py --json <json_path> --id 230000 --set-loc-desc "对随机角色造成伤害" # Modify LOC_Name python {SKILL_DIR}/scripts/dt_modify.py --json <json_path> --id 230000 --set-loc-name "新技能名" # Modify any field python {SKILL_DIR}/scripts/dt_modify.py --json <json_path> --id 230000 --set "bUseAlert=true" --set "DevName=新名称" # Preview without saving (dry-run) python {SKILL_DIR}/scripts/dt_modify.py --json <json_path> --id 230000 --set-loc-desc "测试" --dry-run # Validate entire JSON python {SKILL_DIR}/scripts/dt_modify.py --json <json_path> --validate ``` #### NSLOCTEXT Format Rules For localization fields (`LOC_Name`, `LOC_Desc`, `LOC_AlertText`, `LOC_InterruptMessage`, `LOC_NoticeText`): - When user provides plain text, the script auto-wraps it as: `NSLOCTEXT("<PartName>", "<SkillID>_<FieldName>", "<text>")` - When user provides a full `NSLOCTEXT(...)` or `INVTEXT(...)` string, it is used as-is - Use `--no-wrap` flag to disable auto-wrapping #### Field Modification via Direct File Edit For complex modifications (nested objects, arrays, or bulk changes), directly edit the JSON file using `replace_in_file` or `read_file` + `write_to_file` tools. Always validate after editing: ```bash python {SKILL_DIR}/scripts/dt_modify.py --json <json_path> --validate ``` ### Step 3: Import into UE Engine After modifying and validating the JSON, generate the UE import command. The user must execute this command in the **UE Editor Output Log**: ``` py "{SKILL_DIR}/scripts/dt_import_ue.py" --json "<json_path>" --part <part_number> ``` Parameters: - `--part 0` — Import Part0 (ID 200000–229999) - `--part 1` — Import Part1 (ID 230000–239999) - `--part 2` — Import Part2 (ID 240000–249999) - `--part all` — Import all Parts - `--asset-base "<path>"` — Override the UE asset base path (default: `/Game/SMG/Configs/DataTables/AISkills`) **Determine the correct `--part` number from the row ID being modified.** Always provide the full command with absolute paths for the user to copy-paste. ### Step 4: Verify After the user reports the UE import result, check the log output for: - `Imported DataTable '...' - 0 Problems` = Success - Any `Error` lines = Investigation needed Refer to `references/field_schema.md` for the complete field documentation when needed. ## Quick Start Example User says: "修改 AI_Skills 表中技能 230005 的描述" 1. **Discover**: `python {SKILL_DIR}/scripts/dt_discover.py --table "AI_Skills"` → Found: `D:\Projects\MyGame\Content\Configs\Json\Json_AI_Skills.json` 2. **Search**: `python {SKILL_DIR}/scripts/dt_search.py --json "<found_path>" --id 230005` → Shows current skill data 3. **Modify**: `python {SKILL_DIR}/scripts/dt_modify.py --json "<found_path>" --id 230005 --set-loc-desc "新的描述文本"` → Modifies and validates 4. **Import**: Provide UE command for the user to run in editor ## Error Handling | Error | Cause | Solution | |-------|-------|----------| | No UE project found | Project not in search paths | Use `--root` to specify project directory | | No DataTable JSON found | JSON file not in Content directory | Check project structure, provide path manually | | `UnicodeDecodeError` | Wrong encoding detection | Scripts auto-detect; if issues persist, check file BOM bytes | | `fill_data_table_from_json_string` fails | JSON fields don't match RowStruct | Validate JSON, check for missing/extra fields | | `DataTable not found` | Wrong asset path | Use `--asset-base` to specify correct UE asset path | | P4 checkout failure | File locked by another user | Coordinate with team or force checkout |

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 ue-datatable-editor-1775991722 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 ue-datatable-editor-1775991722 技能

通过命令行安装

skillhub install ue-datatable-editor-1775991722

下载 Zip 包

⬇ 下载 ue-datatable-editor v1.1.0

文件大小: 18.86 KB | 发布时间: 2026-4-13 12:25

v1.1.0 最新 2026-4-13 12:25
Version 1.1.0

- Added project and DataTable JSON auto-discovery with the new dt_discover.py script.
- Updated workflow to start with automatic detection of UE projects/DataTable files; no hardcoded paths needed.
- README and documentation revised to describe project/tables discovery, making the skill usable on any UE project.
- dt_import_ue.py updated to support overriding asset base path.
- Error handling and step-by-step examples now include project discovery flow.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部