{"id":18985167,"url":"https://github.com/potatomaster101/skinmash","last_synced_at":"2026-06-18T18:32:20.894Z","repository":{"id":115197962,"uuid":"277410037","full_name":"PotatoMaster101/skinmash","owner":"PotatoMaster101","description":"Minecraft skin combiner","archived":false,"fork":false,"pushed_at":"2020-09-11T03:35:00.000Z","size":20,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-10T18:03:32.291Z","etag":null,"topics":["minecraft","minecraft-skin","mit-license","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","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/PotatoMaster101.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}},"created_at":"2020-07-06T00:55:14.000Z","updated_at":"2024-09-23T02:16:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"17725ad8-f3d4-4c0e-a226-c188239eafab","html_url":"https://github.com/PotatoMaster101/skinmash","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PotatoMaster101/skinmash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PotatoMaster101%2Fskinmash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PotatoMaster101%2Fskinmash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PotatoMaster101%2Fskinmash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PotatoMaster101%2Fskinmash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PotatoMaster101","download_url":"https://codeload.github.com/PotatoMaster101/skinmash/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PotatoMaster101%2Fskinmash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34503507,"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-06-18T02:00:06.871Z","response_time":128,"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":["minecraft","minecraft-skin","mit-license","python3"],"created_at":"2024-11-08T16:24:55.868Z","updated_at":"2026-06-18T18:32:20.878Z","avatar_url":"https://github.com/PotatoMaster101.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Skin Mash\nCombines multiple Minecraft skins into one single skin.\n\n## Setup\nRequires the [`opencv-python`](https://github.com/skvark/opencv-python) package to run. To setup using `pip3`:\n```\n$ git clone https://github.com/PotatoMaster101/skinmash\n$ cd skinmash\n$ pip3 install -r requirements.txt\n```\n\n## Usage\nRun with python 3:\n```\n$ python3 skinmash.py [-h] [-o OUTPUT] [config]\n```\nIf a config file is specified, then the script will run the lines in the config file. See [Config File Format](#config-file-format) for more information.\n\nIf no config file is provided, then the script will run in interactive mode. Interactive mode is exactly the same, but instead of reading from a file the script will read from `stdin` instead. Use the command `exit` or `quit` to exit interactive mode (which will also save the current output image). See [Example](#example) for examples.\n\n## Config File Format\nEach line of the config file will specify the part of the body and the skin image to use for that part of the body, using the syntax `\u003cbody part\u003e \u003cusername\u003e`. For example, by specifying `head PotatoMaster101`, the output skin will have the head portion of `PotatoMaster101`'s skin. The `\u003cusername\u003e` part can also be a local file (if it ends with `.png`). The mostly used body parts are:\n- `all` - entire skin for 64x64 skins (maps to `all32` on 32x64 skin)\n- `all32` - entire skin for 32x64 skins\n- `head` - head\n- `hat` - hat\n- `rleg` - right leg\n- `body` - main body\n- `rarm` - right arm\n- `rleg2` - right leg jacket (not available for 32x64 skins)\n- `jacket` - main body jacket (not available for 32x64 skins)\n- `rarm2` - right arm jacket (not available for 32x64 skins)\n- `lleg2` - left leg jacket (not available for 32x64 skins)\n- `lleg` - left leg (maps to `rleg` for 32x64 skins)\n- `larm` - left arm (maps to `rarm` for 32x64 skins)\n- `larm2` - left arm jacket (not available for 32x64 skins)\n\nBelow is an example of a config file:\n```\nall PotatoMaster101\nhead skins/Wikbix.png\nhat skins/Wikbix.png\nlleg Llaqw\nlleg2 Llaqw\nrleg Llaqw\nrleg2 Llaqw\nlarm skins/_QueenKathleen_.png\nlarm2 skins/_QueenKathleen_.png\nrarm skins/_QueenKathleen_.png\nrarm2 skins/_QueenKathleen_.png\n```\n\nBelow are some lesser used, but more specific body parts:\n- `head_top` - top of the head\n- `head_bottom` - bottom of the head\n- `head_right` - right of the head\n- `head_front` - front of the head\n- `head_left` - left of the head\n- `head_back` - back of the head\n- `hat_top` - top of the hat\n- `hat_bottom` - bottom of the hat\n- `hat_right` - right of the hat\n- `hat_front` - front of the hat\n- `hat_left` - left of the hat\n- `hat_back` - back of the hat\n- `rleg_top` - top of right leg\n- `rleg_bottom` - bottom of right leg\n- `body_top` - top of main body\n- `body_bottom` - bottom of main body\n- `rarm_top` - top of right arm\n- `rarm_bottom` - bottom of right arm\n- `rleg_right` - right of right leg\n- `rleg_front` - front of right leg\n- `rleg_left` - left of right leg\n- `rleg_back` - back of right leg\n- `body_right` - right of main body\n- `body_front` - front of main body\n- `body_back` - back of main body\n- `body_left` - left of main body\n- `rarm_right` - right of right arm\n- `rarm_front` - front of right arm\n- `rarm_left` - left of right arm\n- `rarm_back` - back of right arm\n- `rleg2_top` - top of right leg jacket (not available for 32x64 skins)\n- `rleg2_bottom` - bottom of right let jacket (not available for 32x64 skins)\n- `jacket_top` - top of main jacket (not available for 32x64 skins)\n- `jacket_bottom` - bottom of main jacket (not available for 32x64 skins)\n- `rarm2_top` - top of right arm jacket (not available for 32x64 skins)\n- `rarm2_bottom` - bottom of right arm jacket (not available for 32x64 skins)\n- `rleg2_right` - right of right leg jacket (not available for 32x64 skins)\n- `rleg2_front` - front of right leg jacket (not available for 32x64 skins)\n- `rleg2_left` - left of right leg jacket (not available for 32x64 skins)\n- `rleg2_back` - back of right leg jacket (not available for 32x64 skins)\n- `jacket_right` - right of main jacket (not available for 32x64 skins)\n- `jacket_front` - front of main jacket (not available for 32x64 skins)\n- `jacket_back` - back of main jacket (not available for 32x64 skins)\n- `jacket_left` - left of main jacket (not available for 32x64 skins)\n- `rarm2_right` - right of right arm jacket (not available for 32x64 skins)\n- `rarm2_front` - front of right arm jacket (not available for 32x64 skins)\n- `rarm2_left` - left of right arm jacket (not available for 32x64 skins)\n- `rarm2_back` - back of right arm jacket (not available for 32x64 skins)\n- `lleg2_top` - top of left leg jacket (not available for 32x64 skins)\n- `lleg2_bottom` - bottom of left leg jacket (not available for 32x64 skins)\n- `lleg_top` - top of left leg (maps to `rleg_top` for 32x64 skins)\n- `lleg_bottom` - bottom of left leg (maps to `rleg_bottom` for 32x64 skins)\n- `larm_top` - top of left arm (maps to `rarm_top` for 32x64 skins)\n- `larm_bottom` - bottom of left arm (maps to `rarm_bottom` for 32x64 skins)\n- `larm2_top` - top of left arm jacket (not available for 32x64 skins)\n- `larm2_bottom` - bottom of left arm jacket (not available for 32x64 skins)\n- `lleg2_right` - right of left leg jacket (not available for 32x64 skins)\n- `lleg2_front` - front of left leg jacket (not available for 32x64 skins)\n- `lleg2_left` - left of left leg jacket (not available for 32x64 skins)\n- `lleg2_back` - back of left leg jacket (not available for 32x64 skins)\n- `lleg_right` - right of left leg (maps to `rleg_right` for 32x64 skins)\n- `lleg_front` - front of left leg (maps to `rleg_front` for 32x64 skins)\n- `lleg_left` - left of left leg (maps to `rleg_left` for 32x64 skins)\n- `lleg_back` - back of left leg (maps to `rleg_back` for 32x64 skins)\n- `larm_right` - right of left arm (maps to `rarm_right` for 32x64 skins)\n- `larm_front` - front of left arm (maps to `rarm_front` for 32x64 skins)\n- `larm_left` - left of left arm (maps to `rarm_left` for 32x64 skins)\n- `larm_back` - back of left arm (maps to `rarm_back` for 32x64 skins)\n- `larm2_right` - right of left arm jacket (not available for 32x64 skins)\n- `larm2_front` - front of left arm jacket (not available for 32x64 skins)\n- `larm2_left` - left of left arm jacket (not available for 32x64 skins)\n- `larm2_back` - back of left arm jacket (not available for 32x64 skins)\n\n## Example\nExample config files can be found under the `examples` directory.\n```\n$ python3 skinmash.py \u003cexample path\u003e/conf.txt\n```\nOutput file by default will be named `output.png` but can be changed using the `-o` flag.\n\nExample for interactive usage:\n```\n$ python3 skinmash.py\nskinmash\u003e all PotatoMaster101\nskinmash\u003e head Destination666\nskinmash\u003e hat Destination666\nskinmash\u003e exit\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpotatomaster101%2Fskinmash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpotatomaster101%2Fskinmash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpotatomaster101%2Fskinmash/lists"}