-
Notifications
You must be signed in to change notification settings - Fork 0
Project Architecture
Joe edited this page Jun 8, 2026
·
1 revision
The toolkit patches IMVU Classic assets without modifying IMVUClient.exe.
Relevant default paths:
%APPDATA%\IMVUClient\
IMVUClient.exe
library.zip
ui\chrome\imvuContent.jar
library.zip contains Python runtime code used by IMVU Classic.
imvuContent.jar contains embedded Gecko UI assets.
| Path | Purpose |
|---|---|
src/imvu_toolkit/ |
Installable Python package |
src/imvu_toolkit/patches/emoji/ |
Emoji patch parser, transforms, and apply/restore entrypoint |
src/imvu_toolkit/patches/dpi/ |
Registry that exposes DPI patch scripts through the CLI |
src/imvu_toolkit/tools/ |
Registry that exposes utility scripts through the CLI |
emoji_assets/js/ |
JavaScript injected into IMVU chat |
patches/dpi/ |
DPI patch scripts kept in legacy script form |
scripts/ |
Probes, scaling helper, catalog generator, release helpers |
tests/ |
Pytest suite with fixtures for transforms and integration behavior |
docs/ |
Reference docs and this wiki |
Root-level scripts such as patch_imvu_emoji.py are backward-compatible
wrappers.
The package exposes:
python -m imvu_toolkit emoji install
python -m imvu_toolkit emoji restore
python -m imvu_toolkit emoji generate-list
python -m imvu_toolkit tools scale-window
python -m imvu_toolkit dpi clean-layoutThe dpi and tools subcommands pass extra flags through to legacy scripts.
Use -- before script-specific flags:
python -m imvu_toolkit dpi clean-layout -- --restoreThe patch model is deliberately conservative:
- Detect whether IMVU is running before mutating files.
- Create timestamped backups before replacing targets.
- Use patch markers so re-runs can detect existing changes.
- Restore from newest matching backups.
- Fail fast when expected source signatures are missing.
CI runs Ruff and pytest on Linux for pushes and pull requests. On pushes to
main or master, the Windows build job creates dist/IMVU-Emoji-Installer.exe
as an artifact.
Pushing a v* tag runs the release workflow:
- Build the installer on Windows.
- Extract release notes from
CHANGELOG.md. - Append SHA256 and VirusTotal information.
- Publish the GitHub Release with the
.exeasset.