{"id":26249457,"url":"https://github.com/randomgamingdev/grabcraft-to-schema","last_synced_at":"2026-02-18T00:32:13.460Z","repository":{"id":200226092,"uuid":"705081835","full_name":"RandomGamingDev/grabcraft-to-schema","owner":"RandomGamingDev","description":"A Python library and its cli for converting grabcraft to schema (more specifically litematica schematic) files","archived":false,"fork":false,"pushed_at":"2024-11-23T17:10:35.000Z","size":59124,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-24T01:43:22.601Z","etag":null,"topics":["ai","data-cleaning","data-cleaning-and-preprocessing","data-science","grabcraft","library","litematica","mc","minecraft","minecraft-build","minecraft-building","python","schematic","schematics"],"latest_commit_sha":null,"homepage":"","language":"Python","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/RandomGamingDev.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-15T00:42:39.000Z","updated_at":"2024-11-23T17:10:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"24722c20-cefd-45d7-82d7-211816aa402b","html_url":"https://github.com/RandomGamingDev/grabcraft-to-schema","commit_stats":null,"previous_names":["randomgamingdev/grabcraft-to-schema"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RandomGamingDev/grabcraft-to-schema","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomGamingDev%2Fgrabcraft-to-schema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomGamingDev%2Fgrabcraft-to-schema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomGamingDev%2Fgrabcraft-to-schema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomGamingDev%2Fgrabcraft-to-schema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RandomGamingDev","download_url":"https://codeload.github.com/RandomGamingDev/grabcraft-to-schema/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomGamingDev%2Fgrabcraft-to-schema/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29563467,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T21:50:49.831Z","status":"ssl_error","status_checked_at":"2026-02-17T21:46:15.313Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ai","data-cleaning","data-cleaning-and-preprocessing","data-science","grabcraft","library","litematica","mc","minecraft","minecraft-build","minecraft-building","python","schematic","schematics"],"created_at":"2025-03-13T15:37:51.218Z","updated_at":"2026-02-18T00:32:13.438Z","avatar_url":"https://github.com/RandomGamingDev.png","language":"Python","readme":"# grabcraft-to-schema\nA Python library and its cli for converting grabcraft to schema (more specifically litematica schematic) files\n\nTo use the CLI run `cli.py` (The CLI can be used as an example for how to build your own application using this) \u003cbr/\u003e\nThe library itself is `grabcraft_to_schema.py` \u003cbr/\u003e\n\nCertain blocks can't be easily converted with `auto_block_map()` which is why I used `raw-blockmap.csv` which is the file from https://github.com/gbl/GrabcraftLitematic/blob/master/blockmap.csv, but renamed, and which you can now convert into a form that can be usable by the library but running `clean_blockmap.py` which I got `blockmap.csv` from.\n\n## RenderObjects?\nGrabCraft, instead of using things like .schematic or .litematic uses its own custom format called RenderObjects. If you're for instance, scraping the web and don't know what data you need to keep or generally want to be able to do stuff without having to worry about certain stuff breaking when dealing with GrabCraft's custom format, I recommend that you guys try to save `RenderObject`'s and their data. The `RenderObject.obj` field is what contains most of the data, which can easily be converted to a json as seen in the library itself since it's just a variable being set to a javascript dictionary which means that it's a json as soon as the javascript variable setting part is removed.\n\n## Some Current Limitations:\nDue to me not having the time to sort through all the weird naming used by grabcraft and due to the weird formatting schemes for both grabcraft and Minecraft the nbt (block rotation, whether or not things are lit, etc.) data isn't currently preserved and of course there's no guarantee that all grabcraft builds will work. 99% will work, however it's possible that some weird formatting on grabcraft's part will cause certain builds to not work.\n\n## Documentation:\n- `block_map`: The loaded custom blockmap overloads from `blockmap.csv`\n- `load_block_map(file_name)`: The function that's used for loading the blockmap csv\n- `auto_block_map(grabcraft_block) -\u003e String: schema_block`: The function that's used for automatically mapping blocks over when they aren't in the `block_map`\n- `RenderObject`: A class for storing all relevant `RenderObject` data (`.obj`: The JS file containing the main data, `.name`: The build name, `.dims`: \\[x, y, z\\] list containing dimensions, `.tags`: the description tags)\n- `render_object_to_schema(render_object) -\u003e litematic`: This converts a `RenderObject` to a litematic schem\n- `render_object_to_png_slice(render_object) -\u003e litematic`: This converts\n- `url_to_render_object_data(url) -\u003e RenderObject`: This converts a url to a grabcraft build to a `RenderObject`\n- `url_to_png_slice(url) -\u003e PIL.Image`: This converts a url to a png slice.\n- `url_to_schema(url) -\u003e litematic`: This converts a url to a litematic schema\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandomgamingdev%2Fgrabcraft-to-schema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frandomgamingdev%2Fgrabcraft-to-schema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frandomgamingdev%2Fgrabcraft-to-schema/lists"}