{"id":18512541,"url":"https://github.com/podshot/pymclevel2","last_synced_at":"2025-06-21T06:05:10.597Z","repository":{"id":71492795,"uuid":"123452198","full_name":"Podshot/pymclevel2","owner":"Podshot","description":null,"archived":false,"fork":false,"pushed_at":"2018-03-07T16:34:16.000Z","size":195,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-20T18:09:38.958Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/Podshot.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":"2018-03-01T15:18:21.000Z","updated_at":"2023-01-18T12:18:45.000Z","dependencies_parsed_at":"2023-05-28T19:30:14.119Z","dependency_job_id":null,"html_url":"https://github.com/Podshot/pymclevel2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Podshot/pymclevel2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Podshot%2Fpymclevel2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Podshot%2Fpymclevel2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Podshot%2Fpymclevel2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Podshot%2Fpymclevel2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Podshot","download_url":"https://codeload.github.com/Podshot/pymclevel2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Podshot%2Fpymclevel2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261073340,"owners_count":23105638,"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":[],"created_at":"2024-11-06T15:34:29.150Z","updated_at":"2025-06-21T06:05:05.567Z","avatar_url":"https://github.com/Podshot.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pymclevel2\n\nThis is a complete rewrite of the [original pymclevel by Codewarrior0](https://github.com/mcedit/pymclevel). The rewrites\nfocus to make an easily extend-able library that can support multiple world formats without having to modify other world\nformats for compatibility. This library is in it's alpha stages, if you would like to help, please refer to the TODO section\nlater in this document\n\n## Setup\n### Requirements\n* Python 2.7+ (Python 3 is not supported)\n* numpy (Preferably \u003e=1.13.3)\n\nAfter installing the requirements, please copy the `blockstates` directory from a Minecraft .jar into the base repository\ndirectory. This cannot be included in the repository due to legal concerns.\n\n## Usage\n#### Note: Only Blockstate format worlds are currently supported, and are in a read-only state\n\n### Examples\nHow to access Blocks in a world:\n```python\nimport os\nimport format_loader\n\nworld = format_loader.load_world(os.path.join('tests', '1.13 World'))\nchunk = world.getChunk(0,0)\nprint chunk.Blocks[0,0,0] # minecraft:bedrock\n```\n\nHow to get a Blockstate object (still very much a work in progress)\n```python\nimport materials\nmats = Materials('1.11') # Replace '1.11' with the Minecraft version you want to load, only 1.11 is complete as of 3.7.2018\nstone_blockstate = mats['minecraft:stone[variant=stone]'] # Get Blockstate by string\ndark_oak_planks_blockstate = mats[(5,5)] # Get Blockstate by numerical ID and data pair\noak_planks_blockstate = mats[5] # Get Blockstate by numerical ID, assumes data value of 0\n\nprint(stone_blockstate) # minecraft:stone[variant=stone]\nprint(dark_oak_planks_blockstate) # minecraft:planks[variant=dark_oak]\nprint(oak_planks_blockstate) # minecraft:planks[variant=oak]\n```\n\nThe library is missing many functions that are present in the original pymclevel, but feature parity is slowly improving\n\n## TODO\n- [x] Common access point to load a world\n- [x] Have the world loader find world formats at runtime\n- [x] Load a Blockstate chunk from a .mca region file and decode the Blockstate array\n- [ ] Re-encode the Blockstate array so Minecraft can load the modified world\n- [ ] Add missing functions to the api and the Blockstate format module\n- [ ] Add anvil support\n- [ ] Complete the `tests` module so we have comprehensive testing of the library\n- [ ] Add in missing functionality of the original pymclevel\n\n#### Feel free to submit a Pull Request to help complete any of these items","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpodshot%2Fpymclevel2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpodshot%2Fpymclevel2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpodshot%2Fpymclevel2/lists"}