diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java
index 62d7591a2..d09f66515 100644
--- a/src/main/java/com/volmit/iris/Iris.java
+++ b/src/main/java/com/volmit/iris/Iris.java
@@ -27,7 +27,7 @@ import com.volmit.iris.core.link.MultiverseCoreLink;
import com.volmit.iris.core.link.MythicMobsLink;
import com.volmit.iris.core.link.OraxenLink;
import com.volmit.iris.core.nms.INMS;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.service.StudioSVC;
import com.volmit.iris.engine.object.biome.IrisBiome;
import com.volmit.iris.engine.object.biome.IrisBiomeCustom;
diff --git a/src/main/java/com/volmit/iris/core/command/jigsaw/CommandIrisJigsawEdit.java b/src/main/java/com/volmit/iris/core/command/jigsaw/CommandIrisJigsawEdit.java
index cee87332c..1a752b556 100644
--- a/src/main/java/com/volmit/iris/core/command/jigsaw/CommandIrisJigsawEdit.java
+++ b/src/main/java/com/volmit/iris/core/command/jigsaw/CommandIrisJigsawEdit.java
@@ -21,7 +21,7 @@ package com.volmit.iris.core.command.jigsaw;
import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.edit.JigsawEditor;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.jigsaw.IrisJigsawPiece;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand;
diff --git a/src/main/java/com/volmit/iris/core/command/jigsaw/CommandIrisJigsawNew.java b/src/main/java/com/volmit/iris/core/command/jigsaw/CommandIrisJigsawNew.java
index 19bdec8eb..8425801a8 100644
--- a/src/main/java/com/volmit/iris/core/command/jigsaw/CommandIrisJigsawNew.java
+++ b/src/main/java/com/volmit/iris/core/command/jigsaw/CommandIrisJigsawNew.java
@@ -21,7 +21,7 @@ package com.volmit.iris.core.command.jigsaw;
import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.edit.JigsawEditor;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.objects.IrisObject;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand;
diff --git a/src/main/java/com/volmit/iris/core/command/jigsaw/CommandIrisJigsawPlace.java b/src/main/java/com/volmit/iris/core/command/jigsaw/CommandIrisJigsawPlace.java
index 5e25799ee..d4644616a 100644
--- a/src/main/java/com/volmit/iris/core/command/jigsaw/CommandIrisJigsawPlace.java
+++ b/src/main/java/com/volmit/iris/core/command/jigsaw/CommandIrisJigsawPlace.java
@@ -20,7 +20,7 @@ package com.volmit.iris.core.command.jigsaw;
import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.jigsaw.PlannedStructure;
import com.volmit.iris.engine.object.basic.IrisPosition;
diff --git a/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectAnalyze.java b/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectAnalyze.java
index ab9f42b73..aa0597786 100644
--- a/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectAnalyze.java
+++ b/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectAnalyze.java
@@ -20,7 +20,7 @@ package com.volmit.iris.core.command.object;
import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand;
diff --git a/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectPaste.java b/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectPaste.java
index 9dab1b2ab..9238c70ca 100644
--- a/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectPaste.java
+++ b/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectPaste.java
@@ -20,7 +20,7 @@ package com.volmit.iris.core.command.object;
import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.service.StudioSVC;
import com.volmit.iris.core.service.WandSVC;
import com.volmit.iris.core.tools.IrisToolbelt;
diff --git a/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectPasteMatter.java b/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectPasteMatter.java
index 7c13e6c54..dca4b3d22 100644
--- a/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectPasteMatter.java
+++ b/src/main/java/com/volmit/iris/core/command/object/CommandIrisObjectPasteMatter.java
@@ -20,7 +20,7 @@ package com.volmit.iris.core.command.object;
import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.object.common.IObjectPlacer;
import com.volmit.iris.engine.object.tile.TileData;
diff --git a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioExecute.java b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioExecute.java
index e9c68a0ce..2110395e5 100644
--- a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioExecute.java
+++ b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioExecute.java
@@ -20,7 +20,7 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand;
diff --git a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioExplorerGenerator.java b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioExplorerGenerator.java
index e20d8b53d..48c4b5c84 100644
--- a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioExplorerGenerator.java
+++ b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioExplorerGenerator.java
@@ -21,7 +21,7 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.gui.NoiseExplorerGUI;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.service.StudioSVC;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.object.noise.IrisGenerator;
diff --git a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioGoto.java b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioGoto.java
index 0146a3a6f..b79ed2d7a 100644
--- a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioGoto.java
+++ b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioGoto.java
@@ -19,7 +19,7 @@
package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.object.basic.IrisPosition;
diff --git a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioProfile.java b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioProfile.java
index 3cea777b1..20f61465e 100644
--- a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioProfile.java
+++ b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioProfile.java
@@ -21,7 +21,7 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.project.IrisProject;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.service.StudioSVC;
import com.volmit.iris.engine.object.biome.IrisBiome;
import com.volmit.iris.engine.object.biome.IrisBiomePaletteLayer;
diff --git a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioSummon.java b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioSummon.java
index 7aa11eb6e..611ec4045 100644
--- a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioSummon.java
+++ b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioSummon.java
@@ -20,7 +20,7 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.object.entity.IrisEntity;
diff --git a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioUpdate.java b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioUpdate.java
index dcb5d5ee1..974d481cf 100644
--- a/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioUpdate.java
+++ b/src/main/java/com/volmit/iris/core/command/studio/CommandIrisStudioUpdate.java
@@ -21,7 +21,7 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.project.IrisProject;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.service.StudioSVC;
import com.volmit.iris.engine.object.objects.IrisObject;
import com.volmit.iris.util.collection.KList;
diff --git a/src/main/java/com/volmit/iris/core/decrees/DecObject.java b/src/main/java/com/volmit/iris/core/decrees/DecObject.java
index feef11c9e..136722b60 100644
--- a/src/main/java/com/volmit/iris/core/decrees/DecObject.java
+++ b/src/main/java/com/volmit/iris/core/decrees/DecObject.java
@@ -1,7 +1,7 @@
package com.volmit.iris.core.decrees;
import com.volmit.iris.core.command.object.CommandIrisObjectUndo;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.service.WandSVC;
import com.volmit.iris.engine.object.common.IObjectPlacer;
import com.volmit.iris.engine.object.objects.IrisObject;
diff --git a/src/main/java/com/volmit/iris/core/decrees/DecStudio.java b/src/main/java/com/volmit/iris/core/decrees/DecStudio.java
index 26e535feb..7d6d5b452 100644
--- a/src/main/java/com/volmit/iris/core/decrees/DecStudio.java
+++ b/src/main/java/com/volmit/iris/core/decrees/DecStudio.java
@@ -23,7 +23,7 @@ import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.gui.NoiseExplorerGUI;
import com.volmit.iris.core.gui.VisionGUI;
import com.volmit.iris.core.project.IrisProject;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.service.ConversionSVC;
import com.volmit.iris.core.service.StudioSVC;
import com.volmit.iris.core.tools.IrisToolbelt;
diff --git a/src/main/java/com/volmit/iris/core/project/loader/IrisData.java b/src/main/java/com/volmit/iris/core/loader/IrisData.java
similarity index 99%
rename from src/main/java/com/volmit/iris/core/project/loader/IrisData.java
rename to src/main/java/com/volmit/iris/core/loader/IrisData.java
index ec315ead2..97a0d2140 100644
--- a/src/main/java/com/volmit/iris/core/project/loader/IrisData.java
+++ b/src/main/java/com/volmit/iris/core/loader/IrisData.java
@@ -16,7 +16,7 @@
* along with this program. If not, see .
*/
-package com.volmit.iris.core.project.loader;
+package com.volmit.iris.core.loader;
import com.volmit.iris.Iris;
import com.volmit.iris.engine.framework.Engine;
diff --git a/src/main/java/com/volmit/iris/core/project/loader/IrisRegistrant.java b/src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java
similarity index 97%
rename from src/main/java/com/volmit/iris/core/project/loader/IrisRegistrant.java
rename to src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java
index 40072e565..67775dcc2 100644
--- a/src/main/java/com/volmit/iris/core/project/loader/IrisRegistrant.java
+++ b/src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java
@@ -16,7 +16,7 @@
* along with this program. If not, see .
*/
-package com.volmit.iris.core.project.loader;
+package com.volmit.iris.core.loader;
import com.volmit.iris.Iris;
import com.volmit.iris.engine.object.annotations.ArrayType;
diff --git a/src/main/java/com/volmit/iris/core/project/loader/ObjectResourceLoader.java b/src/main/java/com/volmit/iris/core/loader/ObjectResourceLoader.java
similarity index 99%
rename from src/main/java/com/volmit/iris/core/project/loader/ObjectResourceLoader.java
rename to src/main/java/com/volmit/iris/core/loader/ObjectResourceLoader.java
index d564af534..92fe42e5c 100644
--- a/src/main/java/com/volmit/iris/core/project/loader/ObjectResourceLoader.java
+++ b/src/main/java/com/volmit/iris/core/loader/ObjectResourceLoader.java
@@ -16,7 +16,7 @@
* along with this program. If not, see .
*/
-package com.volmit.iris.core.project.loader;
+package com.volmit.iris.core.loader;
import com.volmit.iris.Iris;
import com.volmit.iris.engine.object.objects.IrisObject;
diff --git a/src/main/java/com/volmit/iris/core/project/loader/ResourceLoader.java b/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java
similarity index 99%
rename from src/main/java/com/volmit/iris/core/project/loader/ResourceLoader.java
rename to src/main/java/com/volmit/iris/core/loader/ResourceLoader.java
index de0f17c77..ec4c10d87 100644
--- a/src/main/java/com/volmit/iris/core/project/loader/ResourceLoader.java
+++ b/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java
@@ -16,7 +16,7 @@
* along with this program. If not, see .
*/
-package com.volmit.iris.core.project.loader;
+package com.volmit.iris.core.loader;
import com.google.common.util.concurrent.AtomicDouble;
import com.google.gson.Gson;
diff --git a/src/main/java/com/volmit/iris/core/project/loader/ScriptResourceLoader.java b/src/main/java/com/volmit/iris/core/loader/ScriptResourceLoader.java
similarity index 99%
rename from src/main/java/com/volmit/iris/core/project/loader/ScriptResourceLoader.java
rename to src/main/java/com/volmit/iris/core/loader/ScriptResourceLoader.java
index ac0da6875..2b1117b9e 100644
--- a/src/main/java/com/volmit/iris/core/project/loader/ScriptResourceLoader.java
+++ b/src/main/java/com/volmit/iris/core/loader/ScriptResourceLoader.java
@@ -16,7 +16,7 @@
* along with this program. If not, see .
*/
-package com.volmit.iris.core.project.loader;
+package com.volmit.iris.core.loader;
import com.volmit.iris.Iris;
import com.volmit.iris.engine.object.common.IrisScript;
diff --git a/src/main/java/com/volmit/iris/core/pack/IrisPack.java b/src/main/java/com/volmit/iris/core/pack/IrisPack.java
new file mode 100644
index 000000000..d4184c767
--- /dev/null
+++ b/src/main/java/com/volmit/iris/core/pack/IrisPack.java
@@ -0,0 +1,285 @@
+/*
+ * Iris is a World Generator for Minecraft Bukkit Servers
+ * Copyright (c) 2021 Arcane Arts (Volmit Software)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.volmit.iris.core.pack;
+
+import com.volmit.iris.Iris;
+import com.volmit.iris.core.loader.IrisData;
+import com.volmit.iris.core.loader.ResourceLoader;
+import com.volmit.iris.core.service.StudioSVC;
+import com.volmit.iris.engine.object.common.IrisWorld;
+import com.volmit.iris.engine.object.dimensional.IrisDimension;
+import com.volmit.iris.util.collection.KList;
+import com.volmit.iris.util.exceptions.IrisException;
+import com.volmit.iris.util.format.Form;
+import com.volmit.iris.util.io.IO;
+import com.volmit.iris.util.json.JSONArray;
+import com.volmit.iris.util.json.JSONObject;
+import com.volmit.iris.util.plugin.VolmitSender;
+import com.volmit.iris.util.scheduling.PrecisionStopwatch;
+import lombok.Data;
+import org.bukkit.World;
+import org.zeroturnaround.zip.commons.FileUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.MalformedURLException;
+
+/**
+ * Represents an Iris pack that exists
+ */
+@Data
+public class IrisPack {
+ private final File folder;
+ private final IrisData data;
+
+ /**
+ * Create an iris pack backed by a data folder
+ * @param folder the folder of the pack. Must be a directory
+ */
+ public IrisPack(File folder) {
+ this.folder = folder;
+
+ if(!folder.exists())
+ {
+ throw new RuntimeException("Cannot open Pack " + folder.getPath() + " (directory doesnt exist)");
+ }
+
+ if(!folder.isDirectory())
+ {
+ throw new RuntimeException("Cannot open Pack " + folder.getPath() + " (not a directory)");
+ }
+
+ this.data = IrisData.get(folder);
+ }
+
+ /**
+ * Delete this pack. This invalidates this pack and you should
+ * probably no longer use this instance after deleting this pack
+ */
+ public void delete() {
+ IO.delete(folder);
+ folder.delete();
+ }
+
+ /**
+ * Create a new pack from the input url
+ * @param sender the sender
+ * @param url the url, or name, or really anything see IrisPackRepository.from(String)
+ * @return the iris pack
+ * @throws IrisException fails
+ */
+ public static IrisPack from(VolmitSender sender, String url) throws IrisException {
+ IrisPackRepository repo = IrisPackRepository.from(url);
+ if(repo == null)
+ {
+ throw new IrisException("Null Repo");
+ }
+
+ try {
+ return from(sender, repo);
+ } catch (MalformedURLException e) {
+ throw new IrisException("Malformed URL " + e.getMessage());
+ }
+ }
+
+ /**
+ * Get the name of this pack
+ * @return the pack name
+ */
+ public String getName()
+ {
+ return folder.getName();
+ }
+
+ /**
+ * Get the file path of the workspace file
+ * @return the workspace file path
+ */
+ public File getWorkspaceFile() {
+ return new File(getFolder(), getName() + ".code-workspace");
+ }
+
+ /**
+ * Update the workspace file
+ * @return true if it was updated
+ */
+ public boolean updateWorkspace() {
+ getFolder().mkdirs();
+ File ws = getWorkspaceFile();
+
+ try {
+ PrecisionStopwatch p = PrecisionStopwatch.start();
+ Iris.debug("Building Workspace: " + ws.getPath());
+ JSONObject j = generateWorkspaceConfig();
+ IO.writeAll(ws, j.toString(4));
+ p.end();
+ Iris.debug("Building Workspace: " + ws.getPath() + " took " + Form.duration(p.getMilliseconds(), 2));
+ return true;
+ } catch (Throwable e) {
+ Iris.reportError(e);
+ Iris.warn("Pack invalid: " + ws.getAbsolutePath() + " Re-creating. You may loose some vs-code workspace settings! But not your actual project!");
+ ws.delete();
+ try {
+ IO.writeAll(ws, generateWorkspaceConfig());
+ } catch (IOException e1) {
+ Iris.reportError(e1);
+ e1.printStackTrace();
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Install this pack into a world
+ * @param world the world to install into (world/iris/pack)
+ * @return the main dimension object loaded from the fresh installed directory, NOT this pack's directory
+ */
+ public IrisDimension install(World world)
+ {
+ return install(new File(world.getWorldFolder(), "iris/pack"));
+ }
+
+ /**
+ * Install this pack into a world
+ * @param world the world to install into (world/iris/pack)
+ * @return the main dimension object loaded from the fresh installed directory, NOT this pack's directory
+ */
+ public IrisDimension install(IrisWorld world)
+ {
+ return install(new File(world.worldFolder(), "iris/pack"));
+ }
+
+ /**
+ * Install this pack into a world
+ * @param folder the folder to install this pack into
+ * @return the main dimension object loaded from the fresh installed directory, NOT this pack's directory
+ */
+ public IrisDimension install(File folder)
+ {
+ IrisDimension dim = getDimension();
+ folder.mkdirs();
+
+ try {
+ FileUtils.copyDirectory(getFolder(), folder);
+ } catch (IOException e) {
+ Iris.reportError(e);
+ }
+
+ return IrisData.get(folder).getDimensionLoader().load(dim.getLoadKey());
+ }
+
+ /**
+ * The dimension's assumed loadkey
+ * @return getName()
+ */
+ public String getDimensionKey()
+ {
+ return getName();
+ }
+
+ /**
+ * Get the main dimension object
+ * @return the dimension (folder name as dim key)
+ */
+ public IrisDimension getDimension()
+ {
+ return getData().getDimensionLoader().load(getDimensionKey());
+ }
+
+ /**
+ * Find all files in this pack with the given extension
+ * @param fileExtension the extension
+ * @return the list of files
+ */
+ public KList collectFiles(String fileExtension) {
+ return collectFiles(getFolder(), fileExtension);
+ }
+
+ private JSONObject generateWorkspaceConfig() {
+ JSONObject ws = new JSONObject();
+ JSONArray folders = new JSONArray();
+ JSONObject folder = new JSONObject();
+ folder.put("path", ".");
+ folders.put(folder);
+ ws.put("folders", folders);
+ JSONObject settings = new JSONObject();
+ settings.put("workbench.colorTheme", "Monokai");
+ settings.put("workbench.preferredDarkColorTheme", "Solarized Dark");
+ settings.put("workbench.tips.enabled", false);
+ settings.put("workbench.tree.indent", 24);
+ settings.put("files.autoSave", "onFocusChange");
+ JSONObject jc = new JSONObject();
+ jc.put("editor.autoIndent", "brackets");
+ jc.put("editor.acceptSuggestionOnEnter", "smart");
+ jc.put("editor.cursorSmoothCaretAnimation", true);
+ jc.put("editor.dragAndDrop", false);
+ jc.put("files.trimTrailingWhitespace", true);
+ jc.put("diffEditor.ignoreTrimWhitespace", true);
+ jc.put("files.trimFinalNewlines", true);
+ jc.put("editor.suggest.showKeywords", false);
+ jc.put("editor.suggest.showSnippets", false);
+ jc.put("editor.suggest.showWords", false);
+ JSONObject st = new JSONObject();
+ st.put("strings", true);
+ jc.put("editor.quickSuggestions", st);
+ jc.put("editor.suggest.insertMode", "replace");
+ settings.put("[json]", jc);
+ settings.put("json.maxItemsComputed", 30000);
+ JSONArray schemas = new JSONArray();
+ IrisData dm = IrisData.get(getFolder());
+
+ for (ResourceLoader> r : dm.getLoaders().v()) {
+ if (r.supportsSchemas()) {
+ schemas.put(r.buildSchema());
+ }
+ }
+
+ settings.put("json.schemas", schemas);
+ ws.put("settings", settings);
+
+ return ws;
+ }
+
+ /**
+ * Create a pack from a repo
+ * @param sender the sender
+ * @param repo the repo
+ * @return the pack
+ * @throws MalformedURLException shit happens
+ */
+ public static IrisPack from(VolmitSender sender, IrisPackRepository repo) throws MalformedURLException {
+ repo.install(sender);
+ return new IrisPack(Iris.instance.getDataFolder(StudioSVC.WORKSPACE_NAME, repo.getRepo()));
+ }
+
+ private static KList collectFiles(File f, String fileExtension) {
+ KList l = new KList<>();
+
+ if (f.isDirectory()) {
+ for (File i : f.listFiles()) {
+ l.addAll(collectFiles(i, fileExtension));
+ }
+ } else if (f.getName().endsWith("." + fileExtension)) {
+ l.add(f);
+ }
+
+ return l;
+ }
+}
diff --git a/src/main/java/com/volmit/iris/util/data/IrisPackRepository.java b/src/main/java/com/volmit/iris/core/pack/IrisPackRepository.java
similarity index 96%
rename from src/main/java/com/volmit/iris/util/data/IrisPackRepository.java
rename to src/main/java/com/volmit/iris/core/pack/IrisPackRepository.java
index 854e68f23..fcc12add2 100644
--- a/src/main/java/com/volmit/iris/util/data/IrisPackRepository.java
+++ b/src/main/java/com/volmit/iris/core/pack/IrisPackRepository.java
@@ -16,7 +16,7 @@
* along with this program. If not, see .
*/
-package com.volmit.iris.util.data;
+package com.volmit.iris.core.pack;
import com.volmit.iris.Iris;
import com.volmit.iris.core.service.StudioSVC;
@@ -50,6 +50,11 @@ public class IrisPackRepository {
@Builder.Default
private String tag = "";
+ /**
+ *
+ * @param g
+ * @return
+ */
public static IrisPackRepository from(String g) {
// https://github.com/IrisDimensions/overworld
if (g.startsWith("https://github.com/")) {
@@ -123,5 +128,10 @@ public class IrisPackRepository {
}
})).execute(sender);
}
+
+ else
+ {
+ sender.sendMessage("Pack already exists!");
+ }
}
}
diff --git a/src/main/java/com/volmit/iris/core/project/IrisPack.java b/src/main/java/com/volmit/iris/core/project/IrisPack.java
deleted file mode 100644
index 613b654a4..000000000
--- a/src/main/java/com/volmit/iris/core/project/IrisPack.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Iris is a World Generator for Minecraft Bukkit Servers
- * Copyright (c) 2021 Arcane Arts (Volmit Software)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package com.volmit.iris.core.project;
-
-import com.volmit.iris.Iris;
-import com.volmit.iris.core.service.StudioSVC;
-import com.volmit.iris.util.data.IrisPackRepository;
-import com.volmit.iris.util.io.IO;
-import com.volmit.iris.util.plugin.VolmitSender;
-import lombok.Data;
-
-import java.io.File;
-import java.net.MalformedURLException;
-
-@Data
-public class IrisPack {
- private final File folder;
-
- public IrisPack(File folder) {
- this.folder = folder;
- }
-
- public void delete() {
- IO.delete(folder);
- folder.delete();
- }
-
- public static IrisPack from(VolmitSender sender, String url) throws MalformedURLException {
- return from(sender, IrisPackRepository.from(url));
- }
-
- public static IrisPack from(VolmitSender sender, IrisPackRepository repo) throws MalformedURLException {
- String name = repo.getRepo();
- String url = repo.toURL();
- repo.install(sender);
-
- return new IrisPack(Iris.instance.getDataFolder(StudioSVC.WORKSPACE_NAME, repo.getRepo()));
- }
-}
diff --git a/src/main/java/com/volmit/iris/core/project/IrisProject.java b/src/main/java/com/volmit/iris/core/project/IrisProject.java
index 35b50adf6..1dd9a4ab8 100644
--- a/src/main/java/com/volmit/iris/core/project/IrisProject.java
+++ b/src/main/java/com/volmit/iris/core/project/IrisProject.java
@@ -21,9 +21,9 @@ package com.volmit.iris.core.project;
import com.google.gson.Gson;
import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
-import com.volmit.iris.core.project.loader.IrisData;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
-import com.volmit.iris.core.project.loader.ResourceLoader;
+import com.volmit.iris.core.loader.IrisData;
+import com.volmit.iris.core.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.ResourceLoader;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.object.biome.IrisBiome;
import com.volmit.iris.engine.object.block.IrisBlockData;
diff --git a/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java b/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java
index 609ca038e..52f854ca0 100644
--- a/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java
+++ b/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java
@@ -19,9 +19,9 @@
package com.volmit.iris.core.project;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
-import com.volmit.iris.core.project.loader.ResourceLoader;
+import com.volmit.iris.core.loader.IrisData;
+import com.volmit.iris.core.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.ResourceLoader;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap;
diff --git a/src/main/java/com/volmit/iris/core/service/BoardSVC.java b/src/main/java/com/volmit/iris/core/service/BoardSVC.java
index 192d86753..3f5042cc0 100644
--- a/src/main/java/com/volmit/iris/core/service/BoardSVC.java
+++ b/src/main/java/com/volmit/iris/core/service/BoardSVC.java
@@ -19,7 +19,7 @@
package com.volmit.iris.core.service;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.object.feature.IrisFeaturePositional;
diff --git a/src/main/java/com/volmit/iris/core/service/PreservationSVC.java b/src/main/java/com/volmit/iris/core/service/PreservationSVC.java
index c08eb871b..814104076 100644
--- a/src/main/java/com/volmit/iris/core/service/PreservationSVC.java
+++ b/src/main/java/com/volmit/iris/core/service/PreservationSVC.java
@@ -19,7 +19,7 @@
package com.volmit.iris.core.service;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.context.IrisContext;
import com.volmit.iris.util.parallel.MultiBurst;
diff --git a/src/main/java/com/volmit/iris/core/service/StudioSVC.java b/src/main/java/com/volmit/iris/core/service/StudioSVC.java
index 11f1d6063..479421002 100644
--- a/src/main/java/com/volmit/iris/core/service/StudioSVC.java
+++ b/src/main/java/com/volmit/iris/core/service/StudioSVC.java
@@ -21,9 +21,8 @@ package com.volmit.iris.core.service;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.project.IrisProject;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.dimensional.IrisDimension;
@@ -35,7 +34,6 @@ import com.volmit.iris.util.json.JSONException;
import com.volmit.iris.util.json.JSONObject;
import com.volmit.iris.util.plugin.IrisService;
import com.volmit.iris.util.plugin.VolmitSender;
-import com.volmit.iris.util.scheduling.J;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.zeroturnaround.zip.ZipUtil;
@@ -54,16 +52,7 @@ public class StudioSVC implements IrisService {
@Override
public void onEnable() {
- J.a(() ->
- {
- File project = Iris.instance.getDataFolder(WORKSPACE_NAME, IrisSettings.get().getGenerator().getDefaultWorldType());
- if(!project.exists())
- {
- Iris.info("Attempting to download default pack " + IrisSettings.get().getGenerator().getDefaultWorldType());
- downloadSearch(Iris.getSender(), IrisSettings.get().getGenerator().getDefaultWorldType(), false, false);
- }
- });
}
@Override
diff --git a/src/main/java/com/volmit/iris/core/service/TreeSVC.java b/src/main/java/com/volmit/iris/core/service/TreeSVC.java
index 3af45a961..d9de6c334 100644
--- a/src/main/java/com/volmit/iris/core/service/TreeSVC.java
+++ b/src/main/java/com/volmit/iris/core/service/TreeSVC.java
@@ -19,7 +19,7 @@
package com.volmit.iris.core.service;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.object.biome.IrisBiome;
import com.volmit.iris.engine.object.common.IObjectPlacer;
diff --git a/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java b/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java
index 72954d893..ca56fa39a 100644
--- a/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java
+++ b/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java
@@ -25,7 +25,7 @@ import com.volmit.iris.core.pregenerator.PregenTask;
import com.volmit.iris.core.pregenerator.PregeneratorMethod;
import com.volmit.iris.core.pregenerator.methods.HeadlessPregenMethod;
import com.volmit.iris.core.pregenerator.methods.HybridPregenMethod;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.service.StudioSVC;
import com.volmit.iris.engine.object.dimensional.IrisDimension;
import com.volmit.iris.engine.platform.HeadlessGenerator;
diff --git a/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java b/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java
index be4e718a4..447cb1ccd 100644
--- a/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java
+++ b/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java
@@ -18,7 +18,7 @@
package com.volmit.iris.core.tools;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.common.IrisWorld;
import com.volmit.iris.engine.object.dimensional.IrisDimension;
import com.volmit.iris.engine.platform.BukkitChunkGenerator;
diff --git a/src/main/java/com/volmit/iris/engine/IrisComplex.java b/src/main/java/com/volmit/iris/engine/IrisComplex.java
index 6b1a9394b..364f82bfe 100644
--- a/src/main/java/com/volmit/iris/engine/IrisComplex.java
+++ b/src/main/java/com/volmit/iris/engine/IrisComplex.java
@@ -20,7 +20,7 @@ package com.volmit.iris.engine;
import com.google.common.util.concurrent.AtomicDouble;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.actuator.IrisTerrainNormalActuator;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.modifier.IrisCaveModifier;
diff --git a/src/main/java/com/volmit/iris/engine/framework/Engine.java b/src/main/java/com/volmit/iris/engine/framework/Engine.java
index ea86073bf..39382d74b 100644
--- a/src/main/java/com/volmit/iris/engine/framework/Engine.java
+++ b/src/main/java/com/volmit/iris/engine/framework/Engine.java
@@ -21,7 +21,7 @@ package com.volmit.iris.engine.framework;
import com.volmit.iris.Iris;
import com.volmit.iris.core.gui.components.RenderType;
import com.volmit.iris.core.gui.components.Renderer;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.data.cache.Cache;
import com.volmit.iris.engine.data.chunk.TerrainChunk;
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineComponent.java b/src/main/java/com/volmit/iris/engine/framework/EngineComponent.java
index 47b73b49d..08a09ab05 100644
--- a/src/main/java/com/volmit/iris/engine/framework/EngineComponent.java
+++ b/src/main/java/com/volmit/iris/engine/framework/EngineComponent.java
@@ -19,7 +19,7 @@
package com.volmit.iris.engine.framework;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.object.dimensional.IrisDimension;
import com.volmit.iris.util.math.RollingSequence;
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java b/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java
index c644c9e3c..d6b849787 100644
--- a/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java
+++ b/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.framework;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.common.IrisWorld;
import com.volmit.iris.engine.object.dimensional.IrisDimension;
import com.volmit.iris.util.parallel.MultiBurst;
diff --git a/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java b/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java
index 10c614a03..3a7ce0a98 100644
--- a/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java
+++ b/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.framework.placer;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.common.IObjectPlacer;
import com.volmit.iris.engine.object.objects.IrisObjectPlacement;
import com.volmit.iris.engine.object.tile.TileData;
diff --git a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java b/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java
index dbdfca1f4..cb60cc322 100644
--- a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java
+++ b/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.jigsaw;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.object.basic.IrisPosition;
diff --git a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java b/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java
index febb334ba..4290072ba 100644
--- a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java
+++ b/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java
@@ -20,7 +20,7 @@ package com.volmit.iris.engine.jigsaw;
import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.basic.IrisPosition;
import com.volmit.iris.engine.object.common.IObjectPlacer;
import com.volmit.iris.engine.object.feature.IrisFeature;
diff --git a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java b/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java
index ca58815d8..5ce97bce4 100644
--- a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java
+++ b/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java
@@ -19,7 +19,7 @@
package com.volmit.iris.engine.mantle;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineTarget;
diff --git a/src/main/java/com/volmit/iris/engine/mantle/MantleComponent.java b/src/main/java/com/volmit/iris/engine/mantle/MantleComponent.java
index 7a7444250..a78d91880 100644
--- a/src/main/java/com/volmit/iris/engine/mantle/MantleComponent.java
+++ b/src/main/java/com/volmit/iris/engine/mantle/MantleComponent.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.mantle;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.object.dimensional.IrisDimension;
import com.volmit.iris.util.documentation.ChunkCoordinates;
diff --git a/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java b/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java
index 39353eb7a..b6b9482ed 100644
--- a/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java
+++ b/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java
@@ -19,7 +19,7 @@
package com.volmit.iris.engine.mantle;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.Cache;
import com.volmit.iris.engine.object.common.IObjectPlacer;
import com.volmit.iris.engine.object.feature.IrisFeaturePositional;
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListResource.java b/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListResource.java
index ea5165f61..5478658b5 100644
--- a/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListResource.java
+++ b/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListResource.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.annotations;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
diff --git a/src/main/java/com/volmit/iris/engine/object/biome/IrisBiome.java b/src/main/java/com/volmit/iris/engine/object/biome/IrisBiome.java
index 538475740..d2266fa4c 100644
--- a/src/main/java/com/volmit/iris/engine/object/biome/IrisBiome.java
+++ b/src/main/java/com/volmit/iris/engine/object/biome/IrisBiome.java
@@ -20,8 +20,8 @@ package com.volmit.iris.engine.object.biome;
import com.volmit.iris.Iris;
import com.volmit.iris.core.gui.components.RenderType;
-import com.volmit.iris.core.project.loader.IrisData;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisData;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.framework.Engine;
diff --git a/src/main/java/com/volmit/iris/engine/object/biome/IrisBiomePaletteLayer.java b/src/main/java/com/volmit/iris/engine/object/biome/IrisBiomePaletteLayer.java
index 914ff0d03..44fcf4bb6 100644
--- a/src/main/java/com/volmit/iris/engine/object/biome/IrisBiomePaletteLayer.java
+++ b/src/main/java/com/volmit/iris/engine/object/biome/IrisBiomePaletteLayer.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.biome;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.engine.object.block.IrisBlockData;
diff --git a/src/main/java/com/volmit/iris/engine/object/block/IrisBlockData.java b/src/main/java/com/volmit/iris/engine/object/block/IrisBlockData.java
index df29b7a01..9c1bb5477 100644
--- a/src/main/java/com/volmit/iris/engine/object/block/IrisBlockData.java
+++ b/src/main/java/com/volmit/iris/engine/object/block/IrisBlockData.java
@@ -19,8 +19,8 @@
package com.volmit.iris.engine.object.block;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisData;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.util.collection.KList;
diff --git a/src/main/java/com/volmit/iris/engine/object/block/IrisBlockDrops.java b/src/main/java/com/volmit/iris/engine/object/block/IrisBlockDrops.java
index 26d95dbf3..8ad5b7e95 100644
--- a/src/main/java/com/volmit/iris/engine/object/block/IrisBlockDrops.java
+++ b/src/main/java/com/volmit/iris/engine/object/block/IrisBlockDrops.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.block;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.ArrayType;
import com.volmit.iris.engine.object.annotations.Desc;
diff --git a/src/main/java/com/volmit/iris/engine/object/block/IrisMaterialPalette.java b/src/main/java/com/volmit/iris/engine/object/block/IrisMaterialPalette.java
index 6e85779e7..ef140e345 100644
--- a/src/main/java/com/volmit/iris/engine/object/block/IrisMaterialPalette.java
+++ b/src/main/java/com/volmit/iris/engine/object/block/IrisMaterialPalette.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.block;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.ArrayType;
import com.volmit.iris.engine.object.annotations.Desc;
diff --git a/src/main/java/com/volmit/iris/engine/object/carve/IrisCarveLayer.java b/src/main/java/com/volmit/iris/engine/object/carve/IrisCarveLayer.java
index 17df021a5..d105a216a 100644
--- a/src/main/java/com/volmit/iris/engine/object/carve/IrisCarveLayer.java
+++ b/src/main/java/com/volmit/iris/engine/object/carve/IrisCarveLayer.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.carve;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.engine.object.annotations.MaxNumber;
diff --git a/src/main/java/com/volmit/iris/engine/object/carve/IrisCaveFluid.java b/src/main/java/com/volmit/iris/engine/object/carve/IrisCaveFluid.java
index fad1f51c4..06bf8a3e0 100644
--- a/src/main/java/com/volmit/iris/engine/object/carve/IrisCaveFluid.java
+++ b/src/main/java/com/volmit/iris/engine/object/carve/IrisCaveFluid.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.carve;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.engine.object.annotations.MaxNumber;
diff --git a/src/main/java/com/volmit/iris/engine/object/carve/IrisCavernZone.java b/src/main/java/com/volmit/iris/engine/object/carve/IrisCavernZone.java
index 24e233b81..02b873c29 100644
--- a/src/main/java/com/volmit/iris/engine/object/carve/IrisCavernZone.java
+++ b/src/main/java/com/volmit/iris/engine/object/carve/IrisCavernZone.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.carve;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.engine.object.annotations.MaxNumber;
diff --git a/src/main/java/com/volmit/iris/engine/object/carve/IrisCaverns.java b/src/main/java/com/volmit/iris/engine/object/carve/IrisCaverns.java
index b11c3ab82..fcc4a2481 100644
--- a/src/main/java/com/volmit/iris/engine/object/carve/IrisCaverns.java
+++ b/src/main/java/com/volmit/iris/engine/object/carve/IrisCaverns.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.carve;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.ArrayType;
import com.volmit.iris.engine.object.annotations.Desc;
diff --git a/src/main/java/com/volmit/iris/engine/object/cave/IrisCave.java b/src/main/java/com/volmit/iris/engine/object/cave/IrisCave.java
index 4abb7bca7..30c3a3ff3 100644
--- a/src/main/java/com/volmit/iris/engine/object/cave/IrisCave.java
+++ b/src/main/java/com/volmit/iris/engine/object/cave/IrisCave.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.cave;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.engine.object.noise.IrisWorm;
import com.volmit.iris.util.json.JSONObject;
diff --git a/src/main/java/com/volmit/iris/engine/object/cave/IrisCavePlacer.java b/src/main/java/com/volmit/iris/engine/object/cave/IrisCavePlacer.java
index b31aa2389..93c7824df 100644
--- a/src/main/java/com/volmit/iris/engine/object/cave/IrisCavePlacer.java
+++ b/src/main/java/com/volmit/iris/engine/object/cave/IrisCavePlacer.java
@@ -19,7 +19,7 @@
package com.volmit.iris.engine.object.cave;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.engine.object.annotations.MinNumber;
diff --git a/src/main/java/com/volmit/iris/engine/object/common/HeadlessWorld.java b/src/main/java/com/volmit/iris/engine/object/common/HeadlessWorld.java
index f5e4a52a5..2dc270534 100644
--- a/src/main/java/com/volmit/iris/engine/object/common/HeadlessWorld.java
+++ b/src/main/java/com/volmit/iris/engine/object/common/HeadlessWorld.java
@@ -19,7 +19,7 @@
package com.volmit.iris.engine.object.common;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.service.StudioSVC;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.framework.Engine;
diff --git a/src/main/java/com/volmit/iris/engine/object/common/IObjectPlacer.java b/src/main/java/com/volmit/iris/engine/object/common/IObjectPlacer.java
index 447c472a2..191c81aeb 100644
--- a/src/main/java/com/volmit/iris/engine/object/common/IObjectPlacer.java
+++ b/src/main/java/com/volmit/iris/engine/object/common/IObjectPlacer.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.common;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.tile.TileData;
import org.bukkit.block.TileState;
import org.bukkit.block.data.BlockData;
diff --git a/src/main/java/com/volmit/iris/engine/object/common/IrisScript.java b/src/main/java/com/volmit/iris/engine/object/common/IrisScript.java
index 0ad77ac6b..ea4947429 100644
--- a/src/main/java/com/volmit/iris/engine/object/common/IrisScript.java
+++ b/src/main/java/com/volmit/iris/engine/object/common/IrisScript.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.common;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.util.json.JSONObject;
import com.volmit.iris.util.plugin.VolmitSender;
import lombok.Data;
diff --git a/src/main/java/com/volmit/iris/engine/object/decoration/IrisDecorator.java b/src/main/java/com/volmit/iris/engine/object/decoration/IrisDecorator.java
index 99ce1e2d7..e195c1e27 100644
--- a/src/main/java/com/volmit/iris/engine/object/decoration/IrisDecorator.java
+++ b/src/main/java/com/volmit/iris/engine/object/decoration/IrisDecorator.java
@@ -19,7 +19,7 @@
package com.volmit.iris.engine.object.decoration;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.engine.object.biome.IrisBiome;
diff --git a/src/main/java/com/volmit/iris/engine/object/deposits/IrisDepositGenerator.java b/src/main/java/com/volmit/iris/engine/object/deposits/IrisDepositGenerator.java
index 2fb8e4ba8..90e56a125 100644
--- a/src/main/java/com/volmit/iris/engine/object/deposits/IrisDepositGenerator.java
+++ b/src/main/java/com/volmit/iris/engine/object/deposits/IrisDepositGenerator.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.deposits;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.engine.object.block.IrisBlockData;
diff --git a/src/main/java/com/volmit/iris/engine/object/dimensional/IrisDimension.java b/src/main/java/com/volmit/iris/engine/object/dimensional/IrisDimension.java
index 0ca653a4f..9ef203694 100644
--- a/src/main/java/com/volmit/iris/engine/object/dimensional/IrisDimension.java
+++ b/src/main/java/com/volmit/iris/engine/object/dimensional/IrisDimension.java
@@ -19,8 +19,8 @@
package com.volmit.iris.engine.object.dimensional;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisData;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.engine.object.biome.InferredType;
diff --git a/src/main/java/com/volmit/iris/engine/object/entity/IrisEntity.java b/src/main/java/com/volmit/iris/engine/object/entity/IrisEntity.java
index 7c002ae4e..9a75b95a5 100644
--- a/src/main/java/com/volmit/iris/engine/object/entity/IrisEntity.java
+++ b/src/main/java/com/volmit/iris/engine/object/entity/IrisEntity.java
@@ -19,7 +19,7 @@
package com.volmit.iris.engine.object.entity;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.engine.object.common.IrisScript;
diff --git a/src/main/java/com/volmit/iris/engine/object/feature/IrisFeaturePositional.java b/src/main/java/com/volmit/iris/engine/object/feature/IrisFeaturePositional.java
index a7191cf11..fb3310172 100644
--- a/src/main/java/com/volmit/iris/engine/object/feature/IrisFeaturePositional.java
+++ b/src/main/java/com/volmit/iris/engine/object/feature/IrisFeaturePositional.java
@@ -20,7 +20,7 @@ package com.volmit.iris.engine.object.feature;
import com.google.gson.Gson;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.engine.object.annotations.Required;
diff --git a/src/main/java/com/volmit/iris/engine/object/jigsaw/IrisJigsawPiece.java b/src/main/java/com/volmit/iris/engine/object/jigsaw/IrisJigsawPiece.java
index 054db8418..ec7c62e7c 100644
--- a/src/main/java/com/volmit/iris/engine/object/jigsaw/IrisJigsawPiece.java
+++ b/src/main/java/com/volmit/iris/engine/object/jigsaw/IrisJigsawPiece.java
@@ -19,7 +19,7 @@
package com.volmit.iris.engine.object.jigsaw;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.ArrayType;
import com.volmit.iris.engine.object.annotations.Desc;
diff --git a/src/main/java/com/volmit/iris/engine/object/jigsaw/IrisJigsawPool.java b/src/main/java/com/volmit/iris/engine/object/jigsaw/IrisJigsawPool.java
index 8dd1a8aeb..535c76837 100644
--- a/src/main/java/com/volmit/iris/engine/object/jigsaw/IrisJigsawPool.java
+++ b/src/main/java/com/volmit/iris/engine/object/jigsaw/IrisJigsawPool.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.jigsaw;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.object.annotations.ArrayType;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.engine.object.annotations.RegistryListResource;
diff --git a/src/main/java/com/volmit/iris/engine/object/jigsaw/IrisJigsawStructure.java b/src/main/java/com/volmit/iris/engine/object/jigsaw/IrisJigsawStructure.java
index f643b8567..4abf865a1 100644
--- a/src/main/java/com/volmit/iris/engine/object/jigsaw/IrisJigsawStructure.java
+++ b/src/main/java/com/volmit/iris/engine/object/jigsaw/IrisJigsawStructure.java
@@ -19,7 +19,7 @@
package com.volmit.iris.engine.object.jigsaw;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.engine.object.feature.IrisFeature;
diff --git a/src/main/java/com/volmit/iris/engine/object/loot/IrisLootTable.java b/src/main/java/com/volmit/iris/engine/object/loot/IrisLootTable.java
index 221781d44..0cdb3f9da 100644
--- a/src/main/java/com/volmit/iris/engine/object/loot/IrisLootTable.java
+++ b/src/main/java/com/volmit/iris/engine/object/loot/IrisLootTable.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.loot;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.object.annotations.ArrayType;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.engine.object.annotations.MinNumber;
diff --git a/src/main/java/com/volmit/iris/engine/object/mods/IrisMod.java b/src/main/java/com/volmit/iris/engine/object/mods/IrisMod.java
index 19d4d4476..e04fd0e7f 100644
--- a/src/main/java/com/volmit/iris/engine/object/mods/IrisMod.java
+++ b/src/main/java/com/volmit/iris/engine/object/mods/IrisMod.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.mods;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.engine.object.biome.IrisBiome;
import com.volmit.iris.engine.object.objects.IrisObject;
diff --git a/src/main/java/com/volmit/iris/engine/object/noise/IrisExpression.java b/src/main/java/com/volmit/iris/engine/object/noise/IrisExpression.java
index 977cf1e4d..f3c1c5ec1 100644
--- a/src/main/java/com/volmit/iris/engine/object/noise/IrisExpression.java
+++ b/src/main/java/com/volmit/iris/engine/object/noise/IrisExpression.java
@@ -22,7 +22,7 @@ import com.dfsek.paralithic.Expression;
import com.dfsek.paralithic.eval.parser.Parser;
import com.dfsek.paralithic.eval.parser.Scope;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.ArrayType;
import com.volmit.iris.engine.object.annotations.Desc;
diff --git a/src/main/java/com/volmit/iris/engine/object/noise/IrisExpressionLoad.java b/src/main/java/com/volmit/iris/engine/object/noise/IrisExpressionLoad.java
index 45c6f6c67..08a3ad9d4 100644
--- a/src/main/java/com/volmit/iris/engine/object/noise/IrisExpressionLoad.java
+++ b/src/main/java/com/volmit/iris/engine/object/noise/IrisExpressionLoad.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.noise;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.engine.object.annotations.Required;
diff --git a/src/main/java/com/volmit/iris/engine/object/noise/IrisGenerator.java b/src/main/java/com/volmit/iris/engine/object/noise/IrisGenerator.java
index 5df9df69b..c250b9de6 100644
--- a/src/main/java/com/volmit/iris/engine/object/noise/IrisGenerator.java
+++ b/src/main/java/com/volmit/iris/engine/object/noise/IrisGenerator.java
@@ -19,7 +19,7 @@
package com.volmit.iris.engine.object.noise;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.engine.object.common.IRare;
diff --git a/src/main/java/com/volmit/iris/engine/object/noise/IrisGeneratorStyle.java b/src/main/java/com/volmit/iris/engine/object/noise/IrisGeneratorStyle.java
index 2bcf60bcc..a1541c2e9 100644
--- a/src/main/java/com/volmit/iris/engine/object/noise/IrisGeneratorStyle.java
+++ b/src/main/java/com/volmit/iris/engine/object/noise/IrisGeneratorStyle.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.noise;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.engine.object.annotations.MaxNumber;
diff --git a/src/main/java/com/volmit/iris/engine/object/noise/IrisNoiseGenerator.java b/src/main/java/com/volmit/iris/engine/object/noise/IrisNoiseGenerator.java
index 7a9118bf5..67111be62 100644
--- a/src/main/java/com/volmit/iris/engine/object/noise/IrisNoiseGenerator.java
+++ b/src/main/java/com/volmit/iris/engine/object/noise/IrisNoiseGenerator.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.noise;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.util.collection.KList;
diff --git a/src/main/java/com/volmit/iris/engine/object/noise/IrisShapedGeneratorStyle.java b/src/main/java/com/volmit/iris/engine/object/noise/IrisShapedGeneratorStyle.java
index 1c5273dbc..a61f6ff62 100644
--- a/src/main/java/com/volmit/iris/engine/object/noise/IrisShapedGeneratorStyle.java
+++ b/src/main/java/com/volmit/iris/engine/object/noise/IrisShapedGeneratorStyle.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.noise;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.engine.object.annotations.MaxNumber;
import com.volmit.iris.engine.object.annotations.MinNumber;
diff --git a/src/main/java/com/volmit/iris/engine/object/noise/IrisStyledRange.java b/src/main/java/com/volmit/iris/engine/object/noise/IrisStyledRange.java
index a421d15c3..a9ea677e7 100644
--- a/src/main/java/com/volmit/iris/engine/object/noise/IrisStyledRange.java
+++ b/src/main/java/com/volmit/iris/engine/object/noise/IrisStyledRange.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.noise;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.util.math.M;
import com.volmit.iris.util.math.RNG;
diff --git a/src/main/java/com/volmit/iris/engine/object/noise/IrisWorm.java b/src/main/java/com/volmit/iris/engine/object/noise/IrisWorm.java
index 02e85329e..c5836f216 100644
--- a/src/main/java/com/volmit/iris/engine/object/noise/IrisWorm.java
+++ b/src/main/java/com/volmit/iris/engine/object/noise/IrisWorm.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.noise;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.util.function.NoiseProvider;
diff --git a/src/main/java/com/volmit/iris/engine/object/objects/IrisObject.java b/src/main/java/com/volmit/iris/engine/object/objects/IrisObject.java
index 8c6ade3d5..41b3f53c4 100644
--- a/src/main/java/com/volmit/iris/engine/object/objects/IrisObject.java
+++ b/src/main/java/com/volmit/iris/engine/object/objects/IrisObject.java
@@ -19,8 +19,8 @@
package com.volmit.iris.engine.object.objects;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisData;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.framework.placer.HeightmapObjectPlacer;
import com.volmit.iris.engine.object.basic.IrisPosition;
diff --git a/src/main/java/com/volmit/iris/engine/object/objects/IrisObjectLoot.java b/src/main/java/com/volmit/iris/engine/object/objects/IrisObjectLoot.java
index 5382111ca..de94e809d 100644
--- a/src/main/java/com/volmit/iris/engine/object/objects/IrisObjectLoot.java
+++ b/src/main/java/com/volmit/iris/engine/object/objects/IrisObjectLoot.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.objects;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.ArrayType;
import com.volmit.iris.engine.object.annotations.Desc;
diff --git a/src/main/java/com/volmit/iris/engine/object/objects/IrisObjectPlacement.java b/src/main/java/com/volmit/iris/engine/object/objects/IrisObjectPlacement.java
index c8217d27a..907d4eb65 100644
--- a/src/main/java/com/volmit/iris/engine/object/objects/IrisObjectPlacement.java
+++ b/src/main/java/com/volmit/iris/engine/object/objects/IrisObjectPlacement.java
@@ -19,7 +19,7 @@
package com.volmit.iris.engine.object.objects;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.engine.object.feature.IrisFeaturePotential;
diff --git a/src/main/java/com/volmit/iris/engine/object/objects/IrisObjectReplace.java b/src/main/java/com/volmit/iris/engine/object/objects/IrisObjectReplace.java
index 0176b19ca..fc1baf56a 100644
--- a/src/main/java/com/volmit/iris/engine/object/objects/IrisObjectReplace.java
+++ b/src/main/java/com/volmit/iris/engine/object/objects/IrisObjectReplace.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.objects;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.engine.object.block.IrisBlockData;
diff --git a/src/main/java/com/volmit/iris/engine/object/regional/IrisRegion.java b/src/main/java/com/volmit/iris/engine/object/regional/IrisRegion.java
index e263bd2bd..906e9c6a4 100644
--- a/src/main/java/com/volmit/iris/engine/object/regional/IrisRegion.java
+++ b/src/main/java/com/volmit/iris/engine/object/regional/IrisRegion.java
@@ -20,8 +20,8 @@ package com.volmit.iris.engine.object.regional;
import com.volmit.iris.Iris;
import com.volmit.iris.core.gui.components.RenderType;
-import com.volmit.iris.core.project.loader.IrisData;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisData;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.*;
import com.volmit.iris.engine.object.biome.InferredType;
diff --git a/src/main/java/com/volmit/iris/engine/object/spawners/IrisSpawner.java b/src/main/java/com/volmit/iris/engine/object/spawners/IrisSpawner.java
index 5a0b08279..14e9df2b8 100644
--- a/src/main/java/com/volmit/iris/engine/object/spawners/IrisSpawner.java
+++ b/src/main/java/com/volmit/iris/engine/object/spawners/IrisSpawner.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.object.spawners;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.object.annotations.ArrayType;
import com.volmit.iris.engine.object.annotations.Desc;
import com.volmit.iris.engine.object.basic.IrisRange;
diff --git a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java
index 014612663..391003760 100644
--- a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java
+++ b/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java
@@ -19,7 +19,7 @@
package com.volmit.iris.engine.platform;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.service.StudioSVC;
import com.volmit.iris.engine.IrisEngine;
import com.volmit.iris.engine.data.chunk.TerrainChunk;
diff --git a/src/main/java/com/volmit/iris/engine/platform/PlatformChunkGenerator.java b/src/main/java/com/volmit/iris/engine/platform/PlatformChunkGenerator.java
index eefcd6d47..12461060f 100644
--- a/src/main/java/com/volmit/iris/engine/platform/PlatformChunkGenerator.java
+++ b/src/main/java/com/volmit/iris/engine/platform/PlatformChunkGenerator.java
@@ -18,7 +18,7 @@
package com.volmit.iris.engine.platform;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineTarget;
import com.volmit.iris.engine.framework.Hotloadable;
diff --git a/src/main/java/com/volmit/iris/engine/scripting/IrisScriptingAPI.java b/src/main/java/com/volmit/iris/engine/scripting/IrisScriptingAPI.java
index 9c19a7bb5..d1423fae9 100644
--- a/src/main/java/com/volmit/iris/engine/scripting/IrisScriptingAPI.java
+++ b/src/main/java/com/volmit/iris/engine/scripting/IrisScriptingAPI.java
@@ -19,8 +19,8 @@
package com.volmit.iris.engine.scripting;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisData;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.object.biome.IrisBiome;
diff --git a/src/main/java/com/volmit/iris/util/context/IrisContext.java b/src/main/java/com/volmit/iris/util/context/IrisContext.java
index 155db0832..799530d13 100644
--- a/src/main/java/com/volmit/iris/util/context/IrisContext.java
+++ b/src/main/java/com/volmit/iris/util/context/IrisContext.java
@@ -19,7 +19,7 @@
package com.volmit.iris.util.context;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.util.collection.KMap;
diff --git a/src/main/java/com/volmit/iris/util/data/DataProvider.java b/src/main/java/com/volmit/iris/util/data/DataProvider.java
index 9fa3adb1b..4847ce047 100644
--- a/src/main/java/com/volmit/iris/util/data/DataProvider.java
+++ b/src/main/java/com/volmit/iris/util/data/DataProvider.java
@@ -18,7 +18,7 @@
package com.volmit.iris.util.data;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
public interface DataProvider {
IrisData getData();
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java
index 5f6c9ec42..d142cea4d 100644
--- a/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java
+++ b/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java
@@ -19,7 +19,7 @@
package com.volmit.iris.util.decree.handlers;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.biome.IrisBiome;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap;
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java
index 3e4f43fbd..1d93ee01d 100644
--- a/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java
+++ b/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java
@@ -19,7 +19,7 @@
package com.volmit.iris.util.decree.handlers;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.dimensional.IrisDimension;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap;
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java
index ab364b18e..f28d61f4e 100644
--- a/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java
+++ b/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java
@@ -19,7 +19,7 @@
package com.volmit.iris.util.decree.handlers;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.entity.IrisEntity;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap;
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java
index c31390629..104809a20 100644
--- a/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java
+++ b/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java
@@ -19,7 +19,7 @@
package com.volmit.iris.util.decree.handlers;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.noise.IrisGenerator;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap;
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java
index 12d6064c3..8f205af9a 100644
--- a/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java
+++ b/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java
@@ -19,7 +19,7 @@
package com.volmit.iris.util.decree.handlers;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.regional.IrisRegion;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap;
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java b/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java
index 3120a7aa0..895fe8e52 100644
--- a/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java
+++ b/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java
@@ -19,7 +19,7 @@
package com.volmit.iris.util.decree.handlers;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.common.IrisScript;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap;
diff --git a/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java b/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java
index 7d7af67fe..a88ca4e2c 100644
--- a/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java
+++ b/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java
@@ -19,7 +19,7 @@
package com.volmit.iris.util.decree.specialhandlers;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.decree.DecreeParameterHandler;
import com.volmit.iris.util.decree.exceptions.DecreeParsingException;
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/RegionMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/RegionMatter.java
index 840dc6e77..ae89607ca 100644
--- a/src/main/java/com/volmit/iris/util/matter/slices/RegionMatter.java
+++ b/src/main/java/com/volmit/iris/util/matter/slices/RegionMatter.java
@@ -18,7 +18,7 @@
package com.volmit.iris.util.matter.slices;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.util.matter.Sliced;
@Sliced
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java b/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java
index 7938df3f6..8a343b2af 100644
--- a/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java
+++ b/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java
@@ -18,7 +18,7 @@
package com.volmit.iris.util.matter.slices;
-import com.volmit.iris.core.project.loader.IrisRegistrant;
+import com.volmit.iris.core.loader.IrisRegistrant;
import com.volmit.iris.util.context.IrisContext;
import java.io.DataInputStream;
diff --git a/src/main/java/com/volmit/iris/util/stream/ProceduralStream.java b/src/main/java/com/volmit/iris/util/stream/ProceduralStream.java
index 1b22dc511..3ba8ebb41 100644
--- a/src/main/java/com/volmit/iris/util/stream/ProceduralStream.java
+++ b/src/main/java/com/volmit/iris/util/stream/ProceduralStream.java
@@ -19,7 +19,7 @@
package com.volmit.iris.util.stream;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.project.loader.IrisData;
+import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.engine.object.common.IRare;
import com.volmit.iris.engine.object.noise.IrisStyledRange;
import com.volmit.iris.util.collection.KList;