← 返回
未分类 中文

UE Datatable Editor

This skill should be used when the user wants to search, view, modify, validate, or import Unreal Engine DataTable data — specifically AI Skills configuratio...
此技能应在用户需要搜索、查看、修改、校验或导入 Unreal Engine DataTable 数据(即 AI 技能配置)时使用。
mufuxiao515-create
未分类 clawhub v1.1.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 369
下载
💾 0
安装
1
版本
#latest

概述

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:

[
  { "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:

# 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:

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.

# 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
# 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("", "_", "")
  • 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:

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 "" — 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

  1. Search: python {SKILL_DIR}/scripts/dt_search.py --json "" --id 230005

→ Shows current skill data

  1. Modify: python {SKILL_DIR}/scripts/dt_modify.py --json "" --id 230005 --set-loc-desc "新的描述文本"

→ Modifies and validates

  1. 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 |

版本历史

共 1 个版本

  • v1.1.0 当前
    2026-05-07 07:02 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

developer-tools

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 672 📥 324,487
security-compliance

Skill Vetter

spclaudehome
AI智能体技能安全预审工具。安装ClawdHub、GitHub等来源技能前,检查风险信号、权限范围及可疑模式。
★ 1,219 📥 266,820
ai-intelligence

self-improving agent

pskoett
捕获经验教训、错误和纠正,以实现持续改进。使用时机:(1)命令或操作意外失败;(2)用户纠正……
★ 4,062 📥 799,675