Anime Game Identity Mod Generator (AGIDMGen)
Makes identity mods: a mod of a character that looks exactly like the character already does in the game.
An identity mod changes nothing you can see. It is the character's own model, textures and colours, written out as a mod folder. That makes it the perfect starting point for making your own mod, or for checking that a mod loader works.
A sub-project of Anime Game Remap (AG Remap).
Contributors
| Albert Gold (Active Lead Maintainer) | |
Requirements
- Python (version 3.9 and up)
- When installing Python, tick the box "Add python.exe to PATH" at the bottom of the first screen.
- An internet connection (the character's files are downloaded for you)
Supported Games
| Game | Mod Loader | The word to type |
|---|---|---|
| GI | GIMI | gimi |
| WuWa | WWMI | wwmi |
How to Run
-
Choose your pick of which way to run it:
- Choice A: Quickstart! 🟢 (for beginners)
- Choice B: CMD WITHOUT a Script 🟡 (recommended if you run by CMD)
- Choice C: CMD with a Script 🟡 (the convention that other GIMI scripts follow)
- Choice D: API 🟠 (for expert coders)
Choice A: Let's Start ! 🟢
STEP 1:
- Right-click AGIDMGen.py, choose "Save link as...", and save the script into GIMI's or WWMI's
Modsfolder.
STEP 2:
-
Double click on the script, and answer its two questions:
- Which game? Type
gimifor GI orwwmifor WuWa, then enter - Which characters? Type the character's name (eg.
Yelan), then enter. For several characters, put a space between their names. For every character, typeall.
- Which game? Type
-
A new folder with the character's name (eg.
Yelan) appears beside the script, holding the mod. When the script says== Press ENTER to exit ==, press enter.
STEP 3:
- Open the game and enjoy it
Choice B: Run on CMD Without a Script 🟡
STEP 1:
- Install the generator onto your computer by opening cmd and typing:
python -m pip install -U AGIDMGen
then enter
( you can now run the program anywhere without copying a script! )
STEP 2:
- open cmd in GIMI's or WWMI's
Modsfolder and type the game's word, the character's name, then--download:
python -m AGIDMGen gimi Yelan --download
then enter
( or type only python -m AGIDMGen, and it asks you, as in Choice A )
STEP 3:
- Open the game and enjoy it
Choice C: Run on CMD With a Script 🟡
STEP 1:
- Get the script, as in Choice A's STEP 1
STEP 2:
-
open cmd in that
Modsfolder and typepython AGIDMGen.py, the game's word, the character's name, then--download.eg. for Yelan in GI:
python AGIDMGen.py gimi Yelan --download
then enter
eg. for Sanhua in WuWa:
python AGIDMGen.py wwmi Sanhua --download
STEP 3:
- Open the game and enjoy it
Choice D: API Usage 🟠
Tool developers can make identity mods within their own code!
API Setup
Make sure you first install the module by typing into cmd:
python -m pip install -U AGIDMGen
API Example
import AGIDMGen as IDMG
import FixRaidenBoss2 as FRB # AG Remap's API: its logger works for both libraries
service = IDMG.IDModGenService(IDMG.ModLoaders.GIMI, names = ["Yelan", "YelanTranquil"], outputFolder = "Mods", logger = FRB.Logger())
service.generate()
print("Made:", sorted(service.stats.generated))
IDModGenService makes each mod into <outputFolder>/<name>, from download folders (names = [...]) or from asset
folders (assetsFolders = [...]). A character that fails does not stop the others: it is recorded in service.stats,
and nothing is printed unless you give it a logger.
More API examples
In a server, give each request its own logger, and either read what it wrote afterwards or forward each line as it is written:
class ForwardingLogger(FRB.BaseLogger):
def write(self, message: str):
send_to_frontend(message) # eg. a websocket, a queue, a database row
def read(self, desc: str) -> str:
return "" # nothing interactive on a server
logger = FRB.Logger(logTxt = True, verbose = False) # or: ForwardingLogger()
service = IDMG.IDModGenService(IDMG.ModLoaders.GIMI, names = ["Yelan"], outputFolder = folder, logger = logger)
service.generate()
transcript = logger.loggedTxt
From asset folders:
service = IDMG.IDModGenService(IDMG.ModLoaders.WWMI, assetsFolders = ["WWMI-Assets/PlayerCharacterData/Sanhua"], outputFolder = "Mods")
service.generate()
One character, directly. Unlike the service, the generators raise an error when they fail:
mod = IDMG.GIMIIdentityModGenerator().generate("GI-Model-Importer-Assets/PlayerCharacterData/Yelan", "Mods/Yelan")
mod = IDMG.WWMIIdentityModGenerator().generateFromRepo("Sanhua", "Mods/Sanhua", version = "2.5")
print("\n".join(mod.getSummary()))
Every character with a download folder: IDMG.ModDownloader.getCharacters(IDMG.ModLoaders.GIMI)
Command Options
Add these after the character's name. The Game column says which game has the option.
| Options | Game | Description |
|---|---|---|
| -h, --help | All | show the help message and exit |
| --download | All | the names typed are characters' names: download their files and make their mods from them |
| --all | All | with --download: make the mod of every character |
| --out folder | All | the folder the mods are made in, as <folder>/<name>. If this option is not specified, then the mods are made in the current folder. |
| --version str | All | with --download: the game version wanted, eg. 4.0. If this option is not specified, then the newest version is used. |
| --name str | All | the character's name inside the mod (one character only) |
| --log folder | All | also write everything printed into <folder>/IDModGenLog.txt |
| --quiet | All | print only errors |
| --proxy str | All | with --download: the link to the proxy server, for those whose internet access must go through a proxy |
| --downloadFolder folder | All | with --download: keep the downloaded files in <folder>/<name>. If this option is not specified, then they are deleted afterwards. |
| --localData REPO=folder | All | with --download: copy the files of AGRemap or AGIDMGen from a copy of its Data/Mod Downloads folder on your computer, instead of downloading them (can be given more than once) |
| --noFix | GI | leave the ORFix / NNFix lines out of the mod |
| --faceRegister str | GI | the slot the face texture is bound to. If this option is not specified, then ps-t0 is used (some 6.x skins need ps-t1). |
| --assetPrefix str | GI | what the asset folder's files start with, when that is not the folder's name (one asset folder only) |
| --textureFrom B=C:O[:plain|normalMap] | GI | part B, which has no textures of its own, uses object O of part C's textures, eg. Bang=Body:A (can be given more than once) |
| --author str | WuWa | the mod author WWMI shows. If this option is not specified, then Anime Game Remap is used. |
| --noTextures | WuWa | leave the textures out |
| --rawBones | WuWa | write bone indices as vg_offset + local index, instead of through the vg_map |
Metadata
Release files for AGIDMGen 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| agidmgen-0.1.0.tar.gz | 86.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agidmgen-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 195.8 kB
Release files / agidmgen-0.1.0.tar.gz
| Download URL | agidmgen-0.1.0.tar.gz |
|---|---|
| Size | 86.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
344fa67032067529e8ceb86f9c02d271603e72c10b61d5a4f178850453e16322
|
|
BLAKE2b-256 checksum How to use checksums |
7f3ae2b62dafbcc4c4baecb792abb89dc19c881f7614b926b8f54ba78a71e920
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logRelease files / agidmgen-0.1.0-py3-none-any.whl
| Download URL | agidmgen-0.1.0-py3-none-any.whl |
|---|---|
| Size | 109.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8fee54b0867aea4258a098a385de00750724ccac35a3d3439595b3e44864611c
|
|
BLAKE2b-256 checksum How to use checksums |
3219cc0701b120e1af8a210bcf45c06ad200eb817dad60afcd1d4a4ac7b8d028
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logSecurity for AGIDMGen 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for agidmgen-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.