diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index 2ca342b728af6d36f920e91179e5c8af01efe415..5ef0725c647311e55e045e201e76bfdacd358682 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -35,9 +35,6 @@ dependencies {
 tasks.compileKotlin<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
     logger.lifecycle("Configuring $name with version ${project.getKotlinPluginVersion()} in project ${project.name}")
     kotlinOptions {
-        val list = freeCompilerArgs.toMutableList()
-        list.add("-Xjsr305=strict")
-        freeCompilerArgs = list.toList()
         allWarningsAsErrors = false
         jvmTarget = props.getProperty("jdkVersion")
         languageVersion = props.getProperty("kotlinMajor")
@@ -48,9 +45,6 @@ tasks.compileKotlin<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
 tasks.compileTestKotlin<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
     logger.lifecycle("Configuring $name with version ${project.getKotlinPluginVersion()} in project ${project.name}")
     kotlinOptions {
-        val list = freeCompilerArgs.toMutableList()
-        list.add("-Xjsr305=strict")
-        freeCompilerArgs = list.toList()
         allWarningsAsErrors = false
         jvmTarget = props.getProperty("jdkVersion")
         languageVersion = props.getProperty("kotlinMajor")
diff --git a/buildSrc/src/main/kotlin/serverpackcreator.dokka-conventions.gradle.kts b/buildSrc/src/main/kotlin/serverpackcreator.dokka-conventions.gradle.kts
index 150635e99b345ee11005519db46726632c95b917..ded4be0d6d3899641a9a26c37affe6cd4a5c7b52 100644
--- a/buildSrc/src/main/kotlin/serverpackcreator.dokka-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/serverpackcreator.dokka-conventions.gradle.kts
@@ -11,7 +11,7 @@ repositories {
 }
 
 tasks.withType<DokkaTask>().configureEach {
-    outputDirectory.set(buildDir.resolve("dokka"))
+    outputDirectory.set(layout.buildDirectory.asFile.get().resolve("dokka"))
     dokkaSourceSets {
         configureEach {
             documentedVisibilities.set(
diff --git a/buildSrc/src/main/kotlin/serverpackcreator.kotlin-conventions.gradle.kts b/buildSrc/src/main/kotlin/serverpackcreator.kotlin-conventions.gradle.kts
index 35c45148fa8d3e666a491fcb7886b8294571e649..7a2ab7ed11418b803b825c2635ec8a4b1cfff945 100644
--- a/buildSrc/src/main/kotlin/serverpackcreator.kotlin-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/serverpackcreator.kotlin-conventions.gradle.kts
@@ -32,10 +32,6 @@ if (KOTLIN_VERSION != embeddedMajorAndMinorKotlinVersion) {
 tasks.compileKotlin<KotlinCompile> {
     logger.lifecycle("Configuring $name with version ${project.getKotlinPluginVersion()} in project ${project.name}")
     kotlinOptions {
-        @Suppress("SpellCheckingInspection")
-        val list = freeCompilerArgs.toMutableList()
-        list.add("-Xjsr305=strict")
-        freeCompilerArgs = list.toList()
         allWarningsAsErrors = false
         jvmTarget = JDK_VERSION
         languageVersion = KOTLIN_VERSION
@@ -46,10 +42,6 @@ tasks.compileKotlin<KotlinCompile> {
 tasks.compileTestKotlin<KotlinCompile> {
     logger.lifecycle("Configuring $name with version ${project.getKotlinPluginVersion()} in project ${project.name}")
     kotlinOptions {
-        @Suppress("SpellCheckingInspection")
-        val list = freeCompilerArgs.toMutableList()
-        list.add("-Xjsr305=strict")
-        freeCompilerArgs = list.toList()
         allWarningsAsErrors = false
         jvmTarget = JDK_VERSION
         languageVersion = KOTLIN_VERSION
diff --git a/buildSrc/src/main/kotlin/serverpackcreator.kotlin-multiplatform-conventions.gradle.kts b/buildSrc/src/main/kotlin/serverpackcreator.kotlin-multiplatform-conventions.gradle.kts
index 551f663c4fbe5d9f0f5d7c12b350f016aa83fd77..eeb4e2fb02e72b0172918d3afaeb7192b0616e01 100644
--- a/buildSrc/src/main/kotlin/serverpackcreator.kotlin-multiplatform-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/serverpackcreator.kotlin-multiplatform-conventions.gradle.kts
@@ -17,9 +17,6 @@ kotlin {
         compilations.all {
             kotlinOptions.allWarningsAsErrors = false
             kotlinOptions.apiVersion = KOTLIN_VERSION
-            val compilerArgs = kotlinOptions.freeCompilerArgs.toMutableList()
-            compilerArgs.add("-Xjsr305=strict")
-            kotlinOptions.freeCompilerArgs = compilerArgs.toList()
             kotlinOptions.jvmTarget = JDK_VERSION
             kotlinOptions.languageVersion = KOTLIN_VERSION
             jvmToolchain {
diff --git a/buildSrc/src/main/kotlin/serverpackcreator.quasar-conventions.gradle.kts b/buildSrc/src/main/kotlin/serverpackcreator.quasar-conventions.gradle.kts
index 5031717dcbb6f3c0349f847ec85ab7cea87d0f6f..cbd0b7b2d94b2e3112e33496418975b98f7e1696 100644
--- a/buildSrc/src/main/kotlin/serverpackcreator.quasar-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/serverpackcreator.quasar-conventions.gradle.kts
@@ -1,9 +1,4 @@
-import org.gradle.api.tasks.Copy
-import org.gradle.kotlin.dsl.register
-import org.gradle.kotlin.dsl.repositories
-import org.gradle.kotlin.dsl.version
 import org.siouan.frontendgradleplugin.infrastructure.gradle.RunNpm
-import java.io.File
 
 plugins {
     id("org.siouan.frontend-jdk11")
@@ -20,8 +15,6 @@ frontend {
     nodeInstallDirectory.set(project.layout.projectDirectory.dir("node"))
 
     yarnEnabled.set(false)
-    //yarnVersion = "1.22.11"
-    //yarnInstallDirectory = file("${projectDir}/frontend/yarn")
 
     cleanScript.set("run clean")
     assembleScript.set("run build")
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 249e5832f090a2944b7473328c07c9755baa3196..ccebba7710deaf9f98673a68957ea02138b60d0a 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 761b8f08857197ffb382c1479787317d74c88707..c30b486a89221c109fead1a0ef94f2879099d589 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
 networkTimeout=10000
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/gradlew.bat b/gradlew.bat
index 792ae651680701a65f0cffa6a14006149f08116f..6689b85beecde676054c39c2408085f41e6be6dc 100755
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -90,4 +90,3 @@ exit /b %EXIT_CODE%
 if "%OS%"=="Windows_NT" endlocal
 
 :omega
-
diff --git a/serverpackcreator-api/build.gradle.kts b/serverpackcreator-api/build.gradle.kts
index 0c3b1d3a11b6af5fda23d9049043898c4bc30929..d74ff9c5f1c77e52fb0e412b83afe0f748713bf4 100644
--- a/serverpackcreator-api/build.gradle.kts
+++ b/serverpackcreator-api/build.gradle.kts
@@ -9,7 +9,6 @@ repositories {
 }
 
 kotlin {
-    @Suppress("UNUSED_VARIABLE")
     sourceSets {
         val commonMain by getting {
             dependencies {
@@ -31,7 +30,7 @@ kotlin {
             dependencies {
                 implementation("org.jetbrains.kotlin:kotlin-bom")
                 implementation("org.jetbrains.kotlin:kotlin-stdlib")
-                implementation(files("$buildDir/resources/"))
+                implementation(files("${layout.buildDirectory.asFile.get()}/resources/"))
                 api("de.comahe.i18n4k:i18n4k-core-jvm:0.5.0")
                 api("com.electronwill.night-config:toml:3.6.6")
                 api("com.fasterxml.jackson.core:jackson-databind:2.15.0")
@@ -86,8 +85,8 @@ tasks.jvmProcessResources {
 //Fix resources missing in multiplatform jvm inDev run https://youtrack.jetbrains.com/issue/KTIJ-16582/Consumer-Kotlin-JVM-library-cannot-access-a-Kotlin-Multiplatform-JVM-target-resources-in-multi-module-Gradle-project
 tasks.register<Copy>("fixMissingResources") {
     dependsOn(tasks.jvmProcessResources)
-    from("$buildDir/processedResources/jvm/main")
-    into("$buildDir/resources/")
+    from("${layout.buildDirectory.asFile.get()}/processedResources/jvm/main")
+    into("${layout.buildDirectory.asFile.get()}/resources/")
 }
 
 tasks.dokkaHtml {
diff --git a/serverpackcreator-app/build.gradle.kts b/serverpackcreator-app/build.gradle.kts
index 29ad88ba715d44097ac1ffce702a72a7bf695a32..0c91d331da2c6ea6f36e9f79beb1042fcf517857 100644
--- a/serverpackcreator-app/build.gradle.kts
+++ b/serverpackcreator-app/build.gradle.kts
@@ -22,7 +22,7 @@ dependencies {
     api(project(":serverpackcreator-gui"))
     api(project(":serverpackcreator-web"))
     api(project(":serverpackcreator-updater"))
-    api("de.griefed:versionchecker:1.1.5")
+    api("de.griefed:versionchecker:1.1.9")
     testImplementation("org.junit.jupiter:junit-jupiter-api:5.9.3")
     testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.9.3")
 }
@@ -42,15 +42,15 @@ tasks.clean {
 }
 
 task("copyDependencies", Copy::class) {
-    from(configurations.runtimeClasspath).into("$buildDir/jars")
+    from(configurations.runtimeClasspath).into("${layout.buildDirectory.asFile.get()}/jars")
 }
 
 task("copyJar", Copy::class) {
-    from(tasks.jar).into("$buildDir/jars")
+    from(tasks.jar).into("${layout.buildDirectory.asFile.get()}/jars")
 }
 
 tasks.register<Delete>("cleanTmpPackager") {
-    delete("$buildDir/tmp/jpackager")
+    delete("${layout.buildDirectory.asFile.get()}/tmp/jpackager")
 }
 
 // https://docs.oracle.com/en/java/javase/14/docs/specs/man/jpackage.html
@@ -73,16 +73,16 @@ tasks.jpackage {
         ver
     }
     copyright = "Copyright (C) ${Calendar.getInstance().get(Calendar.YEAR)} Griefed"
-    destination = "$buildDir/dist"
+    destination = "${layout.buildDirectory.asFile.get()}/dist"
     icon = File(packagerResources, "app.png").path
-    input = "$buildDir/jars"
+    input = "${layout.buildDirectory.asFile.get()}/jars"
     javaOptions = listOf("-Dfile.encoding=UTF-8", "-Dlog4j2.formatMsgNoLookups=true")
     licenseFile = parent.path + "/licenses/LICENSE-AGREEMENT"
     mainJar = tasks.jar.get().archiveFileName.get()
     mainClass = "de.griefed.serverpackcreator.app.ServerPackCreatorKt"
     resourceDir = packagerResources.path
     runtimeImage = System.getProperty("java.home")
-    temp = "$buildDir/tmp/jpackager"
+    temp = "${layout.buildDirectory.asFile.get()}/tmp/jpackager"
     vendor = "griefed.de"
     verbose = true
     mac {