{"id":50320638,"url":"https://github.com/bitsfdb/rl-item-dumper","last_synced_at":"2026-05-29T03:04:50.298Z","repository":{"id":360717308,"uuid":"1251398096","full_name":"bitsfdb/rl-item-dumper","owner":"bitsfdb","description":"BakkesMod plugin that dumps all Rocket League items with thumbnails to items.json","archived":false,"fork":false,"pushed_at":"2026-05-27T15:00:53.000Z","size":256,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-27T16:26:14.204Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bitsfdb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":null,"dco":null,"cla":null}},"created_at":"2026-05-27T14:36:56.000Z","updated_at":"2026-05-27T15:01:13.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bitsfdb/rl-item-dumper","commit_stats":null,"previous_names":["bitsfdb/rl-item-dumper"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/bitsfdb/rl-item-dumper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitsfdb%2Frl-item-dumper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitsfdb%2Frl-item-dumper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitsfdb%2Frl-item-dumper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitsfdb%2Frl-item-dumper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitsfdb","download_url":"https://codeload.github.com/bitsfdb/rl-item-dumper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitsfdb%2Frl-item-dumper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33634615,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"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":[],"created_at":"2026-05-29T03:04:50.230Z","updated_at":"2026-05-29T03:04:50.293Z","avatar_url":"https://github.com/bitsfdb.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rl-item-dumper\n\nA [BakkesMod](https://bakkesmod.com/) plugin for Rocket League that extracts every in-game item — labels, slot types, quality, and thumbnails — and writes them to `items.json` alongside PNG thumbnail files.\n\n## Output\n\n```\nItemDumper/\n├── items.json          # full catalog with base64-embedded thumbnails\n└── thumbnails/\n    ├── T_Body_Octane.png\n    ├── T_Decal_Shisa.png\n    └── ...\n```\n\nEach entry in `items.json`:\n```json\n{\n  \"id\": 23,\n  \"label\": \"Octane\",\n  \"long_label\": \"Octane\",\n  \"asset_package\": \"Body_Octane\",\n  \"asset_path\": \"...\",\n  \"slot\": \"Body\",\n  \"slot_index\": 0,\n  \"quality\": 0,\n  \"quality_label\": \"Common\",\n  \"is_paintable\": false,\n  \"thumbnail_package\": \"Thumbnails_Body\",\n  \"thumbnail_asset\": \"T_Body_Octane\",\n  \"thumbnail_path\": \"thumbnails/T_Body_Octane.png\",\n  \"thumbnail_base64\": \"data:image/png;base64,...\"\n}\n```\n\n## Setup\n\n1. **AES keys** — copy `keys.txt` from [RLUPKTools](https://github.com/CrunchyRL/RLUPKTools) into the output folder (default `%APPDATA%/bakkesmod/bakkesmod/data/ItemDumper/`). Without keys, item metadata is still dumped but thumbnails are skipped.\n\n2. **Install** — copy `ItemDumper.dll` to `%APPDATA%/bakkesmod/bakkesmod/plugins/` (the build does this automatically on post-build).\n\n3. **Load** — open BakkesMod → Plugins → Plugin Manager → enable **Item Dumper**.\n\n## Usage\n\nOpen the BakkesMod console (`F6`) and run:\n\n```\ndump_items\n```\n\nTo use a custom output path:\n\n```\nitemdumper_output_path \"C:/my/output/dir\"\ndump_items\n```\n\n## Building\n\nPrerequisites: Visual Studio 2022, CMake ≥ 3.20, BakkesMod SDK installed (`%APPDATA%/bakkesmod/bakkesmod/bakkesmodsdk`).\n\n```powershell\ncd plugin\ncmake -B build -G \"Visual Studio 17 2022\" -A x64\ncmake --build build --config Release\n```\n\nThe DLL is automatically copied to the BakkesMod plugins folder on a successful build.\n\n## How it works\n\n1. `GetItemsWrapper().GetAllProducts()` — live item catalog from the running game\n2. Windows registry — auto-detects the Rocket League install path (Steam or Epic)\n3. `keys.txt` — AES-256-ECB keys for UPK decryption (game-specific, not included)\n4. UPK pipeline (pure C++, no Python):\n   - AES-ECB decrypt via Windows BCrypt\n   - zlib chunk decompress via miniz\n   - UE3 name/export table parse\n   - `UTexture2D` bulk mip data extract\n   - DXT1/DXT5 block decode → RGBA\n   - PNG encode via `stb_image_write`\n5. `nlohmann/json` — serialize to `items.json`\n\n## Third-party\n\n| Library | License |\n|---------|---------|\n| [miniz](https://github.com/richgel999/miniz) | MIT |\n| [stb_image_write](https://github.com/nothings/stb) | Public domain |\n| [nlohmann/json](https://github.com/nlohmann/json) | MIT |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitsfdb%2Frl-item-dumper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitsfdb%2Frl-item-dumper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitsfdb%2Frl-item-dumper/lists"}