plugins { id 'com.gradleup.shadow' } architectury { platformSetupLoomIde() fabric() } configurations { common { canBeResolved = true canBeConsumed = false } compileClasspath.extendsFrom common runtimeClasspath.extendsFrom common developmentFabric.extendsFrom common // Files in this configuration will be bundled into your mod using the Shadow plugin. // Don't use the `shadow` configuration from the plugin itself as it's meant for excluding files. shadowBundle { canBeResolved = true canBeConsumed = false } } dependencies { modImplementation "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version" // Fabric API. This is technically optional, but you probably want it anyway. modImplementation "net.fabricmc.fabric-api:fabric-api:$rootProject.fabric_api_version" // Architectury API. This is optional, and you can comment it out if you don't need it. modImplementation "dev.architectury:architectury-fabric:$rootProject.architectury_api_version" common(project(path: ':common', configuration: 'namedElements')) { transitive = false } shadowBundle project(path: ':common', configuration: 'transformProductionFabric') } processResources { inputs.property 'version', project.version filesMatching('fabric.mod.json') { expand version: inputs.properties.version } } shadowJar { configurations = [project.configurations.shadowBundle] archiveClassifier = 'dev-shadow' } remapJar { inputFile.set shadowJar.archiveFile } fabricApi { configureDataGeneration() { client = true modId = project.archives_name createSourceSet = false } } loom { runs { datagen { client() name "Data Generation" vmArg "-Dfabric-api.datagen.output-dir=${project(':common').file('src/main/generated')}" vmArg "-Dfabric-api.datagen.modid=${project.archives_name}" runDir "build/datagen" } } }