diff --git a/build.gradle b/build.gradle
index f324caf..eed3beb 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,68 +1,37 @@
 plugins {
-    id 'com.github.johnrengelman.shadow' version '8.1.1'
     id 'java'
 }
 
-group = 'eu.mhsl.craftattack'
-version = '1.0'
+allprojects {
+    group = 'de.mhsl.craftattack'
+    version = '1.0.0'
 
-repositories {
-    mavenCentral()
-    maven {
-        name = "papermc-repo"
-        url = "https://repo.papermc.io/repository/maven-public/"
-    }
-    maven {
-        name = "sonatype"
-        url = "https://oss.sonatype.org/content/groups/public/"
-    }
-    maven {
-        url = uri("https://repo.opencollab.dev/main/")
+    repositories {
+        mavenCentral()
+        maven {
+            name = "papermc-repo"
+            url = "https://repo.papermc.io/repository/maven-public/"
+        }
+        maven {
+            name = "sonatype"
+            url = "https://oss.sonatype.org/content/groups/public/"
+        }
+        maven {
+            url = uri("https://repo.opencollab.dev/main/")
+        }
     }
 }
 
-dependencies {
-    compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT'
-    compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT'
-    implementation 'org.apache.httpcomponents:httpclient:4.5.14'
-    implementation 'com.sparkjava:spark-core:2.9.4'
-    implementation 'org.reflections:reflections:0.10.2'
-}
+subprojects {
+    apply plugin: 'java'
 
-def targetJavaVersion = 21
-java {
-    def javaVersion = JavaVersion.toVersion(targetJavaVersion)
-    sourceCompatibility = javaVersion
-    targetCompatibility = javaVersion
-    if (JavaVersion.current() < javaVersion) {
-        toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
+    java {
+        toolchain {
+            languageVersion = JavaLanguageVersion.of(21)
+        }
     }
-}
 
-tasks.withType(JavaCompile).configureEach {
-    if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
-        options.release = targetJavaVersion
+    tasks.withType(JavaCompile).configureEach {
+        options.release = 21
     }
-}
-
-configurations {
-    shadowImplementation.extendsFrom implementation
-}
-
-shadowJar {
-    configurations = [project.configurations.shadowImplementation]
-}
-
-tasks.register('copyJarToServer', Exec) {
-    dependsOn shadowJar
-    mustRunAfter shadowJar
-
-    commandLine 'scp', 'build/libs/spawn-1.0-all.jar', 'root@10.20.6.1:/home/minecraft/server/plugins'
-}
-
-tasks.register('copyJarToTestServer', Exec) {
-    dependsOn shadowJar
-    mustRunAfter shadowJar
-
-    commandLine 'cp', 'build/libs/spawn-1.0-all.jar', '/home/elias/Dokumente/mcTestServer/plugins/spawn-1.0-all.jar'
-}
+}
\ No newline at end of file
diff --git a/common/build.gradle b/common/build.gradle
new file mode 100644
index 0000000..b831872
--- /dev/null
+++ b/common/build.gradle
@@ -0,0 +1,33 @@
+plugins {
+    id 'java'
+    id("com.gradleup.shadow") version "8.3.5"
+}
+
+dependencies {
+    implementation project(':core')
+
+    compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT'
+    compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT'
+    implementation 'org.apache.httpcomponents:httpclient:4.5.14'
+    implementation 'com.sparkjava:spark-core:2.9.4'
+}
+
+configurations {
+    shadowImplementation.extendsFrom implementation
+}
+
+shadowJar {
+    configurations = [project.configurations.shadowImplementation]
+    archiveClassifier.set('')
+
+    relocate 'org.apache.httpcomponents', 'eu.mhsl.lib.shadow.httpclient'
+    relocate 'com.sparkjava', 'eu.mhsl.lib.shadow.spark-core'
+
+    mergeServiceFiles()
+}
+
+jar {
+    enabled = false
+}
+
+build.dependsOn shadowJar
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/AntiSignEdit.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/AntiSignEdit.java
similarity index 83%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/AntiSignEdit.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/AntiSignEdit.java
index f490848..2a8aac6 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/AntiSignEdit.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/AntiSignEdit.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.antiSignEdit;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.antiSignEdit;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/OnSignEditListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/OnSignEditListener.java
similarity index 79%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/OnSignEditListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/OnSignEditListener.java
index 5196b03..82d0386 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/OnSignEditListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/OnSignEditListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.antiSignEdit;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.antiSignEdit;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import io.papermc.paper.event.player.PlayerOpenSignEvent;
 import org.bukkit.block.sign.SignSide;
 import org.bukkit.event.EventHandler;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/SignEditSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/SignEditSetting.java
similarity index 76%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/SignEditSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/SignEditSetting.java
index e66988c..d56c3a4 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/antiSignEdit/SignEditSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/antiSignEdit/SignEditSetting.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.antiSignEdit;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.antiSignEdit;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting;
 import org.bukkit.Material;
 import org.bukkit.NamespacedKey;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/AutoShulker.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulker.java
similarity index 89%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/AutoShulker.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulker.java
index 8dcd1e4..a6594fb 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/AutoShulker.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulker.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.autoShulker;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.autoShulker;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.Material;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/AutoShulkerSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulkerSetting.java
similarity index 76%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/AutoShulkerSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulkerSetting.java
index 799b00b..010ae53 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/AutoShulkerSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/AutoShulkerSetting.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.autoShulker;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.autoShulker;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting;
 import org.bukkit.Material;
 import org.bukkit.NamespacedKey;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/ItemPickupListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/ItemPickupListener.java
similarity index 70%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/ItemPickupListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/ItemPickupListener.java
index 2775dc5..f84704f 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/autoShulker/ItemPickupListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/autoShulker/ItemPickupListener.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.autoShulker;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.autoShulker;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting;
 import org.bukkit.entity.Player;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.entity.EntityPickupItemEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/Advancements.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/Advancements.java
similarity index 83%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/Advancements.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/Advancements.java
index 96c7c31..ee12a66 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/Advancements.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/Advancements.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements;
 
 public class Advancements {
     public static String searchTrouble = "search_trouble";
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java
similarity index 69%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java
index 58bb76b..059ab3c 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/ApplyPendingAdvancementsListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerJoinEvent;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/CustomAdvancements.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancements.java
similarity index 93%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/CustomAdvancements.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancements.java
index f7ef1b8..32a4e76 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/CustomAdvancements.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancements.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
 import org.bukkit.Bukkit;
 import org.bukkit.NamespacedKey;
 import org.bukkit.advancement.Advancement;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java
similarity index 92%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java
index 3875a41..6f15ea4 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/customAdvancements/CustomAdvancementsListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import net.kyori.adventure.text.Component;
 import org.bukkit.Material;
 import org.bukkit.entity.Player;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/DoubleDoor.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoor.java
similarity index 90%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/DoubleDoor.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoor.java
index b759456..de20645 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/DoubleDoor.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoor.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.doubleDoor;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.doubleDoor;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import org.bukkit.block.Block;
 import org.bukkit.block.BlockFace;
 import org.bukkit.block.data.BlockData;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/DoubleDoorSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoorSetting.java
similarity index 61%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/DoubleDoorSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoorSetting.java
index 8c87d46..7c8a479 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/DoubleDoorSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/DoubleDoorSetting.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.doubleDoor;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.doubleDoor;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.BoolSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.BoolSetting;
 import org.bukkit.Material;
 
 public class DoubleDoorSetting extends BoolSetting implements CategorizedSetting {
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/OnDoorInteractListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/OnDoorInteractListener.java
similarity index 81%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/OnDoorInteractListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/OnDoorInteractListener.java
index 031b202..beb66d6 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/doubleDoor/OnDoorInteractListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/doubleDoor/OnDoorInteractListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.doubleDoor;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.doubleDoor;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import org.bukkit.Material;
 import org.bukkit.block.Block;
 import org.bukkit.event.EventHandler;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/fleischerchest/Fleischerchest.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/Fleischerchest.java
similarity index 84%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/fleischerchest/Fleischerchest.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/Fleischerchest.java
index e744fba..59e55b8 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/fleischerchest/Fleischerchest.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/Fleischerchest.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.fleischerchest;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.fleischerchest;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.Appliance;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.TextColor;
 import org.bukkit.event.Listener;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java
similarity index 80%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java
index 61ce722..0d9f21a 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/fleischerchest/FleischerchestCraftItemListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.fleischerchest;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.fleischerchest;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.Material;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.inventory.PrepareItemCraftEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/glowingBerries/GlowingBerries.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/GlowingBerries.java
similarity index 88%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/glowingBerries/GlowingBerries.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/GlowingBerries.java
index d4b51bc..f367624 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/glowingBerries/GlowingBerries.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/GlowingBerries.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.glowingBerries;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.glowingBerries;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.Appliance;
 import net.kyori.adventure.sound.Sound;
 import net.kyori.adventure.util.Ticks;
 import org.bukkit.entity.Player;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/glowingBerries/OnBerryEaten.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/OnBerryEaten.java
similarity index 74%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/glowingBerries/OnBerryEaten.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/OnBerryEaten.java
index 73cd323..4141a55 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/glowingBerries/OnBerryEaten.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/glowingBerries/OnBerryEaten.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.glowingBerries;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.glowingBerries;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.Material;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerItemConsumeEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefill.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefill.java
similarity index 87%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefill.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefill.java
index a5a34d1..d1aed2a 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefill.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefill.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.hotbarRefill;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.hotbarRefill;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.Bukkit;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefillListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillListener.java
similarity index 88%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefillListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillListener.java
index f279a59..a807650 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefillListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.hotbarRefill;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.hotbarRefill;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import org.bukkit.Material;
 import org.bukkit.entity.Player;
 import org.bukkit.event.EventHandler;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java
similarity index 71%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java
index b0d2398..d1ea474 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/hotbarRefill/HotbarRefillSetting.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.hotbarRefill;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.hotbarRefill;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.MultiBoolSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.MultiBoolSetting;
 import org.bukkit.Material;
 
 public class HotbarRefillSetting extends MultiBoolSetting<HotbarRefillSetting.HotbarReplaceConfig> implements CategorizedSetting {
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoor.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoor.java
similarity index 87%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoor.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoor.java
index cd94f2e..d1d6f36 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoor.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoor.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.knockDoor;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.knockDoor;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting;
 import org.bukkit.*;
 import org.bukkit.block.Block;
 import org.bukkit.entity.Player;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoorListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorListener.java
similarity index 81%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoorListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorListener.java
index 9b063bd..ca48d09 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoorListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.knockDoor;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.knockDoor;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.GameMode;
 import org.bukkit.block.Block;
 import org.bukkit.block.data.type.Door;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoorSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorSetting.java
similarity index 75%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoorSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorSetting.java
index 21c41f1..c848901 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/knockDoor/KnockDoorSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/knockDoor/KnockDoorSetting.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.knockDoor;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.knockDoor;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting;
 import org.bukkit.Material;
 import org.bukkit.NamespacedKey;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java
similarity index 66%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java
index 3f42709..959be74 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawChangeNotPermitted.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed;
 
 class OutlawChangeNotPermitted extends Exception {
     public OutlawChangeNotPermitted(String message) {
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/Outlawed.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/Outlawed.java
similarity index 90%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/Outlawed.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/Outlawed.java
index 2708b5f..8b49439 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/Outlawed.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/Outlawed.java
@@ -1,12 +1,12 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName.DisplayName;
-import eu.mhsl.craftattack.spawn.appliances.tooling.whitelist.Whitelist;
-import eu.mhsl.craftattack.spawn.config.Configuration;
-import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName;
+import eu.mhsl.craftattack.spawn.common.appliances.tooling.whitelist.Whitelist;
+import eu.mhsl.craftattack.core.config.Configuration;
+import eu.mhsl.craftattack.core.util.text.DisconnectInfo;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.event.HoverEvent;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawedCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedCommand.java
similarity index 87%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawedCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedCommand.java
index 0834785..4c8fc3b 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawedCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawedReminderListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedReminderListener.java
similarity index 76%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawedReminderListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedReminderListener.java
index 394a966..3ab5da3 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/outlawed/OutlawedReminderListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/outlawed/OutlawedReminderListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerJoinEvent;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java
similarity index 78%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java
index 69033aa..aedc4e6 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/OnCraftingTableUseListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.portableCrafting;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.portableCrafting;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.Material;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.block.Action;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/PortableCrafting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCrafting.java
similarity index 74%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/PortableCrafting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCrafting.java
index 2b91e07..b60a2fc 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/PortableCrafting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCrafting.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.portableCrafting;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.portableCrafting;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import org.bukkit.entity.Player;
 import org.bukkit.event.Listener;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/PortableCraftingSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCraftingSetting.java
similarity index 62%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/PortableCraftingSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCraftingSetting.java
index 8cd7e77..bfb19ca 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/portableCrafting/PortableCraftingSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/portableCrafting/PortableCraftingSetting.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.portableCrafting;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.portableCrafting;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.BoolSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.BoolSetting;
 import org.bukkit.Material;
 
 public class PortableCraftingSetting extends BoolSetting implements CategorizedSetting {
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/snowballKnockback/SnowballKnockback.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockback.java
similarity index 81%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/snowballKnockback/SnowballKnockback.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockback.java
index 0c92ea2..6e0b552 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/snowballKnockback/SnowballKnockback.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockback.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.snowballKnockback;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.snowballKnockback;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.Appliance;
 import org.bukkit.entity.Entity;
 import org.bukkit.entity.LivingEntity;
 import org.bukkit.event.Listener;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java
similarity index 82%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java
index fe692fa..42996a1 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/gameplay/snowballKnockback/SnowballKnockbackListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.gameplay.snowballKnockback;
+package eu.mhsl.craftattack.spawn.common.appliances.gameplay.snowballKnockback;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.entity.Entity;
 import org.bukkit.entity.EntityType;
 import org.bukkit.entity.LivingEntity;
diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/Debug.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/Debug.java
new file mode 100644
index 0000000..bbf0510
--- /dev/null
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/Debug.java
@@ -0,0 +1,20 @@
+package eu.mhsl.craftattack.spawn.common.appliances.internal.debug;
+
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command.AppliancesCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command.UserInfoCommand;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.List;
+
+public class Debug extends Appliance {
+    @Override
+    @NotNull
+    protected List<ApplianceCommand<?>> commands() {
+        return List.of(
+            new UserInfoCommand(),
+            new AppliancesCommand()
+        );
+    }
+}
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/command/AppliancesCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/AppliancesCommand.java
similarity index 91%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/command/AppliancesCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/AppliancesCommand.java
index 3a81c07..213fcc6 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/command/AppliancesCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/AppliancesCommand.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.internal.debug.command;
+package eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.internal.debug.Debug;
-import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.Debug;
+import eu.mhsl.craftattack.core.util.text.ComponentUtil;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.ComponentBuilder;
 import net.kyori.adventure.text.TextComponent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/command/UserInfoCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/UserInfoCommand.java
similarity index 93%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/command/UserInfoCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/UserInfoCommand.java
index fe33aa6..8bdf75b 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/command/UserInfoCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/debug/command/UserInfoCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.internal.debug.command;
+package eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.internal.debug.Debug;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.Debug;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.event.ClickEvent;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/titleClear/TitleClear.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClear.java
similarity index 76%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/titleClear/TitleClear.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClear.java
index 91c58ca..274fa86 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/titleClear/TitleClear.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClear.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.internal.titleClear;
+package eu.mhsl.craftattack.spawn.common.appliances.internal.titleClear;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.Appliance;
 import org.bukkit.entity.Player;
 import org.bukkit.event.Listener;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/titleClear/TitleClearListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClearListener.java
similarity index 68%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/titleClear/TitleClearListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClearListener.java
index 1841aed..f655f4f 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/titleClear/TitleClearListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/internal/titleClear/TitleClearListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.internal.titleClear;
+package eu.mhsl.craftattack.spawn.common.appliances.internal.titleClear;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerJoinEvent;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/adminMarker/AdminMarker.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java
similarity index 75%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/adminMarker/AdminMarker.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java
index acc5106..582097f 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/adminMarker/AdminMarker.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/adminMarker/AdminMarker.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.adminMarker;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.adminMarker;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.Appliance;
 import net.kyori.adventure.text.format.TextColor;
 import org.bukkit.Color;
 import org.bukkit.entity.Player;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/afkTag/AfkResetListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkResetListener.java
similarity index 86%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/afkTag/AfkResetListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkResetListener.java
index 05906a4..08ca667 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/afkTag/AfkResetListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkResetListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.afkTag;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.afkTag;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import io.papermc.paper.event.player.AsyncChatEvent;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerInteractEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/afkTag/AfkTag.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkTag.java
similarity index 90%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/afkTag/AfkTag.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkTag.java
index dd0b0ea..4994e96 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/afkTag/AfkTag.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/afkTag/AfkTag.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.afkTag;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.afkTag;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName.DisplayName;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.event.HoverEvent;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMention.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMention.java
similarity index 87%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMention.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMention.java
index 8c08711..4290931 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMention.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMention.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMention;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMention;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import net.kyori.adventure.sound.Sound;
 import org.bukkit.Bukkit;
 import org.bukkit.OfflinePlayer;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMentionListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionListener.java
similarity index 83%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMentionListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionListener.java
index 2aeef66..86c6ef1 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMentionListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionListener.java
@@ -1,10 +1,10 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMention;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMention;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages.ChatMessages;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages.ChatMessages;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.util.text.ComponentUtil;
 import io.papermc.paper.event.player.AsyncChatDecorateEvent;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMentionSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionSetting.java
similarity index 71%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMentionSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionSetting.java
index 5cbf186..bba73b4 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMention/ChatMentionSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMention/ChatMentionSetting.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMention;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMention;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.MultiBoolSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.MultiBoolSetting;
 import org.bukkit.Material;
 
 public class ChatMentionSetting extends MultiBoolSetting<ChatMentionSetting.ChatMentionConfig> implements CategorizedSetting {
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ChatMessages.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessages.java
similarity index 84%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ChatMessages.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessages.java
index f2d24f4..55c8c62 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ChatMessages.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessages.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.event.ClickEvent;
 import net.kyori.adventure.text.event.HoverEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ChatMessagesListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java
similarity index 90%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ChatMessagesListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java
index 29ecf21..5773bc8 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ChatMessagesListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ChatMessagesListener.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.util.IteratorUtil;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.util.IteratorUtil;
 import io.papermc.paper.event.player.AsyncChatEvent;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java
similarity index 62%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java
index 2e3b68b..272d491 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/chatMessages/ShowJoinAndLeaveMessagesSetting.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.BoolSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.BoolSetting;
 import org.bukkit.Material;
 
 public class ShowJoinAndLeaveMessagesSetting extends BoolSetting implements CategorizedSetting {
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/displayName/DisplayName.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java
similarity index 77%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/displayName/DisplayName.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java
index 5c7df4e..da1766c 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/displayName/DisplayName.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayName.java
@@ -1,14 +1,14 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed.Outlawed;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.adminMarker.AdminMarker;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.afkTag.AfkTag;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.sleepTag.SleepTag;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.yearRank.YearRank;
-import eu.mhsl.craftattack.spawn.util.server.Floodgate;
-import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed.Outlawed;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.adminMarker.AdminMarker;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.afkTag.AfkTag;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.sleepTag.SleepTag;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.yearRank.YearRank;
+import eu.mhsl.craftattack.core.util.server.Floodgate;
+import eu.mhsl.craftattack.core.util.text.ComponentUtil;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.ComponentBuilder;
 import net.kyori.adventure.text.TextComponent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java
similarity index 72%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java
index b394b05..c4ab190 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/displayName/DisplayNameUpdateListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.EventPriority;
 import org.bukkit.event.player.PlayerJoinEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/ApplyPendingRewardsListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/ApplyPendingRewardsListener.java
similarity index 69%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/ApplyPendingRewardsListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/ApplyPendingRewardsListener.java
index fae533b..6b6462b 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/ApplyPendingRewardsListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/ApplyPendingRewardsListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerJoinEvent;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/Event.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/Event.java
similarity index 88%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/Event.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/Event.java
index 23cefc0..d8814d3 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/Event.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/Event.java
@@ -1,22 +1,22 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.api.client.ReqResp;
-import eu.mhsl.craftattack.spawn.api.client.repositories.EventRepository;
-import eu.mhsl.craftattack.spawn.api.server.HttpServer;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements.Advancements;
-import eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements.CustomAdvancements;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command.*;
-import eu.mhsl.craftattack.spawn.util.IteratorUtil;
-import eu.mhsl.craftattack.spawn.util.api.HttpStatus;
-import eu.mhsl.craftattack.spawn.util.entity.DisplayVillager;
-import eu.mhsl.craftattack.spawn.util.listener.DismissInventoryOpenFromHolder;
-import eu.mhsl.craftattack.spawn.util.listener.PlayerInteractAtEntityEventListener;
-import eu.mhsl.craftattack.spawn.util.server.PluginMessage;
-import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
-import eu.mhsl.craftattack.spawn.util.text.Countdown;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.api.client.ReqResp;
+import eu.mhsl.craftattack.core.api.client.repositories.EventRepository;
+import eu.mhsl.craftattack.core.api.server.HttpServer;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements.Advancements;
+import eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements.CustomAdvancements;
+import eu.mhsl.craftattack.core.util.IteratorUtil;
+import eu.mhsl.craftattack.core.util.api.HttpStatus;
+import eu.mhsl.craftattack.core.util.entity.DisplayVillager;
+import eu.mhsl.craftattack.core.util.listener.DismissInventoryOpenFromHolder;
+import eu.mhsl.craftattack.core.util.listener.PlayerInteractAtEntityEventListener;
+import eu.mhsl.craftattack.core.util.server.PluginMessage;
+import eu.mhsl.craftattack.core.util.text.ComponentUtil;
+import eu.mhsl.craftattack.core.util.text.Countdown;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command.*;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.Bukkit;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventAdvertiseCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventAdvertiseCommand.java
similarity index 68%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventAdvertiseCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventAdvertiseCommand.java
index dcf8eeb..a372eee 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventAdvertiseCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventAdvertiseCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventCommand.java
similarity index 68%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventCommand.java
index 7703ddb..5d2f51a 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventEndSessionCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventEndSessionCommand.java
similarity index 68%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventEndSessionCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventEndSessionCommand.java
index 838b06a..af2a8e3 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventEndSessionCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventEndSessionCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventOpenSessionCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventOpenSessionCommand.java
similarity index 75%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventOpenSessionCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventOpenSessionCommand.java
index bbaf9a1..3f50814 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/EventOpenSessionCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/EventOpenSessionCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java
similarity index 70%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java
index 5c94380..7e10d5d 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/event/command/MoveEventVillagerCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.event.Event;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/Feedback.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/Feedback.java
similarity index 86%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/Feedback.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/Feedback.java
index a0caef7..c01442b 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/Feedback.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/Feedback.java
@@ -1,11 +1,11 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.feedback;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.feedback;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.api.client.ReqResp;
-import eu.mhsl.craftattack.spawn.api.client.repositories.FeedbackRepository;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.util.api.HttpStatus;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.api.client.ReqResp;
+import eu.mhsl.craftattack.core.api.client.repositories.FeedbackRepository;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.util.api.HttpStatus;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.ComponentBuilder;
 import net.kyori.adventure.text.TextComponent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/FeedbackCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/FeedbackCommand.java
similarity index 77%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/FeedbackCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/FeedbackCommand.java
index 9bb77d9..8259389 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/FeedbackCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/FeedbackCommand.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.feedback;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.feedback;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.util.text.ComponentUtil;
 import org.bukkit.Bukkit;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/RequestFeedbackCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/RequestFeedbackCommand.java
similarity index 81%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/RequestFeedbackCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/RequestFeedbackCommand.java
index 7baf8ab..f7ccb6f 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/feedback/RequestFeedbackCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/feedback/RequestFeedbackCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.feedback;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.feedback;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.Bukkit;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/Help.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/Help.java
new file mode 100644
index 0000000..e3969d3
--- /dev/null
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/Help.java
@@ -0,0 +1,28 @@
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help;
+
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.DiscordCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.HelpCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.SpawnCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.TeamspeakCommand;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.List;
+
+public class Help extends Appliance {
+    public Help() {
+        super("help");
+    }
+
+    @Override
+    @NotNull
+    protected List<ApplianceCommand<?>> commands() {
+        return List.of(
+            new HelpCommand(),
+            new SpawnCommand(),
+            new TeamspeakCommand(),
+            new DiscordCommand()
+        );
+    }
+}
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/DiscordCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/DiscordCommand.java
similarity index 80%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/DiscordCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/DiscordCommand.java
index 169f981..f54a4c7 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/DiscordCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/DiscordCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.Help;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.event.ClickEvent;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/HelpCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/HelpCommand.java
similarity index 80%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/HelpCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/HelpCommand.java
index b4cd910..fa6901d 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/HelpCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/HelpCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.Help;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/SpawnCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/SpawnCommand.java
similarity index 80%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/SpawnCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/SpawnCommand.java
index 813ab77..e9cc2f0 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/SpawnCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/SpawnCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.Help;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/TeamspeakCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/TeamspeakCommand.java
similarity index 84%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/TeamspeakCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/TeamspeakCommand.java
index 952cd1e..6d2bd71 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/command/TeamspeakCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/help/command/TeamspeakCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.Help;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/Bar.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/Bar.java
similarity index 94%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/Bar.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/Bar.java
index 2b67577..71a46cc 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/Bar.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/Bar.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars;
 
-import eu.mhsl.craftattack.spawn.Main;
+import eu.mhsl.craftattack.core.Main;
 import net.kyori.adventure.bossbar.BossBar;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.util.Ticks;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/InfoBarCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBarCommand.java
similarity index 90%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/InfoBarCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBarCommand.java
index a631496..e00bc8b 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/InfoBarCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBarCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/InfoBars.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBars.java
similarity index 85%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/InfoBars.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBars.java
index eb2c304..682665e 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/InfoBars.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/InfoBars.java
@@ -1,11 +1,11 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars.MsptBar;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars.PlayerCounterBar;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars.TpsBar;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars.MsptBar;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars.PlayerCounterBar;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars.TpsBar;
 import org.bukkit.NamespacedKey;
 import org.bukkit.entity.Player;
 import org.bukkit.event.Listener;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java
similarity index 68%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java
index f8513fd..5898d4e 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/ShowPreviousBarsListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerJoinEvent;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/MsptBar.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/MsptBar.java
similarity index 84%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/MsptBar.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/MsptBar.java
index 2682676..c764793 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/MsptBar.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/MsptBar.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.Bar;
-import eu.mhsl.craftattack.spawn.util.statistics.ServerMonitor;
-import eu.mhsl.craftattack.spawn.util.text.ColorUtil;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.Bar;
+import eu.mhsl.craftattack.core.util.statistics.ServerMonitor;
+import eu.mhsl.craftattack.core.util.text.ColorUtil;
 import net.kyori.adventure.bossbar.BossBar;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java
similarity index 79%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java
index 550ba13..8daf9a1 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/PlayerCounterBar.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.Bar;
-import eu.mhsl.craftattack.spawn.appliances.tooling.playerlimit.PlayerLimit;
-import eu.mhsl.craftattack.spawn.util.text.ColorUtil;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.Bar;
+import eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit.PlayerLimit;
+import eu.mhsl.craftattack.core.util.text.ColorUtil;
 import net.kyori.adventure.bossbar.BossBar;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.TextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/TpsBar.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/TpsBar.java
similarity index 86%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/TpsBar.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/TpsBar.java
index 8c88b50..ea3d71d 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/infoBars/bars/TpsBar.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/infoBars/bars/TpsBar.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.Bar;
-import eu.mhsl.craftattack.spawn.util.text.ColorUtil;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.Bar;
+import eu.mhsl.craftattack.core.util.text.ColorUtil;
 import net.kyori.adventure.bossbar.BossBar;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/optionLinks/OptionLinks.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/OptionLinks.java
similarity index 93%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/optionLinks/OptionLinks.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/OptionLinks.java
index 44767ac..86bdbbb 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/optionLinks/OptionLinks.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/OptionLinks.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.optionLinks;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.optionLinks;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.Bukkit;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/optionLinks/UpdateLinksListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/UpdateLinksListener.java
similarity index 67%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/optionLinks/UpdateLinksListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/UpdateLinksListener.java
index 40cc169..fc33089 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/optionLinks/UpdateLinksListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/optionLinks/UpdateLinksListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.optionLinks;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.optionLinks;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerJoinEvent;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/ChangePackCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ChangePackCommand.java
similarity index 80%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/ChangePackCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ChangePackCommand.java
index c7a6e51..ccf0a97 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/ChangePackCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ChangePackCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackConfiguration.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfiguration.java
similarity index 93%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackConfiguration.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfiguration.java
index 5ea748b..d73575b 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackConfiguration.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfiguration.java
@@ -1,10 +1,10 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import eu.mhsl.craftattack.spawn.appliance.CachedApplianceSupplier;
-import eu.mhsl.craftattack.spawn.util.inventory.HeadBuilder;
-import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
+import eu.mhsl.craftattack.core.appliance.CachedApplianceSupplier;
+import eu.mhsl.craftattack.core.util.inventory.HeadBuilder;
+import eu.mhsl.craftattack.core.util.text.ComponentUtil;
 import net.kyori.adventure.resource.ResourcePackInfo;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackConfigurationInventory.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfigurationInventory.java
similarity index 94%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackConfigurationInventory.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfigurationInventory.java
index 4c4e807..81dc788 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackConfigurationInventory.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackConfigurationInventory.java
@@ -1,11 +1,11 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.CachedApplianceSupplier;
-import eu.mhsl.craftattack.spawn.util.IteratorUtil;
-import eu.mhsl.craftattack.spawn.util.inventory.ItemBuilder;
-import eu.mhsl.craftattack.spawn.util.inventory.PlaceholderItems;
-import eu.mhsl.craftattack.spawn.util.world.InteractSounds;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.CachedApplianceSupplier;
+import eu.mhsl.craftattack.core.util.IteratorUtil;
+import eu.mhsl.craftattack.core.util.inventory.ItemBuilder;
+import eu.mhsl.craftattack.core.util.inventory.PlaceholderItems;
+import eu.mhsl.craftattack.core.util.world.InteractSounds;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.Bukkit;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackSelect.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelect.java
similarity index 89%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackSelect.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelect.java
index 7093524..aecb902 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackSelect.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelect.java
@@ -1,12 +1,12 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners.ClickPackInventoryListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners.ClosePackInventoryListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners.SetPacksOnJoinListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners.ClickPackInventoryListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners.ClosePackInventoryListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners.SetPacksOnJoinListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import net.kyori.adventure.resource.ResourcePackInfo;
 import net.kyori.adventure.resource.ResourcePackRequest;
 import net.kyori.adventure.text.Component;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackSelectSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelectSetting.java
similarity index 67%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackSelectSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelectSetting.java
index c7338c7..0cb1931 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/PackSelectSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/PackSelectSetting.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.ActionSetting;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.ActionSetting;
 import org.bukkit.Material;
 import org.bukkit.entity.Player;
 import org.bukkit.event.inventory.ClickType;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java
similarity index 95%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java
index 36675c8..482362e 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/ResourcePackInfoFactory.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect;
 
-import eu.mhsl.craftattack.spawn.Main;
+import eu.mhsl.craftattack.core.Main;
 import net.kyori.adventure.resource.ResourcePackInfo;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java
similarity index 73%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java
index 4070f03..199640a 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClickPackInventoryListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.PackSelect;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.PackSelect;
 import org.bukkit.entity.Player;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.inventory.InventoryClickEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java
similarity index 68%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java
index 506ae14..25b681c 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/ClosePackInventoryListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.PackSelect;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.PackSelect;
 import org.bukkit.entity.Player;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.inventory.InventoryCloseEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java
similarity index 63%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java
index 3eb3046..f2e5ab6 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/packSelect/listeners/SetPacksOnJoinListener.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.listeners;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.PackSelect;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.packSelect.PackSelect;
 import org.bukkit.Bukkit;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerJoinEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/playtime/Playtime.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/Playtime.java
similarity index 81%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/playtime/Playtime.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/Playtime.java
index 161d25d..57018fb 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/playtime/Playtime.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/Playtime.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.playtime;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.playtime;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.util.text.DataSizeConverter;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.util.text.DataSizeConverter;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import net.kyori.adventure.util.Ticks;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/playtime/PlaytimeCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/PlaytimeCommand.java
similarity index 86%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/playtime/PlaytimeCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/PlaytimeCommand.java
index 323759c..3bfbd02 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/playtime/PlaytimeCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/playtime/PlaytimeCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.playtime;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.playtime;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.Bukkit;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/PrivateMessage.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/PrivateMessage.java
similarity index 93%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/PrivateMessage.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/PrivateMessage.java
index c3a4e35..2e305e5 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/PrivateMessage.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/PrivateMessage.java
@@ -1,11 +1,11 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages.ChatMessages;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.commands.PrivateMessageCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.commands.PrivateReplyCommand;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages.ChatMessages;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands.PrivateMessageCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands.PrivateReplyCommand;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.ComponentBuilder;
 import net.kyori.adventure.text.TextComponent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java
similarity index 69%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java
index 47d11fe..39766fd 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateMessageCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.commands;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.PrivateMessage;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.PrivateMessage;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java
similarity index 68%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java
index f018f0b..5c5a0d8 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/privateMessage/commands/PrivateReplyCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.commands;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.PrivateMessage;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.PrivateMessage;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/Report.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java
similarity index 95%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/Report.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java
index 7964e90..00f560a 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/Report.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/Report.java
@@ -1,10 +1,10 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.report;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.api.client.ReqResp;
-import eu.mhsl.craftattack.spawn.api.client.repositories.ReportRepository;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.api.client.ReqResp;
+import eu.mhsl.craftattack.core.api.client.repositories.ReportRepository;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.ComponentBuilder;
 import net.kyori.adventure.text.TextComponent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/ReportCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java
similarity index 91%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/ReportCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java
index 09b1c3b..d1eee37 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/ReportCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.report;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.util.text.ComponentUtil;
 import org.bukkit.Bukkit;
 import org.bukkit.OfflinePlayer;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/ReportsCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java
similarity index 74%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/ReportsCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java
index a748413..14d185e 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/report/ReportsCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/report/ReportsCommand.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.report;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.util.text.ComponentUtil;
 import org.bukkit.Bukkit;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/CategorizedSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/CategorizedSetting.java
new file mode 100644
index 0000000..8fa1ad8
--- /dev/null
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/CategorizedSetting.java
@@ -0,0 +1,5 @@
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings;
+
+public interface CategorizedSetting {
+    SettingCategory category();
+}
diff --git a/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingCategory.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingCategory.java
new file mode 100644
index 0000000..0b45420
--- /dev/null
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingCategory.java
@@ -0,0 +1,7 @@
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings;
+
+public enum SettingCategory {
+    Gameplay,
+    Visuals,
+    Misc,
+}
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/Settings.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java
similarity index 92%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/Settings.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java
index 02443c6..002744a 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/Settings.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/Settings.java
@@ -1,11 +1,11 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.Setting;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.listeners.OpenSettingsShortcutListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.listeners.SettingsInventoryListener;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.Setting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners.OpenSettingsShortcutListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners.SettingsInventoryListener;
 import net.kyori.adventure.text.Component;
 import org.bukkit.Bukkit;
 import org.bukkit.entity.Player;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingsCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsCommand.java
similarity index 78%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingsCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsCommand.java
index 14b9469..c68aa7e 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingsCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingsShortcutSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsShortcutSetting.java
similarity index 82%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingsShortcutSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsShortcutSetting.java
index 8c7ff01..4737ba4 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingsShortcutSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/SettingsShortcutSetting.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.BoolSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.BoolSetting;
 import org.bukkit.Material;
 
 public class SettingsShortcutSetting extends BoolSetting implements CategorizedSetting {
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/ActionSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/ActionSetting.java
similarity index 93%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/ActionSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/ActionSetting.java
index 81e83ac..573704f 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/ActionSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/ActionSetting.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes;
 
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/BoolSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/BoolSetting.java
similarity index 92%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/BoolSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/BoolSetting.java
index 8f22caf..3386975 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/BoolSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/BoolSetting.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.entity.Player;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java
similarity index 97%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java
index 702f8b9..24d3024 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/MultiBoolSetting.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes;
 
 import com.google.gson.Gson;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.entity.Player;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/SelectSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/SelectSetting.java
similarity index 95%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/SelectSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/SelectSetting.java
index 4607cf3..4b6a7d6 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/SelectSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/SelectSetting.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.Material;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/Setting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java
similarity index 88%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/Setting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java
index ee3eadb..a9bd678 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/datatypes/Setting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/datatypes/Setting.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.util.text.ComponentUtil;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.TextComponent;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java
similarity index 70%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java
index 93b58a3..17c5b91 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/OpenSettingsShortcutListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.listeners;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerSwapHandItemsEvent;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java
similarity index 83%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java
index 7a2d06e..776a3c7 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/settings/listeners/SettingsInventoryListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.listeners;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
 import org.bukkit.entity.Player;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.inventory.InventoryClickEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java
similarity index 81%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java
index d0b4783..915f87c 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepStateChangeListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.sleepTag;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.sleepTag;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerBedEnterEvent;
 import org.bukkit.event.player.PlayerBedLeaveEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/sleepTag/SleepTag.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepTag.java
similarity index 88%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/sleepTag/SleepTag.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepTag.java
index cfcad05..a6c76bc 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/sleepTag/SleepTag.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/sleepTag/SleepTag.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.sleepTag;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.sleepTag;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName.DisplayName;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.event.HoverEvent;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/Tablist.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java
similarity index 83%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/Tablist.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java
index e5ccc12..0218cfc 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/Tablist.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/Tablist.java
@@ -1,13 +1,13 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.tablist;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.report.Report;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.util.IteratorUtil;
-import eu.mhsl.craftattack.spawn.util.statistics.NetworkMonitor;
-import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
-import eu.mhsl.craftattack.spawn.util.text.RainbowComponent;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.report.Report;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.core.util.IteratorUtil;
+import eu.mhsl.craftattack.core.util.statistics.NetworkMonitor;
+import eu.mhsl.craftattack.core.util.text.ComponentUtil;
+import eu.mhsl.craftattack.core.util.text.RainbowComponent;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import net.kyori.adventure.util.Ticks;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/TablistListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java
similarity index 67%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/TablistListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java
index c914731..0828c41 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/TablistListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TablistListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.tablist;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerJoinEvent;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/TechnicalTablistSetting.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TechnicalTablistSetting.java
similarity index 62%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/TechnicalTablistSetting.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TechnicalTablistSetting.java
index 43cb690..9e69ffa 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/tablist/TechnicalTablistSetting.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/tablist/TechnicalTablistSetting.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.tablist;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.tablist;
 
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.BoolSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.BoolSetting;
 import org.bukkit.Material;
 
 public class TechnicalTablistSetting extends BoolSetting implements CategorizedSetting {
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java
similarity index 79%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java
index 35d9e77..e98397b 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/MoveWorldMuseumVillagerCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.worldmuseum;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.worldmuseum;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/worldmuseum/WorldMuseum.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/WorldMuseum.java
similarity index 77%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/worldmuseum/WorldMuseum.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/WorldMuseum.java
index 7c8d90b..d80991f 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/worldmuseum/WorldMuseum.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/worldmuseum/WorldMuseum.java
@@ -1,12 +1,12 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.worldmuseum;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.worldmuseum;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.util.entity.DisplayVillager;
-import eu.mhsl.craftattack.spawn.util.listener.DismissInventoryOpenFromHolder;
-import eu.mhsl.craftattack.spawn.util.listener.PlayerInteractAtEntityEventListener;
-import eu.mhsl.craftattack.spawn.util.server.PluginMessage;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.util.entity.DisplayVillager;
+import eu.mhsl.craftattack.core.util.listener.DismissInventoryOpenFromHolder;
+import eu.mhsl.craftattack.core.util.listener.PlayerInteractAtEntityEventListener;
+import eu.mhsl.craftattack.core.util.server.PluginMessage;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.Location;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/yearRank/YearRank.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRank.java
similarity index 92%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/yearRank/YearRank.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRank.java
index f927b02..fc1e14e 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/yearRank/YearRank.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRank.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.yearRank;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.yearRank;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName.DisplayName;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.displayName.DisplayName;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.TextComponent;
 import net.kyori.adventure.text.event.ClickEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/yearRank/YearRankCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRankCommand.java
similarity index 78%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/yearRank/YearRankCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRankCommand.java
index 13529b0..344a3f1 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/yearRank/YearRankCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/metaGameplay/yearRank/YearRankCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.yearRank;
+package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.yearRank;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/acInform/AcInform.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInform.java
similarity index 96%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/acInform/AcInform.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInform.java
index c6eae0d..544aa2b 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/acInform/AcInform.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInform.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.acInform;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.acInform;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.ComponentBuilder;
 import net.kyori.adventure.text.TextComponent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/acInform/AcInformCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInformCommand.java
similarity index 82%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/acInform/AcInformCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInformCommand.java
index 091dc70..8892b49 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/acInform/AcInformCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/acInform/AcInformCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.acInform;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.acInform;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/adminChat/AdminChat.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChat.java
similarity index 86%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/adminChat/AdminChat.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChat.java
index 30fccca..8cf1d85 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/adminChat/AdminChat.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChat.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.adminChat;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.adminChat;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.event.ClickEvent;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/adminChat/AdminChatCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChatCommand.java
similarity index 83%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/adminChat/AdminChatCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChatCommand.java
index 8b1de97..47c205a 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/adminChat/AdminChatCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/adminChat/AdminChatCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.adminChat;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.adminChat;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/ChatMute.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMute.java
similarity index 89%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/ChatMute.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMute.java
index fcaebd3..60f43d0 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/ChatMute.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMute.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.chatMute;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.chatMute;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.NamespacedKey;
 import org.bukkit.entity.Player;
 import org.bukkit.event.Listener;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/ChatMuteListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMuteListener.java
similarity index 81%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/ChatMuteListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMuteListener.java
index e6a1cb4..76d9f99 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/ChatMuteListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/ChatMuteListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.chatMute;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.chatMute;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.util.text.DataSizeConverter;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.util.text.DataSizeConverter;
 import io.papermc.paper.event.player.AsyncChatEvent;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/MuteCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/MuteCommand.java
similarity index 90%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/MuteCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/MuteCommand.java
index 0d3324b..724099f 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/chatMute/MuteCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/chatMute/MuteCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.chatMute;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.chatMute;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.Bukkit;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/EndPrevent.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java
similarity index 79%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/EndPrevent.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java
index 9a92cbd..085cb39 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/EndPrevent.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPrevent.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.endPrevent;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.config.Configuration;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.config.Configuration;
 import org.bukkit.event.Listener;
 import org.jetbrains.annotations.NotNull;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/EndPreventCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java
similarity index 91%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/EndPreventCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java
index 5401467..f62c28f 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/EndPreventCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/EndPreventCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.endPrevent;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java
similarity index 86%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java
index 4f638d9..425a527 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/endPrevent/PreventEnderEyeUseListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.endPrevent;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.Material;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/kick/Kick.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/Kick.java
similarity index 76%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/kick/Kick.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/Kick.java
index 2a9155e..6c96b9e 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/kick/Kick.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/Kick.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.kick;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.kick;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.util.text.DisconnectInfo;
 import org.bukkit.Bukkit;
 import org.bukkit.entity.Player;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/kick/KickCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/KickCommand.java
similarity index 89%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/kick/KickCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/KickCommand.java
index 3072970..6eaaf7c 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/kick/KickCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/kick/KickCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.kick;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.kick;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.Bukkit;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/lightningFireControl/LightningFireControl.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireControl.java
similarity index 75%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/lightningFireControl/LightningFireControl.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireControl.java
index 6210c0c..17cf178 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/lightningFireControl/LightningFireControl.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireControl.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.lightningFireControl;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.lightningFireControl;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.Appliance;
 import org.bukkit.block.Block;
 import org.bukkit.event.Listener;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/lightningFireControl/LightningFireListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireListener.java
similarity index 91%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/lightningFireControl/LightningFireListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireListener.java
index dfaa1fa..2ca2644 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/lightningFireControl/LightningFireListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/lightningFireControl/LightningFireListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.lightningFireControl;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.lightningFireControl;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.Material;
 import org.bukkit.block.Block;
 import org.bukkit.event.EventHandler;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/Maintenance.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/Maintenance.java
similarity index 80%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/Maintenance.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/Maintenance.java
index d47882e..ab1f3c7 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/Maintenance.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/Maintenance.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.maintenance;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.maintenance;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.config.Configuration;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.config.Configuration;
 import org.bukkit.event.Listener;
 import org.jetbrains.annotations.NotNull;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/MaintenanceCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/MaintenanceCommand.java
similarity index 91%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/MaintenanceCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/MaintenanceCommand.java
index 3e292d1..e3b9a0e 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/MaintenanceCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/MaintenanceCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.maintenance;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.maintenance;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java
similarity index 79%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java
index f1c298e..b311cea 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/maintenance/PreventMaintenanceJoinListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.maintenance;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.maintenance;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.util.text.DisconnectInfo;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerLoginEvent;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBan.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBan.java
similarity index 86%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBan.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBan.java
index 1342941..2d3ba0f 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBan.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBan.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.panicBan;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.panicBan;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.util.text.DisconnectInfo;
 import org.bukkit.Bukkit;
 import org.bukkit.entity.Player;
 import org.bukkit.event.Listener;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBanCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanCommand.java
similarity index 89%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBanCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanCommand.java
index aa74436..874eb1b 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBanCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.panicBan;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.panicBan;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.Bukkit;
 import org.bukkit.OfflinePlayer;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBanJoinListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanJoinListener.java
similarity index 79%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBanJoinListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanJoinListener.java
index aa52aa7..62a3a96 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/panicBan/PanicBanJoinListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/panicBan/PanicBanJoinListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.panicBan;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.panicBan;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/PlayerLimit.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimit.java
similarity index 80%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/PlayerLimit.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimit.java
index 99b606e..8a00d55 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/PlayerLimit.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimit.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.playerlimit;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.config.Configuration;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.config.Configuration;
 import org.bukkit.Bukkit;
 import org.bukkit.event.Listener;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/PlayerLimiterListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimiterListener.java
similarity index 81%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/PlayerLimiterListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimiterListener.java
index 8a2b804..7c30fc6 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/PlayerLimiterListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/PlayerLimiterListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.playerlimit;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.util.text.DisconnectInfo;
 import org.bukkit.Bukkit;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/SetPlayerLimitCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/SetPlayerLimitCommand.java
similarity index 87%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/SetPlayerLimitCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/SetPlayerLimitCommand.java
index 8d7d87f..5d81279 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/playerlimit/SetPlayerLimitCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/playerlimit/SetPlayerLimitCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.playerlimit;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/ProjectStart.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/ProjectStart.java
similarity index 83%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/ProjectStart.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/ProjectStart.java
index 951604a..6a7b338 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/ProjectStart.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/ProjectStart.java
@@ -1,21 +1,21 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.projectStart;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements.Advancements;
-import eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements.CustomAdvancements;
-import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.command.ProjectStartCancelCommand;
-import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.command.ProjectStartCommand;
-import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.command.ProjectStartResetCommand;
-import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.listener.NoAdvancementsListener;
-import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.listener.PlayerInvincibleListener;
-import eu.mhsl.craftattack.spawn.config.Configuration;
-import eu.mhsl.craftattack.spawn.util.IteratorUtil;
-import eu.mhsl.craftattack.spawn.util.entity.PlayerUtils;
-import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
-import eu.mhsl.craftattack.spawn.util.text.Countdown;
-import eu.mhsl.craftattack.spawn.util.world.BlockCycle;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements.Advancements;
+import eu.mhsl.craftattack.spawn.common.appliances.gameplay.customAdvancements.CustomAdvancements;
+import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command.ProjectStartCancelCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command.ProjectStartCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command.ProjectStartResetCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.listener.NoAdvancementsListener;
+import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.listener.PlayerInvincibleListener;
+import eu.mhsl.craftattack.core.config.Configuration;
+import eu.mhsl.craftattack.core.util.IteratorUtil;
+import eu.mhsl.craftattack.core.util.entity.PlayerUtils;
+import eu.mhsl.craftattack.core.util.text.ComponentUtil;
+import eu.mhsl.craftattack.core.util.text.Countdown;
+import eu.mhsl.craftattack.core.util.world.BlockCycle;
 import net.kyori.adventure.sound.Sound;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java
similarity index 79%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java
index ed7058c..c120e56 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCancelCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.command;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.ProjectStart;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCommand.java
similarity index 80%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCommand.java
index 84916fc..d29e321 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.command;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.ProjectStart;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartResetCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartResetCommand.java
similarity index 68%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartResetCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartResetCommand.java
index ac3aea1..e6094fe 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/command/ProjectStartResetCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/command/ProjectStartResetCommand.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.command;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.command;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.ProjectStart;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/listener/NoAdvancementsListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/NoAdvancementsListener.java
similarity index 75%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/listener/NoAdvancementsListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/NoAdvancementsListener.java
index bd81c80..ebb5999 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/listener/NoAdvancementsListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/NoAdvancementsListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.listener;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.listener;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.ProjectStart;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart;
 import org.bukkit.advancement.Advancement;
 import org.bukkit.advancement.AdvancementProgress;
 import org.bukkit.event.EventHandler;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java
similarity index 78%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java
index cf57ac1..95fcca3 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/projectStart/listener/PlayerInvincibleListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.listener;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.listener;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.appliances.tooling.projectStart.ProjectStart;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.spawn.common.appliances.tooling.projectStart.ProjectStart;
 import io.papermc.paper.event.player.PrePlayerAttackEntityEvent;
 import org.bukkit.entity.Player;
 import org.bukkit.event.EventHandler;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/CancelRestartCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/CancelRestartCommand.java
similarity index 78%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/CancelRestartCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/CancelRestartCommand.java
index 04d3f2f..37be852 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/CancelRestartCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/CancelRestartCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.restart;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.restart;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/Restart.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/Restart.java
similarity index 85%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/Restart.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/Restart.java
index e18d536..4a7ae71 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/Restart.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/Restart.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.restart;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.restart;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.util.IteratorUtil;
-import eu.mhsl.craftattack.spawn.util.text.Countdown;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.util.IteratorUtil;
+import eu.mhsl.craftattack.core.util.text.Countdown;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.Bukkit;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/ScheduleRestartCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/ScheduleRestartCommand.java
similarity index 78%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/ScheduleRestartCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/ScheduleRestartCommand.java
index d427641..731ff55 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/restart/ScheduleRestartCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/restart/ScheduleRestartCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.restart;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.restart;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/SetSpawnpointCommand.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java
similarity index 84%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/SetSpawnpointCommand.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java
index bf7b694..ffea3a5 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/SetSpawnpointCommand.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SetSpawnpointCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.spawnpoint;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java
similarity index 81%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java
index 98f779c..bef5717 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/SpawnAtSpawnpointListener.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.spawnpoint;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.PlayerJoinEvent;
 import org.bukkit.event.player.PlayerRespawnEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/Spawnpoint.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java
similarity index 90%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/Spawnpoint.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java
index fd71f03..c5fa827 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/spawnpoint/Spawnpoint.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/spawnpoint/Spawnpoint.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.spawnpoint;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint;
 
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
 import org.bukkit.Bukkit;
 import org.bukkit.Location;
 import org.bukkit.NamespacedKey;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/whitelist/PlayerJoinListener.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/PlayerJoinListener.java
similarity index 83%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/whitelist/PlayerJoinListener.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/PlayerJoinListener.java
index 92131e9..8958a73 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/whitelist/PlayerJoinListener.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/PlayerJoinListener.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.whitelist;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.whitelist;
 
-import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
-import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo;
+import eu.mhsl.craftattack.core.appliance.ApplianceListener;
+import eu.mhsl.craftattack.core.util.text.DisconnectInfo;
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
 import org.bukkit.event.player.PlayerLoginEvent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/whitelist/Whitelist.java b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/Whitelist.java
similarity index 90%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/whitelist/Whitelist.java
rename to common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/Whitelist.java
index 6a00293..508395e 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/tooling/whitelist/Whitelist.java
+++ b/common/src/main/java/eu/mhsl/craftattack/spawn/common/appliances/tooling/whitelist/Whitelist.java
@@ -1,14 +1,14 @@
-package eu.mhsl.craftattack.spawn.appliances.tooling.whitelist;
+package eu.mhsl.craftattack.spawn.common.appliances.tooling.whitelist;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.api.client.ReqResp;
-import eu.mhsl.craftattack.spawn.api.client.repositories.WhitelistRepository;
-import eu.mhsl.craftattack.spawn.api.server.HttpServer;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed.Outlawed;
-import eu.mhsl.craftattack.spawn.util.api.HttpStatus;
-import eu.mhsl.craftattack.spawn.util.server.Floodgate;
-import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.api.client.ReqResp;
+import eu.mhsl.craftattack.core.api.client.repositories.WhitelistRepository;
+import eu.mhsl.craftattack.core.api.server.HttpServer;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.spawn.common.appliances.gameplay.outlawed.Outlawed;
+import eu.mhsl.craftattack.core.util.api.HttpStatus;
+import eu.mhsl.craftattack.core.util.server.Floodgate;
+import eu.mhsl.craftattack.core.util.text.DisconnectInfo;
 import org.bukkit.Bukkit;
 import org.bukkit.entity.Player;
 import org.bukkit.event.Listener;
diff --git a/src/main/resources/plugin.yml b/common/src/main/resources/plugin.yml
similarity index 96%
rename from src/main/resources/plugin.yml
rename to common/src/main/resources/plugin.yml
index 3d13bc6..c2f12b1 100644
--- a/src/main/resources/plugin.yml
+++ b/common/src/main/resources/plugin.yml
@@ -1,7 +1,7 @@
 name: spawn
 author: olischma, muelleel
 version: '1.0'
-main: eu.mhsl.craftattack.spawn.Main
+main: eu.mhsl.craftattack.core.Main
 api-version: '1.21'
 commands:
   moveWorldMuseumVillager:
diff --git a/core/build.gradle b/core/build.gradle
new file mode 100644
index 0000000..49dc380
--- /dev/null
+++ b/core/build.gradle
@@ -0,0 +1,11 @@
+plugins {
+    id 'java'
+}
+
+dependencies {
+    compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT'
+    compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT'
+    implementation 'org.apache.httpcomponents:httpclient:4.5.14'
+    implementation 'com.sparkjava:spark-core:2.9.4'
+    implementation 'org.reflections:reflections:0.10.2'
+}
\ No newline at end of file
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/Main.java b/core/src/main/java/eu/mhsl/craftattack/core/Main.java
similarity index 91%
rename from src/main/java/eu/mhsl/craftattack/spawn/Main.java
rename to core/src/main/java/eu/mhsl/craftattack/core/Main.java
index 4c460bb..d2d84f0 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/Main.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/Main.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn;
+package eu.mhsl.craftattack.core;
 
-import eu.mhsl.craftattack.spawn.api.client.RepositoryLoader;
-import eu.mhsl.craftattack.spawn.api.server.HttpServer;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.config.Configuration;
+import eu.mhsl.craftattack.core.api.client.RepositoryLoader;
+import eu.mhsl.craftattack.core.api.server.HttpServer;
+import eu.mhsl.craftattack.core.appliance.Appliance;
+import eu.mhsl.craftattack.core.config.Configuration;
 import org.bukkit.Bukkit;
 import org.bukkit.event.HandlerList;
 import org.bukkit.plugin.java.JavaPlugin;
@@ -44,7 +44,7 @@ public final class Main extends JavaPlugin {
         Main.logger().info(String.format("Loaded %d repositories!", this.repositoryLoader.getRepositories().size()));
 
         Main.logger().info("Loading appliances...");
-        Reflections reflections = new Reflections(this.getClass().getPackageName());
+        Reflections reflections = new Reflections("eu.mhsl.craftattack.spawn");
         Set<Class<? extends Appliance>> applianceClasses = reflections.getSubTypesOf(Appliance.class);
 
         this.appliances = applianceClasses.stream()
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/HttpRepository.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/HttpRepository.java
similarity index 97%
rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/HttpRepository.java
rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/HttpRepository.java
index 3cf1e77..d993aae 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/HttpRepository.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/HttpRepository.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.api.client;
+package eu.mhsl.craftattack.core.api.client;
 
-import eu.mhsl.craftattack.spawn.Main;
+import eu.mhsl.craftattack.core.Main;
 import org.apache.http.client.utils.URIBuilder;
 import org.jetbrains.annotations.Nullable;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/Repository.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/Repository.java
similarity index 87%
rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/Repository.java
rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/Repository.java
index b45e360..91c02bd 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/Repository.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/Repository.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.api.client;
+package eu.mhsl.craftattack.core.api.client;
 
 import com.google.gson.Gson;
-import eu.mhsl.craftattack.spawn.Main;
+import eu.mhsl.craftattack.core.Main;
 import org.bukkit.Bukkit;
 
 import java.net.URI;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/RepositoryLoader.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/RepositoryLoader.java
similarity index 97%
rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/RepositoryLoader.java
rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/RepositoryLoader.java
index 29d6578..b6c67c0 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/RepositoryLoader.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/RepositoryLoader.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.api.client;
+package eu.mhsl.craftattack.core.api.client;
 
 import org.apache.commons.lang3.NotImplementedException;
 import org.reflections.Reflections;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/ReqResp.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/ReqResp.java
similarity index 54%
rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/ReqResp.java
rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/ReqResp.java
index 2bb3f3f..d6fadbb 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/ReqResp.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/ReqResp.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.api.client;
+package eu.mhsl.craftattack.core.api.client;
 
 public record ReqResp<TData>(int status, TData data) {
 }
\ No newline at end of file
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/EventRepository.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/EventRepository.java
similarity index 72%
rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/EventRepository.java
rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/EventRepository.java
index b3a6ada..2112307 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/EventRepository.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/EventRepository.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.api.client.repositories;
+package eu.mhsl.craftattack.core.api.client.repositories;
 
-import eu.mhsl.craftattack.spawn.api.client.HttpRepository;
-import eu.mhsl.craftattack.spawn.api.client.ReqResp;
-import eu.mhsl.craftattack.spawn.util.api.EventApiUtil;
+import eu.mhsl.craftattack.core.api.client.HttpRepository;
+import eu.mhsl.craftattack.core.api.client.ReqResp;
+import eu.mhsl.craftattack.core.util.api.EventApiUtil;
 
 import java.util.UUID;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/FeedbackRepository.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/FeedbackRepository.java
similarity index 76%
rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/FeedbackRepository.java
rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/FeedbackRepository.java
index b896f2f..cddedf1 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/FeedbackRepository.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/FeedbackRepository.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.api.client.repositories;
+package eu.mhsl.craftattack.core.api.client.repositories;
 
 import com.google.common.reflect.TypeToken;
-import eu.mhsl.craftattack.spawn.api.client.HttpRepository;
-import eu.mhsl.craftattack.spawn.api.client.ReqResp;
-import eu.mhsl.craftattack.spawn.util.api.WebsiteApiUtil;
+import eu.mhsl.craftattack.core.api.client.HttpRepository;
+import eu.mhsl.craftattack.core.api.client.ReqResp;
+import eu.mhsl.craftattack.core.util.api.WebsiteApiUtil;
 
 import java.lang.reflect.Type;
 import java.util.List;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/ReportRepository.java
similarity index 85%
rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java
rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/ReportRepository.java
index be92875..87a3227 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/ReportRepository.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/ReportRepository.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.api.client.repositories;
+package eu.mhsl.craftattack.core.api.client.repositories;
 
-import eu.mhsl.craftattack.spawn.api.client.HttpRepository;
-import eu.mhsl.craftattack.spawn.api.client.ReqResp;
-import eu.mhsl.craftattack.spawn.util.api.WebsiteApiUtil;
+import eu.mhsl.craftattack.core.api.client.HttpRepository;
+import eu.mhsl.craftattack.core.api.client.ReqResp;
+import eu.mhsl.craftattack.core.util.api.WebsiteApiUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/WhitelistRepository.java b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/WhitelistRepository.java
similarity index 73%
rename from src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/WhitelistRepository.java
rename to core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/WhitelistRepository.java
index 9b889f9..6ba3be4 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/api/client/repositories/WhitelistRepository.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/api/client/repositories/WhitelistRepository.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.api.client.repositories;
+package eu.mhsl.craftattack.core.api.client.repositories;
 
-import eu.mhsl.craftattack.spawn.api.client.HttpRepository;
-import eu.mhsl.craftattack.spawn.api.client.ReqResp;
-import eu.mhsl.craftattack.spawn.util.api.WebsiteApiUtil;
+import eu.mhsl.craftattack.core.api.client.HttpRepository;
+import eu.mhsl.craftattack.core.api.client.ReqResp;
+import eu.mhsl.craftattack.core.util.api.WebsiteApiUtil;
 
 import java.util.UUID;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/api/server/HttpServer.java b/core/src/main/java/eu/mhsl/craftattack/core/api/server/HttpServer.java
similarity index 94%
rename from src/main/java/eu/mhsl/craftattack/spawn/api/server/HttpServer.java
rename to core/src/main/java/eu/mhsl/craftattack/core/api/server/HttpServer.java
index dec1ff9..a3ba31a 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/api/server/HttpServer.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/api/server/HttpServer.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.api.server;
+package eu.mhsl.craftattack.core.api.server;
 
 import com.google.gson.Gson;
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.appliance.Appliance;
 import org.bukkit.configuration.ConfigurationSection;
 import spark.Request;
 import spark.Spark;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliance/Appliance.java b/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java
similarity index 93%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliance/Appliance.java
rename to core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java
index 8dfe391..f99eb1d 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliance/Appliance.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/appliance/Appliance.java
@@ -1,9 +1,9 @@
-package eu.mhsl.craftattack.spawn.appliance;
+package eu.mhsl.craftattack.core.appliance;
 
-import eu.mhsl.craftattack.spawn.Main;
-import eu.mhsl.craftattack.spawn.api.client.Repository;
-import eu.mhsl.craftattack.spawn.api.server.HttpServer;
-import eu.mhsl.craftattack.spawn.config.Configuration;
+import eu.mhsl.craftattack.core.Main;
+import eu.mhsl.craftattack.core.api.client.Repository;
+import eu.mhsl.craftattack.core.api.server.HttpServer;
+import eu.mhsl.craftattack.core.config.Configuration;
 import org.bukkit.Bukkit;
 import org.bukkit.command.PluginCommand;
 import org.bukkit.configuration.ConfigurationSection;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceCommand.java b/core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceCommand.java
similarity index 97%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceCommand.java
rename to core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceCommand.java
index 4f16c82..1bfc16d 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceCommand.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceCommand.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliance;
+package eu.mhsl.craftattack.core.appliance;
 
-import eu.mhsl.craftattack.spawn.Main;
+import eu.mhsl.craftattack.core.Main;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.command.Command;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceListener.java b/core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceListener.java
similarity index 88%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceListener.java
rename to core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceListener.java
index 29eb370..4478bbb 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceListener.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/appliance/ApplianceListener.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.appliance;
+package eu.mhsl.craftattack.core.appliance;
 
 import org.bukkit.event.Listener;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliance/CachedApplianceSupplier.java b/core/src/main/java/eu/mhsl/craftattack/core/appliance/CachedApplianceSupplier.java
similarity index 80%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliance/CachedApplianceSupplier.java
rename to core/src/main/java/eu/mhsl/craftattack/core/appliance/CachedApplianceSupplier.java
index 72cafe6..da5601e 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliance/CachedApplianceSupplier.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/appliance/CachedApplianceSupplier.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.appliance;
+package eu.mhsl.craftattack.core.appliance;
 
-import eu.mhsl.craftattack.spawn.Main;
+import eu.mhsl.craftattack.core.Main;
 
 public class CachedApplianceSupplier<T extends Appliance> implements IApplianceSupplier<T> {
     private final T appliance;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliance/IApplianceSupplier.java b/core/src/main/java/eu/mhsl/craftattack/core/appliance/IApplianceSupplier.java
similarity index 65%
rename from src/main/java/eu/mhsl/craftattack/spawn/appliance/IApplianceSupplier.java
rename to core/src/main/java/eu/mhsl/craftattack/core/appliance/IApplianceSupplier.java
index 8c8bbde..add0939 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliance/IApplianceSupplier.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/appliance/IApplianceSupplier.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.appliance;
+package eu.mhsl.craftattack.core.appliance;
 
 public interface IApplianceSupplier<T extends Appliance> {
     T getAppliance();
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/config/ConfigUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/config/ConfigUtil.java
similarity index 96%
rename from src/main/java/eu/mhsl/craftattack/spawn/config/ConfigUtil.java
rename to core/src/main/java/eu/mhsl/craftattack/core/config/ConfigUtil.java
index a2cf7b4..8eee7b1 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/config/ConfigUtil.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/config/ConfigUtil.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.config;
+package eu.mhsl.craftattack.core.config;
 
 import org.bukkit.Bukkit;
 import org.bukkit.Location;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/config/Configuration.java b/core/src/main/java/eu/mhsl/craftattack/core/config/Configuration.java
similarity index 91%
rename from src/main/java/eu/mhsl/craftattack/spawn/config/Configuration.java
rename to core/src/main/java/eu/mhsl/craftattack/core/config/Configuration.java
index d7ee8e2..169384d 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/config/Configuration.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/config/Configuration.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.config;
+package eu.mhsl.craftattack.core.config;
 
-import eu.mhsl.craftattack.spawn.Main;
+import eu.mhsl.craftattack.core.Main;
 import org.bukkit.configuration.ConfigurationSection;
 import org.bukkit.configuration.file.FileConfiguration;
 import org.bukkit.configuration.file.YamlConfiguration;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/IteratorUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/util/IteratorUtil.java
similarity index 98%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/IteratorUtil.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/IteratorUtil.java
index 57b07ad..f582d7e 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/IteratorUtil.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/IteratorUtil.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util;
+package eu.mhsl.craftattack.core.util;
 
 import org.bukkit.Bukkit;
 import org.bukkit.GameRule;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/NumberUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/util/NumberUtil.java
similarity index 89%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/NumberUtil.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/NumberUtil.java
index 269effb..45898b9 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/NumberUtil.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/NumberUtil.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util;
+package eu.mhsl.craftattack.core.util;
 
 public class NumberUtil {
     public static double map(double oldValue, double oldMin, double oldMax, double newMin, double newMax) {
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/api/EventApiUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/util/api/EventApiUtil.java
similarity index 85%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/api/EventApiUtil.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/api/EventApiUtil.java
index ff69ec5..af069e8 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/api/EventApiUtil.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/api/EventApiUtil.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.util.api;
+package eu.mhsl.craftattack.core.util.api;
 
-import eu.mhsl.craftattack.spawn.config.Configuration;
+import eu.mhsl.craftattack.core.config.Configuration;
 import org.bukkit.configuration.ConfigurationSection;
 
 import java.net.URI;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/api/HttpStatus.java b/core/src/main/java/eu/mhsl/craftattack/core/util/api/HttpStatus.java
similarity index 91%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/api/HttpStatus.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/api/HttpStatus.java
index 658cd20..cb61e32 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/api/HttpStatus.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/api/HttpStatus.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.api;
+package eu.mhsl.craftattack.core.util.api;
 
 public class HttpStatus {
     public static final int OK = 200;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/api/WebsiteApiUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/util/api/WebsiteApiUtil.java
similarity index 89%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/api/WebsiteApiUtil.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/api/WebsiteApiUtil.java
index 091c467..927d0a0 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/api/WebsiteApiUtil.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/api/WebsiteApiUtil.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.util.api;
+package eu.mhsl.craftattack.core.util.api;
 
-import eu.mhsl.craftattack.spawn.config.Configuration;
+import eu.mhsl.craftattack.core.config.Configuration;
 import org.apache.http.client.utils.URIBuilder;
 import org.bukkit.configuration.ConfigurationSection;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/entity/DisplayVillager.java b/core/src/main/java/eu/mhsl/craftattack/core/util/entity/DisplayVillager.java
similarity index 93%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/entity/DisplayVillager.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/entity/DisplayVillager.java
index f3bfc2e..ef4aa3a 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/entity/DisplayVillager.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/entity/DisplayVillager.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.util.entity;
+package eu.mhsl.craftattack.core.util.entity;
 
-import eu.mhsl.craftattack.spawn.config.ConfigUtil;
-import eu.mhsl.craftattack.spawn.config.Configuration;
-import eu.mhsl.craftattack.spawn.util.world.ChunkUtils;
+import eu.mhsl.craftattack.core.config.ConfigUtil;
+import eu.mhsl.craftattack.core.config.Configuration;
+import eu.mhsl.craftattack.core.util.world.ChunkUtils;
 import org.bukkit.Location;
 import org.bukkit.configuration.ConfigurationSection;
 import org.bukkit.entity.EntityType;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/entity/PlayerUtils.java b/core/src/main/java/eu/mhsl/craftattack/core/util/entity/PlayerUtils.java
similarity index 95%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/entity/PlayerUtils.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/entity/PlayerUtils.java
index 6e156a5..1d14bcf 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/entity/PlayerUtils.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/entity/PlayerUtils.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.entity;
+package eu.mhsl.craftattack.core.util.entity;
 
 import org.bukkit.Material;
 import org.bukkit.Statistic;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/inventory/HeadBuilder.java b/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/HeadBuilder.java
similarity index 93%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/inventory/HeadBuilder.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/inventory/HeadBuilder.java
index 98def19..46fe7e7 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/inventory/HeadBuilder.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/HeadBuilder.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.inventory;
+package eu.mhsl.craftattack.core.util.inventory;
 
 import com.destroystokyo.paper.profile.PlayerProfile;
 import com.destroystokyo.paper.profile.ProfileProperty;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/inventory/ItemBuilder.java b/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/ItemBuilder.java
similarity index 96%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/inventory/ItemBuilder.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/inventory/ItemBuilder.java
index abcbed8..c761632 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/inventory/ItemBuilder.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/ItemBuilder.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.util.inventory;
+package eu.mhsl.craftattack.core.util.inventory;
 
-import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
+import eu.mhsl.craftattack.core.util.text.ComponentUtil;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.Material;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/inventory/PlaceholderItems.java b/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/PlaceholderItems.java
similarity index 88%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/inventory/PlaceholderItems.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/inventory/PlaceholderItems.java
index 65080f5..32e0a2d 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/inventory/PlaceholderItems.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/inventory/PlaceholderItems.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.inventory;
+package eu.mhsl.craftattack.core.util.inventory;
 
 import net.kyori.adventure.text.Component;
 import org.bukkit.Material;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/listener/DismissInventoryOpenFromHolder.java b/core/src/main/java/eu/mhsl/craftattack/core/util/listener/DismissInventoryOpenFromHolder.java
similarity index 93%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/listener/DismissInventoryOpenFromHolder.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/listener/DismissInventoryOpenFromHolder.java
index 6c798a1..df9b66c 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/listener/DismissInventoryOpenFromHolder.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/listener/DismissInventoryOpenFromHolder.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.listener;
+package eu.mhsl.craftattack.core.util.listener;
 
 import org.bukkit.entity.Entity;
 import org.bukkit.event.EventHandler;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/listener/PlayerInteractAtEntityEventListener.java b/core/src/main/java/eu/mhsl/craftattack/core/util/listener/PlayerInteractAtEntityEventListener.java
similarity index 94%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/listener/PlayerInteractAtEntityEventListener.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/listener/PlayerInteractAtEntityEventListener.java
index b8c4e7e..56361ec 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/listener/PlayerInteractAtEntityEventListener.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/listener/PlayerInteractAtEntityEventListener.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.listener;
+package eu.mhsl.craftattack.core.util.listener;
 
 import org.bukkit.event.EventHandler;
 import org.bukkit.event.Listener;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/server/Floodgate.java b/core/src/main/java/eu/mhsl/craftattack/core/util/server/Floodgate.java
similarity index 97%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/server/Floodgate.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/server/Floodgate.java
index 815137c..53c5795 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/server/Floodgate.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/server/Floodgate.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.server;
+package eu.mhsl.craftattack.core.util.server;
 
 import org.bukkit.entity.Player;
 import org.geysermc.cumulus.form.SimpleForm;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/server/PluginMessage.java b/core/src/main/java/eu/mhsl/craftattack/core/util/server/PluginMessage.java
similarity index 83%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/server/PluginMessage.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/server/PluginMessage.java
index 5becb22..54ce0a9 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/server/PluginMessage.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/server/PluginMessage.java
@@ -1,8 +1,8 @@
-package eu.mhsl.craftattack.spawn.util.server;
+package eu.mhsl.craftattack.core.util.server;
 
 import com.google.common.io.ByteArrayDataOutput;
 import com.google.common.io.ByteStreams;
-import eu.mhsl.craftattack.spawn.Main;
+import eu.mhsl.craftattack.core.Main;
 import org.bukkit.entity.Player;
 
 public class PluginMessage {
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/statistics/NetworkMonitor.java b/core/src/main/java/eu/mhsl/craftattack/core/util/statistics/NetworkMonitor.java
similarity index 96%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/statistics/NetworkMonitor.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/statistics/NetworkMonitor.java
index 5ad276f..250db58 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/statistics/NetworkMonitor.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/statistics/NetworkMonitor.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.util.statistics;
+package eu.mhsl.craftattack.core.util.statistics;
 
-import eu.mhsl.craftattack.spawn.Main;
+import eu.mhsl.craftattack.core.Main;
 import net.kyori.adventure.util.Ticks;
 import org.bukkit.Bukkit;
 import org.bukkit.scheduler.BukkitTask;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/statistics/ServerMonitor.java b/core/src/main/java/eu/mhsl/craftattack/core/util/statistics/ServerMonitor.java
similarity index 84%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/statistics/ServerMonitor.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/statistics/ServerMonitor.java
index 6c3fc89..a2124b8 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/statistics/ServerMonitor.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/statistics/ServerMonitor.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.statistics;
+package eu.mhsl.craftattack.core.util.statistics;
 
 import org.bukkit.Bukkit;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/ColorUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/ColorUtil.java
similarity index 88%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/ColorUtil.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/ColorUtil.java
index 2fd9f47..ccec20f 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/ColorUtil.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/ColorUtil.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.util.text;
+package eu.mhsl.craftattack.core.util.text;
 
-import eu.mhsl.craftattack.spawn.util.NumberUtil;
+import eu.mhsl.craftattack.core.util.NumberUtil;
 import net.kyori.adventure.text.format.TextColor;
 
 import java.awt.*;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/ComponentUtil.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/ComponentUtil.java
similarity index 97%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/ComponentUtil.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/ComponentUtil.java
index aa1cbdc..3f75262 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/ComponentUtil.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/ComponentUtil.java
@@ -1,7 +1,7 @@
-package eu.mhsl.craftattack.spawn.util.text;
+package eu.mhsl.craftattack.core.util.text;
 
-import eu.mhsl.craftattack.spawn.util.statistics.NetworkMonitor;
-import eu.mhsl.craftattack.spawn.util.statistics.ServerMonitor;
+import eu.mhsl.craftattack.core.util.statistics.NetworkMonitor;
+import eu.mhsl.craftattack.core.util.statistics.ServerMonitor;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.ComponentBuilder;
 import net.kyori.adventure.text.TextComponent;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/Countdown.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/Countdown.java
similarity index 97%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/Countdown.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/Countdown.java
index 0b5a8a4..700bc9c 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/Countdown.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/Countdown.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.util.text;
+package eu.mhsl.craftattack.core.util.text;
 
-import eu.mhsl.craftattack.spawn.Main;
+import eu.mhsl.craftattack.core.Main;
 import net.kyori.adventure.text.Component;
 import org.bukkit.Bukkit;
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/DataSizeConverter.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/DataSizeConverter.java
similarity index 97%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/DataSizeConverter.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/DataSizeConverter.java
index a987a4b..5b55814 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/DataSizeConverter.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/DataSizeConverter.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.text;
+package eu.mhsl.craftattack.core.util.text;
 
 public class DataSizeConverter {
     public static String convertBytesPerSecond(long bytes) {
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/DisconnectInfo.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/DisconnectInfo.java
similarity index 94%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/DisconnectInfo.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/DisconnectInfo.java
index 2573fbd..95be233 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/DisconnectInfo.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/DisconnectInfo.java
@@ -1,6 +1,6 @@
-package eu.mhsl.craftattack.spawn.util.text;
+package eu.mhsl.craftattack.core.util.text;
 
-import eu.mhsl.craftattack.spawn.Main;
+import eu.mhsl.craftattack.core.Main;
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.NamedTextColor;
 import org.bukkit.Bukkit;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/NumberAbbreviation.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/NumberAbbreviation.java
similarity index 90%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/NumberAbbreviation.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/NumberAbbreviation.java
index c814296..c84b68a 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/NumberAbbreviation.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/NumberAbbreviation.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.text;
+package eu.mhsl.craftattack.core.util.text;
 
 public class NumberAbbreviation {
     public static <T extends Number & Comparable<T>> String abbreviateNumber(T number) {
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/text/RainbowComponent.java b/core/src/main/java/eu/mhsl/craftattack/core/util/text/RainbowComponent.java
similarity index 95%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/text/RainbowComponent.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/text/RainbowComponent.java
index fc3a554..34a4f5d 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/text/RainbowComponent.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/text/RainbowComponent.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.text;
+package eu.mhsl.craftattack.core.util.text;
 
 import net.kyori.adventure.text.Component;
 import net.kyori.adventure.text.format.TextColor;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/world/BlockCycle.java b/core/src/main/java/eu/mhsl/craftattack/core/util/world/BlockCycle.java
similarity index 94%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/world/BlockCycle.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/world/BlockCycle.java
index 5659299..c96b758 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/world/BlockCycle.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/world/BlockCycle.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.world;
+package eu.mhsl.craftattack.core.util.world;
 
 import org.bukkit.Location;
 import org.bukkit.Material;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/world/ChunkUtils.java b/core/src/main/java/eu/mhsl/craftattack/core/util/world/ChunkUtils.java
similarity index 93%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/world/ChunkUtils.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/world/ChunkUtils.java
index 869127d..0ac5f7b 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/world/ChunkUtils.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/world/ChunkUtils.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.world;
+package eu.mhsl.craftattack.core.util.world;
 
 import org.bukkit.Chunk;
 import org.bukkit.Location;
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/world/InteractSounds.java b/core/src/main/java/eu/mhsl/craftattack/core/util/world/InteractSounds.java
similarity index 95%
rename from src/main/java/eu/mhsl/craftattack/spawn/util/world/InteractSounds.java
rename to core/src/main/java/eu/mhsl/craftattack/core/util/world/InteractSounds.java
index d49c3c9..44b7057 100644
--- a/src/main/java/eu/mhsl/craftattack/spawn/util/world/InteractSounds.java
+++ b/core/src/main/java/eu/mhsl/craftattack/core/util/world/InteractSounds.java
@@ -1,4 +1,4 @@
-package eu.mhsl.craftattack.spawn.util.world;
+package eu.mhsl.craftattack.core.util.world;
 
 import net.kyori.adventure.key.Key;
 import net.kyori.adventure.sound.Sound;
diff --git a/src/main/resources/config.yml b/core/src/main/resources/config.yml
similarity index 100%
rename from src/main/resources/config.yml
rename to core/src/main/resources/config.yml
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index a441313..1af9e09 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.8-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
 networkTimeout=10000
 validateDistributionUrl=true
 zipStoreBase=GRADLE_USER_HOME
diff --git a/gradlew b/gradlew
index b740cf1..1aa94a4 100755
--- a/gradlew
+++ b/gradlew
@@ -55,7 +55,7 @@
 #       Darwin, MinGW, and NonStop.
 #
 #   (3) This script is generated from the Groovy template
-#       https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+#       https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
 #       within the Gradle project.
 #
 #       You can find Gradle at https://github.com/gradle/gradle/.
diff --git a/gradlew.bat b/gradlew.bat
index 25da30d..93e3f59 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -43,11 +43,11 @@ set JAVA_EXE=java.exe
 %JAVA_EXE% -version >NUL 2>&1
 if %ERRORLEVEL% equ 0 goto execute
 
-echo. 1>&2
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
-echo. 1>&2
-echo Please set the JAVA_HOME variable in your environment to match the 1>&2
-echo location of your Java installation. 1>&2
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
 
 goto fail
 
@@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
 
 if exist "%JAVA_EXE%" goto execute
 
-echo. 1>&2
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
-echo. 1>&2
-echo Please set the JAVA_HOME variable in your environment to match the 1>&2
-echo location of your Java installation. 1>&2
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
 
 goto fail
 
diff --git a/settings.gradle b/settings.gradle
index d602ff8..378bf80 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1,42 @@
+/*pluginManagement {
+    repositories {
+        gradlePluginPortal()
+        mavenCentral()
+        maven {
+            name = "papermc-repo"
+            url = "https://repo.papermc.io/repository/maven-public/"
+        }
+        maven {
+            name = "sonatype"
+            url = "https://oss.sonatype.org/content/groups/public/"
+        }
+        maven {
+            url = uri("https://repo.opencollab.dev/main/")
+        }
+    }
+}*/
+/*
+dependencyResolutionManagement {
+    repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)
+    repositories {
+        mavenCentral()
+        maven {
+            name = "papermc-repo"
+            url = "https://repo.papermc.io/repository/maven-public/"
+        }
+        maven {
+            name = "sonatype"
+            url = "https://oss.sonatype.org/content/groups/public/"
+        }
+        maven {
+            url = uri("https://repo.opencollab.dev/main/")
+        }
+    }
+}*/
+
 rootProject.name = 'spawn'
+
+include 'core'
+include 'common'
+include 'craftattack'
+
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/Debug.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/Debug.java
deleted file mode 100644
index e5ab922..0000000
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/internal/debug/Debug.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package eu.mhsl.craftattack.spawn.appliances.internal.debug;
-
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.internal.debug.command.AppliancesCommand;
-import eu.mhsl.craftattack.spawn.appliances.internal.debug.command.UserInfoCommand;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.List;
-
-public class Debug extends Appliance {
-    @Override
-    @NotNull
-    protected List<ApplianceCommand<?>> commands() {
-        return List.of(
-            new UserInfoCommand(),
-            new AppliancesCommand()
-        );
-    }
-}
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/Help.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/Help.java
deleted file mode 100644
index 5fb3258..0000000
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/help/Help.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help;
-
-import eu.mhsl.craftattack.spawn.appliance.Appliance;
-import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command.DiscordCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command.HelpCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command.SpawnCommand;
-import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command.TeamspeakCommand;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.List;
-
-public class Help extends Appliance {
-    public Help() {
-        super("help");
-    }
-
-    @Override
-    @NotNull
-    protected List<ApplianceCommand<?>> commands() {
-        return List.of(
-            new HelpCommand(),
-            new SpawnCommand(),
-            new TeamspeakCommand(),
-            new DiscordCommand()
-        );
-    }
-}
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/CategorizedSetting.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/CategorizedSetting.java
deleted file mode 100644
index c8310e0..0000000
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/CategorizedSetting.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings;
-
-public interface CategorizedSetting {
-    SettingCategory category();
-}
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingCategory.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingCategory.java
deleted file mode 100644
index 76de3ac..0000000
--- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/metaGameplay/settings/SettingCategory.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings;
-
-public enum SettingCategory {
-    Gameplay,
-    Visuals,
-    Misc,
-}