{"id":16373941,"url":"https://github.com/minidigger/minitexturepacker","last_synced_at":"2025-10-26T08:30:37.425Z","repository":{"id":49798968,"uuid":"246423301","full_name":"MiniDigger/MiniTexturePacker","owner":"MiniDigger","description":"Small utility to maintain a set of changes ontop of an existing texture pack.","archived":false,"fork":false,"pushed_at":"2023-12-15T14:24:06.000Z","size":52,"stargazers_count":6,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-31T17:11:32.543Z","etag":null,"topics":["hacktoberfest","minecraft","resource-pack","texture-pack"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MiniDigger.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}},"created_at":"2020-03-10T22:41:32.000Z","updated_at":"2023-11-06T11:20:00.000Z","dependencies_parsed_at":"2023-12-15T15:42:12.564Z","dependency_job_id":null,"html_url":"https://github.com/MiniDigger/MiniTexturePacker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniDigger%2FMiniTexturePacker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniDigger%2FMiniTexturePacker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniDigger%2FMiniTexturePacker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MiniDigger%2FMiniTexturePacker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MiniDigger","download_url":"https://codeload.github.com/MiniDigger/MiniTexturePacker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238293224,"owners_count":19448146,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["hacktoberfest","minecraft","resource-pack","texture-pack"],"created_at":"2024-10-11T03:15:41.167Z","updated_at":"2025-10-26T08:30:32.095Z","avatar_url":"https://github.com/MiniDigger.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MiniTexturePacker\n\nSmall utility to maintain a set of changes ontop of an existing texture pack and to easily add custom models\n\n## Usage\n\nYou want to have 3 folders like this:\n```\nstuff/\n├── original/ # where you can place the original texturepack\n│   ├── assets/\n│   │   └── minecraft/\n│   │       ├── blockstates/\n│   │       ├── font/\n│   │       ├── etc../\n│   │       └── sounds.json\n│   ├── pack.mcmeta\n│   └── pack.png\n├── output/ # where the combined texture pack will end up\n│   ├── assets/\n│   │   └── minecraft/\n│   │       ├── blockstates/\n│   │       ├── font/\n│   │       ├── etc../\n│   │       └── sounds.json\n│   ├── pack.mcmeta\n│   └── pack.png\n└── patch/ # where you can put your changes\n    ├── assets/\n    │   ├── minecraft/ # overrides of mc stuff go here\n    │   │   ├── blockstates/\n    │   │   ├── font/\n    │   |   ├── models/ # (with your template file, see #custom models)\n    │   │   ├── etc../\n    │   │   └── sounds.json\n    │   └── \u003ccustom\u003e/ # your custom models life here\n    │       ├── models/\n    │       └── textures/\n    ├── mappings.csv # id mappings for your custom models\n    ├── lang.json # language overrides\n    ├── pack.mcmeta\n    └── pack.png\n```\n\nAnd then run `java -jar minitexturepacker.jar --dir \\path\\to\\stuff --namespace \u003cyour namespace\u003e`  \nRun the jar with `--help` for a list of supported arguments.\n\nIt currently handles the following things:\n* pack.mcmeta + pack.png\n* sounds.json\n* font\n* optifine\n* sounds\n* texts/splashes.txt\n* textures\n* blockstates\n* models\n* language\n\nUnless otherwise noted, it will copy original to output, but first looks into patch for an updates file, then copies all new files from patch to output.\n\nIf you have an empty file in patch, it will not copy a file from orig nor from patch. This allows you to revert files from orig back to mc default.\n\n## Custom Models\n\nThis tool allows you to easily add new custom models.  \nAll you need to do is add your models and textures to your custom namespaces and define a template item you want to override, e.g. a diamond sword.\nThis diamond_sword.json should look like this:\n```json\n{\n\t\"parent\": \"item/handheld\",\n\t\"textures\": {\n\t\t\"layer0\": \"item/diamond_sword\"\n\t},\n\t\"overrides\": [\n\t\t\"%mini_model_creator_marker%\"\n\t]\n}\n```\nThe tools will then write all custom models into the overrides section.  \nIt will also create a mappings.csv where you can read which CustomModelData id has been assigned to the model.  \nYou should never delete that file, as if you regenerate it, the IDs might change, which would be bad if you already use them.\n\nThe argument `--item default=diamond_sword` allows you to change which item to patch and even to specify multiple types.\n\n### Bows\n\nBows are specially handled, to make it easier to deal with their multiple stages. For convince, MiniTexturePacker bundles the bow template. You only need to override it, if you want to override the vanilla bow.  \nMiniTexturePacker allows you to specify the pull factor in the file name, no pull factor means not pulling, 0 means start of the pull, 100 means end of the pull.  \nSo for a nice animation, you most likely will end up with files like this:\n```\nmy_cool_bow.bow.0.json\nmy_cool_bow.bow.65.json\nmy_cool_bow.bow.90.json\nmy_cool_bow.bow.json\n```\nthe resulting predicates would look like this\n```json\n{ \"predicate\": { \"custom_model_data\": 2, \"pulling\": 0, \"pull\": 0}, \"model\": \"namespace:item/my_cool_bow.bow\"},\n{ \"predicate\": { \"custom_model_data\": 2, \"pulling\": 1, \"pull\": 0.0}, \"model\": \"namespace:item/my_cool_bow.bow.0\"},\n{ \"predicate\": { \"custom_model_data\": 2, \"pulling\": 1, \"pull\": 0.9}, \"model\": \"namespace:item/my_cool_bow.bow.90\"},\n{ \"predicate\": { \"custom_model_data\": 2, \"pulling\": 1, \"pull\": 0.65}, \"model\": \"namespace:item/my_cool_bow.bow.65\"},\n```\n\n## Language overrides\n\nThis tool allows you to easily override a string in all languages.  \nAll you need to do is create a new file called lang.json and put your strings in there. \nThe tool will then check if you already have a lang file and insert the string there, if not, it will download the missing lang files from mojang.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminidigger%2Fminitexturepacker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fminidigger%2Fminitexturepacker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fminidigger%2Fminitexturepacker/lists"}