L2 Modding
БесплатноНе проверенMCP server for Lineage 2 / Unreal Engine 2.5 asset modding, enabling texture extraction, modification, repackaging, and procedural mesh generation.
Описание
MCP server for Lineage 2 / Unreal Engine 2.5 asset modding, enabling texture extraction, modification, repackaging, and procedural mesh generation.
README
MCP Server for Lineage 2 / Unreal Engine 2.5 asset modding — 25 tools. Extract, modify, repackage textures (.utx), generate procedural meshes (.usx), parse animations (.ukx), sounds (.uax), and maps (.unr).
Features
Textures
- Extract/inspect/import textures from
.utxpackages - Codec: DXT1/DXT3/DXT5/P8/RGBA8/RGB8/G16 (decode + encode)
- Batch process: grayscale, invert, brightness, contrast, resize, blur, sharpen
- Batch import: folder of PNGs →
.utxin one step - Normal map, AO map, specular map generation
- Texture atlas builder (grid packing)
- PBR channel packer (metallic/roughness/AO/height → RGBA)
3D Meshes
- Procedural castle generator (towers, walls, battlements, gate, keep, floor)
- StaticMesh serializer for
.usxpackages - Export to OBJ and FBX ASCII
- Import from OBJ back into the pipeline
- LOD generator (vertex decimation, LOD0–LOD3)
- Collision mesh generator (box, cylinder)
- Procedural heightmap terrain (hills, mountains, plains, island, noise)
Animations (.ukx)
- Parse AnimationSequence data (frames, bones, tracks)
- Export to BVH format (Blender/Maya compatible)
Sounds (.uax)
- List sound assets
- Extract sounds to WAV (PCM and embedded WAV)
Maps (.unr)
- Parse level data: brushes, static meshes, lights, player starts
Package Management
- Package browser: scan directories for mesh↔texture cross-references
- Package optimizer: remove dead exports, reduce size
- Package comparator: diff two packages
Installation
pip install -e .
Usage with opencode
Add to opencode.json:
{
"mcp": {
"l2-modding": {
"type": "local",
"command": ["python", "-m", "l2_mcp.server"],
"enabled": true
}
}
}
MCP Tools (25)
Textures
| Tool | Description |
|---|---|
l2_list_package |
List all assets in .utx/.usx/.ukx |
l2_list_names |
List name table entries |
l2_texture_info |
Detailed texture info (format, mips, palette) |
l2_extract_texture |
Extract single texture to PNG |
l2_extract_all_textures |
Extract all textures to directory |
l2_import_texture |
Replace texture with PNG (repacks .utx) |
l2_batch_process |
Batch transform (grayscale, invert, etc.) |
l2_batch_import_textures |
Folder of PNGs → .utx |
l2_gen_normal_map |
Generate normal/AO/specular map |
l2_build_atlas |
Pack textures into atlas grid |
l2_pack_pbr |
Pack metallic/roughness/AO/height → RGBA |
Meshes & Level Design
| Tool | Description |
|---|---|
l2_create_castle |
Generate procedural 3D castle |
l2_generate_textures |
Generate stone/roof/floor/gate textures |
l2_create_usx_package |
Export meshes to .usx |
l2_export_obj |
Export meshes to OBJ or FBX |
l2_import_obj |
Import OBJ → mesh pipeline |
l2_generate_lods |
Generate LOD0–LOD3 by decimation |
l2_gen_collision |
Generate collision mesh (box/cylinder) |
l2_gen_terrain |
Procedural heightmap terrain |
Animations
| Tool | Description |
|---|---|
l2_animation_info |
List animations in .ukx |
l2_export_animation |
Export animation to BVH |
Sounds
| Tool | Description |
|---|---|
l2_list_sounds |
List sounds in .uax |
l2_extract_sound |
Extract sound to WAV |
l2_extract_all_sounds |
Extract all sounds to WAV |
Package Management
| Tool | Description |
|---|---|
l2_compare_packages |
Diff two packages |
l2_scan_directory |
Scan L2 folder for mesh↔texture refs |
l2_optimize_package |
Strip dead exports, reduce size |
l2_parse_map |
Read .unr maps (brushes, actors, lights) |
Supported Texture Formats
| ID | Format | Description |
|---|---|---|
| 0 | P8 | 256-color paletted |
| 1 | RGBA8 | 32-bit RGBA |
| 3 | DXT1/BC1 | 4 bpp, optional 1-bit alpha |
| 4 | RGB8 | 24-bit RGB |
| 5 | DXT3/BC2 | 8 bpp, explicit alpha |
| 6 | DXT5/BC3 | 8 bpp, interpolated alpha |
| B | G16 | 16-bit grayscale |
Project Structure
src/l2_mcp/
├── server.py # MCP server (25 tools)
└── upk/
├── reader.py # Binary reader (compact indices, GUIDs)
├── package.py # UPK parser (.utx/.usx/.ukx) + serializer
├── texture.py # DXT codec + texture decode/encode
├── writer.py # Package rebuilder / repacker
├── mesh.py # StaticMesh serializer + primitives
├── castle.py # Procedural castle generator
├── obj_io.py # OBJ/FBX export
├── obj_import.py # OBJ import
├── animation.py # .ukx parser + BVH export
├── normal_map.py # Normal/AO/specular map generator
├── batch_builder.py # Batch import + heightmap terrain
├── lod.py # LOD generator + collision mesh
├── browser.py # Package scanner + optimizer
├── atlas.py # Texture atlas + PBR packer
├── sound.py # .uax sound extractor
└── unr.py # .unr map parser
License
MIT
Установка L2 Modding
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Hysteria-xyz/l2-modding-mcpFAQ
L2 Modding MCP бесплатный?
Да, L2 Modding MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для L2 Modding?
Нет, L2 Modding работает без API-ключей и переменных окружения.
L2 Modding — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить L2 Modding в Claude Desktop, Claude Code или Cursor?
Открой L2 Modding на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare L2 Modding with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
