{"id":20384368,"url":"https://github.com/essentialgg/universalcraft","last_synced_at":"2025-10-07T09:55:02.474Z","repository":{"id":38244378,"uuid":"248292235","full_name":"EssentialGG/UniversalCraft","owner":"EssentialGG","description":"A Minecraft modding library designed to seamlessly support a single code base branching different Minecraft versions and LWJGL versions","archived":false,"fork":false,"pushed_at":"2025-09-29T12:54:42.000Z","size":776,"stargazers_count":57,"open_issues_count":8,"forks_count":16,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-09-29T14:43:25.859Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EssentialGG.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-03-18T17:01:46.000Z","updated_at":"2025-09-17T20:00:00.000Z","dependencies_parsed_at":"2023-02-04T06:15:16.907Z","dependency_job_id":"a2905f0c-f5ff-4a47-a161-f420ca8c6234","html_url":"https://github.com/EssentialGG/UniversalCraft","commit_stats":{"total_commits":335,"total_committers":16,"mean_commits":20.9375,"dds":0.6029850746268657,"last_synced_commit":"a5351a73f09a17fcce2ec31dce326d76cba6ee02"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EssentialGG/UniversalCraft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EssentialGG%2FUniversalCraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EssentialGG%2FUniversalCraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EssentialGG%2FUniversalCraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EssentialGG%2FUniversalCraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EssentialGG","download_url":"https://codeload.github.com/EssentialGG/UniversalCraft/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EssentialGG%2FUniversalCraft/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278755163,"owners_count":26040034,"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","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"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":"2024-11-15T02:27:31.523Z","updated_at":"2025-10-07T09:55:02.468Z","avatar_url":"https://github.com/EssentialGG.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UniversalCraft\n\nA full Java interop library that wraps Minecraft classes which allows you to write code for multiple versions at the same time. Built using ReplayMod's [Preprocessor](https://github.com/ReplayMod/preprocessor).\n\n\nIt also features a \"standalone\" edition, which can run GUIs without Minecraft so long as they only depend on\nUniversalCraft and not Minecraft directly.\nThis can allow for a faster development loop (no need to wait a minute for Minecraft to start),\nautomated testing without having to bootstrap a full Minecraft environment,\nand even development of completely standalone applications using the same toolkit (e.g. [Elementa]) as one is already\nfamiliar with from Minecraft development.\nSee the `standalone/example/` folder for a fully functional example.\n\n## Dependency\n\nIt's recommended that you include [Essential](link eventually) instead of adding it yourself.\n\nIn your repository block, add:\n\nGroovy\n```groovy\nmaven {\n    url = \"https://repo.essential.gg/repository/maven-public\"\n}\n```\nKotlin\n```kotlin\nmaven(url = \"https://repo.essential.gg/repository/maven-public\")\n```\n\nTo use the latest builds, use the following dependency format, use the build reference to find the correct replacements:\n\n\u003cdetails\u003e\u003csummary\u003eForge\u003c/summary\u003e\n\n```kotlin\nimplementation(\"gg.essential:universalcraft-$mcVersion-$mcPlatform:$buildNumber\")\n```\n\u003c/details\u003e\n\u003cdetails\u003e\u003csummary\u003eFabric\u003c/summary\u003e\n\nGroovy\n```groovy\nmodImplementation(include(\"gg.essential:universalcraft-$mcVersion-$mcPlatform:$buildNumber\"))\n```\nKotlin\n```kotlin\nmodImplementation(include(\"gg.essential:universalcraft-$mcVersion-$mcPlatform:$buildNumber\")!!)\n```\n\u003c/details\u003e\n\n### Build Reference\n\u003c!--\nScript to generate the Build Reference table:\n```bash\nsed -n '/\"1.8.9-forge\"/,/)/p' settings.gradle.kts | sed '$d' | tr -d '\", ' | tac | while read -r platform; do\n    version=$(echo \"$platform\" | cut -d'-' -f1)\n    loader=$(echo \"$platform\" | cut -d'-' -f2)\n    echo \"\u003ctr\u003e\u003ctd\u003e$version\u003c/td\u003e\u003ctd\u003e$loader\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\\\"$platform\\\" src=\\\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-$platform/maven-metadata.xml\\\"\u003e\u003c/td\u003e\u003c/tr\u003e\"\ndone\n```\n--\u003e\n\u003cdetails\u003e\u003csummary\u003eBuild Reference\u003c/summary\u003e\n    \u003ctable\u003e\n      \u003ctbody\u003e\n        \u003ctr\u003e\n          \u003cth\u003emcVersion\u003c/th\u003e\n          \u003cth\u003emcPlatform\u003c/th\u003e\n          \u003cth\u003ebuildNumber\u003c/th\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n          \u003ctd\u003estandalone\u003c/td\u003e\n          \u003ctd\u003eN/A\u003c/td\u003e\n          \u003ctd\u003e\n            \u003cimg alt=\"standalone\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-standalone/maven-metadata.xml\"\u003e\n          \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.9\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.9-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.9-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.7\u003c/td\u003e\u003ctd\u003eneoforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.7-neoforge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.7-neoforge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.7\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.7-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.7-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.7\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.7-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.7-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.6\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.6-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.6-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.5\u003c/td\u003e\u003ctd\u003eneoforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.5-neoforge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.5-neoforge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.5\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.5-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.5-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.5\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.5-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.5-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.4\u003c/td\u003e\u003ctd\u003eneoforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.4-neoforge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.4-neoforge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.4\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.4-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.4-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.4\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.4-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.4-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.3\u003c/td\u003e\u003ctd\u003eneoforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.3-neoforge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.3-neoforge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.3\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.3-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.3-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21.3\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21.3-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21.3-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21\u003c/td\u003e\u003ctd\u003eneoforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21-neoforge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21-neoforge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.21\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.21-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.21-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.20.6\u003c/td\u003e\u003ctd\u003eneoforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.20.6-neoforge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.20.6-neoforge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.20.6\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.20.6-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.20.6-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.20.6\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.20.6-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.20.6-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.20.4\u003c/td\u003e\u003ctd\u003eneoforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.20.4-neoforge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.20.4-neoforge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.20.4\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.20.4-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.20.4-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.20.4\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.20.4-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.20.4-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.20.2\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.20.2-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.20.2-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.20.2\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.20.2-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.20.2-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.20.1\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.20.1-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.20.1-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.20.1\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.20.1-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.20.1-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.20\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.20-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.20-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.19.4\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.19.4-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.19.4-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.19.4\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.19.4-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.19.4-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.19.3\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.19.3-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.19.3-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.19.3\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.19.3-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.19.3-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.19.2\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.19.2-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.19.2-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.19.2\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.19.2-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.19.2-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.19.1\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.19.1-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.19.1-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.19\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.19-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.19-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.18.1\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.18.1-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.18.1-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.18.1\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.18.1-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.18.1-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.17.1\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.17.1-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.17.1-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.17.1\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.17.1-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.17.1-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.16.2\u003c/td\u003e\u003ctd\u003efabric\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.16.2-fabric\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.16.2-fabric/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.16.2\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.16.2-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.16.2-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.12.2\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.12.2-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.12.2-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n        \u003ctr\u003e\u003ctd\u003e1.8.9\u003c/td\u003e\u003ctd\u003eforge\u003c/td\u003e\u003ctd\u003e\u003cimg alt=\"1.8.9-forge\" src=\"https://img.shields.io/badge/dynamic/xml?color=A97BFF\u0026label=%20\u0026query=/metadata/versioning/versions/version[not(contains(text(),'%2B'))][last()]\u0026url=https://repo.essential.gg/repository/maven-releases/gg/essential/universalcraft-1.8.9-forge/maven-metadata.xml\"\u003e\u003c/td\u003e\u003c/tr\u003e\n      \u003c/tbody\u003e\n    \u003c/table\u003e\n\n\u003c/details\u003e\n\n\u003ch2\u003e\u003cspan style=\"font-size:3em; color:red;\"\u003eIMPORTANT!\u003c/span\u003e\u003c/h2\u003e\n\nIf you are using forge, you must also relocate UC to avoid potential crashes with other mods. To do this, you will need to use the Shadow Gradle plugin.\n\n\u003cdetails\u003e\u003csummary\u003eGroovy Version\u003c/summary\u003e\n\nYou can do this by either putting it in your plugins block:\n```groovy\nplugins {\n    id \"com.github.johnrengelman.shadow\" version \"$version\"\n}\n```\nor by including it in your buildscript's classpath and applying it:\n```groovy\nbuildscript {\n    repositories {\n        gradlePluginPortal()\n    }\n    dependencies {\n        classpath \"gradle.plugin.com.github.jengelman.gradle.plugins:shadow:$version\"\n    }\n}\n\napply plugin: \"com.github.johnrengelman.shadow\"\n```\nYou'll then want to relocate UC to your own package to avoid breaking other mods\n```groovy\nshadowJar {\n    archiveClassifier.set(null)\n    relocate(\"gg.essential.universal\", \"your.package.universal\")\n}\ntasks.named(\"reobfJar\").configure { dependsOn(tasks.named(\"shadowJar\")) }\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003eKotlin Script Version\u003c/summary\u003e\n\nYou can do this by either putting it in your plugins block:\n```kotlin\nplugins {\n    id(\"com.github.johnrengelman.shadow\") version \"$version\"\n}\n```\nor by including it in your buildscript's classpath and applying it:\n```kotlin\nbuildscript {\n    repositories {\n        gradlePluginPortal()\n    }\n    dependencies {\n        classpath(\"gradle.plugin.com.github.jengelman.gradle.plugins:shadow:$version\")\n    }\n}\n\napply(plugin = \"com.github.johnrengelman.shadow\")\n```\nYou'll then want to relocate UC to your own package to avoid breaking other mods\n```kotlin\ntasks.shadowJar {\n    archiveClassifier.set(null)\n    relocate(\"gg.essential.universal\", \"your.package.universal\")\n}\ntasks.reobfJar { dependsOn(tasks.shadowJar) }\n```\n\n\u003c/details\u003e\n\n[Elementa]: https://github.com/EssentialGG/Elementa\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fessentialgg%2Funiversalcraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fessentialgg%2Funiversalcraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fessentialgg%2Funiversalcraft/lists"}