diff --git a/adapters/forge/build.gradle b/adapters/forge/build.gradle
index e05bd3b55..bcc25d8aa 100644
--- a/adapters/forge/build.gradle
+++ b/adapters/forge/build.gradle
@@ -1,17 +1,215 @@
+/*
+ * Iris is a World Generator for Minecraft Servers
+ * Copyright (c) 2026 Arcane Arts (Volmit Software)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+import org.gradle.api.tasks.compile.JavaCompile
+import org.gradle.jvm.toolchain.JavaLanguageVersion
+
+plugins {
+ id 'java'
+ id 'net.minecraftforge.gradle' version '7.0.27'
+ alias(libs.plugins.shadow)
+}
+
+Properties rootProperties = new Properties()
+file('../../gradle.properties').withInputStream { InputStream stream -> rootProperties.load(stream) }
+String irisVersion = providers.gradleProperty('irisVersion').getOrElse(rootProperties.getProperty('irisVersion', '4.0.0-26.1'))
+String minecraftVersion = providers.gradleProperty('minecraftVersion').getOrElse(rootProperties.getProperty('minecraftVersion', '26.1.2'))
+String forgeVersion = providers.gradleProperty('forgeVersion').getOrElse('26.1.2-64.0.9')
+
group = 'art.arcane'
-version = rootProject.version
+version = irisVersion
+
+java {
+ toolchain {
+ languageVersion = JavaLanguageVersion.of(25)
+ }
+}
+
+sourceSets {
+ main {
+ java {
+ srcDir '../modded-common/src/main/java'
+ }
+ resources {
+ srcDir '../modded-common/src/main/resources'
+ }
+ }
+}
+
+repositories {
+ minecraft.mavenizer(it)
+ maven fg.forgeMaven
+ maven fg.minecraftLibsMaven
+ mavenCentral()
+ maven { url = uri('https://repo.codemc.org/repository/maven-public/') }
+ maven { url = uri('https://jitpack.io') }
+ maven { url = uri('https://hub.spigotmc.org/nexus/content/repositories/snapshots/') }
+}
+
+configurations {
+ bundle {
+ canBeConsumed = false
+ canBeResolved = true
+ }
+ devBundle {
+ canBeConsumed = false
+ canBeResolved = true
+ }
+ runBundle {
+ canBeConsumed = false
+ canBeResolved = true
+ }
+ commonsLangRaw {
+ canBeConsumed = false
+ canBeResolved = true
+ transitive = false
+ }
+}
+
+configurations.named('bundle').configure {
+ exclude(group: 'com.google.code.gson')
+ exclude(group: 'com.google.guava')
+ exclude(group: 'commons-io')
+ exclude(group: 'org.apache.commons', module: 'commons-lang3')
+ exclude(group: 'it.unimi.dsi', module: 'fastutil')
+ exclude(group: 'org.slf4j')
+ exclude(group: 'org.apache.logging.log4j')
+ exclude(group: 'de.crazydev22.slimjar.helper')
+ exclude(group: 'de.crazydev22.slimjar')
+ exclude(group: 'io.github.slimjar')
+}
+
+configurations.named('runBundle').configure {
+ exclude(group: 'de.crazydev22.slimjar.helper')
+ exclude(group: 'de.crazydev22.slimjar')
+ exclude(group: 'io.github.slimjar')
+}
+
+configurations.compileClasspath.extendsFrom(configurations.devBundle)
+configurations.runtimeClasspath.extendsFrom(configurations.runBundle)
+
+['compileClasspath', 'runtimeClasspath'].each { String name ->
+ configurations.named(name).configure {
+ resolutionStrategy.capabilitiesResolution.withCapability('org.lz4:lz4-java') {
+ selectHighestVersion()
+ }
+ }
+}
dependencies {
- implementation(project(':spi'))
+ implementation minecraft.dependency("net.minecraftforge:forge:${forgeVersion}")
+ compileOnly('org.slf4j:slf4j-api:2.0.17')
+ compileOnly(libs.spigot) {
+ transitive = false
+ }
+
+ List