{"id":34815550,"url":"https://github.com/lifegpc/msg-tool","last_synced_at":"2026-05-09T12:02:11.169Z","repository":{"id":294478221,"uuid":"986909003","full_name":"lifegpc/msg-tool","owner":"lifegpc","description":"Tools for export and import scripts","archived":false,"fork":false,"pushed_at":"2026-05-01T09:03:42.000Z","size":1859,"stargazers_count":40,"open_issues_count":3,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-01T10:25:32.104Z","etag":null,"topics":["bgi","circus","ethornell","extract-text","extractor","galgame","kirikiri"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lifegpc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-05-20T09:47:30.000Z","updated_at":"2026-05-01T09:01:18.000Z","dependencies_parsed_at":"2025-07-08T04:08:09.151Z","dependency_job_id":"5509c8f3-6d7a-497a-8a8d-b83045d37ded","html_url":"https://github.com/lifegpc/msg-tool","commit_stats":null,"previous_names":["lifegpc/msg-tool"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/lifegpc/msg-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifegpc%2Fmsg-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifegpc%2Fmsg-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifegpc%2Fmsg-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifegpc%2Fmsg-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lifegpc","download_url":"https://codeload.github.com/lifegpc/msg-tool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lifegpc%2Fmsg-tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32494275,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bgi","circus","ethornell","extract-text","extractor","galgame","kirikiri"],"created_at":"2025-12-25T13:09:12.643Z","updated_at":"2026-05-01T11:00:34.390Z","avatar_url":"https://github.com/lifegpc.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# msg-tool\n\nmsg-tool is a command-line tool for exporting, importing, packing, and unpacking script files.\n\n## How to Compile\n\n```bash\ngit clone https://github.com/lifegpc/msg-tool\ncargo build --release  # Build with all features enabled\ncargo build --release --no-default-features --features=circus  # Build with only specific features enabled. See supported types below.\n```\n\n## Exit Codes\nBy default, msg-tool will always return exit code 0 unless a exit signal is received (such as Ctrl+C).  \nYou can use the `--exit-code` / `-x` option to specify a non-zero exit code when some jobs failed.  \nIf all jobs failed, you can use the `--exit-code-all-failed` / `-X` option to specify a different exit code.\n\n## Basic Usage\n### Extract messages from script files\n```bash\nmsg-tool export \u003cinput\u003e [output]\n```\nSome script files cannot be detected automatically. You can specify the type of script file with the `--script-type` / `-t` option.\n```bash\nmsg-tool export -t \u003cscript-type\u003e \u003cinput\u003e [output]\n```\nIf the script file is an image file, you can specify the output type of the image file with the `--image-type` / `-i` option.\n```bash\nmsg-tool export -i webp \u003cinput\u003e [output]\n```\nIf the script file is an archive file, it will be unpacked and will try to extract messages/images/audio from the unpacked files. If you don't want to extract, please use the `unpack` command.\n\nIf the input is a directory, all script files in the directory will be processed. (The `-r` / `--recursive` option is needed if you want to process files in subdirectories.)\n\n### Import data into script files\n```bash\nmsg-tool import \u003cinput\u003e \u003coutput\u003e \u003cpatched\u003e\n```\n\n\n### Pack files into an archive\n```bash\nmsg-tool pack \u003cinput\u003e -t \u003carchive-type\u003e [output]\n# Pack multiple files/folders into an archive\n# If output is not specified, the archive file will be named with the first input's name with the appropriate extension.\n# Use --dep-file xxxx.d to generate a dep file for other build systems. (such as ninja)\nmsg-tool pack-v2 -t \u003carchive-type\u003e -o \u003coutput\u003e \u003cinput1\u003e \u003cinput2\u003e ...\n```\n\n### Unpack an archive file\n```bash\nmsg-tool unpack \u003cinput\u003e [output]\n```\nSome archive files cannot be detected automatically. You can specify the type of archive file with the `--script-type` / `-t` option.\n\n### Create a new script file\n```bash\nmsg-tool create -t \u003cscript-type\u003e \u003cinput\u003e \u003coutput\u003e\n```\n\n## Supported Output Script Types\n- `json` - [GalTransl](https://github.com/GalTransl/GalTransl)'s JSON format\n- `m3t` / `m3ta` - A simple text format that supports both original/llm/translated messages.\n- `yaml` - Same as `json`, but in YAML format.\n- `po`/`pot` - Gettext PO/POT format.\n\n## Supported Image Types\n| Image Type | Feature Name |\n|---|---|\n| `png` | `image` (enabled automatically if any image script types are enabled) |\n| `jpg` | `image-jpg` |\n| `webp` | `image-webp` |\n| `jxl` | `image-jxl` |\n\n## Supported Script Types\n### Artemis Engine\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `artemis` | `artemis` | Artemis Engine AST file (.ast) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n| `artemis-asb` | `artemis` | Artemis Engine ASB file (.asb/.iet) | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | For `.iet` files, only custom export/import and create features are supported. |\n| `artemis-txt` | `artemis` | Artemis Engine TXT (General) script | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n| `artemis-panmimisoft-txt` | `artemis-panmimisoft` | Artemis Engine TXT ([ぱんみみそふと](https://pannomimi.net/panmimisoft)) file (.txt) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n\n| Archive Type | Feature Name | Name | Unpack | Pack | Remarks |\n|---|---|---|---|---|---|\n| `artemis-arc`/`pfs` | `artemis-arc` | Artemis Engine archive file (.pfs) | ✔️ | ✔️ | |\n| `artemis-pf2`/`pf2` | `artemis-arc` | Artemis Engine Archive File (.pfs) (pf2) | ✔️ | ✔️ | |\n### Buriko General Interpreter / Ethornell\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `bgi`/`ethornell` | `bgi` | Buriko General Interpreter/Ethornell Script | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | ❌ | Some old games' scripts cannot be detected automatically |\n| `bgi-bsi`/`ethornell-bsi` | `bgi` | Buriko General Interpreter/Ethornell BSI Script (._bsi) | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | |\n| `bgi-bp`/`ethornell-bp` | `bgi` | Buriko General Interpreter/Ethornell BP Script (._bp) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n| `bgi-dsc`/`ethornell-dsc` | `bgi-arc` | Buriko General Interpreter/Ethornell compressed file in archive | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | |\n\n| Archive Type | Feature Name | Name | Unpack | Pack | Remarks |\n|---|---|---|---|---|---|\n| `bgi-arc-v1`/`ethornell-arc-v1` | `bgi-arc` | Buriko General Interpreter/Ethornell Archive File Version 1 (.arc) | ✔️ | ✔️ | |\n| `bgi-arc`/`bgi-arc-v2`/`ethornell-arc`/`ethornell-arc-v2` | `bgi-arc` | Buriko General Interpreter/Ethornell Archive File Version 2 (.arc) | ✔️ | ✔️ | |\n\n| Audio Type | Feature Name | Name | Export | Import | Create | Remarks |\n|---|---|---|---|---|---|---|\n| `bgi-audio`/`ethornell-audio` | `bgi-audio` | Buriko General Interpreter/Ethornell Audio File (Ogg/Vorbis) | ✔️ | ❌ | ❌ | |\n\n| Image Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|\n| `bgi-img`/`ethornell-img` | `bgi-img` | Buriko General Interpreter/Ethornell Uncompressed Image File | ✔️ | ✔️ | ❌ | ❌ | ✔️ | Image files in `sysgrp.arc` |\n| `bgi-cbg`/`ethornell-cbg` | `bgi-img` | Buriko General Interpreter/Ethornell Compressed Image File | ✔️ | ✔️  | ❌ | ❌ | ✔️  | V2 is not supported when importing/creating image |\n### CatSystem2\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `cat-system` | `cat-system` | CatSystem2 Scene Script File (.cst) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n| `cat-system-cstl` | `cat-system` | CatSystem2 Scene I18N File (.cstl) | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | |\n\n| Archive Type | Feature Name | Name | Unpack | Pack | Remarks |\n|---|---|---|---|---|---|\n| `cat-system-int` | `cat-system-arc` | CatSystem2 Archive File (.int) | ✔️ | ❌ | Encrypted archives are supported too. Use `--cat-system-int-encrypt-password` to specify password |\n\n| Image Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|\n| `cat-system-hg3` | `cat-system-img` | CatSystem2 HG3 Image File (.hg3) | ✔️ | ❌ | ✔️ | ❌ | ❌ | |\n### Circus\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `circus` | `circus` | Circus Script File (.mes) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | Some scripts must use `--circus-mes-type` to specify game |\n\n| Archive Type | Feature Name | Name | Unpack | Pack | Remarks |\n|---|---|---|---|---|---|\n| `circus-crm` | `circus-arc` | Circus Image Archive File (.crm) | ✔️ | ❌ | |\n| `circus-dat` | `circus-arc` | Circus Archive File (.dat) | ✔️ | ❌ | |\n| `circus-pck` | `circus-arc` | Circus Archive File (.pck/.dat) | ✔️ | ✔️ | |\n\n| Audio Type | Feature Name | Name | Export | Import | Create | Remarks |\n|---|---|---|---|---|---|---|\n| `circus-pcm` | `circus-audio` | Circus Audio File (.pcm) | ✔️ | ❌ | ❌ | |\n\n| Image Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|\n| `circus-crx` | `circus-img` | Circus Image File (.crx) | ✔️ | ✔️ | ❌ | ❌ | ✔️ | V1 is not supported when importing/creating image |\n| `circus-crxd` | `circus-img` | Circus Differential Image File (.crx) | ✔️ | ❌ | ❌ | ❌ | ❌ | |\n### Emote\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `emote-psb`/`psb` | `emote-img` | Emote PSB File | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | |\n| `emote-pimg` | `emote-img` | Emote Multiple Image File (.pimg) | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | `--emote-pimg-psd` is required. |\n\n| Image Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|\n| `emote-pimg`/`pimg` | `emote-img` | Emote Multiple Image File (.pimg) | ❌ | ❌ | ✔️ | ❌ | ❌ | |\n| `emote-dref`/`dref` | `emote-img` | Emote DPAK-referenced Image File (.dref) | ✔️ | ❌ | ❌ | ❌ | ❌ | |\n### Entis GLS engine\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `entis-gls` | `entis-gls` | Entis GLS engine XML Script (.srcxml) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n| `entis-gls-csx` | `entis-gls` | Entis GLS engine CSX Script (.csx) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | |\n### Escu:de\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `escude` | `escude` | Escu:de Script File (.bin) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n| `escude-list` | `escude` | Escu:de List File (.bin) | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | |\n\n| Archive Type | Feature Name | Name | Unpack | Pack | Remarks |\n|---|---|---|---|---|---|\n| `escude-arc` | `escude-arc` | Escu:de Archive File (.bin) | ✔️ | ✔️ | |\n### ExHibit\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `ex-hibit` | `ex-hibit` | ExHibit Script File (.rld) | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | ❌ | |\n\n| Archive Type | Feature Name | Name | Unpack | Pack | Remarks |\n|---|---|---|---|---|---|\n| `ex-hibit-grp` | `ex-hibit-arc` | ExHibit GRP Archive File (.grp) | ✔️ | ❌ | |\n### Favorite\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `favorite` | `favorite` | Favorite Hcb Script (.hcb) | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ❌ | ❌ | |\n### HexenHaus\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `hexen-haus` | `hexen-haus` | HexenHaus Script File (.bin) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n\n| Archive Type | Feature Name | Name | Unpack | Pack | Remarks |\n|---|---|---|---|---|---|\n| `hexen-haus-arcc` | `hexen-haus-arc` | HexenHaus Arcc Archive File (.arc) | ✔️ | ❌ | |\n| `hexen-haus-odio` | `hexen-haus-arc` | HexenHaus Audio Archive File (.bin) | ✔️ | ❌ | |\n| `hexen-haus-wag` | `hexen-haus-arc` | HexenHaus Wag Archive File (.wag) | ✔️ | ❌ | |\n\n| Image Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|\n| `hexen-haus-png` | `hexen-haus-img` | HexenHaus PNG Image File (.png) | ✔️ | ❌ | ❌ | ❌ | ❌ | |\n### Kirikiri\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `kirikiri`/`kr`/`kr-ks`/`kirikiri-ks` | `kirikiri` | Kirikiri Script File (.ks) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n| `kirikiri-scn`/`kr-scn` | `kirikiri` | Kirikiri Scene File (.scn) | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | ❌ | |\n| `kirikiri-simple-crypt`/`kr-simple-crypt` | `kirikiri` | Kirikiri Simple Crypt Text File | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | |\n| `kirikiri-mdf`/`kr-mdf` | `kirikiri` | Kirikiri Zlib-Compressed File | ❌ | ❌ | ❌ | ❌ | ✔️ | ❌ | ❌ | |\n| `kirikiri-tjs-ns0`/`kr-tjs-ns0` | `kirikiri` | Kirikiri TJS NS0 binary encoded script | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | |\n| `kirikiri-tjs2`/`kr-tjs2` | `kirikiri` | Kirikiri compiled TJS2 script | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | ❌ | |\n\n| Archive Type | Feature Name | Name | Unpack | Pack | Remarks |\n|---|---|---|---|---|---|\n| `kirikiri-xp3`/`kr-xp3`/`xp3` | `kirikiri-arc` | Kirikiri XP3 Archive File (.xp3) | ✔️ | ✔️ | |\n\n| Image Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|\n| `kirikiri-tlg`/`kr-tlg` | `kirikiri-img` | Kirikiri TLG Image File (.tlg) | ✔️ | ✔️ | ❌ | ❌ | ✔️ | tlg6 is not supported when importing/creating image |\n### Musica\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `musica` | `musica` | Musica Script File (.sc) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n\n| Archive Type | Feature Name | Name | Unpack | Pack | Remarks |\n|---|---|---|---|---|---|\n| `musica-arc` | `musica-arc` | Musica Archive Resource File (.paz) | ✔️ | ✔️ | |\n### QLIE\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `qlie` | `qlie` | Qlie Engine Scenario script (.s) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n| `qlie-abmp10` / `qlie-abmp11` / `qlie-abmp12` | `qlie-img` | Qlie Abmp10/11/12 image (.b) | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | |\n| `qlie-dpng` | `qlie-img` | Qlie tiled PNG image (.png) | ❌ | ❌ | ❌ | ❌ | ✔️ | ✔️ | ❌ | `--qlie-dpng-psd` is required. |\n\n| Archive Type | Feature Name | Name | Unpack | Pack | Remarks |\n|---|---|---|---|---|---|\n| `qlie-pack` | `qlie-arc` | Qlie Pack Archive (.pack) | ✔️ | ✔️ | Currently only v3.1 are supported. `--backslash` are needed to correctly handle file paths when packing. |\n\n| Image Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|\n| `qlie-dpng` | `qlie-img` | Qlie tiled PNG image (.png) | ✔️ | ✔️ | ❌ | ❌ | ❌ | |\n### Silky Engine\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `silky` | `silky` | Silky Engine Mes Script File (.mes) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n| `silky-map` | `silky` | Silky Engine Map File (.map) | ✔️ | ✔️ | ❌ | ❌ | ✔️ | ✔️ | ✔️ | |\n### Softpal\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `softpal` | `softpal` | Softpal Script File (.src) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ❌ | |\n\n| Archive Type | Feature Name | Name | Unpack | Pack | Remarks |\n|---|---|---|---|---|---|\n| `softpal-pac` | `softpal-arc` | Softpal Pac Archive File (.pac) | ✔️ | ❌ | |\n| `softpal-pac-amuse` | `softpal-arc` | Softpal Amuse Pac Archive File (.pac) | ✔️ | ❌ | |\n\n| Image Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|\n| `softpal-pgd-ge`/`pgd-ge`/`pgd` | `softpal-img` | Softpal PGD Ge Image File (.pgd) | ✔️ | ✔️ | ❌ | ❌ | ✔️ | |\n| `softpal-pgd3`/`softpal-pgd2`/`pgd3`/`pgd2` | `softpal-img` | Softpal PGD Differential Image File (.pgd) | ✔️ | ❌ | ❌ | ❌ | ❌ | |\n### WillPlus / AdvHD\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `will-plus-ws2`/`adv-hd-ws2` | `will-plus` | WillPlus/AdvHD Script File (.ws2) | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n\n| Image Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|\n| `will-plus-wip`/`adv-hd-wip` | `will-plus-img` | WillPlus/AdvHD WIP Image File (.wip) | ✔️ | ❌ | ✔️ | ❌ | ❌ |  |\n### Yaneurao Itufuru\n| Script Type | Feature Name | Name | Export | Import | Export Multiple | Import Multiple | Custom Export | Custom Import | Create | Remarks |\n|---|---|---|---|---|---|---|---|---|---|---|\n| `yaneurao-itufuru`/`itufuru` | `yaneurao-itufuru` | Yaneurao Itufuru Script File | ✔️ | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ | |\n\n| Archive Type | Feature Name | Name | Unpack | Pack | Remarks |\n|---|---|---|---|---|---|\n| `yaneurao-itufuru-arc`/`itufuru-arc` | `yaneurao-itufuru-arc` | Yaneurao Itufuru Archive File (.scd) | ✔️ | ✔️ | |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifegpc%2Fmsg-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flifegpc%2Fmsg-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flifegpc%2Fmsg-tool/lists"}