diff --git a/Kotlin.iml b/Kotlin.iml
new file mode 100644
index 0000000..e986bae
--- /dev/null
+++ b/Kotlin.iml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4">
+  <component name="SonarLintModuleSettings">
+    <option name="uniqueId" value="8c2c4858-5d2c-4d5f-9d3b-a2599ecfcc71" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/Kotlin/build.gradle.kts b/Kotlin/build.gradle.kts
new file mode 100644
index 0000000..efee837
--- /dev/null
+++ b/Kotlin/build.gradle.kts
@@ -0,0 +1,15 @@
+plugins {
+    kotlin("jvm") version "1.9.21"
+}
+
+repositories {
+    mavenCentral()
+}
+
+dependencies {
+    compileOnly(rootProject)
+}
+
+kotlin {
+    jvmToolchain(17)
+}
\ No newline at end of file
diff --git a/Kotlin/src/main/kotlin/me/outspending/biomesapi/kotlin/Types.kt b/Kotlin/src/main/kotlin/me/outspending/biomesapi/kotlin/Types.kt
new file mode 100644
index 0000000..87c8fce
--- /dev/null
+++ b/Kotlin/src/main/kotlin/me/outspending/biomesapi/kotlin/Types.kt
@@ -0,0 +1,12 @@
+package me.outspending.biomesapi.kotlin
+
+import me.outspending.biomesapi.BiomeUpdaterImpl
+import me.outspending.biomesapi.biome.CustomBiome
+import me.outspending.biomesapi.biome.CustomBiomeImpl
+
+/**
+ * Type aliases for the BiomesAPI Kotlin wrapper.
+ */
+typealias CustomBiome = CustomBiomeImpl
+typealias CustomBiomeBuilder = CustomBiome.Builder
+typealias BiomeUpdater = BiomeUpdaterImpl
\ No newline at end of file
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 2b92f59..6b21d51 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -1,3 +1,6 @@
+plugins {
+    id("org.gradle.toolchains.foojay-resolver-convention") version "0.5.0"
+}
 rootProject.name = "BiomesAPI"
 
 include("NMS:Wrapper")
@@ -5,4 +8,5 @@ include("NMS:1.19_R2")
 include("NMS:1.19_R3")
 include("NMS:1.20_R1")
 include("NMS:1.20_R2")
-include("NMS:1.20_R3")
\ No newline at end of file
+include("NMS:1.20_R3")
+include("Kotlin")