diff --git a/forge-gui-desktop/src/main/java/forge/GuiDesktop.java b/forge-gui-desktop/src/main/java/forge/GuiDesktop.java
index f99c8459ed5..fa9b06a8d82 100644
--- a/forge-gui-desktop/src/main/java/forge/GuiDesktop.java
+++ b/forge-gui-desktop/src/main/java/forge/GuiDesktop.java
@@ -5,6 +5,7 @@ import com.google.common.base.Function;
import forge.download.GuiDownloadService;
import forge.download.GuiDownloader;
import forge.error.BugReportDialog;
+import forge.gamemodes.match.HostedMatch;
import forge.gui.BoxedProductCardListViewer;
import forge.gui.CardListChooser;
import forge.gui.CardListViewer;
@@ -15,7 +16,6 @@ import forge.interfaces.IGuiGame;
import forge.item.PaperCard;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.assets.ISkinImage;
-import forge.match.HostedMatch;
import forge.model.FModel;
import forge.screens.deckeditor.CDeckEditorUI;
import forge.screens.deckeditor.controllers.CEditorQuestCardShop;
diff --git a/forge-gui-desktop/src/main/java/forge/control/FControl.java b/forge-gui-desktop/src/main/java/forge/control/FControl.java
index 4651b74c37c..e3f46f89a22 100644
--- a/forge-gui-desktop/src/main/java/forge/control/FControl.java
+++ b/forge-gui-desktop/src/main/java/forge/control/FControl.java
@@ -44,6 +44,9 @@ import forge.GuiBase;
import forge.ImageCache;
import forge.LobbyPlayer;
import forge.Singletons;
+import forge.gamemodes.match.HostedMatch;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
+import forge.gamemodes.quest.io.QuestDataIO;
import forge.gui.SOverlayUtils;
import forge.gui.framework.FScreen;
import forge.gui.framework.InvalidLayoutFileException;
@@ -54,12 +57,9 @@ import forge.localinstance.assets.FSkinProp;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.HostedMatch;
import forge.menus.ForgeMenu;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
-import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.io.QuestDataIO;
import forge.screens.deckeditor.CDeckEditorUI;
import forge.toolbox.FOptionPane;
import forge.toolbox.FSkin;
diff --git a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java
index 4a3c2019ba3..ff86d0daa05 100644
--- a/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java
+++ b/forge-gui-desktop/src/main/java/forge/deckchooser/FDeckChooser.java
@@ -23,16 +23,16 @@ import forge.FThreads;
import forge.UiCommand;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestEvent;
+import forge.gamemodes.quest.QuestEventChallenge;
+import forge.gamemodes.quest.QuestUtil;
import forge.itemmanager.DeckManager;
import forge.itemmanager.ItemManagerConfig;
import forge.itemmanager.ItemManagerContainer;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestEvent;
-import forge.quest.QuestEventChallenge;
-import forge.quest.QuestUtil;
import forge.screens.match.controllers.CDetailPicture;
import forge.toolbox.FLabel;
import forge.toolbox.FOptionPane;
diff --git a/forge-gui-desktop/src/main/java/forge/gui/FNetOverlay.java b/forge-gui-desktop/src/main/java/forge/gui/FNetOverlay.java
index e587ccc69c7..072bf4c8775 100644
--- a/forge-gui-desktop/src/main/java/forge/gui/FNetOverlay.java
+++ b/forge-gui-desktop/src/main/java/forge/gui/FNetOverlay.java
@@ -14,14 +14,14 @@ import net.miginfocom.swing.MigLayout;
import org.apache.commons.lang3.StringUtils;
import forge.Singletons;
+import forge.gamemodes.net.ChatMessage;
+import forge.gamemodes.net.IOnlineChatInterface;
+import forge.gamemodes.net.IRemote;
+import forge.gamemodes.net.event.MessageEvent;
import forge.gui.framework.SDisplayUtil;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.net.ChatMessage;
-import forge.net.IOnlineChatInterface;
-import forge.net.IRemote;
-import forge.net.event.MessageEvent;
import forge.screens.home.online.OnlineMenu;
import forge.toolbox.FLabel;
import forge.toolbox.FMouseAdapter;
diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/CardManager.java b/forge-gui-desktop/src/main/java/forge/itemmanager/CardManager.java
index caf187048ea..60b069dfcaf 100644
--- a/forge-gui-desktop/src/main/java/forge/itemmanager/CardManager.java
+++ b/forge-gui-desktop/src/main/java/forge/itemmanager/CardManager.java
@@ -1,12 +1,12 @@
package forge.itemmanager;
import forge.game.GameFormat;
+import forge.gamemodes.quest.QuestWorld;
+import forge.gamemodes.quest.data.QuestPreferences;
import forge.gui.GuiUtils;
import forge.item.PaperCard;
import forge.itemmanager.filters.*;
import forge.model.FModel;
-import forge.quest.QuestWorld;
-import forge.quest.data.QuestPreferences;
import forge.screens.home.quest.DialogChooseFormats;
import forge.screens.home.quest.DialogChooseSets;
import forge.screens.match.controllers.CDetailPicture;
diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/DeckManager.java b/forge-gui-desktop/src/main/java/forge/itemmanager/DeckManager.java
index 28af9eb3623..efba3454986 100644
--- a/forge-gui-desktop/src/main/java/forge/itemmanager/DeckManager.java
+++ b/forge-gui-desktop/src/main/java/forge/itemmanager/DeckManager.java
@@ -26,6 +26,7 @@ import forge.deck.io.DeckPreferences;
import forge.game.GameFormat;
import forge.game.GameType;
import forge.game.IHasGameType;
+import forge.gamemodes.quest.QuestWorld;
import forge.gui.GuiUtils;
import forge.gui.framework.FScreen;
import forge.item.InventoryItem;
@@ -43,7 +44,6 @@ import forge.itemmanager.views.ItemListView;
import forge.itemmanager.views.ItemTableColumn;
import forge.localinstance.assets.FSkinProp;
import forge.model.FModel;
-import forge.quest.QuestWorld;
import forge.screens.deckeditor.CDeckEditorUI;
import forge.screens.deckeditor.SEditorIO;
import forge.screens.deckeditor.controllers.ACEditorBase;
diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardQuestWorldFilter.java b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardQuestWorldFilter.java
index 0970b593e07..518922a67d1 100644
--- a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardQuestWorldFilter.java
+++ b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/CardQuestWorldFilter.java
@@ -4,10 +4,10 @@ import java.util.HashSet;
import java.util.Set;
import forge.game.GameFormat;
+import forge.gamemodes.quest.QuestWorld;
import forge.item.PaperCard;
import forge.itemmanager.ItemManager;
import forge.model.FModel;
-import forge.quest.QuestWorld;
public class CardQuestWorldFilter extends CardFormatFilter {
diff --git a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/DeckQuestWorldFilter.java b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/DeckQuestWorldFilter.java
index 366f6058452..fe80ecae52a 100644
--- a/forge-gui-desktop/src/main/java/forge/itemmanager/filters/DeckQuestWorldFilter.java
+++ b/forge-gui-desktop/src/main/java/forge/itemmanager/filters/DeckQuestWorldFilter.java
@@ -5,9 +5,9 @@ import java.util.Set;
import forge.deck.DeckProxy;
import forge.game.GameFormat;
+import forge.gamemodes.quest.QuestWorld;
import forge.itemmanager.ItemManager;
import forge.model.FModel;
-import forge.quest.QuestWorld;
public class DeckQuestWorldFilter extends DeckFormatFilter {
diff --git a/forge-gui-desktop/src/main/java/forge/screens/bazaar/CBazaarUI.java b/forge-gui-desktop/src/main/java/forge/screens/bazaar/CBazaarUI.java
index 2a91e454ff6..560618b80b9 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/bazaar/CBazaarUI.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/bazaar/CBazaarUI.java
@@ -4,8 +4,8 @@ import javax.swing.SwingUtilities;
import com.google.common.collect.Iterables;
+import forge.gamemodes.quest.bazaar.QuestBazaarManager;
import forge.gui.framework.ICDoc;
-import forge.quest.bazaar.QuestBazaarManager;
import forge.toolbox.FLabel;
public enum CBazaarUI implements ICDoc {
diff --git a/forge-gui-desktop/src/main/java/forge/screens/bazaar/VBazaarUI.java b/forge-gui-desktop/src/main/java/forge/screens/bazaar/VBazaarUI.java
index 0aad8c587cc..9e15ec5e64e 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/bazaar/VBazaarUI.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/bazaar/VBazaarUI.java
@@ -2,11 +2,11 @@ package forge.screens.bazaar;
import forge.GuiBase;
import forge.UiCommand;
+import forge.gamemodes.quest.bazaar.QuestBazaarManager;
import forge.gui.framework.FScreen;
import forge.gui.framework.IVTopLevelUI;
import forge.localinstance.assets.FSkinProp;
import forge.model.FModel;
-import forge.quest.bazaar.QuestBazaarManager;
import forge.screens.home.quest.ViewStall;
import forge.toolbox.FLabel;
import forge.toolbox.FPanel;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorDraftingProcess.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorDraftingProcess.java
index bc2f3580ac7..373979bf7c5 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorDraftingProcess.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorDraftingProcess.java
@@ -22,13 +22,13 @@ import forge.deck.Deck;
import forge.deck.DeckGroup;
import forge.deck.DeckSection;
import forge.game.GameType;
+import forge.gamemodes.limited.BoosterDraft;
+import forge.gamemodes.limited.IBoosterDraft;
import forge.gui.framework.DragCell;
import forge.gui.framework.FScreen;
import forge.item.PaperCard;
import forge.itemmanager.CardManager;
import forge.itemmanager.ItemManagerConfig;
-import forge.limited.BoosterDraft;
-import forge.limited.IBoosterDraft;
import forge.model.FModel;
import forge.screens.deckeditor.CDeckEditorUI;
import forge.screens.deckeditor.views.*;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuest.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuest.java
index c842ec24e2a..57062e5df9a 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuest.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuest.java
@@ -30,6 +30,8 @@ import forge.deck.CardPool;
import forge.deck.Deck;
import forge.deck.DeckSection;
import forge.game.GameType;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.data.DeckConstructionRules;
import forge.gui.GuiUtils;
import forge.gui.framework.DragCell;
import forge.gui.framework.FScreen;
@@ -41,8 +43,6 @@ import forge.itemmanager.ItemManagerConfig;
import forge.itemmanager.views.ItemTableColumn;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.data.DeckConstructionRules;
import forge.screens.deckeditor.AddBasicLandsDialog;
import forge.screens.deckeditor.SEditorIO;
import forge.screens.deckeditor.views.VAllDecks;
@@ -102,7 +102,7 @@ public final class CEditorQuest extends CDeckEditor {
*
* Card catalog and decks are drawn from a QuestController object.
*
- * @param questData0 {@link forge.quest.QuestController}
+ * @param questData0 {@link forge.gamemodes.quest.QuestController}
*/
@SuppressWarnings("serial")
public CEditorQuest(final QuestController questData0, final CDetailPicture cDetailPicture0) {
diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuestCardShop.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuestCardShop.java
index 9a88115a5a7..f99cd92bd8e 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuestCardShop.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuestCardShop.java
@@ -20,6 +20,9 @@ package forge.screens.deckeditor.controllers;
import forge.UiCommand;
import forge.deck.DeckBase;
import forge.game.GameType;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestSpellShop;
+import forge.gamemodes.quest.QuestUtil;
import forge.gui.framework.DragCell;
import forge.gui.framework.FScreen;
import forge.item.*;
@@ -29,9 +32,6 @@ import forge.itemmanager.SpellShopManager;
import forge.itemmanager.views.ItemTableColumn;
import forge.localinstance.assets.FSkinProp;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestSpellShop;
-import forge.quest.QuestUtil;
import forge.screens.deckeditor.views.*;
import forge.screens.home.quest.CSubmenuQuestDecks;
import forge.screens.match.controllers.CDetailPicture;
@@ -95,7 +95,7 @@ public final class CEditorQuestCardShop extends ACEditorBase {
*
* Card catalog and decks are drawn from a QuestController object.
*
- * @param questData0 {@link forge.quest.QuestController}
+ * @param questData0 {@link forge.gamemodes.quest.QuestController}
*/
@SuppressWarnings("serial")
public CEditorQuestLimited(final QuestController questData0, final CDetailPicture cDetailPicture0) {
diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorWinstonProcess.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorWinstonProcess.java
index 3500a17c1fc..eb8b955f03e 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorWinstonProcess.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorWinstonProcess.java
@@ -25,14 +25,14 @@ import forge.deck.Deck;
import forge.deck.DeckGroup;
import forge.deck.DeckSection;
import forge.game.GameType;
+import forge.gamemodes.limited.BoosterDraft;
+import forge.gamemodes.limited.IBoosterDraft;
+import forge.gamemodes.limited.WinstonDraft;
import forge.gui.framework.DragCell;
import forge.gui.framework.FScreen;
import forge.item.PaperCard;
import forge.itemmanager.CardManager;
import forge.itemmanager.ItemManagerConfig;
-import forge.limited.BoosterDraft;
-import forge.limited.IBoosterDraft;
-import forge.limited.WinstonDraft;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
import forge.screens.deckeditor.CDeckEditorUI;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/PlayerPanel.java b/forge-gui-desktop/src/main/java/forge/screens/home/PlayerPanel.java
index 9a540f8c32e..fc2310b87a0 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/PlayerPanel.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/PlayerPanel.java
@@ -27,13 +27,13 @@ import forge.UiCommand;
import forge.ai.AIOption;
import forge.deck.DeckSection;
import forge.game.GameType;
+import forge.gamemodes.match.LobbySlot;
+import forge.gamemodes.match.LobbySlotType;
import forge.gui.framework.FScreen;
import forge.item.PaperCard;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.LobbySlot;
-import forge.match.LobbySlotType;
import forge.model.FModel;
import forge.screens.deckeditor.CDeckEditorUI;
import forge.screens.deckeditor.controllers.CEditorVariant;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java
index d93989ea97e..97370fd3c05 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/VLobby.java
@@ -10,17 +10,17 @@ import forge.deck.*;
import forge.deckchooser.FDeckChooser;
import forge.game.GameType;
import forge.game.card.CardView;
+import forge.gamemodes.match.GameLobby;
+import forge.gamemodes.match.LobbySlot;
+import forge.gamemodes.match.LobbySlotType;
+import forge.gamemodes.net.event.UpdateLobbyPlayerEvent;
import forge.gui.CardDetailPanel;
import forge.interfaces.ILobbyView;
import forge.interfaces.IPlayerChangeListener;
import forge.item.PaperCard;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.GameLobby;
-import forge.match.LobbySlot;
-import forge.match.LobbySlotType;
import forge.model.FModel;
-import forge.net.event.UpdateLobbyPlayerEvent;
import forge.toolbox.*;
import forge.toolbox.FSkin.SkinImage;
import forge.util.Aggregates;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletBuild.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletBuild.java
index b74f9f53273..02b9febe403 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletBuild.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletBuild.java
@@ -13,8 +13,8 @@ import org.apache.commons.lang3.ArrayUtils;
import forge.UiCommand;
import forge.deck.Deck;
-import forge.gauntlet.GauntletData;
-import forge.gauntlet.GauntletIO;
+import forge.gamemodes.gauntlet.GauntletData;
+import forge.gamemodes.gauntlet.GauntletIO;
import forge.gui.framework.ICDoc;
import forge.localinstance.properties.ForgeConstants;
import forge.toolbox.FOptionPane;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletContests.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletContests.java
index e220842ad8e..ea0a43e3e47 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletContests.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletContests.java
@@ -10,8 +10,8 @@ import javax.swing.SwingUtilities;
import forge.deck.Deck;
import forge.game.player.RegisteredPlayer;
-import forge.gauntlet.GauntletData;
-import forge.gauntlet.GauntletIO;
+import forge.gamemodes.gauntlet.GauntletData;
+import forge.gamemodes.gauntlet.GauntletIO;
import forge.gui.SOverlayUtils;
import forge.gui.framework.ICDoc;
import forge.model.FModel;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletLoad.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletLoad.java
index a5ce391de90..525fa3284fa 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletLoad.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletLoad.java
@@ -14,8 +14,8 @@ import forge.deck.Deck;
import forge.deck.DeckType;
import forge.deckchooser.FDeckChooser;
import forge.game.player.RegisteredPlayer;
-import forge.gauntlet.GauntletData;
-import forge.gauntlet.GauntletIO;
+import forge.gamemodes.gauntlet.GauntletData;
+import forge.gamemodes.gauntlet.GauntletIO;
import forge.gui.SOverlayUtils;
import forge.gui.framework.ICDoc;
import forge.model.FModel;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletQuick.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletQuick.java
index d32dd9d2011..5c28ec6290c 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletQuick.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/CSubmenuGauntletQuick.java
@@ -9,8 +9,8 @@ import javax.swing.SwingUtilities;
import forge.deck.DeckType;
import forge.game.player.RegisteredPlayer;
-import forge.gauntlet.GauntletData;
-import forge.gauntlet.GauntletUtil;
+import forge.gamemodes.gauntlet.GauntletData;
+import forge.gamemodes.gauntlet.GauntletUtil;
import forge.gui.SOverlayUtils;
import forge.gui.framework.ICDoc;
import forge.player.GamePlayerUtil;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/ContestGauntletLister.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/ContestGauntletLister.java
index 00a25b1da95..e92b1a3f20b 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/ContestGauntletLister.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/ContestGauntletLister.java
@@ -13,8 +13,8 @@ import javax.swing.SwingConstants;
import net.miginfocom.swing.MigLayout;
import forge.UiCommand;
-import forge.gauntlet.GauntletData;
-import forge.gauntlet.GauntletIO;
+import forge.gamemodes.gauntlet.GauntletData;
+import forge.gamemodes.gauntlet.GauntletIO;
import forge.toolbox.FLabel;
import forge.toolbox.FSkin;
import forge.toolbox.FSkin.SkinnedPanel;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/QuickGauntletLister.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/QuickGauntletLister.java
index 57e299e094c..84351847eb4 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/QuickGauntletLister.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/QuickGauntletLister.java
@@ -14,10 +14,10 @@ import javax.swing.border.Border;
import net.miginfocom.swing.MigLayout;
import forge.UiCommand;
-import forge.gauntlet.GauntletData;
-import forge.gauntlet.GauntletIO;
+import forge.gamemodes.gauntlet.GauntletData;
+import forge.gamemodes.gauntlet.GauntletIO;
+import forge.gamemodes.quest.QuestUtil;
import forge.localinstance.assets.FSkinProp;
-import forge.quest.QuestUtil;
import forge.toolbox.FLabel;
import forge.toolbox.FMouseAdapter;
import forge.toolbox.FOptionPane;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletBuild.java b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletBuild.java
index 8acb590c42d..2ea805e2459 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletBuild.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/gauntlet/VSubmenuGauntletBuild.java
@@ -2,7 +2,7 @@ package forge.screens.home.gauntlet;
import forge.deckchooser.FDeckChooser;
import forge.game.GameType;
-import forge.gauntlet.GauntletIO;
+import forge.gamemodes.gauntlet.GauntletIO;
import forge.gui.framework.DragCell;
import forge.gui.framework.DragTab;
import forge.gui.framework.EDocID;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/online/CSubmenuOnlineLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/online/CSubmenuOnlineLobby.java
index 6a29136595e..ace48d1864d 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/online/CSubmenuOnlineLobby.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/online/CSubmenuOnlineLobby.java
@@ -9,14 +9,14 @@ import javax.swing.SwingUtilities;
import forge.FThreads;
import forge.error.BugReporter;
+import forge.gamemodes.net.ChatMessage;
+import forge.gamemodes.net.NetConnectUtil;
import forge.gui.FNetOverlay;
import forge.gui.SOverlayUtils;
import forge.gui.framework.EDocID;
import forge.gui.framework.ICDoc;
import forge.menus.IMenuProvider;
import forge.menus.MenuUtil;
-import forge.net.ChatMessage;
-import forge.net.NetConnectUtil;
import forge.screens.home.CHomeUI;
import forge.screens.home.CLobby;
import forge.screens.home.VLobby;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java b/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java
index 5e93afce851..233560aab08 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/online/VSubmenuOnlineLobby.java
@@ -10,6 +10,10 @@ import net.miginfocom.swing.MigLayout;
import forge.deckchooser.DecksComboBoxEvent;
import forge.deckchooser.FDeckChooser;
import forge.deckchooser.IDecksComboBoxListener;
+import forge.gamemodes.match.GameLobby;
+import forge.gamemodes.net.IOnlineLobby;
+import forge.gamemodes.net.client.FGameClient;
+import forge.gamemodes.net.server.FServerManager;
import forge.gui.FNetOverlay;
import forge.gui.framework.DragCell;
import forge.gui.framework.DragTab;
@@ -17,10 +21,6 @@ import forge.gui.framework.EDocID;
import forge.gui.framework.FScreen;
import forge.gui.framework.IVTopLevelUI;
import forge.interfaces.ILobbyView;
-import forge.match.GameLobby;
-import forge.net.IOnlineLobby;
-import forge.net.client.FGameClient;
-import forge.net.server.FServerManager;
import forge.toolbox.FButton;
import forge.toolbox.FSkin;
import forge.util.gui.SOptionPane;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuPuzzleCreate.java b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuPuzzleCreate.java
index 5bf6aeee046..1baee6bef27 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuPuzzleCreate.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuPuzzleCreate.java
@@ -6,13 +6,13 @@ import forge.deck.Deck;
import forge.game.GameRules;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.match.HostedMatch;
+import forge.gamemodes.puzzle.Puzzle;
import forge.gui.SOverlayUtils;
import forge.gui.framework.ICDoc;
-import forge.match.HostedMatch;
import forge.menus.IMenuProvider;
import forge.menus.MenuUtil;
import forge.player.GamePlayerUtil;
-import forge.puzzle.Puzzle;
import forge.util.gui.SGuiChoose;
import forge.util.gui.SOptionPane;
import forge.util.Localizer;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuPuzzleSolve.java b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuPuzzleSolve.java
index c212aa65336..bd2ba68ac74 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuPuzzleSolve.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuPuzzleSolve.java
@@ -6,16 +6,16 @@ import forge.deck.Deck;
import forge.game.GameRules;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.match.HostedMatch;
+import forge.gamemodes.puzzle.Puzzle;
+import forge.gamemodes.puzzle.PuzzleIO;
import forge.gui.SOverlayUtils;
import forge.gui.framework.ICDoc;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.properties.ForgeConstants;
-import forge.match.HostedMatch;
import forge.menus.IMenuProvider;
import forge.menus.MenuUtil;
import forge.player.GamePlayerUtil;
-import forge.puzzle.Puzzle;
-import forge.puzzle.PuzzleIO;
import forge.util.Localizer;
import forge.util.gui.SOptionPane;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuTutorial.java b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuTutorial.java
index dc808d86439..ea5d2bde0ca 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuTutorial.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/CSubmenuTutorial.java
@@ -6,16 +6,16 @@ import forge.deck.Deck;
import forge.game.GameRules;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.match.HostedMatch;
+import forge.gamemodes.puzzle.Puzzle;
+import forge.gamemodes.puzzle.PuzzleIO;
import forge.gui.SOverlayUtils;
import forge.gui.framework.ICDoc;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.properties.ForgeConstants;
-import forge.match.HostedMatch;
import forge.menus.IMenuProvider;
import forge.menus.MenuUtil;
import forge.player.GamePlayerUtil;
-import forge.puzzle.Puzzle;
-import forge.puzzle.PuzzleIO;
import forge.util.Localizer;
import forge.util.gui.SOptionPane;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/VSubmenuPuzzleCreate.java b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/VSubmenuPuzzleCreate.java
index ff2fbb92f84..18d7e45237b 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/VSubmenuPuzzleCreate.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/VSubmenuPuzzleCreate.java
@@ -1,12 +1,12 @@
package forge.screens.home.puzzle;
+import forge.gamemodes.match.GameLobby;
+import forge.gamemodes.match.LocalLobby;
+import forge.gamemodes.net.event.UpdateLobbyPlayerEvent;
import forge.gui.framework.DragCell;
import forge.gui.framework.DragTab;
import forge.gui.framework.EDocID;
import forge.interfaces.IPlayerChangeListener;
-import forge.match.GameLobby;
-import forge.match.LocalLobby;
-import forge.net.event.UpdateLobbyPlayerEvent;
import forge.screens.home.*;
import forge.toolbox.FLabel;
import forge.util.Localizer;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/VSubmenuPuzzleSolve.java b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/VSubmenuPuzzleSolve.java
index e9d4041dba9..9f48d5552e7 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/VSubmenuPuzzleSolve.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/VSubmenuPuzzleSolve.java
@@ -1,12 +1,12 @@
package forge.screens.home.puzzle;
+import forge.gamemodes.match.GameLobby;
+import forge.gamemodes.match.LocalLobby;
+import forge.gamemodes.net.event.UpdateLobbyPlayerEvent;
import forge.gui.framework.DragCell;
import forge.gui.framework.DragTab;
import forge.gui.framework.EDocID;
import forge.interfaces.IPlayerChangeListener;
-import forge.match.GameLobby;
-import forge.match.LocalLobby;
-import forge.net.event.UpdateLobbyPlayerEvent;
import forge.screens.home.*;
import forge.toolbox.FList;
import forge.toolbox.FScrollPane;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/VSubmenuTutorial.java b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/VSubmenuTutorial.java
index fc795c02bc3..822f440a829 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/VSubmenuTutorial.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/puzzle/VSubmenuTutorial.java
@@ -1,12 +1,12 @@
package forge.screens.home.puzzle;
+import forge.gamemodes.match.GameLobby;
+import forge.gamemodes.match.LocalLobby;
+import forge.gamemodes.net.event.UpdateLobbyPlayerEvent;
import forge.gui.framework.DragCell;
import forge.gui.framework.DragTab;
import forge.gui.framework.EDocID;
import forge.interfaces.IPlayerChangeListener;
-import forge.match.GameLobby;
-import forge.match.LocalLobby;
-import forge.net.event.UpdateLobbyPlayerEvent;
import forge.screens.home.*;
import forge.toolbox.FList;
import forge.toolbox.FScrollPane;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java
index f674b5b8ee2..d55dde9e95c 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuChallenges.java
@@ -17,13 +17,13 @@ import javax.swing.border.EmptyBorder;
import forge.Singletons;
import forge.UiCommand;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestEventChallenge;
+import forge.gamemodes.quest.QuestUtil;
+import forge.gamemodes.quest.bazaar.QuestItemType;
+import forge.gamemodes.quest.bazaar.QuestPetController;
import forge.gui.framework.ICDoc;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestEventChallenge;
-import forge.quest.QuestUtil;
-import forge.quest.bazaar.QuestItemType;
-import forge.quest.bazaar.QuestPetController;
import forge.toolbox.FLabel;
import forge.toolbox.JXButtonPanel;
import forge.util.Localizer;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java
index 1ddc1ebaaf6..af883e4e254 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuDuels.java
@@ -1,12 +1,12 @@
package forge.screens.home.quest;
import forge.UiCommand;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestEventDuel;
+import forge.gamemodes.quest.QuestUtil;
+import forge.gamemodes.quest.bazaar.QuestPetController;
import forge.gui.framework.ICDoc;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestEventDuel;
-import forge.quest.QuestUtil;
-import forge.quest.bazaar.QuestPetController;
import forge.toolbox.JXButtonPanel;
import forge.util.Localizer;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestDecks.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestDecks.java
index cfa4e792c4d..9f4861b91b9 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestDecks.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestDecks.java
@@ -5,13 +5,13 @@ import javax.swing.SwingUtilities;
import forge.Singletons;
import forge.UiCommand;
import forge.deck.DeckProxy;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestUtil;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.gui.framework.FScreen;
import forge.gui.framework.ICDoc;
import forge.itemmanager.ItemManagerConfig;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestUtil;
-import forge.quest.data.QuestPreferences.QPref;
import forge.screens.deckeditor.CDeckEditorUI;
import forge.screens.deckeditor.controllers.CEditorQuest;
import forge.util.Localizer;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestDraft.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestDraft.java
index 4d88bbb3d94..1d0fa8c549c 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestDraft.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestDraft.java
@@ -2,8 +2,8 @@ package forge.screens.home.quest;
import forge.UiCommand;
import forge.deck.DeckGroup;
+import forge.gamemodes.quest.QuestTournamentController;
import forge.gui.framework.ICDoc;
-import forge.quest.QuestTournamentController;
import java.awt.event.*;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestLoadData.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestLoadData.java
index facd79e0e41..d8310973cb1 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestLoadData.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestLoadData.java
@@ -1,13 +1,13 @@
package forge.screens.home.quest;
import forge.UiCommand;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.data.QuestData;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
+import forge.gamemodes.quest.io.QuestDataIO;
import forge.gui.framework.ICDoc;
import forge.localinstance.properties.ForgeConstants;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.data.QuestData;
-import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.io.QuestDataIO;
import forge.screens.bazaar.CBazaarUI;
import java.io.File;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestPrefs.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestPrefs.java
index 6134fec353b..dbbe2cb2a4c 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestPrefs.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestPrefs.java
@@ -4,10 +4,10 @@ import javax.swing.SwingUtilities;
import com.google.common.primitives.Ints;
+import forge.gamemodes.quest.data.QuestPreferences;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.gui.framework.ICDoc;
import forge.model.FModel;
-import forge.quest.data.QuestPreferences;
-import forge.quest.data.QuestPreferences.QPref;
import forge.screens.home.quest.VSubmenuQuestPrefs.PrefInput;
import forge.util.Localizer;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestStart.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestStart.java
index 94f95052616..0d45aca5452 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestStart.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/CSubmenuQuestStart.java
@@ -4,14 +4,14 @@ import forge.UiCommand;
import forge.deck.Deck;
import forge.deck.DeckSection;
import forge.game.GameFormat;
+import forge.gamemodes.quest.*;
+import forge.gamemodes.quest.data.DeckConstructionRules;
+import forge.gamemodes.quest.data.GameFormatQuest;
+import forge.gamemodes.quest.data.QuestData;
+import forge.gamemodes.quest.data.QuestPreferences;
import forge.gui.framework.ICDoc;
import forge.item.PaperCard;
import forge.model.FModel;
-import forge.quest.*;
-import forge.quest.data.DeckConstructionRules;
-import forge.quest.data.GameFormatQuest;
-import forge.quest.data.QuestData;
-import forge.quest.data.QuestPreferences;
import forge.screens.home.CHomeUI;
import forge.toolbox.FOptionPane;
import forge.util.Localizer;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/DialogChoosePoolDistribution.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/DialogChoosePoolDistribution.java
index 7eb18d6377a..038795e6e66 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/DialogChoosePoolDistribution.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/DialogChoosePoolDistribution.java
@@ -2,9 +2,9 @@ package forge.screens.home.quest;
import forge.UiCommand;
import forge.card.MagicColor;
+import forge.gamemodes.quest.StartingPoolPreferences.PoolType;
import forge.gui.SOverlayUtils;
import forge.localinstance.assets.FSkinProp;
-import forge.quest.StartingPoolPreferences.PoolType;
import forge.toolbox.*;
import forge.util.Localizer;
import net.miginfocom.swing.MigLayout;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlDraftEvent.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlDraftEvent.java
index 6fe76f89de2..30cfb74e4bd 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlDraftEvent.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlDraftEvent.java
@@ -1,7 +1,7 @@
package forge.screens.home.quest;
-import forge.quest.QuestEventDraft;
-import forge.quest.QuestUtil;
+import forge.gamemodes.quest.QuestEventDraft;
+import forge.gamemodes.quest.QuestUtil;
import forge.toolbox.FRadioButton;
import forge.toolbox.FSkin;
import forge.toolbox.FSkin.SkinColor;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlEvent.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlEvent.java
index 4b01b530015..dc756cf7dfc 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlEvent.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/PnlEvent.java
@@ -1,9 +1,9 @@
package forge.screens.home.quest;
import forge.ImageCache;
+import forge.gamemodes.quest.QuestEvent;
+import forge.gamemodes.quest.QuestUtil;
import forge.localinstance.assets.FSkinProp;
-import forge.quest.QuestEvent;
-import forge.quest.QuestUtil;
import forge.toolbox.FRadioButton;
import forge.toolbox.FSkin;
import forge.toolbox.FSkin.SkinColor;
@@ -100,7 +100,7 @@ class PnlEvent extends JPanel {
this.add(tarDesc, "w 100% - " + (wImg + 15) + "px!, gap " + (wImg + 15) + "px 0 5px 0");
}
- /** @return {@link forge.quest.QuestEvent} */
+ /** @return {@link forge.gamemodes.quest.QuestEvent} */
public QuestEvent getEvent() {
return event;
}
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/QuestFileLister.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/QuestFileLister.java
index 6d423017c5f..97877e86a4f 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/QuestFileLister.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/QuestFileLister.java
@@ -1,11 +1,11 @@
package forge.screens.home.quest;
import forge.UiCommand;
+import forge.gamemodes.quest.QuestUtil;
+import forge.gamemodes.quest.data.QuestData;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.properties.ForgeConstants;
import forge.model.FModel;
-import forge.quest.QuestUtil;
-import forge.quest.data.QuestData;
import forge.toolbox.*;
import forge.toolbox.FSkin.SkinnedButton;
import forge.toolbox.FSkin.SkinnedPanel;
@@ -62,7 +62,7 @@ public class QuestFileLister extends JPanel {
icoEditOver = FSkin.getIcon(FSkinProp.ICO_EDIT_OVER);
}
- /** @param qd0 {@link forge.quest.data.QuestData}[] */
+ /** @param qd0 {@link forge.gamemodes.quest.data.QuestData}[] */
public void setQuests(List qd0) {
this.removeAll();
List tempRows = new ArrayList<>();
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java
index 8a9ac0d5205..de1e3bfae01 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuChallenges.java
@@ -1,10 +1,10 @@
package forge.screens.home.quest;
+import forge.gamemodes.quest.IVQuestStats;
import forge.gui.framework.DragCell;
import forge.gui.framework.DragTab;
import forge.gui.framework.EDocID;
import forge.localinstance.assets.FSkinProp;
-import forge.quest.IVQuestStats;
import forge.screens.home.*;
import forge.toolbox.*;
import forge.util.Localizer;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java
index b811deb75d4..ec13160ab09 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuDuels.java
@@ -1,11 +1,11 @@
package forge.screens.home.quest;
+import forge.gamemodes.quest.IVQuestStats;
import forge.gui.framework.DragCell;
import forge.gui.framework.DragTab;
import forge.gui.framework.EDocID;
import forge.interfaces.IButton;
import forge.localinstance.assets.FSkinProp;
-import forge.quest.IVQuestStats;
import forge.screens.home.*;
import forge.toolbox.*;
import net.miginfocom.swing.MigLayout;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestDraft.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestDraft.java
index 8b2e4d4383d..16ef4fc852e 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestDraft.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestDraft.java
@@ -3,18 +3,18 @@ package forge.screens.home.quest;
import forge.GuiBase;
import forge.Singletons;
import forge.game.GameType;
+import forge.gamemodes.limited.BoosterDraft;
+import forge.gamemodes.quest.IQuestTournamentView;
+import forge.gamemodes.quest.QuestEventDraft;
+import forge.gamemodes.quest.QuestDraftUtils.Mode;
+import forge.gamemodes.quest.data.QuestEventDraftContainer;
import forge.gui.framework.DragCell;
import forge.gui.framework.DragTab;
import forge.gui.framework.EDocID;
import forge.gui.framework.FScreen;
import forge.itemmanager.DeckManager;
-import forge.limited.BoosterDraft;
import forge.localinstance.assets.FSkinProp;
import forge.model.FModel;
-import forge.quest.IQuestTournamentView;
-import forge.quest.QuestEventDraft;
-import forge.quest.QuestDraftUtils.Mode;
-import forge.quest.data.QuestEventDraftContainer;
import forge.screens.deckeditor.CDeckEditorUI;
import forge.screens.deckeditor.controllers.CEditorQuestDraftingProcess;
import forge.screens.deckeditor.controllers.CEditorQuestLimited;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java
index c7204899da2..e0f54b178f9 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java
@@ -1,11 +1,11 @@
package forge.screens.home.quest;
+import forge.gamemodes.quest.data.QuestPreferences;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.gui.framework.DragCell;
import forge.gui.framework.DragTab;
import forge.gui.framework.EDocID;
import forge.localinstance.assets.FSkinProp;
import forge.model.FModel;
-import forge.quest.data.QuestPreferences;
-import forge.quest.data.QuestPreferences.QPref;
import forge.screens.home.EMenuGroup;
import forge.screens.home.IVSubmenu;
import forge.screens.home.VHomeUI;
@@ -396,7 +396,7 @@ public enum VSubmenuQuestPrefs implements IVSubmenu {
private boolean isFocus = false;
private String previousText = "";
/**
- * @param qp0 {@link forge.quest.data.QuestPreferences.QPref}
+ * @param qp0 {@link forge.gamemodes.quest.data.QuestPreferences.QPref}
* preferences ident enum
* @param e0 {@link forge.screens.home.quest.VSubmenuQuestPrefs.QuestPreferencesErrType}
* where error should display to
@@ -447,7 +447,7 @@ public enum VSubmenuQuestPrefs implements IVSubmenu {
}
});
}
- /** @return {@link forge.quest.data.QuestPreferences.QPref} */
+ /** @return {@link forge.gamemodes.quest.data.QuestPreferences.QPref} */
public QPref getQPref() {
return this.qpref;
}
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestStart.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestStart.java
index dd584e7d6ca..48f41cb2941 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestStart.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestStart.java
@@ -3,6 +3,9 @@ package forge.screens.home.quest;
import forge.deck.Deck;
import forge.deck.DeckGroup;
import forge.game.GameFormat;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestWorld;
+import forge.gamemodes.quest.StartingPoolType;
import forge.gui.framework.DragCell;
import forge.gui.framework.DragTab;
import forge.gui.framework.EDocID;
@@ -10,9 +13,6 @@ import forge.item.PreconDeck;
import forge.localinstance.properties.ForgeConstants;
import forge.model.CardCollections;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestWorld;
-import forge.quest.StartingPoolType;
import forge.screens.home.EMenuGroup;
import forge.screens.home.IVSubmenu;
import forge.screens.home.VHomeUI;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/ViewItem.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/ViewItem.java
index dd1312ba2a2..4e09fd1c2c7 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/ViewItem.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/ViewItem.java
@@ -2,11 +2,11 @@ package forge.screens.home.quest;
import forge.GuiBase;
import forge.UiCommand;
+import forge.gamemodes.quest.QuestUtil;
+import forge.gamemodes.quest.bazaar.IQuestBazaarItem;
+import forge.gamemodes.quest.data.QuestAssets;
import forge.localinstance.assets.FSkinProp;
import forge.model.FModel;
-import forge.quest.QuestUtil;
-import forge.quest.bazaar.IQuestBazaarItem;
-import forge.quest.data.QuestAssets;
import forge.screens.bazaar.VBazaarUI;
import forge.toolbox.FHtmlViewer;
import forge.toolbox.FLabel;
@@ -58,13 +58,13 @@ public class ViewItem extends FPanel {
/**
* @param i0
- * {@link forge.quest.bazaar.IQuestBazaarItem}
+ * {@link forge.gamemodes.quest.bazaar.IQuestBazaarItem}
*/
public void setItem(final IQuestBazaarItem i0) {
this.item = i0;
}
- /** @return {@link forge.quest.bazaar.IQuestBazaarItem} */
+ /** @return {@link forge.gamemodes.quest.bazaar.IQuestBazaarItem} */
public IQuestBazaarItem getItem() {
return this.item;
}
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/ViewStall.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/ViewStall.java
index f6ff91680be..c470cd5251f 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/ViewStall.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/ViewStall.java
@@ -17,12 +17,12 @@
*/
package forge.screens.home.quest;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestUtil;
+import forge.gamemodes.quest.bazaar.IQuestBazaarItem;
+import forge.gamemodes.quest.bazaar.QuestStallDefinition;
+import forge.gamemodes.quest.data.QuestAssets;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestUtil;
-import forge.quest.bazaar.IQuestBazaarItem;
-import forge.quest.bazaar.QuestStallDefinition;
-import forge.quest.data.QuestAssets;
import forge.screens.bazaar.VBazaarUI;
import forge.toolbox.FLabel;
import forge.toolbox.FScrollPane;
@@ -128,7 +128,7 @@ public class ViewStall extends JPanel {
/**
* @param q0
- * {@link forge.quest.bazaar.QuestStallDefinition}
+ * {@link forge.gamemodes.quest.bazaar.QuestStallDefinition}
*/
public void setStall(final QuestStallDefinition q0) {
this.stall = q0;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuDraft.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuDraft.java
index db2cb2b6266..8df0ec5094c 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuDraft.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuDraft.java
@@ -8,15 +8,15 @@ import forge.deck.DeckGroup;
import forge.deck.DeckProxy;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.limited.BoosterDraft;
+import forge.gamemodes.limited.LimitedPoolType;
+import forge.gamemodes.match.HostedMatch;
import forge.gui.GuiChoose;
import forge.gui.SOverlayUtils;
import forge.gui.framework.FScreen;
import forge.gui.framework.ICDoc;
import forge.itemmanager.ItemManagerConfig;
-import forge.limited.BoosterDraft;
-import forge.limited.LimitedPoolType;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.HostedMatch;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
import forge.screens.deckeditor.CDeckEditorUI;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuSealed.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuSealed.java
index c8a4bc239ac..f33321ae5cd 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuSealed.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuSealed.java
@@ -16,14 +16,14 @@ import forge.deck.DeckGroup;
import forge.deck.DeckProxy;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.limited.SealedCardPoolGenerator;
+import forge.gamemodes.match.HostedMatch;
import forge.gui.SOverlayUtils;
import forge.gui.framework.FScreen;
import forge.gui.framework.ICDoc;
import forge.item.InventoryItem;
import forge.itemmanager.ItemManagerConfig;
-import forge.limited.SealedCardPoolGenerator;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.HostedMatch;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
import forge.screens.deckeditor.CDeckEditorUI;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuWinston.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuWinston.java
index bc91e4d3e65..53c81e277a1 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuWinston.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/CSubmenuWinston.java
@@ -16,15 +16,15 @@ import forge.deck.DeckGroup;
import forge.deck.DeckProxy;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.limited.LimitedPoolType;
+import forge.gamemodes.limited.WinstonDraft;
+import forge.gamemodes.match.HostedMatch;
import forge.gui.GuiChoose;
import forge.gui.SOverlayUtils;
import forge.gui.framework.FScreen;
import forge.gui.framework.ICDoc;
import forge.itemmanager.ItemManagerConfig;
-import forge.limited.LimitedPoolType;
-import forge.limited.WinstonDraft;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.HostedMatch;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
import forge.screens.deckeditor.CDeckEditorUI;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuConstructed.java b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuConstructed.java
index e8ac7260787..6433d73d8c7 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuConstructed.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuConstructed.java
@@ -4,13 +4,13 @@ import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
import forge.deckchooser.FDeckChooser;
+import forge.gamemodes.match.GameLobby;
+import forge.gamemodes.match.LocalLobby;
+import forge.gamemodes.net.event.UpdateLobbyPlayerEvent;
import forge.gui.framework.DragCell;
import forge.gui.framework.DragTab;
import forge.gui.framework.EDocID;
import forge.interfaces.IPlayerChangeListener;
-import forge.match.GameLobby;
-import forge.match.LocalLobby;
-import forge.net.event.UpdateLobbyPlayerEvent;
import forge.screens.home.EMenuGroup;
import forge.screens.home.IVSubmenu;
import forge.screens.home.VHomeUI;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java
index 85f793a607a..4ee86ff452e 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java
@@ -5,13 +5,13 @@ import forge.ai.AiProfileUtil;
import forge.control.FControl.CloseAction;
import forge.download.AutoUpdater;
import forge.game.GameLogEntryType;
+import forge.gamemodes.net.server.FServerManager;
import forge.gui.framework.FScreen;
import forge.gui.framework.ICDoc;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.net.server.FServerManager;
import forge.player.GamePlayerUtil;
import forge.screens.deckeditor.CDeckEditorUI;
import forge.screens.deckeditor.controllers.CEditorTokenViewer;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java
index b05edf49903..573faa909a1 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java
@@ -78,6 +78,7 @@ import forge.game.spellability.SpellAbilityView;
import forge.game.spellability.StackItemView;
import forge.game.spellability.TargetChoices;
import forge.game.zone.ZoneType;
+import forge.gamemodes.match.AbstractGuiGame;
import forge.gui.FNetOverlay;
import forge.gui.GuiChoose;
import forge.gui.GuiDialog;
@@ -97,7 +98,6 @@ import forge.localinstance.assets.FSkinProp;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.AbstractGuiGame;
import forge.menus.IMenuProvider;
import forge.model.FModel;
import forge.player.PlayerZoneUpdate;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/ControlWinLose.java b/forge-gui-desktop/src/main/java/forge/screens/match/ControlWinLose.java
index 7b62a8347af..6aa9904d729 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/match/ControlWinLose.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/match/ControlWinLose.java
@@ -7,10 +7,10 @@ import javax.swing.JButton;
import forge.Singletons;
import forge.game.GameView;
+import forge.gamemodes.match.NextGameDecision;
import forge.gui.SOverlayUtils;
import forge.gui.framework.FScreen;
import forge.interfaces.IGameController;
-import forge.match.NextGameDecision;
/**
* Default controller for a ViewWinLose object. This class can
diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/GauntletWinLose.java b/forge-gui-desktop/src/main/java/forge/screens/match/GauntletWinLose.java
index ef484bd3a19..0b90f517916 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/match/GauntletWinLose.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/match/GauntletWinLose.java
@@ -26,7 +26,7 @@ import javax.swing.SwingConstants;
import net.miginfocom.swing.MigLayout;
import forge.game.GameView;
-import forge.gauntlet.GauntletWinLoseController;
+import forge.gamemodes.gauntlet.GauntletWinLoseController;
import forge.localinstance.assets.FSkinProp;
import forge.util.Localizer;
import forge.toolbox.FLabel;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/LimitedWinLose.java b/forge-gui-desktop/src/main/java/forge/screens/match/LimitedWinLose.java
index 58c4f9da476..dda836a7ff2 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/match/LimitedWinLose.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/match/LimitedWinLose.java
@@ -22,7 +22,7 @@ import java.awt.Dimension;
import javax.swing.SwingConstants;
import forge.game.GameView;
-import forge.limited.LimitedWinLoseController;
+import forge.gamemodes.limited.LimitedWinLoseController;
import forge.toolbox.FSkin;
import forge.toolbox.FSkin.Colors;
import forge.toolbox.FSkin.SkinColor;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/QuestDraftWinLose.java b/forge-gui-desktop/src/main/java/forge/screens/match/QuestDraftWinLose.java
index 39aec567ade..b93a685fe07 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/match/QuestDraftWinLose.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/match/QuestDraftWinLose.java
@@ -20,11 +20,11 @@ import com.google.common.collect.ImmutableList;
import forge.game.GameView;
import forge.game.player.PlayerView;
+import forge.gamemodes.match.NextGameDecision;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestDraftUtils;
import forge.localinstance.assets.FSkinProp;
-import forge.match.NextGameDecision;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestDraftUtils;
import forge.screens.home.quest.CSubmenuQuestDraft;
import forge.screens.home.quest.VSubmenuQuestDraft;
import forge.toolbox.FOptionPane;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/QuestWinLose.java b/forge-gui-desktop/src/main/java/forge/screens/match/QuestWinLose.java
index c5442f3001c..2a8567dc0f7 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/match/QuestWinLose.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/match/QuestWinLose.java
@@ -17,7 +17,7 @@
package forge.screens.match;
import forge.game.GameView;
-import forge.quest.QuestWinLoseController;
+import forge.gamemodes.quest.QuestWinLoseController;
import forge.screens.home.quest.CSubmenuChallenges;
import forge.screens.home.quest.CSubmenuDuels;
diff --git a/forge-gui-desktop/src/main/java/forge/view/FFrame.java b/forge-gui-desktop/src/main/java/forge/view/FFrame.java
index 783cccfb144..eb1d837be2f 100644
--- a/forge-gui-desktop/src/main/java/forge/view/FFrame.java
+++ b/forge-gui-desktop/src/main/java/forge/view/FFrame.java
@@ -20,11 +20,11 @@ import javax.swing.SwingUtilities;
import javax.swing.border.Border;
import forge.Singletons;
+import forge.gamemodes.match.HostedMatch;
import forge.gui.framework.SDisplayUtil;
import forge.gui.framework.SResizingUtil;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.HostedMatch;
import forge.model.FModel;
import forge.sound.SoundSystem;
import forge.toolbox.FSkin;
diff --git a/forge-gui-desktop/src/main/java/forge/view/SimulateMatch.java b/forge-gui-desktop/src/main/java/forge/view/SimulateMatch.java
index 9551d91ffd9..6fdb1dfa409 100644
--- a/forge-gui-desktop/src/main/java/forge/view/SimulateMatch.java
+++ b/forge-gui-desktop/src/main/java/forge/view/SimulateMatch.java
@@ -6,10 +6,10 @@ import forge.deck.DeckGroup;
import forge.deck.io.DeckSerializer;
import forge.game.*;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.tournament.system.*;
import forge.localinstance.properties.ForgeConstants;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
-import forge.tournament.system.*;
import forge.util.Lang;
import forge.util.TextUtil;
import forge.util.WordUtil;
diff --git a/forge-gui-desktop/src/test/java/forge/BoosterDraft1Test.java b/forge-gui-desktop/src/test/java/forge/BoosterDraft1Test.java
index d59d6a76f09..c708e0e8ad6 100644
--- a/forge-gui-desktop/src/test/java/forge/BoosterDraft1Test.java
+++ b/forge-gui-desktop/src/test/java/forge/BoosterDraft1Test.java
@@ -1,8 +1,8 @@
package forge;
import forge.deck.CardPool;
-import forge.limited.BoosterDraft;
-import forge.limited.LimitedPoolType;
+import forge.gamemodes.limited.BoosterDraft;
+import forge.gamemodes.limited.LimitedPoolType;
import org.testng.annotations.Test;
diff --git a/forge-gui-desktop/src/test/java/forge/BoosterDraftTest.java b/forge-gui-desktop/src/test/java/forge/BoosterDraftTest.java
index e797899336a..b71e7f0337e 100644
--- a/forge-gui-desktop/src/test/java/forge/BoosterDraftTest.java
+++ b/forge-gui-desktop/src/test/java/forge/BoosterDraftTest.java
@@ -3,10 +3,10 @@ package forge;
import forge.deck.CardPool;
import forge.deck.Deck;
import forge.game.card.Card;
+import forge.gamemodes.limited.IBoosterDraft;
import forge.item.PaperCard;
import forge.item.SealedProduct;
import forge.item.generation.BoosterGenerator;
-import forge.limited.IBoosterDraft;
import forge.model.FModel;
import org.testng.annotations.Test;
diff --git a/forge-gui-desktop/src/test/java/forge/CardRankerTest.java b/forge-gui-desktop/src/test/java/forge/CardRankerTest.java
index 9c7b955748c..aa4d43f5a4e 100644
--- a/forge-gui-desktop/src/test/java/forge/CardRankerTest.java
+++ b/forge-gui-desktop/src/test/java/forge/CardRankerTest.java
@@ -2,8 +2,8 @@ package forge;
import forge.card.CardRarity;
import forge.card.CardRules;
+import forge.gamemodes.limited.CardRanker;
import forge.item.PaperCard;
-import forge.limited.CardRanker;
import forge.localinstance.properties.ForgeConstants;
import forge.util.FileUtil;
import org.junit.Assert;
diff --git a/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestCommanderGeneraterGA.java b/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestCommanderGeneraterGA.java
index 64bf58ed525..9fcb2112a4a 100644
--- a/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestCommanderGeneraterGA.java
+++ b/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestCommanderGeneraterGA.java
@@ -13,8 +13,8 @@ import forge.deck.io.DeckStorage;
import forge.game.GameFormat;
import forge.game.GameRules;
import forge.game.GameType;
+import forge.gamemodes.limited.CardRanker;
import forge.item.PaperCard;
-import forge.limited.CardRanker;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.ForgePreferences;
import forge.model.FModel;
diff --git a/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestGeneraterGA.java b/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestGeneraterGA.java
index e72caac572d..2f7eee789c2 100644
--- a/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestGeneraterGA.java
+++ b/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestGeneraterGA.java
@@ -16,16 +16,16 @@ import forge.game.GameRules;
import forge.game.GameType;
import forge.game.Match;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.limited.CardRanker;
+import forge.gamemodes.tournament.system.AbstractTournament;
+import forge.gamemodes.tournament.system.TournamentPairing;
+import forge.gamemodes.tournament.system.TournamentPlayer;
+import forge.gamemodes.tournament.system.TournamentSwiss;
import forge.item.PaperCard;
-import forge.limited.CardRanker;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.ForgePreferences;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
-import forge.tournament.system.AbstractTournament;
-import forge.tournament.system.TournamentPairing;
-import forge.tournament.system.TournamentPlayer;
-import forge.tournament.system.TournamentSwiss;
import forge.util.AbstractGeneticAlgorithm;
import forge.util.MyRandom;
import forge.util.TextUtil;
diff --git a/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestTribalGeneraterGA.java b/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestTribalGeneraterGA.java
index bb31c767c85..485dea7a1d6 100644
--- a/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestTribalGeneraterGA.java
+++ b/forge-gui-desktop/src/test/java/forge/planarconquestgenerate/PlanarConquestTribalGeneraterGA.java
@@ -13,8 +13,8 @@ import forge.deck.io.DeckStorage;
import forge.game.GameFormat;
import forge.game.GameRules;
import forge.game.GameType;
+import forge.gamemodes.limited.CardRanker;
import forge.item.PaperCard;
-import forge.limited.CardRanker;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.ForgePreferences;
import forge.model.FModel;
diff --git a/forge-gui-mobile/src/forge/GuiMobile.java b/forge-gui-mobile/src/forge/GuiMobile.java
index 6651b510882..43b21c25407 100644
--- a/forge-gui-mobile/src/forge/GuiMobile.java
+++ b/forge-gui-mobile/src/forge/GuiMobile.java
@@ -20,13 +20,13 @@ import forge.deck.Deck;
import forge.deck.FDeckViewer;
import forge.download.GuiDownloadService;
import forge.error.BugReportDialog;
+import forge.gamemodes.match.HostedMatch;
import forge.interfaces.IGuiBase;
import forge.interfaces.IGuiGame;
import forge.item.PaperCard;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.assets.ISkinImage;
import forge.localinstance.properties.ForgeConstants;
-import forge.match.HostedMatch;
import forge.screens.LoadingOverlay;
import forge.screens.match.MatchController;
import forge.screens.quest.QuestMenu;
diff --git a/forge-gui-mobile/src/forge/card/CardZoom.java b/forge-gui-mobile/src/forge/card/CardZoom.java
index c94882c07a6..1e0089f5c41 100644
--- a/forge-gui-mobile/src/forge/card/CardZoom.java
+++ b/forge-gui-mobile/src/forge/card/CardZoom.java
@@ -17,12 +17,12 @@ import forge.deck.CommanderDeckGenerator;
import forge.deck.DeckProxy;
import forge.game.GameView;
import forge.game.card.CardView;
+import forge.gamemodes.planarconquest.ConquestCommander;
import forge.item.IPaperCard;
import forge.item.InventoryItem;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.planarconquest.ConquestCommander;
import forge.screens.match.MatchController;
import forge.toolbox.FCardPanel;
import forge.toolbox.FDialog;
diff --git a/forge-gui-mobile/src/forge/deck/FDeckChooser.java b/forge-gui-mobile/src/forge/deck/FDeckChooser.java
index 83a875629e5..971e562e541 100644
--- a/forge-gui-mobile/src/forge/deck/FDeckChooser.java
+++ b/forge-gui-mobile/src/forge/deck/FDeckChooser.java
@@ -9,21 +9,21 @@ import forge.deck.io.DeckPreferences;
import forge.error.BugReporter;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
-import forge.gauntlet.GauntletData;
-import forge.gauntlet.GauntletUtil;
+import forge.gamemodes.gauntlet.GauntletData;
+import forge.gamemodes.gauntlet.GauntletUtil;
+import forge.gamemodes.match.HostedMatch;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestEvent;
+import forge.gamemodes.quest.QuestEventChallenge;
+import forge.gamemodes.quest.QuestUtil;
import forge.interfaces.IGuiGame;
import forge.itemmanager.DeckManager;
import forge.itemmanager.ItemManagerConfig;
import forge.itemmanager.filters.ItemFilter;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.HostedMatch;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
-import forge.quest.QuestController;
-import forge.quest.QuestEvent;
-import forge.quest.QuestEventChallenge;
-import forge.quest.QuestUtil;
import forge.screens.FScreen;
import forge.screens.LoadingOverlay;
import forge.screens.home.NewGameMenu.NewGameScreen;
diff --git a/forge-gui-mobile/src/forge/deck/FDeckEditor.java b/forge-gui-mobile/src/forge/deck/FDeckEditor.java
index f87d7e812f6..20e30f0a929 100644
--- a/forge-gui-mobile/src/forge/deck/FDeckEditor.java
+++ b/forge-gui-mobile/src/forge/deck/FDeckEditor.java
@@ -20,6 +20,8 @@ import forge.card.CardEdition;
import forge.card.CardPreferences;
import forge.card.CardRulesPredicates;
import forge.deck.io.DeckPreferences;
+import forge.gamemodes.limited.BoosterDraft;
+import forge.gamemodes.planarconquest.ConquestUtil;
import forge.item.PaperCard;
import forge.itemmanager.CardManager;
import forge.itemmanager.ColumnDef;
@@ -27,7 +29,6 @@ import forge.itemmanager.ItemColumn;
import forge.itemmanager.ItemManager.ContextMenuBuilder;
import forge.itemmanager.ItemManagerConfig;
import forge.itemmanager.filters.ItemFilter;
-import forge.limited.BoosterDraft;
import forge.localinstance.assets.*;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.menu.FCheckBoxMenuItem;
@@ -35,7 +36,6 @@ import forge.menu.FDropDownMenu;
import forge.menu.FMenuItem;
import forge.menu.FPopupMenu;
import forge.model.FModel;
-import forge.planarconquest.ConquestUtil;
import forge.screens.FScreen;
import forge.screens.TabPageScreen;
import forge.toolbox.*;
diff --git a/forge-gui-mobile/src/forge/itemmanager/SpellShopManager.java b/forge-gui-mobile/src/forge/itemmanager/SpellShopManager.java
index 444db64407e..781b9acd76e 100644
--- a/forge-gui-mobile/src/forge/itemmanager/SpellShopManager.java
+++ b/forge-gui-mobile/src/forge/itemmanager/SpellShopManager.java
@@ -12,11 +12,11 @@ import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
import forge.assets.ImageCache;
import forge.card.CardRenderer;
+import forge.gamemodes.quest.QuestSpellShop;
import forge.item.InventoryItem;
import forge.item.PaperCard;
import forge.itemmanager.filters.AdvancedSearchFilter;
import forge.itemmanager.filters.TextSearchFilter;
-import forge.quest.QuestSpellShop;
import forge.toolbox.FList;
import forge.toolbox.FList.CompactModeHandler;
import forge.util.Localizer;
diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java
index 6ed3a162a78..73988323cda 100644
--- a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java
+++ b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java
@@ -23,6 +23,7 @@ import forge.deck.CommanderDeckGenerator;
import forge.deck.DeckProxy;
import forge.deck.FDeckViewer;
import forge.deck.io.DeckPreferences;
+import forge.gamemodes.planarconquest.ConquestCommander;
import forge.item.InventoryItem;
import forge.item.PaperCard;
import forge.itemmanager.ColumnDef;
@@ -33,7 +34,6 @@ import forge.itemmanager.ItemManagerConfig;
import forge.itemmanager.ItemManagerModel;
import forge.itemmanager.SItemManagerUtil;
import forge.itemmanager.filters.ItemFilter;
-import forge.planarconquest.ConquestCommander;
import forge.toolbox.FCardPanel;
import forge.toolbox.FComboBox;
import forge.toolbox.FDisplayObject;
diff --git a/forge-gui-mobile/src/forge/screens/constructed/ConstructedScreen.java b/forge-gui-mobile/src/forge/screens/constructed/ConstructedScreen.java
index 38c4930d694..cb1ba16eacf 100644
--- a/forge-gui-mobile/src/forge/screens/constructed/ConstructedScreen.java
+++ b/forge-gui-mobile/src/forge/screens/constructed/ConstructedScreen.java
@@ -1,8 +1,8 @@
package forge.screens.constructed;
+import forge.gamemodes.match.LocalLobby;
+import forge.gamemodes.net.event.UpdateLobbyPlayerEvent;
import forge.interfaces.IPlayerChangeListener;
-import forge.match.LocalLobby;
-import forge.net.event.UpdateLobbyPlayerEvent;
import forge.screens.home.NewGameMenu;
public class ConstructedScreen extends LobbyScreen {
diff --git a/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java b/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java
index 3149f18029b..a71531e1ae8 100644
--- a/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java
+++ b/forge-gui-mobile/src/forge/screens/constructed/LobbyScreen.java
@@ -11,8 +11,6 @@ import forge.deck.Deck;
import forge.deck.DeckSection;
import forge.deck.DeckType;
import forge.deck.FDeckChooser;
-
-import forge.net.server.FServerManager;
import forge.util.Localizer;
import forge.util.MyRandom;
@@ -30,16 +28,17 @@ import forge.ai.AIOption;
import forge.assets.FSkinColor;
import forge.assets.FSkinFont;
import forge.game.GameType;
+import forge.gamemodes.match.GameLobby;
+import forge.gamemodes.match.LobbySlot;
+import forge.gamemodes.match.LobbySlotType;
+import forge.gamemodes.net.event.UpdateLobbyPlayerEvent;
+import forge.gamemodes.net.server.FServerManager;
import forge.interfaces.ILobbyView;
import forge.interfaces.IPlayerChangeListener;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.GameLobby;
-import forge.match.LobbySlot;
-import forge.match.LobbySlotType;
import forge.menu.FPopupMenu;
import forge.model.FModel;
-import forge.net.event.UpdateLobbyPlayerEvent;
import forge.screens.FScreen;
import forge.screens.LaunchScreen;
import forge.screens.LoadingOverlay;
diff --git a/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java b/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java
index e109d452bd2..2e220c0b441 100644
--- a/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java
+++ b/forge-gui-mobile/src/forge/screens/constructed/PlayerPanel.java
@@ -28,13 +28,13 @@ import forge.deck.DeckType;
import forge.deck.FDeckChooser;
import forge.deck.FVanguardChooser;
import forge.game.GameType;
+import forge.gamemodes.match.LobbySlot;
+import forge.gamemodes.match.LobbySlotType;
import forge.item.PaperCard;
import forge.itemmanager.CardManager;
import forge.itemmanager.DeckManager;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.LobbySlot;
-import forge.match.LobbySlotType;
import forge.model.FModel;
import forge.toolbox.FComboBox;
import forge.toolbox.FContainer;
diff --git a/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java b/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java
index b6fcae38fc6..dfc40b0f34e 100644
--- a/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java
+++ b/forge-gui-mobile/src/forge/screens/gauntlet/LoadGauntletScreen.java
@@ -17,11 +17,11 @@ import forge.deck.Deck;
import forge.deck.FDeckChooser;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
-import forge.gauntlet.GauntletData;
-import forge.gauntlet.GauntletIO;
+import forge.gamemodes.gauntlet.GauntletData;
+import forge.gamemodes.gauntlet.GauntletIO;
+import forge.gamemodes.quest.QuestUtil;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
-import forge.quest.QuestUtil;
import forge.screens.LaunchScreen;
import forge.screens.LoadingOverlay;
import forge.screens.home.LoadGameMenu;
diff --git a/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java b/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java
index 2388dc0758f..add73a97bd5 100644
--- a/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java
+++ b/forge-gui-mobile/src/forge/screens/gauntlet/NewGauntletScreen.java
@@ -11,9 +11,9 @@ import forge.deck.DeckType;
import forge.deck.FDeckChooser;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
-import forge.gauntlet.GauntletData;
-import forge.gauntlet.GauntletIO;
-import forge.gauntlet.GauntletUtil;
+import forge.gamemodes.gauntlet.GauntletData;
+import forge.gamemodes.gauntlet.GauntletIO;
+import forge.gamemodes.gauntlet.GauntletUtil;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
import forge.screens.LaunchScreen;
diff --git a/forge-gui-mobile/src/forge/screens/home/puzzle/PuzzleScreen.java b/forge-gui-mobile/src/forge/screens/home/puzzle/PuzzleScreen.java
index 2f026e7195d..6cbeafa8c2e 100644
--- a/forge-gui-mobile/src/forge/screens/home/puzzle/PuzzleScreen.java
+++ b/forge-gui-mobile/src/forge/screens/home/puzzle/PuzzleScreen.java
@@ -6,11 +6,11 @@ import forge.deck.Deck;
import forge.game.GameRules;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.match.HostedMatch;
+import forge.gamemodes.puzzle.Puzzle;
+import forge.gamemodes.puzzle.PuzzleIO;
import forge.localinstance.properties.ForgeConstants;
-import forge.match.HostedMatch;
import forge.player.GamePlayerUtil;
-import forge.puzzle.Puzzle;
-import forge.puzzle.PuzzleIO;
import forge.screens.LaunchScreen;
import forge.screens.LoadingOverlay;
import forge.screens.home.NewGameMenu;
diff --git a/forge-gui-mobile/src/forge/screens/limited/DraftingProcessScreen.java b/forge-gui-mobile/src/forge/screens/limited/DraftingProcessScreen.java
index 683ce9a7811..d23e7e416f8 100644
--- a/forge-gui-mobile/src/forge/screens/limited/DraftingProcessScreen.java
+++ b/forge-gui-mobile/src/forge/screens/limited/DraftingProcessScreen.java
@@ -7,10 +7,10 @@ import forge.deck.Deck;
import forge.deck.DeckGroup;
import forge.deck.FDeckEditor;
import forge.deck.io.DeckPreferences;
-import forge.limited.BoosterDraft;
+import forge.gamemodes.limited.BoosterDraft;
+import forge.gamemodes.quest.QuestEventDraft;
+import forge.gamemodes.quest.QuestTournamentController;
import forge.model.FModel;
-import forge.quest.QuestEventDraft;
-import forge.quest.QuestTournamentController;
import forge.screens.FScreen;
import forge.screens.home.LoadGameMenu.LoadGameScreen;
import forge.toolbox.FOptionPane;
diff --git a/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java b/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java
index 38dac09e413..e14c84fc1c8 100644
--- a/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java
+++ b/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java
@@ -22,11 +22,11 @@ import forge.deck.FDeckEditor.EditorType;
import forge.deck.io.DeckPreferences;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.match.HostedMatch;
import forge.itemmanager.DeckManager;
import forge.itemmanager.ItemManagerConfig;
import forge.itemmanager.filters.ItemFilter;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.HostedMatch;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
import forge.toolbox.FComboBox;
diff --git a/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java b/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java
index 46ef83d4fe6..e40dd2ce6cc 100644
--- a/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java
+++ b/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java
@@ -15,11 +15,11 @@ import forge.deck.FDeckEditor.EditorType;
import forge.deck.io.DeckPreferences;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.match.HostedMatch;
import forge.itemmanager.DeckManager;
import forge.itemmanager.ItemManagerConfig;
import forge.itemmanager.filters.ItemFilter;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.HostedMatch;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
import forge.screens.LaunchScreen;
diff --git a/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java b/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java
index 9e96be6cb4e..b51c3818426 100644
--- a/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java
+++ b/forge-gui-mobile/src/forge/screens/limited/NewDraftScreen.java
@@ -4,8 +4,8 @@ import forge.FThreads;
import forge.Forge;
import forge.assets.FSkinFont;
import forge.deck.FDeckEditor.EditorType;
-import forge.limited.BoosterDraft;
-import forge.limited.LimitedPoolType;
+import forge.gamemodes.limited.BoosterDraft;
+import forge.gamemodes.limited.LimitedPoolType;
import forge.screens.LaunchScreen;
import forge.screens.LoadingOverlay;
import forge.screens.home.NewGameMenu;
diff --git a/forge-gui-mobile/src/forge/screens/limited/NewSealedScreen.java b/forge-gui-mobile/src/forge/screens/limited/NewSealedScreen.java
index 5b0914d515b..456b89665bd 100644
--- a/forge-gui-mobile/src/forge/screens/limited/NewSealedScreen.java
+++ b/forge-gui-mobile/src/forge/screens/limited/NewSealedScreen.java
@@ -7,7 +7,7 @@ import forge.deck.DeckGroup;
import forge.deck.FDeckEditor;
import forge.deck.FDeckEditor.EditorType;
import forge.deck.io.DeckPreferences;
-import forge.limited.SealedCardPoolGenerator;
+import forge.gamemodes.limited.SealedCardPoolGenerator;
import forge.screens.LaunchScreen;
import forge.screens.home.NewGameMenu;
import forge.toolbox.FLabel;
diff --git a/forge-gui-mobile/src/forge/screens/match/MatchController.java b/forge-gui-mobile/src/forge/screens/match/MatchController.java
index ab1f6a8f49c..6d7b3bcd666 100644
--- a/forge-gui-mobile/src/forge/screens/match/MatchController.java
+++ b/forge-gui-mobile/src/forge/screens/match/MatchController.java
@@ -36,12 +36,12 @@ import forge.game.player.IHasIcon;
import forge.game.player.PlayerView;
import forge.game.spellability.SpellAbilityView;
import forge.game.zone.ZoneType;
+import forge.gamemodes.match.AbstractGuiGame;
+import forge.gamemodes.match.HostedMatch;
import forge.item.PaperCard;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.AbstractGuiGame;
-import forge.match.HostedMatch;
import forge.model.FModel;
import forge.player.PlayerZoneUpdate;
import forge.player.PlayerZoneUpdates;
diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java
index 75ac2706e33..46134e39b23 100644
--- a/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java
+++ b/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java
@@ -19,7 +19,7 @@ package forge.screens.match.winlose;
import forge.FThreads;
import forge.game.GameView;
-import forge.gauntlet.GauntletWinLoseController;
+import forge.gamemodes.gauntlet.GauntletWinLoseController;
import forge.localinstance.assets.FSkinProp;
import forge.util.Localizer;
import forge.util.gui.SOptionPane;
diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/LimitedWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/LimitedWinLose.java
index 9251a458986..c682dd53315 100644
--- a/forge-gui-mobile/src/forge/screens/match/winlose/LimitedWinLose.java
+++ b/forge-gui-mobile/src/forge/screens/match/winlose/LimitedWinLose.java
@@ -18,7 +18,7 @@ package forge.screens.match.winlose;
*/
import forge.game.GameView;
-import forge.limited.LimitedWinLoseController;
+import forge.gamemodes.limited.LimitedWinLoseController;
/**
* The Win/Lose handler for 'gauntlet' type tournament
diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/QuestDraftWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/QuestDraftWinLose.java
index 6827bf9b153..4f405b70848 100644
--- a/forge-gui-mobile/src/forge/screens/match/winlose/QuestDraftWinLose.java
+++ b/forge-gui-mobile/src/forge/screens/match/winlose/QuestDraftWinLose.java
@@ -18,10 +18,10 @@ package forge.screens.match.winlose;
import forge.game.GameView;
import forge.game.player.PlayerView;
-import forge.match.NextGameDecision;
+import forge.gamemodes.match.NextGameDecision;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestDraftUtils;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestDraftUtils;
import forge.screens.match.MatchController;
import forge.toolbox.FEvent;
import forge.toolbox.FEvent.FEventHandler;
diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/QuestWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/QuestWinLose.java
index 56faf35e470..4931520ff04 100644
--- a/forge-gui-mobile/src/forge/screens/match/winlose/QuestWinLose.java
+++ b/forge-gui-mobile/src/forge/screens/match/winlose/QuestWinLose.java
@@ -17,7 +17,7 @@
package forge.screens.match.winlose;
import forge.game.GameView;
-import forge.quest.QuestWinLoseController;
+import forge.gamemodes.quest.QuestWinLoseController;
import forge.screens.home.HomeScreen;
/**
diff --git a/forge-gui-mobile/src/forge/screens/online/OnlineChatScreen.java b/forge-gui-mobile/src/forge/screens/online/OnlineChatScreen.java
index 6708d3a729c..a1845105a55 100644
--- a/forge-gui-mobile/src/forge/screens/online/OnlineChatScreen.java
+++ b/forge-gui-mobile/src/forge/screens/online/OnlineChatScreen.java
@@ -8,13 +8,13 @@ import forge.assets.FSkinColor;
import forge.assets.FSkinFont;
import forge.assets.TextRenderer;
import forge.assets.FSkinColor.Colors;
+import forge.gamemodes.net.ChatMessage;
+import forge.gamemodes.net.IOnlineChatInterface;
+import forge.gamemodes.net.IRemote;
+import forge.gamemodes.net.event.MessageEvent;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.net.ChatMessage;
-import forge.net.IOnlineChatInterface;
-import forge.net.IRemote;
-import forge.net.event.MessageEvent;
import forge.screens.FScreen;
import forge.toolbox.FDisplayObject;
import forge.toolbox.FEvent;
diff --git a/forge-gui-mobile/src/forge/screens/online/OnlineLobbyScreen.java b/forge-gui-mobile/src/forge/screens/online/OnlineLobbyScreen.java
index c3730d290cb..46cf5a34506 100644
--- a/forge-gui-mobile/src/forge/screens/online/OnlineLobbyScreen.java
+++ b/forge-gui-mobile/src/forge/screens/online/OnlineLobbyScreen.java
@@ -4,17 +4,17 @@ import com.google.common.collect.ImmutableList;
import forge.FThreads;
import forge.Forge;
import forge.GuiBase;
+import forge.gamemodes.match.GameLobby;
+import forge.gamemodes.net.ChatMessage;
+import forge.gamemodes.net.IOnlineChatInterface;
+import forge.gamemodes.net.IOnlineLobby;
+import forge.gamemodes.net.NetConnectUtil;
+import forge.gamemodes.net.OfflineLobby;
+import forge.gamemodes.net.client.FGameClient;
+import forge.gamemodes.net.server.FServerManager;
import forge.interfaces.ILobbyView;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.properties.ForgeConstants;
-import forge.match.GameLobby;
-import forge.net.ChatMessage;
-import forge.net.IOnlineChatInterface;
-import forge.net.IOnlineLobby;
-import forge.net.NetConnectUtil;
-import forge.net.OfflineLobby;
-import forge.net.client.FGameClient;
-import forge.net.server.FServerManager;
import forge.screens.LoadingOverlay;
import forge.screens.constructed.LobbyScreen;
import forge.screens.online.OnlineMenu.OnlineScreen;
diff --git a/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java b/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java
index b2859443c6a..562821ca022 100644
--- a/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java
+++ b/forge-gui-mobile/src/forge/screens/online/OnlineMenu.java
@@ -3,12 +3,12 @@ package forge.screens.online;
import forge.Forge;
import forge.assets.FImage;
import forge.assets.FSkinImage;
+import forge.gamemodes.net.server.FServerManager;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.menu.FMenuItem;
import forge.menu.FPopupMenu;
import forge.model.FModel;
-import forge.net.server.FServerManager;
import forge.screens.FScreen;
import forge.toolbox.FEvent;
import forge.toolbox.FEvent.FEventHandler;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestAEtherScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestAEtherScreen.java
index df6ed919610..4248376f88d 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestAEtherScreen.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestAEtherScreen.java
@@ -24,16 +24,16 @@ import forge.card.CardRenderer;
import forge.card.CardZoom;
import forge.card.ColorSet;
import forge.card.CardRenderer.CardStackPosition;
+import forge.gamemodes.planarconquest.ConquestCommander;
+import forge.gamemodes.planarconquest.ConquestData;
+import forge.gamemodes.planarconquest.ConquestPlane;
+import forge.gamemodes.planarconquest.ConquestUtil;
+import forge.gamemodes.planarconquest.ConquestPreferences.CQPref;
+import forge.gamemodes.planarconquest.ConquestUtil.AEtherFilter;
import forge.card.ColorSetImage;
import forge.item.PaperCard;
import forge.localinstance.assets.FSkinProp;
import forge.model.FModel;
-import forge.planarconquest.ConquestCommander;
-import forge.planarconquest.ConquestData;
-import forge.planarconquest.ConquestPlane;
-import forge.planarconquest.ConquestPreferences.CQPref;
-import forge.planarconquest.ConquestUtil;
-import forge.planarconquest.ConquestUtil.AEtherFilter;
import forge.screens.FScreen;
import forge.toolbox.FCardPanel;
import forge.toolbox.FDisplayObject;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestChaosWheel.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestChaosWheel.java
index 09dfd2c54a9..b92edfd7a4f 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestChaosWheel.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestChaosWheel.java
@@ -7,7 +7,7 @@ import forge.Graphics;
import forge.animation.ForgeAnimation;
import forge.assets.FSkinImage;
import forge.assets.FSkinTexture;
-import forge.planarconquest.ConquestEvent.ChaosWheelOutcome;
+import forge.gamemodes.planarconquest.ConquestEvent.ChaosWheelOutcome;
import forge.toolbox.FOptionPane;
import forge.toolbox.FOverlay;
import forge.util.Aggregates;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCollectionScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCollectionScreen.java
index 8a42dad34ba..a5e51bc03c3 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCollectionScreen.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCollectionScreen.java
@@ -13,6 +13,11 @@ import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
import forge.assets.TextRenderer;
import forge.deck.CardPool;
+import forge.gamemodes.planarconquest.ConquestData;
+import forge.gamemodes.planarconquest.ConquestPlane;
+import forge.gamemodes.planarconquest.ConquestPreferences;
+import forge.gamemodes.planarconquest.ConquestUtil;
+import forge.gamemodes.planarconquest.ConquestPreferences.CQPref;
import forge.item.PaperCard;
import forge.itemmanager.CardManager;
import forge.itemmanager.ItemManager;
@@ -24,11 +29,6 @@ import forge.itemmanager.filters.ItemFilter;
import forge.menu.FDropDownMenu;
import forge.menu.FMenuItem;
import forge.model.FModel;
-import forge.planarconquest.ConquestData;
-import forge.planarconquest.ConquestPlane;
-import forge.planarconquest.ConquestPreferences;
-import forge.planarconquest.ConquestUtil;
-import forge.planarconquest.ConquestPreferences.CQPref;
import forge.screens.TabPageScreen;
import forge.toolbox.FEvent;
import forge.toolbox.FLabel;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCommandersScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCommandersScreen.java
index 81b113fb80d..d8a3505b1cb 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCommandersScreen.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestCommandersScreen.java
@@ -17,6 +17,10 @@ import forge.card.ColorSet;
import forge.deck.DeckFormat;
import forge.deck.FDeckChooser;
import forge.deck.FDeckViewer;
+import forge.gamemodes.planarconquest.ConquestCommander;
+import forge.gamemodes.planarconquest.ConquestData;
+import forge.gamemodes.planarconquest.ConquestPlane;
+import forge.gamemodes.planarconquest.ConquestRecord;
import forge.item.PaperCard;
import forge.itemmanager.ItemManager;
import forge.itemmanager.ItemManagerConfig;
@@ -28,10 +32,6 @@ import forge.itemmanager.filters.ItemFilter;
import forge.itemmanager.filters.StatTypeFilter;
import forge.itemmanager.filters.TextSearchFilter;
import forge.model.FModel;
-import forge.planarconquest.ConquestCommander;
-import forge.planarconquest.ConquestData;
-import forge.planarconquest.ConquestPlane;
-import forge.planarconquest.ConquestRecord;
import forge.screens.FScreen;
import forge.toolbox.FButton;
import forge.toolbox.FEvent;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestDeckEditor.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestDeckEditor.java
index e5dd8e31abf..7f242d6cf20 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestDeckEditor.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestDeckEditor.java
@@ -5,12 +5,12 @@ import java.util.Map;
import forge.deck.DeckProxy;
import forge.deck.FDeckEditor;
import forge.game.GameType;
+import forge.gamemodes.planarconquest.ConquestCommander;
+import forge.gamemodes.planarconquest.ConquestData;
import forge.itemmanager.ColumnDef;
import forge.itemmanager.ItemColumn;
import forge.itemmanager.ItemManagerConfig;
import forge.model.FModel;
-import forge.planarconquest.ConquestCommander;
-import forge.planarconquest.ConquestData;
import forge.toolbox.FEvent;
import forge.toolbox.FEvent.FEventHandler;
import forge.util.Localizer;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMultiverseScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMultiverseScreen.java
index b80ee0ae789..837a14f5472 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMultiverseScreen.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestMultiverseScreen.java
@@ -2,18 +2,6 @@ package forge.screens.planarconquest;
import java.util.List;
-import forge.planarconquest.ConquestAwardPool;
-import forge.planarconquest.ConquestBattle;
-import forge.planarconquest.ConquestChaosBattle;
-import forge.planarconquest.ConquestData;
-import forge.planarconquest.ConquestEvent;
-import forge.planarconquest.ConquestLocation;
-import forge.planarconquest.ConquestPlane;
-import forge.planarconquest.ConquestPlaneData;
-import forge.planarconquest.ConquestRegion;
-import forge.planarconquest.ConquestReward;
-import forge.planarconquest.ConquestUtil;
-
import org.apache.commons.lang3.StringUtils;
import com.badlogic.gdx.graphics.Color;
@@ -38,11 +26,22 @@ import forge.card.CardRenderer;
import forge.card.CardZoom;
import forge.card.ColorSet;
import forge.card.CardDetailUtil.DetailColors;
+import forge.gamemodes.planarconquest.ConquestAwardPool;
+import forge.gamemodes.planarconquest.ConquestBattle;
+import forge.gamemodes.planarconquest.ConquestChaosBattle;
+import forge.gamemodes.planarconquest.ConquestData;
+import forge.gamemodes.planarconquest.ConquestEvent;
+import forge.gamemodes.planarconquest.ConquestLocation;
+import forge.gamemodes.planarconquest.ConquestPlane;
+import forge.gamemodes.planarconquest.ConquestPlaneData;
+import forge.gamemodes.planarconquest.ConquestRegion;
+import forge.gamemodes.planarconquest.ConquestReward;
+import forge.gamemodes.planarconquest.ConquestUtil;
+import forge.gamemodes.planarconquest.ConquestEvent.ChaosWheelOutcome;
+import forge.gamemodes.planarconquest.ConquestEvent.ConquestEventRecord;
+import forge.gamemodes.planarconquest.ConquestPreferences.CQPref;
import forge.item.PaperCard;
import forge.model.FModel;
-import forge.planarconquest.ConquestEvent.ChaosWheelOutcome;
-import forge.planarconquest.ConquestEvent.ConquestEventRecord;
-import forge.planarconquest.ConquestPreferences.CQPref;
import forge.screens.FScreen;
import forge.screens.LoadingOverlay;
import forge.toolbox.FButton;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneSelector.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneSelector.java
index bcc4bc54c69..ab9a38a03d4 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneSelector.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneSelector.java
@@ -17,9 +17,9 @@ import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
import forge.assets.FSkinTexture;
import forge.card.CardRenderer;
+import forge.gamemodes.planarconquest.ConquestPlane;
import forge.item.PaperCard;
import forge.model.FModel;
-import forge.planarconquest.ConquestPlane;
import forge.toolbox.FDisplayObject;
import forge.toolbox.FOptionPane;
import forge.toolbox.FTimer;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkScreen.java
index 2fed378a3fe..216042fdce1 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkScreen.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkScreen.java
@@ -7,11 +7,11 @@ import forge.Forge;
import forge.Graphics;
import forge.assets.FSkinFont;
import forge.assets.TextRenderer;
+import forge.gamemodes.planarconquest.ConquestData;
+import forge.gamemodes.planarconquest.ConquestPlane;
+import forge.gamemodes.planarconquest.ConquestPreferences;
+import forge.gamemodes.planarconquest.ConquestPreferences.CQPref;
import forge.model.FModel;
-import forge.planarconquest.ConquestData;
-import forge.planarconquest.ConquestPlane;
-import forge.planarconquest.ConquestPreferences;
-import forge.planarconquest.ConquestPreferences.CQPref;
import forge.screens.FScreen;
import forge.toolbox.FEvent;
import forge.toolbox.FList;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkersScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkersScreen.java
index 18f5b638de4..c59067ac3b2 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkersScreen.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPlaneswalkersScreen.java
@@ -4,10 +4,10 @@ import forge.Forge;
import forge.assets.FImage;
import forge.card.CardListPreview;
import forge.deck.FDeckChooser;
+import forge.gamemodes.planarconquest.ConquestData;
import forge.item.PaperCard;
import forge.localinstance.achievements.PlaneswalkerAchievements;
import forge.model.FModel;
-import forge.planarconquest.ConquestData;
import forge.screens.FScreen;
import forge.toolbox.FChoiceList;
import forge.util.Callback;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPrefsScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPrefsScreen.java
index cdda494a920..2480f1dc121 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPrefsScreen.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestPrefsScreen.java
@@ -3,9 +3,9 @@ package forge.screens.planarconquest;
import forge.assets.FImage;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
+import forge.gamemodes.planarconquest.ConquestPreferences;
+import forge.gamemodes.planarconquest.ConquestPreferences.CQPref;
import forge.model.FModel;
-import forge.planarconquest.ConquestPreferences;
-import forge.planarconquest.ConquestPreferences.CQPref;
import forge.screens.FScreen;
import forge.toolbox.FContainer;
import forge.toolbox.FDisplayObject;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestRewardDialog.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestRewardDialog.java
index 40954b34d14..ea903df8007 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestRewardDialog.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestRewardDialog.java
@@ -15,8 +15,8 @@ import forge.assets.ImageCache;
import forge.card.CardRenderer;
import forge.card.CardZoom;
import forge.card.CardRenderer.CardStackPosition;
+import forge.gamemodes.planarconquest.ConquestReward;
import forge.item.PaperCard;
-import forge.planarconquest.ConquestReward;
import forge.toolbox.FCardPanel;
import forge.toolbox.FDialog;
import forge.toolbox.FEvent;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestStatsScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestStatsScreen.java
index 453ce8fa098..501b630835c 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/ConquestStatsScreen.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/ConquestStatsScreen.java
@@ -5,11 +5,11 @@ import com.badlogic.gdx.utils.Align;
import forge.assets.FImage;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
+import forge.gamemodes.planarconquest.ConquestData;
+import forge.gamemodes.planarconquest.ConquestPlane;
+import forge.gamemodes.planarconquest.IVConquestStats;
import forge.interfaces.IButton;
import forge.model.FModel;
-import forge.planarconquest.ConquestData;
-import forge.planarconquest.ConquestPlane;
-import forge.planarconquest.IVConquestStats;
import forge.screens.FScreen;
import forge.toolbox.FComboBox;
import forge.toolbox.FDisplayObject;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java
index c97603cfcad..db7ded4a0ec 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/LoadConquestScreen.java
@@ -16,15 +16,15 @@ import forge.Forge;
import forge.Graphics;
import forge.assets.FSkinColor;
import forge.assets.FSkinColor.Colors;
+import forge.gamemodes.planarconquest.ConquestController;
+import forge.gamemodes.planarconquest.ConquestData;
+import forge.gamemodes.planarconquest.ConquestPreferences;
+import forge.gamemodes.planarconquest.ConquestPreferences.CQPref;
+import forge.gamemodes.quest.QuestUtil;
import forge.localinstance.properties.ForgeConstants;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
import forge.model.FModel;
-import forge.planarconquest.ConquestController;
-import forge.planarconquest.ConquestData;
-import forge.planarconquest.ConquestPreferences;
-import forge.planarconquest.ConquestPreferences.CQPref;
-import forge.quest.QuestUtil;
import forge.screens.LaunchScreen;
import forge.screens.home.LoadGameMenu;
import forge.screens.home.NewGameMenu.NewGameScreen;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/NewConquestScreen.java b/forge-gui-mobile/src/forge/screens/planarconquest/NewConquestScreen.java
index 094d08db6d5..f5d03d6855c 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/NewConquestScreen.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/NewConquestScreen.java
@@ -6,13 +6,13 @@ import forge.FThreads;
import forge.assets.FImage;
import forge.card.CardImage;
import forge.card.CardListPreview;
+import forge.gamemodes.planarconquest.ConquestController;
+import forge.gamemodes.planarconquest.ConquestData;
+import forge.gamemodes.planarconquest.ConquestUtil;
+import forge.gamemodes.planarconquest.ConquestPreferences.CQPref;
import forge.item.PaperCard;
import forge.localinstance.achievements.PlaneswalkerAchievements;
import forge.model.FModel;
-import forge.planarconquest.ConquestController;
-import forge.planarconquest.ConquestData;
-import forge.planarconquest.ConquestPreferences.CQPref;
-import forge.planarconquest.ConquestUtil;
import forge.screens.LoadingOverlay;
import forge.screens.MultiStepWizardScreen;
import forge.screens.home.NewGameMenu;
diff --git a/forge-gui-mobile/src/forge/screens/planarconquest/NewConquestScreenModel.java b/forge-gui-mobile/src/forge/screens/planarconquest/NewConquestScreenModel.java
index d1fdb8b90f0..e0794bd8c39 100644
--- a/forge-gui-mobile/src/forge/screens/planarconquest/NewConquestScreenModel.java
+++ b/forge-gui-mobile/src/forge/screens/planarconquest/NewConquestScreenModel.java
@@ -1,7 +1,7 @@
package forge.screens.planarconquest;
+import forge.gamemodes.planarconquest.ConquestPlane;
import forge.item.PaperCard;
-import forge.planarconquest.ConquestPlane;
public class NewConquestScreenModel {
public ConquestPlane startingPlane;
diff --git a/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java b/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java
index 901b6adb063..0633c4feecd 100644
--- a/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/LoadQuestScreen.java
@@ -17,16 +17,16 @@ import forge.Forge;
import forge.Graphics;
import forge.assets.FSkinColor;
import forge.assets.FSkinColor.Colors;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestUtil;
+import forge.gamemodes.quest.data.DeckConstructionRules;
+import forge.gamemodes.quest.data.QuestData;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
+import forge.gamemodes.quest.io.QuestDataIO;
import forge.localinstance.properties.ForgeConstants;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestUtil;
-import forge.quest.data.DeckConstructionRules;
-import forge.quest.data.QuestData;
-import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.io.QuestDataIO;
import forge.screens.LaunchScreen;
import forge.screens.home.LoadGameMenu;
import forge.screens.home.NewGameMenu.NewGameScreen;
diff --git a/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java b/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java
index 1b9f977d895..5519b9ac428 100644
--- a/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/NewQuestScreen.java
@@ -12,22 +12,22 @@ import forge.deck.Deck;
import forge.deck.DeckGroup;
import forge.deck.DeckSection;
import forge.game.GameFormat;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestMode;
+import forge.gamemodes.quest.QuestUtil;
+import forge.gamemodes.quest.QuestWorld;
+import forge.gamemodes.quest.StartingPoolPreferences;
+import forge.gamemodes.quest.StartingPoolType;
+import forge.gamemodes.quest.StartingPoolPreferences.PoolType;
+import forge.gamemodes.quest.data.DeckConstructionRules;
+import forge.gamemodes.quest.data.GameFormatQuest;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.item.PaperCard;
import forge.item.PreconDeck;
import forge.itemmanager.filters.HistoricFormatSelect;
import forge.localinstance.properties.ForgeConstants;
import forge.model.CardCollections;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestMode;
-import forge.quest.QuestUtil;
-import forge.quest.QuestWorld;
-import forge.quest.StartingPoolPreferences;
-import forge.quest.StartingPoolPreferences.PoolType;
-import forge.quest.StartingPoolType;
-import forge.quest.data.DeckConstructionRules;
-import forge.quest.data.GameFormatQuest;
-import forge.quest.data.QuestPreferences.QPref;
import forge.screens.FScreen;
import forge.screens.LoadingOverlay;
import forge.screens.home.NewGameMenu;
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java
index 0c738cd5104..e559a958dee 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestBazaarScreen.java
@@ -12,13 +12,13 @@ import forge.GuiBase;
import forge.assets.FImage;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestUtil;
+import forge.gamemodes.quest.bazaar.IQuestBazaarItem;
+import forge.gamemodes.quest.bazaar.QuestBazaarManager;
+import forge.gamemodes.quest.bazaar.QuestStallDefinition;
+import forge.gamemodes.quest.data.QuestAssets;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestUtil;
-import forge.quest.bazaar.IQuestBazaarItem;
-import forge.quest.bazaar.QuestBazaarManager;
-import forge.quest.bazaar.QuestStallDefinition;
-import forge.quest.data.QuestAssets;
import forge.screens.TabPageScreen;
import forge.toolbox.FContainer;
import forge.toolbox.FDisplayObject;
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestDeckEditor.java b/forge-gui-mobile/src/forge/screens/quest/QuestDeckEditor.java
index 53ed006d7de..e07dbd974ba 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestDeckEditor.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestDeckEditor.java
@@ -4,12 +4,12 @@ import java.util.HashMap;
import java.util.Map;
import forge.deck.DeckProxy;
import forge.deck.FDeckEditor;
+import forge.gamemodes.quest.QuestSpellShop;
import forge.item.PaperCard;
import forge.itemmanager.ColumnDef;
import forge.itemmanager.ItemColumn;
import forge.itemmanager.ItemManagerConfig;
import forge.model.FModel;
-import forge.quest.QuestSpellShop;
public class QuestDeckEditor extends FDeckEditor {
public QuestDeckEditor(boolean commander) {
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java
index 5940a1205f4..063a9a32c67 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestDecksScreen.java
@@ -10,12 +10,12 @@ import forge.deck.DeckgenUtil;
import forge.deck.FDeckChooser;
import forge.deck.FDeckViewer;
import forge.game.GameType;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestUtil;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.itemmanager.DeckManager;
import forge.itemmanager.ItemManagerConfig;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestUtil;
-import forge.quest.data.QuestPreferences.QPref;
import forge.screens.FScreen;
import forge.toolbox.FButton;
import forge.toolbox.FEvent;
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java
index 4987202c0de..5d9d05122ca 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestDuelsScreen.java
@@ -4,9 +4,9 @@ import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Align;
import forge.FThreads;
import forge.assets.FSkinFont;
+import forge.gamemodes.quest.QuestEventDuel;
import forge.interfaces.IButton;
import forge.model.FModel;
-import forge.quest.QuestEventDuel;
import forge.screens.LoadingOverlay;
import forge.screens.home.HomeScreen;
import forge.toolbox.FEvent;
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java b/forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java
index a548a944aad..835829c83da 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestEventPanel.java
@@ -6,10 +6,10 @@ import forge.Graphics;
import forge.assets.FImage;
import forge.assets.FSkinColor;
import forge.assets.FSkinColor.Colors;
+import forge.gamemodes.quest.IQuestEvent;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
import forge.assets.ImageCache;
-import forge.quest.IQuestEvent;
import forge.screens.settings.SettingsScreen;
import forge.toolbox.FDisplayObject;
import forge.toolbox.FEvent;
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestLaunchScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestLaunchScreen.java
index fbb638e1840..9d37c134ed8 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestLaunchScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestLaunchScreen.java
@@ -1,8 +1,8 @@
package forge.screens.quest;
import forge.FThreads;
+import forge.gamemodes.quest.QuestUtil;
import forge.model.FModel;
-import forge.quest.QuestUtil;
import forge.screens.LaunchScreen;
import forge.screens.LoadingOverlay;
import forge.toolbox.FOptionPane;
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java b/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java
index fdbde6e354e..f72f26a260a 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestMenu.java
@@ -10,6 +10,10 @@ import forge.deck.Deck;
import forge.deck.DeckGroup;
import forge.deck.FDeckEditor.DeckController;
import forge.deck.FDeckEditor.EditorType;
+import forge.gamemodes.quest.IVQuestStats;
+import forge.gamemodes.quest.QuestUtil;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
+import forge.gamemodes.quest.io.QuestDataIO;
import forge.interfaces.IButton;
import forge.interfaces.ICheckBox;
import forge.interfaces.IComboBox;
@@ -17,10 +21,6 @@ import forge.localinstance.properties.ForgeConstants;
import forge.menu.FMenuItem;
import forge.menu.FPopupMenu;
import forge.model.FModel;
-import forge.quest.IVQuestStats;
-import forge.quest.QuestUtil;
-import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.io.QuestDataIO;
import forge.screens.FScreen;
import forge.screens.LoadingOverlay;
import forge.screens.home.HomeScreen;
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestPrefsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestPrefsScreen.java
index 4ad16f6f9af..a55e2df7957 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestPrefsScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestPrefsScreen.java
@@ -3,9 +3,9 @@ package forge.screens.quest;
import forge.assets.FImage;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
+import forge.gamemodes.quest.data.QuestPreferences;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.model.FModel;
-import forge.quest.data.QuestPreferences;
-import forge.quest.data.QuestPreferences.QPref;
import forge.screens.FScreen;
import forge.toolbox.FContainer;
import forge.toolbox.FDisplayObject;
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java
index 1e7f27941ef..d789bf45d67 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestSpellShopScreen.java
@@ -6,6 +6,8 @@ import forge.Forge;
import forge.assets.FImage;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
+import forge.gamemodes.quest.QuestSpellShop;
+import forge.gamemodes.quest.QuestUtil;
import forge.item.InventoryItem;
import forge.item.PaperCard;
import forge.itemmanager.ColumnDef;
@@ -17,8 +19,6 @@ import forge.itemmanager.filters.ItemFilter;
import forge.menu.FDropDownMenu;
import forge.menu.FMenuItem;
import forge.model.FModel;
-import forge.quest.QuestSpellShop;
-import forge.quest.QuestUtil;
import forge.screens.TabPageScreen;
import forge.toolbox.*;
import forge.toolbox.FEvent.FEventHandler;
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java
index 6be65f891e9..ed045d09804 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestStatsScreen.java
@@ -5,13 +5,13 @@ import java.util.List;
import forge.assets.FImage;
import forge.assets.FSkinFont;
import forge.assets.FSkinImage;
+import forge.gamemodes.quest.QuestUtil;
+import forge.gamemodes.quest.bazaar.QuestItemType;
+import forge.gamemodes.quest.bazaar.QuestPetController;
import forge.interfaces.IButton;
import forge.interfaces.ICheckBox;
import forge.interfaces.IComboBox;
import forge.model.FModel;
-import forge.quest.QuestUtil;
-import forge.quest.bazaar.QuestItemType;
-import forge.quest.bazaar.QuestPetController;
import forge.screens.FScreen;
import forge.toolbox.FCheckBox;
import forge.toolbox.FComboBox;
diff --git a/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java b/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java
index 9dacdee15ee..2117740b565 100644
--- a/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java
+++ b/forge-gui-mobile/src/forge/screens/quest/QuestTournamentsScreen.java
@@ -16,18 +16,18 @@ import forge.deck.CardPool;
import forge.deck.Deck;
import forge.deck.DeckGroup;
import forge.deck.FDeckEditor.EditorType;
+import forge.gamemodes.limited.BoosterDraft;
+import forge.gamemodes.quest.IQuestTournamentView;
+import forge.gamemodes.quest.QuestDraftUtils;
+import forge.gamemodes.quest.QuestEventDraft;
+import forge.gamemodes.quest.QuestTournamentController;
+import forge.gamemodes.quest.QuestDraftUtils.Mode;
+import forge.gamemodes.quest.data.QuestEventDraftContainer;
import forge.itemmanager.CardManager;
import forge.itemmanager.ItemManagerConfig;
import forge.itemmanager.filters.ItemFilter;
-import forge.limited.BoosterDraft;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.quest.IQuestTournamentView;
-import forge.quest.QuestDraftUtils;
-import forge.quest.QuestEventDraft;
-import forge.quest.QuestTournamentController;
-import forge.quest.QuestDraftUtils.Mode;
-import forge.quest.data.QuestEventDraftContainer;
import forge.screens.LoadingOverlay;
import forge.screens.limited.DraftingProcessScreen;
import forge.toolbox.FButton;
diff --git a/forge-gui/src/main/java/forge/control/FControlGamePlayback.java b/forge-gui/src/main/java/forge/control/FControlGamePlayback.java
index 5f7b1110b0a..07430bada16 100644
--- a/forge-gui/src/main/java/forge/control/FControlGamePlayback.java
+++ b/forge-gui/src/main/java/forge/control/FControlGamePlayback.java
@@ -19,7 +19,7 @@ import forge.game.event.GameEventSpellAbilityCast;
import forge.game.event.GameEventSpellResolved;
import forge.game.event.GameEventTurnPhase;
import forge.game.event.IGameEventVisitor;
-import forge.match.input.InputPlaybackControl;
+import forge.gamemodes.match.input.InputPlaybackControl;
import forge.player.PlayerControllerHuman;
public class FControlGamePlayback extends IGameEventVisitor.Base {
diff --git a/forge-gui/src/main/java/forge/control/WatchLocalGame.java b/forge-gui/src/main/java/forge/control/WatchLocalGame.java
index c7758934716..59452fcb344 100644
--- a/forge-gui/src/main/java/forge/control/WatchLocalGame.java
+++ b/forge-gui/src/main/java/forge/control/WatchLocalGame.java
@@ -10,10 +10,10 @@ import forge.game.Game;
import forge.game.card.CardView;
import forge.game.player.PlayerView;
import forge.game.spellability.SpellAbilityView;
+import forge.gamemodes.match.input.Input;
+import forge.gamemodes.match.input.InputPlaybackControl;
import forge.interfaces.IDevModeCheats;
import forge.interfaces.IGuiGame;
-import forge.match.input.Input;
-import forge.match.input.InputPlaybackControl;
import forge.player.PlayerControllerHuman;
import forge.util.ITriggerEvent;
diff --git a/forge-gui/src/main/java/forge/deck/DeckProxy.java b/forge-gui/src/main/java/forge/deck/DeckProxy.java
index 452827530a1..ef649b80f3f 100644
--- a/forge-gui/src/main/java/forge/deck/DeckProxy.java
+++ b/forge-gui/src/main/java/forge/deck/DeckProxy.java
@@ -28,14 +28,14 @@ import forge.card.mana.ManaCostShard;
import forge.deck.io.DeckPreferences;
import forge.game.GameFormat;
import forge.game.GameType;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestEvent;
import forge.item.InventoryItem;
import forge.item.PaperCard;
import forge.item.PreconDeck;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestEvent;
import forge.util.BinaryUtil;
import forge.util.IHasName;
import forge.util.storage.IStorage;
diff --git a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java
index 55f80947db9..658340ecfb3 100644
--- a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java
+++ b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java
@@ -16,18 +16,18 @@ import forge.deck.generation.*;
import forge.deck.io.Archetype;
import forge.game.GameFormat;
import forge.game.GameType;
+import forge.gamemodes.limited.ArchetypeDeckBuilder;
+import forge.gamemodes.limited.CardThemedCommanderDeckBuilder;
+import forge.gamemodes.limited.CardThemedConquestDeckBuilder;
+import forge.gamemodes.limited.CardThemedDeckBuilder;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestEvent;
+import forge.gamemodes.quest.QuestEventChallenge;
+import forge.gamemodes.quest.QuestEventDuel;
import forge.item.PaperCard;
import forge.itemmanager.IItemManager;
-import forge.limited.ArchetypeDeckBuilder;
-import forge.limited.CardThemedCommanderDeckBuilder;
-import forge.limited.CardThemedConquestDeckBuilder;
-import forge.limited.CardThemedDeckBuilder;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestEvent;
-import forge.quest.QuestEventChallenge;
-import forge.quest.QuestEventDuel;
import forge.util.Aggregates;
import forge.util.Lang;
import forge.util.MyRandom;
diff --git a/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java b/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java
index fe11a4cd0ea..1609859d0d5 100644
--- a/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java
+++ b/forge-gui/src/main/java/forge/deck/RandomDeckGenerator.java
@@ -8,8 +8,8 @@ import com.google.common.collect.Iterables;
import forge.game.GameType;
import forge.game.IHasGameType;
+import forge.gamemodes.quest.QuestController;
import forge.model.FModel;
-import forge.quest.QuestController;
import forge.util.Aggregates;
public class RandomDeckGenerator extends DeckProxy implements Comparable {
diff --git a/forge-gui/src/main/java/forge/events/UiEventNextGameDecision.java b/forge-gui/src/main/java/forge/events/UiEventNextGameDecision.java
index 71e92f416f6..20b5243a005 100644
--- a/forge-gui/src/main/java/forge/events/UiEventNextGameDecision.java
+++ b/forge-gui/src/main/java/forge/events/UiEventNextGameDecision.java
@@ -1,6 +1,6 @@
package forge.events;
-import forge.match.NextGameDecision;
+import forge.gamemodes.match.NextGameDecision;
import forge.player.PlayerControllerHuman;
public final class UiEventNextGameDecision extends UiEvent {
diff --git a/forge-gui/src/main/java/forge/gauntlet/GauntletData.java b/forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletData.java
similarity index 98%
rename from forge-gui/src/main/java/forge/gauntlet/GauntletData.java
rename to forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletData.java
index 3f9f6d66c9a..6b57a79e963 100644
--- a/forge-gui/src/main/java/forge/gauntlet/GauntletData.java
+++ b/forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletData.java
@@ -1,4 +1,4 @@
-package forge.gauntlet;
+package forge.gamemodes.gauntlet;
import com.thoughtworks.xstream.annotations.XStreamOmitField;
@@ -6,8 +6,8 @@ import forge.GuiBase;
import forge.deck.Deck;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.match.HostedMatch;
import forge.localinstance.properties.ForgeConstants;
-import forge.match.HostedMatch;
import java.io.File;
import java.text.DateFormat;
diff --git a/forge-gui/src/main/java/forge/gauntlet/GauntletIO.java b/forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletIO.java
similarity index 99%
rename from forge-gui/src/main/java/forge/gauntlet/GauntletIO.java
rename to forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletIO.java
index c47ff5d4c00..de65914f895 100644
--- a/forge-gui/src/main/java/forge/gauntlet/GauntletIO.java
+++ b/forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletIO.java
@@ -1,4 +1,4 @@
-package forge.gauntlet;
+package forge.gamemodes.gauntlet;
import java.io.BufferedOutputStream;
import java.io.File;
diff --git a/forge-gui/src/main/java/forge/gauntlet/GauntletUtil.java b/forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletUtil.java
similarity index 99%
rename from forge-gui/src/main/java/forge/gauntlet/GauntletUtil.java
rename to forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletUtil.java
index 61f42e587dd..9b6be34e309 100644
--- a/forge-gui/src/main/java/forge/gauntlet/GauntletUtil.java
+++ b/forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletUtil.java
@@ -1,4 +1,4 @@
-package forge.gauntlet;
+package forge.gamemodes.gauntlet;
import java.io.File;
import java.util.*;
diff --git a/forge-gui/src/main/java/forge/gauntlet/GauntletWinLoseController.java b/forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletWinLoseController.java
similarity index 99%
rename from forge-gui/src/main/java/forge/gauntlet/GauntletWinLoseController.java
rename to forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletWinLoseController.java
index 7e4310d565f..70486da312e 100644
--- a/forge-gui/src/main/java/forge/gauntlet/GauntletWinLoseController.java
+++ b/forge-gui/src/main/java/forge/gamemodes/gauntlet/GauntletWinLoseController.java
@@ -1,4 +1,4 @@
-package forge.gauntlet;
+package forge.gamemodes.gauntlet;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/limited/ArchetypeDeckBuilder.java b/forge-gui/src/main/java/forge/gamemodes/limited/ArchetypeDeckBuilder.java
similarity index 95%
rename from forge-gui/src/main/java/forge/limited/ArchetypeDeckBuilder.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/ArchetypeDeckBuilder.java
index a0ca57ecbad..be376c3f169 100644
--- a/forge-gui/src/main/java/forge/limited/ArchetypeDeckBuilder.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/ArchetypeDeckBuilder.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import forge.deck.DeckFormat;
import forge.deck.io.Archetype;
diff --git a/forge-gui/src/main/java/forge/limited/BoosterDeckBuilder.java b/forge-gui/src/main/java/forge/gamemodes/limited/BoosterDeckBuilder.java
similarity index 92%
rename from forge-gui/src/main/java/forge/limited/BoosterDeckBuilder.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/BoosterDeckBuilder.java
index 2c80377c9ac..4115b6fc8b2 100644
--- a/forge-gui/src/main/java/forge/limited/BoosterDeckBuilder.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/BoosterDeckBuilder.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import forge.item.PaperCard;
diff --git a/forge-gui/src/main/java/forge/limited/BoosterDraft.java b/forge-gui/src/main/java/forge/gamemodes/limited/BoosterDraft.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/BoosterDraft.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/BoosterDraft.java
index e6cf6d207e6..40e8a11722b 100644
--- a/forge-gui/src/main/java/forge/limited/BoosterDraft.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/BoosterDraft.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.limited;
+package forge.gamemodes.limited;
import com.google.common.base.Predicate;
import com.google.common.base.Supplier;
diff --git a/forge-gui/src/main/java/forge/limited/BoosterDraftAI.java b/forge-gui/src/main/java/forge/gamemodes/limited/BoosterDraftAI.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/BoosterDraftAI.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/BoosterDraftAI.java
index fdb89d30e4f..d5d61676818 100644
--- a/forge-gui/src/main/java/forge/limited/BoosterDraftAI.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/BoosterDraftAI.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.limited;
+package forge.gamemodes.limited;
import java.util.ArrayList;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/limited/CardRanker.java b/forge-gui/src/main/java/forge/gamemodes/limited/CardRanker.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/CardRanker.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/CardRanker.java
index 13d138f6b9e..ae093bd402f 100644
--- a/forge-gui/src/main/java/forge/limited/CardRanker.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/CardRanker.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
diff --git a/forge-gui/src/main/java/forge/limited/CardRankingComparator.java b/forge-gui/src/main/java/forge/gamemodes/limited/CardRankingComparator.java
similarity index 92%
rename from forge-gui/src/main/java/forge/limited/CardRankingComparator.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/CardRankingComparator.java
index 69da8c9ad7b..10cb20cd1e0 100644
--- a/forge-gui/src/main/java/forge/limited/CardRankingComparator.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/CardRankingComparator.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import forge.item.PaperCard;
import org.apache.commons.lang3.tuple.Pair;
diff --git a/forge-gui/src/main/java/forge/limited/CardThemedCommanderDeckBuilder.java b/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedCommanderDeckBuilder.java
similarity index 98%
rename from forge-gui/src/main/java/forge/limited/CardThemedCommanderDeckBuilder.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/CardThemedCommanderDeckBuilder.java
index f981abbc50c..059661bdf34 100644
--- a/forge-gui/src/main/java/forge/limited/CardThemedCommanderDeckBuilder.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedCommanderDeckBuilder.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
diff --git a/forge-gui/src/main/java/forge/limited/CardThemedConquestDeckBuilder.java b/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedConquestDeckBuilder.java
similarity index 98%
rename from forge-gui/src/main/java/forge/limited/CardThemedConquestDeckBuilder.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/CardThemedConquestDeckBuilder.java
index b126ef47b27..1e37cdabdd4 100644
--- a/forge-gui/src/main/java/forge/limited/CardThemedConquestDeckBuilder.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedConquestDeckBuilder.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
diff --git a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java b/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedDeckBuilder.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/CardThemedDeckBuilder.java
index 2107d945159..e9dadbaca5c 100644
--- a/forge-gui/src/main/java/forge/limited/CardThemedDeckBuilder.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/CardThemedDeckBuilder.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
diff --git a/forge-gui/src/main/java/forge/limited/CustomLimited.java b/forge-gui/src/main/java/forge/gamemodes/limited/CustomLimited.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/CustomLimited.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/CustomLimited.java
index cd908d5f59e..7adadc0a114 100644
--- a/forge-gui/src/main/java/forge/limited/CustomLimited.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/CustomLimited.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.limited;
+package forge.gamemodes.limited;
import forge.card.CardEdition;
import forge.deck.Deck;
diff --git a/forge-gui/src/main/java/forge/limited/DeckColors.java b/forge-gui/src/main/java/forge/gamemodes/limited/DeckColors.java
similarity index 98%
rename from forge-gui/src/main/java/forge/limited/DeckColors.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/DeckColors.java
index 99964e2de39..86f641093a1 100644
--- a/forge-gui/src/main/java/forge/limited/DeckColors.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/DeckColors.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.limited;
+package forge.gamemodes.limited;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/limited/DraftRankCache.java b/forge-gui/src/main/java/forge/gamemodes/limited/DraftRankCache.java
similarity index 96%
rename from forge-gui/src/main/java/forge/limited/DraftRankCache.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/DraftRankCache.java
index a0b958236a5..09c07ccaa05 100644
--- a/forge-gui/src/main/java/forge/limited/DraftRankCache.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/DraftRankCache.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
/**
* DraftRankCache
diff --git a/forge-gui/src/main/java/forge/limited/FullDeckColors.java b/forge-gui/src/main/java/forge/gamemodes/limited/FullDeckColors.java
similarity index 96%
rename from forge-gui/src/main/java/forge/limited/FullDeckColors.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/FullDeckColors.java
index 62b87ae3262..93a69a26890 100644
--- a/forge-gui/src/main/java/forge/limited/FullDeckColors.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/FullDeckColors.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import forge.card.ColorSet;
import forge.card.MagicColor;
diff --git a/forge-gui/src/main/java/forge/limited/GauntletMini.java b/forge-gui/src/main/java/forge/gamemodes/limited/GauntletMini.java
similarity index 98%
rename from forge-gui/src/main/java/forge/limited/GauntletMini.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/GauntletMini.java
index 2a953e318bc..62997adef14 100644
--- a/forge-gui/src/main/java/forge/limited/GauntletMini.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/GauntletMini.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.limited;
+package forge.gamemodes.limited;
import java.util.ArrayList;
import java.util.List;
@@ -24,7 +24,7 @@ import forge.GuiBase;
import forge.deck.Deck;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
-import forge.match.HostedMatch;
+import forge.gamemodes.match.HostedMatch;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
import forge.util.Aggregates;
diff --git a/forge-gui/src/main/java/forge/limited/IBoosterDraft.java b/forge-gui/src/main/java/forge/gamemodes/limited/IBoosterDraft.java
similarity index 97%
rename from forge-gui/src/main/java/forge/limited/IBoosterDraft.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/IBoosterDraft.java
index 3797aea5c73..d8d1514a636 100644
--- a/forge-gui/src/main/java/forge/limited/IBoosterDraft.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/IBoosterDraft.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.limited;
+package forge.gamemodes.limited;
import forge.card.CardEdition;
import forge.deck.CardPool;
diff --git a/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedDeckBuilder.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/LimitedDeckBuilder.java
index 7f89655fb03..dcf291b248c 100644
--- a/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedDeckBuilder.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import java.util.ArrayList;
import java.util.HashMap;
diff --git a/forge-gui/src/main/java/forge/limited/LimitedDeckEvaluator.java b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedDeckEvaluator.java
similarity index 98%
rename from forge-gui/src/main/java/forge/limited/LimitedDeckEvaluator.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/LimitedDeckEvaluator.java
index d0c45a7939e..48e8e3577e3 100644
--- a/forge-gui/src/main/java/forge/limited/LimitedDeckEvaluator.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedDeckEvaluator.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.limited;
+package forge.gamemodes.limited;
import forge.deck.Deck;
import forge.item.PaperCard;
diff --git a/forge-gui/src/main/java/forge/limited/LimitedPlayer.java b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPlayer.java
similarity index 97%
rename from forge-gui/src/main/java/forge/limited/LimitedPlayer.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/LimitedPlayer.java
index ec99c253607..f1b81871518 100644
--- a/forge-gui/src/main/java/forge/limited/LimitedPlayer.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPlayer.java
@@ -1,11 +1,11 @@
-package forge.limited;
+package forge.gamemodes.limited;
//import com.google.common.collect.Lists;
import forge.deck.CardPool;
import forge.deck.Deck;
import forge.deck.DeckSection;
import forge.item.PaperCard;
-//import forge.limited.powers.DraftPower;
+//import forge.gamemodes.limited.powers.DraftPower;
import java.util.*;
diff --git a/forge-gui/src/main/java/forge/limited/LimitedPlayerAI.java b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPlayerAI.java
similarity index 98%
rename from forge-gui/src/main/java/forge/limited/LimitedPlayerAI.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/LimitedPlayerAI.java
index be81398d911..6e04d7e8ab3 100644
--- a/forge-gui/src/main/java/forge/limited/LimitedPlayerAI.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPlayerAI.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import forge.card.ColorSet;
import forge.deck.CardPool;
diff --git a/forge-gui/src/main/java/forge/limited/LimitedPoolType.java b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPoolType.java
similarity index 92%
rename from forge-gui/src/main/java/forge/limited/LimitedPoolType.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/LimitedPoolType.java
index 73f92239bb6..1f4f556d0e3 100644
--- a/forge-gui/src/main/java/forge/limited/LimitedPoolType.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedPoolType.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
public enum LimitedPoolType {
Full("Full Cardpool"),
diff --git a/forge-gui/src/main/java/forge/limited/LimitedWinLoseController.java b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedWinLoseController.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/LimitedWinLoseController.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/LimitedWinLoseController.java
index b3156fd4020..c1fbbc34f6a 100644
--- a/forge-gui/src/main/java/forge/limited/LimitedWinLoseController.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/LimitedWinLoseController.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import forge.game.GameView;
import forge.interfaces.IButton;
diff --git a/forge-gui/src/main/java/forge/limited/ReadDraftRankings.java b/forge-gui/src/main/java/forge/gamemodes/limited/ReadDraftRankings.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/ReadDraftRankings.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/ReadDraftRankings.java
index d2f485d3628..5b1cb5a748c 100644
--- a/forge-gui/src/main/java/forge/limited/ReadDraftRankings.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/ReadDraftRankings.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import forge.localinstance.properties.ForgeConstants;
import forge.util.FileUtil;
diff --git a/forge-gui/src/main/java/forge/limited/SealedCardPoolGenerator.java b/forge-gui/src/main/java/forge/gamemodes/limited/SealedCardPoolGenerator.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/SealedCardPoolGenerator.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/SealedCardPoolGenerator.java
index 20b89dbfd28..93573fdc2d8 100644
--- a/forge-gui/src/main/java/forge/limited/SealedCardPoolGenerator.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/SealedCardPoolGenerator.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.limited;
+package forge.gamemodes.limited;
import com.google.common.collect.Lists;
import forge.StaticData;
diff --git a/forge-gui/src/main/java/forge/limited/SealedDeckBuilder.java b/forge-gui/src/main/java/forge/gamemodes/limited/SealedDeckBuilder.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/SealedDeckBuilder.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/SealedDeckBuilder.java
index 6cde57b09b4..a62e94588e9 100644
--- a/forge-gui/src/main/java/forge/limited/SealedDeckBuilder.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/SealedDeckBuilder.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import com.google.common.collect.Iterables;
import forge.card.CardRules;
diff --git a/forge-gui/src/main/java/forge/limited/ThemedChaosDraft.java b/forge-gui/src/main/java/forge/gamemodes/limited/ThemedChaosDraft.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/ThemedChaosDraft.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/ThemedChaosDraft.java
index 1b207167087..1b51163ee40 100644
--- a/forge-gui/src/main/java/forge/limited/ThemedChaosDraft.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/ThemedChaosDraft.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
diff --git a/forge-gui/src/main/java/forge/limited/WinstonDraft.java b/forge-gui/src/main/java/forge/gamemodes/limited/WinstonDraft.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/WinstonDraft.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/WinstonDraft.java
index ff75cc5a827..0700ea17e9e 100644
--- a/forge-gui/src/main/java/forge/limited/WinstonDraft.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/WinstonDraft.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/forge-gui/src/main/java/forge/limited/WinstonDraftAI.java b/forge-gui/src/main/java/forge/gamemodes/limited/WinstonDraftAI.java
similarity index 99%
rename from forge-gui/src/main/java/forge/limited/WinstonDraftAI.java
rename to forge-gui/src/main/java/forge/gamemodes/limited/WinstonDraftAI.java
index edc6b7b2a87..17fc9ef7e92 100644
--- a/forge-gui/src/main/java/forge/limited/WinstonDraftAI.java
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/WinstonDraftAI.java
@@ -1,4 +1,4 @@
-package forge.limited;
+package forge.gamemodes.limited;
import java.util.ArrayList;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/gamemodes/limited/package-info.java b/forge-gui/src/main/java/forge/gamemodes/limited/package-info.java
new file mode 100644
index 00000000000..d34df08a98a
--- /dev/null
+++ b/forge-gui/src/main/java/forge/gamemodes/limited/package-info.java
@@ -0,0 +1,3 @@
+/** Forge Card Game. */
+package forge.gamemodes.limited;
+
diff --git a/forge-gui/src/main/java/forge/match/AbstractGuiGame.java b/forge-gui/src/main/java/forge/gamemodes/match/AbstractGuiGame.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/AbstractGuiGame.java
rename to forge-gui/src/main/java/forge/gamemodes/match/AbstractGuiGame.java
index 43bfc04a7ce..65837e9bee8 100644
--- a/forge-gui/src/main/java/forge/match/AbstractGuiGame.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/AbstractGuiGame.java
@@ -1,4 +1,4 @@
-package forge.match;
+package forge.gamemodes.match;
import java.io.Serializable;
import java.util.Collection;
diff --git a/forge-gui/src/main/java/forge/match/GameLobby.java b/forge-gui/src/main/java/forge/gamemodes/match/GameLobby.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/GameLobby.java
rename to forge-gui/src/main/java/forge/gamemodes/match/GameLobby.java
index 62edfb8bb98..49bca8ce43d 100644
--- a/forge-gui/src/main/java/forge/match/GameLobby.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/GameLobby.java
@@ -1,4 +1,4 @@
-package forge.match;
+package forge.gamemodes.match;
import java.io.Serializable;
import java.util.ArrayList;
@@ -28,13 +28,13 @@ import forge.game.GameView;
import forge.game.IHasGameType;
import forge.game.player.Player;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.net.event.UpdateLobbyPlayerEvent;
import forge.interfaces.IGameController;
import forge.interfaces.IGuiGame;
import forge.interfaces.IUpdateable;
import forge.item.PaperCard;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.net.event.UpdateLobbyPlayerEvent;
import forge.player.GamePlayerUtil;
import forge.util.Localizer;
import forge.util.NameGenerator;
diff --git a/forge-gui/src/main/java/forge/match/HostedMatch.java b/forge-gui/src/main/java/forge/gamemodes/match/HostedMatch.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/HostedMatch.java
rename to forge-gui/src/main/java/forge/gamemodes/match/HostedMatch.java
index 6a7261cd028..278963468ae 100644
--- a/forge-gui/src/main/java/forge/match/HostedMatch.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/HostedMatch.java
@@ -1,4 +1,4 @@
-package forge.match;
+package forge.gamemodes.match;
import java.util.Collection;
import java.util.Collections;
@@ -38,6 +38,7 @@ import forge.game.event.*;
import forge.game.player.Player;
import forge.game.player.PlayerView;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.quest.QuestController;
import forge.interfaces.IGuiGame;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.ForgePreferences;
@@ -46,7 +47,6 @@ import forge.model.FModel;
import forge.player.GamePlayerUtil;
import forge.player.LobbyPlayerHuman;
import forge.player.PlayerControllerHuman;
-import forge.quest.QuestController;
import forge.sound.MusicPlaylist;
import forge.sound.SoundSystem;
import forge.trackable.TrackableCollection;
diff --git a/forge-gui/src/main/java/forge/match/LobbySlot.java b/forge-gui/src/main/java/forge/gamemodes/match/LobbySlot.java
similarity index 98%
rename from forge-gui/src/main/java/forge/match/LobbySlot.java
rename to forge-gui/src/main/java/forge/gamemodes/match/LobbySlot.java
index 9a8b50160dd..a591c1c8a53 100644
--- a/forge-gui/src/main/java/forge/match/LobbySlot.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/LobbySlot.java
@@ -1,4 +1,4 @@
-package forge.match;
+package forge.gamemodes.match;
import java.io.Serializable;
import java.util.Set;
@@ -7,7 +7,7 @@ import com.google.common.collect.ImmutableSet;
import forge.ai.AIOption;
import forge.deck.Deck;
-import forge.net.event.UpdateLobbyPlayerEvent;
+import forge.gamemodes.net.event.UpdateLobbyPlayerEvent;
public final class LobbySlot implements Serializable {
private static final long serialVersionUID = 9203252798721142264L;
diff --git a/forge-gui/src/main/java/forge/match/LobbySlotType.java b/forge-gui/src/main/java/forge/gamemodes/match/LobbySlotType.java
similarity index 69%
rename from forge-gui/src/main/java/forge/match/LobbySlotType.java
rename to forge-gui/src/main/java/forge/gamemodes/match/LobbySlotType.java
index 2c8e6bce624..45359bd9de9 100644
--- a/forge-gui/src/main/java/forge/match/LobbySlotType.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/LobbySlotType.java
@@ -1,4 +1,4 @@
-package forge.match;
+package forge.gamemodes.match;
public enum LobbySlotType {
LOCAL,
diff --git a/forge-gui/src/main/java/forge/match/LocalLobby.java b/forge-gui/src/main/java/forge/gamemodes/match/LocalLobby.java
similarity index 97%
rename from forge-gui/src/main/java/forge/match/LocalLobby.java
rename to forge-gui/src/main/java/forge/gamemodes/match/LocalLobby.java
index bb8c348f6a6..868c3349dda 100644
--- a/forge-gui/src/main/java/forge/match/LocalLobby.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/LocalLobby.java
@@ -1,4 +1,4 @@
-package forge.match;
+package forge.gamemodes.match;
import java.util.Collections;
diff --git a/forge-gui/src/main/java/forge/match/NextGameDecision.java b/forge-gui/src/main/java/forge/gamemodes/match/NextGameDecision.java
similarity index 68%
rename from forge-gui/src/main/java/forge/match/NextGameDecision.java
rename to forge-gui/src/main/java/forge/gamemodes/match/NextGameDecision.java
index 52cf84d9b0d..e84b11068ab 100644
--- a/forge-gui/src/main/java/forge/match/NextGameDecision.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/NextGameDecision.java
@@ -1,4 +1,4 @@
-package forge.match;
+package forge.gamemodes.match;
public enum NextGameDecision {
NEW,
diff --git a/forge-gui/src/main/java/forge/match/input/Input.java b/forge-gui/src/main/java/forge/gamemodes/match/input/Input.java
similarity index 94%
rename from forge-gui/src/main/java/forge/match/input/Input.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/Input.java
index 18da144683a..2d9624828f6 100644
--- a/forge-gui/src/main/java/forge/match/input/Input.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/Input.java
@@ -1,4 +1,4 @@
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/match/input/InputAttack.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputAttack.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputAttack.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputAttack.java
index 17e9e78f310..8c896fa1583 100644
--- a/forge-gui/src/main/java/forge/match/input/InputAttack.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputAttack.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.match.input;
+package forge.gamemodes.match.input;
import com.google.common.collect.Sets;
import forge.events.UiEventAttackerDeclared;
diff --git a/forge-gui/src/main/java/forge/match/input/InputBase.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputBase.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputBase.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputBase.java
index dc688b7d533..d69b681c895 100644
--- a/forge-gui/src/main/java/forge/match/input/InputBase.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputBase.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/match/input/InputBlock.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputBlock.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputBlock.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputBlock.java
index aaf64e05194..06a66e91a94 100644
--- a/forge-gui/src/main/java/forge/match/input/InputBlock.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputBlock.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.match.input;
+package forge.gamemodes.match.input;
import forge.FThreads;
import forge.events.UiEventBlockerAssigned;
diff --git a/forge-gui/src/main/java/forge/match/input/InputConfirm.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputConfirm.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputConfirm.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputConfirm.java
index cea8f93683c..4b8d0a8f055 100644
--- a/forge-gui/src/main/java/forge/match/input/InputConfirm.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputConfirm.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputConfirmMulligan.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputConfirmMulligan.java
index e9ed8371e0b..d64ced39605 100644
--- a/forge-gui/src/main/java/forge/match/input/InputConfirmMulligan.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputConfirmMulligan.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.List;
import forge.game.Game;
diff --git a/forge-gui/src/main/java/forge/match/input/InputLockUI.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputLockUI.java
similarity index 98%
rename from forge-gui/src/main/java/forge/match/input/InputLockUI.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputLockUI.java
index 76a13d6eb93..4dc68e07feb 100644
--- a/forge-gui/src/main/java/forge/match/input/InputLockUI.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputLockUI.java
@@ -1,4 +1,4 @@
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
diff --git a/forge-gui/src/main/java/forge/match/input/InputLondonMulligan.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputLondonMulligan.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputLondonMulligan.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputLondonMulligan.java
index 4cfdb546e99..e00c3ac4f7f 100644
--- a/forge-gui/src/main/java/forge/match/input/InputLondonMulligan.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputLondonMulligan.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.List;
import forge.game.Game;
diff --git a/forge-gui/src/main/java/forge/match/input/InputPassPriority.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputPassPriority.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputPassPriority.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputPassPriority.java
index 1dc10eaebdb..e03303b52c7 100644
--- a/forge-gui/src/main/java/forge/match/input/InputPassPriority.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputPassPriority.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.ArrayList;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/match/input/InputPayMana.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputPayMana.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputPayMana.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputPayMana.java
index 88178afd1e9..a4422d40eae 100644
--- a/forge-gui/src/main/java/forge/match/input/InputPayMana.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputPayMana.java
@@ -1,4 +1,4 @@
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.*;
diff --git a/forge-gui/src/main/java/forge/match/input/InputPayManaOfCostPayment.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputPayManaOfCostPayment.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputPayManaOfCostPayment.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputPayManaOfCostPayment.java
index fb3c521ae87..bfd01a6a547 100644
--- a/forge-gui/src/main/java/forge/match/input/InputPayManaOfCostPayment.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputPayManaOfCostPayment.java
@@ -1,4 +1,4 @@
-package forge.match.input;
+package forge.gamemodes.match.input;
import forge.card.mana.ManaAtom;
import forge.card.mana.ManaCostShard;
diff --git a/forge-gui/src/main/java/forge/match/input/InputPlaybackControl.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputPlaybackControl.java
similarity index 98%
rename from forge-gui/src/main/java/forge/match/input/InputPlaybackControl.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputPlaybackControl.java
index fd01edfe5bf..9eebdf6e7bc 100644
--- a/forge-gui/src/main/java/forge/match/input/InputPlaybackControl.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputPlaybackControl.java
@@ -1,4 +1,4 @@
-package forge.match.input;
+package forge.gamemodes.match.input;
import forge.control.FControlGamePlayback;
import forge.game.Game;
diff --git a/forge-gui/src/main/java/forge/match/input/InputProxy.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputProxy.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputProxy.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputProxy.java
index 4d6047fbd06..139be85d511 100644
--- a/forge-gui/src/main/java/forge/match/input/InputProxy.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputProxy.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.ArrayList;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/match/input/InputQueue.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputQueue.java
similarity index 98%
rename from forge-gui/src/main/java/forge/match/input/InputQueue.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputQueue.java
index 1e5a5e90f74..62678cd93ee 100644
--- a/forge-gui/src/main/java/forge/match/input/InputQueue.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputQueue.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.Observable;
import java.util.concurrent.BlockingDeque;
diff --git a/forge-gui/src/main/java/forge/match/input/InputSelectCardsForConvokeOrImprovise.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectCardsForConvokeOrImprovise.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputSelectCardsForConvokeOrImprovise.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectCardsForConvokeOrImprovise.java
index 1a52a9a421c..97e81872107 100644
--- a/forge-gui/src/main/java/forge/match/input/InputSelectCardsForConvokeOrImprovise.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectCardsForConvokeOrImprovise.java
@@ -1,4 +1,4 @@
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.Collection;
import java.util.HashMap;
diff --git a/forge-gui/src/main/java/forge/match/input/InputSelectCardsFromList.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectCardsFromList.java
similarity index 96%
rename from forge-gui/src/main/java/forge/match/input/InputSelectCardsFromList.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectCardsFromList.java
index ad227c07c09..f96bc8730eb 100644
--- a/forge-gui/src/main/java/forge/match/input/InputSelectCardsFromList.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectCardsFromList.java
@@ -1,4 +1,4 @@
-package forge.match.input;
+package forge.gamemodes.match.input;
import forge.game.card.Card;
import forge.game.spellability.SpellAbility;
diff --git a/forge-gui/src/main/java/forge/match/input/InputSelectEntitiesFromList.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectEntitiesFromList.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputSelectEntitiesFromList.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectEntitiesFromList.java
index ab34c9f6abd..021c92c668c 100644
--- a/forge-gui/src/main/java/forge/match/input/InputSelectEntitiesFromList.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectEntitiesFromList.java
@@ -1,4 +1,4 @@
-package forge.match.input;
+package forge.gamemodes.match.input;
import forge.FThreads;
import forge.game.GameEntity;
diff --git a/forge-gui/src/main/java/forge/match/input/InputSelectManyBase.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectManyBase.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputSelectManyBase.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectManyBase.java
index 68101b1a8c0..88523e2cc14 100644
--- a/forge-gui/src/main/java/forge/match/input/InputSelectManyBase.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectManyBase.java
@@ -1,4 +1,4 @@
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.Collection;
diff --git a/forge-gui/src/main/java/forge/match/input/InputSelectTargets.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectTargets.java
similarity index 99%
rename from forge-gui/src/main/java/forge/match/input/InputSelectTargets.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectTargets.java
index 47521326548..761f3ac4eb7 100644
--- a/forge-gui/src/main/java/forge/match/input/InputSelectTargets.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSelectTargets.java
@@ -1,4 +1,4 @@
-package forge.match.input;
+package forge.gamemodes.match.input;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
diff --git a/forge-gui/src/main/java/forge/match/input/InputSynchronized.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSynchronized.java
similarity index 76%
rename from forge-gui/src/main/java/forge/match/input/InputSynchronized.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputSynchronized.java
index 47ac50f4bbd..1ac700fd1e3 100644
--- a/forge-gui/src/main/java/forge/match/input/InputSynchronized.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSynchronized.java
@@ -1,4 +1,4 @@
-package forge.match.input;
+package forge.gamemodes.match.input;
public interface InputSynchronized extends Input {
void awaitLatchRelease();
diff --git a/forge-gui/src/main/java/forge/match/input/InputSyncronizedBase.java b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSyncronizedBase.java
similarity index 97%
rename from forge-gui/src/main/java/forge/match/input/InputSyncronizedBase.java
rename to forge-gui/src/main/java/forge/gamemodes/match/input/InputSyncronizedBase.java
index d027873194b..1a46abe15cb 100644
--- a/forge-gui/src/main/java/forge/match/input/InputSyncronizedBase.java
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/InputSyncronizedBase.java
@@ -1,4 +1,4 @@
-package forge.match.input;
+package forge.gamemodes.match.input;
import java.util.concurrent.CountDownLatch;
diff --git a/forge-gui/src/main/java/forge/gamemodes/match/input/package-info.java b/forge-gui/src/main/java/forge/gamemodes/match/input/package-info.java
new file mode 100644
index 00000000000..6040accdf31
--- /dev/null
+++ b/forge-gui/src/main/java/forge/gamemodes/match/input/package-info.java
@@ -0,0 +1,3 @@
+/** Forge Card Game. */
+package forge.gamemodes.match.input;
+
diff --git a/forge-gui/src/main/java/forge/net/CObjectInputStream.java b/forge-gui/src/main/java/forge/gamemodes/net/CObjectInputStream.java
similarity index 98%
rename from forge-gui/src/main/java/forge/net/CObjectInputStream.java
rename to forge-gui/src/main/java/forge/gamemodes/net/CObjectInputStream.java
index 347879e6570..ac3a68ad5c4 100644
--- a/forge-gui/src/main/java/forge/net/CObjectInputStream.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/CObjectInputStream.java
@@ -1,4 +1,4 @@
-package forge.net;
+package forge.gamemodes.net;
import io.netty.handler.codec.serialization.ClassResolver;
diff --git a/forge-gui/src/main/java/forge/net/CObjectOutputStream.java b/forge-gui/src/main/java/forge/gamemodes/net/CObjectOutputStream.java
similarity index 95%
rename from forge-gui/src/main/java/forge/net/CObjectOutputStream.java
rename to forge-gui/src/main/java/forge/gamemodes/net/CObjectOutputStream.java
index e0c408aa923..a37025ab7db 100644
--- a/forge-gui/src/main/java/forge/net/CObjectOutputStream.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/CObjectOutputStream.java
@@ -1,4 +1,4 @@
-package forge.net;
+package forge.gamemodes.net;
import java.io.IOException;
import java.io.ObjectOutputStream;
diff --git a/forge-gui/src/main/java/forge/net/ChatMessage.java b/forge-gui/src/main/java/forge/gamemodes/net/ChatMessage.java
similarity index 97%
rename from forge-gui/src/main/java/forge/net/ChatMessage.java
rename to forge-gui/src/main/java/forge/gamemodes/net/ChatMessage.java
index 4f140cf5fe3..7212ee1c9c8 100644
--- a/forge-gui/src/main/java/forge/net/ChatMessage.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/ChatMessage.java
@@ -1,4 +1,4 @@
-package forge.net;
+package forge.gamemodes.net;
import java.text.SimpleDateFormat;
import java.util.Date;
diff --git a/forge-gui/src/main/java/forge/net/CompatibleObjectDecoder.java b/forge-gui/src/main/java/forge/gamemodes/net/CompatibleObjectDecoder.java
similarity index 98%
rename from forge-gui/src/main/java/forge/net/CompatibleObjectDecoder.java
rename to forge-gui/src/main/java/forge/gamemodes/net/CompatibleObjectDecoder.java
index c288eace00b..4110f9d1486 100644
--- a/forge-gui/src/main/java/forge/net/CompatibleObjectDecoder.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/CompatibleObjectDecoder.java
@@ -1,4 +1,4 @@
-package forge.net;
+package forge.gamemodes.net;
import forge.GuiBase;
import io.netty.buffer.ByteBuf;
diff --git a/forge-gui/src/main/java/forge/net/CompatibleObjectEncoder.java b/forge-gui/src/main/java/forge/gamemodes/net/CompatibleObjectEncoder.java
similarity index 97%
rename from forge-gui/src/main/java/forge/net/CompatibleObjectEncoder.java
rename to forge-gui/src/main/java/forge/gamemodes/net/CompatibleObjectEncoder.java
index 59709288d41..9cf17f0b1b8 100644
--- a/forge-gui/src/main/java/forge/net/CompatibleObjectEncoder.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/CompatibleObjectEncoder.java
@@ -1,4 +1,4 @@
-package forge.net;
+package forge.gamemodes.net;
import forge.GuiBase;
import io.netty.buffer.ByteBuf;
diff --git a/forge-gui/src/main/java/forge/net/GameProtocolHandler.java b/forge-gui/src/main/java/forge/gamemodes/net/GameProtocolHandler.java
similarity index 97%
rename from forge-gui/src/main/java/forge/net/GameProtocolHandler.java
rename to forge-gui/src/main/java/forge/gamemodes/net/GameProtocolHandler.java
index 727e8c37400..59179d1e12b 100644
--- a/forge-gui/src/main/java/forge/net/GameProtocolHandler.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/GameProtocolHandler.java
@@ -1,9 +1,9 @@
-package forge.net;
+package forge.gamemodes.net;
import forge.FThreads;
+import forge.gamemodes.net.event.GuiGameEvent;
+import forge.gamemodes.net.event.ReplyEvent;
import forge.localinstance.assets.FSkinProp;
-import forge.net.event.GuiGameEvent;
-import forge.net.event.ReplyEvent;
import forge.util.gui.SOptionPane;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
diff --git a/forge-gui/src/main/java/forge/net/GameProtocolSender.java b/forge-gui/src/main/java/forge/gamemodes/net/GameProtocolSender.java
similarity index 91%
rename from forge-gui/src/main/java/forge/net/GameProtocolSender.java
rename to forge-gui/src/main/java/forge/gamemodes/net/GameProtocolSender.java
index c692ebcb5c8..dcdf8944c61 100644
--- a/forge-gui/src/main/java/forge/net/GameProtocolSender.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/GameProtocolSender.java
@@ -1,8 +1,8 @@
-package forge.net;
+package forge.gamemodes.net;
import java.util.concurrent.TimeoutException;
-import forge.net.event.GuiGameEvent;
+import forge.gamemodes.net.event.GuiGameEvent;
public final class GameProtocolSender {
diff --git a/forge-gui/src/main/java/forge/net/IOnlineChatInterface.java b/forge-gui/src/main/java/forge/gamemodes/net/IOnlineChatInterface.java
similarity index 81%
rename from forge-gui/src/main/java/forge/net/IOnlineChatInterface.java
rename to forge-gui/src/main/java/forge/gamemodes/net/IOnlineChatInterface.java
index dc130a6c889..548e6e7b084 100644
--- a/forge-gui/src/main/java/forge/net/IOnlineChatInterface.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/IOnlineChatInterface.java
@@ -1,4 +1,4 @@
-package forge.net;
+package forge.gamemodes.net;
public interface IOnlineChatInterface {
void setGameClient(IRemote iRemote);
diff --git a/forge-gui/src/main/java/forge/net/IOnlineLobby.java b/forge-gui/src/main/java/forge/gamemodes/net/IOnlineLobby.java
similarity index 61%
rename from forge-gui/src/main/java/forge/net/IOnlineLobby.java
rename to forge-gui/src/main/java/forge/gamemodes/net/IOnlineLobby.java
index be7a2bcefd9..26637b2fd48 100644
--- a/forge-gui/src/main/java/forge/net/IOnlineLobby.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/IOnlineLobby.java
@@ -1,8 +1,8 @@
-package forge.net;
+package forge.gamemodes.net;
+import forge.gamemodes.match.GameLobby;
+import forge.gamemodes.net.client.FGameClient;
import forge.interfaces.ILobbyView;
-import forge.match.GameLobby;
-import forge.net.client.FGameClient;
public interface IOnlineLobby {
ILobbyView setLobby(GameLobby lobby);
diff --git a/forge-gui/src/main/java/forge/net/IRemote.java b/forge-gui/src/main/java/forge/gamemodes/net/IRemote.java
similarity index 59%
rename from forge-gui/src/main/java/forge/net/IRemote.java
rename to forge-gui/src/main/java/forge/gamemodes/net/IRemote.java
index ffc14b01ce2..1a0d787de5a 100644
--- a/forge-gui/src/main/java/forge/net/IRemote.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/IRemote.java
@@ -1,9 +1,9 @@
-package forge.net;
+package forge.gamemodes.net;
import java.util.concurrent.TimeoutException;
-import forge.net.event.IdentifiableNetEvent;
-import forge.net.event.NetEvent;
+import forge.gamemodes.net.event.IdentifiableNetEvent;
+import forge.gamemodes.net.event.NetEvent;
public interface IRemote {
void send(NetEvent event);
diff --git a/forge-gui/src/main/java/forge/net/NetConnectUtil.java b/forge-gui/src/main/java/forge/gamemodes/net/NetConnectUtil.java
similarity index 93%
rename from forge-gui/src/main/java/forge/net/NetConnectUtil.java
rename to forge-gui/src/main/java/forge/gamemodes/net/NetConnectUtil.java
index 4e1a309a5f7..d2c0c2bc3e9 100644
--- a/forge-gui/src/main/java/forge/net/NetConnectUtil.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/NetConnectUtil.java
@@ -1,10 +1,18 @@
-package forge.net;
-
-import forge.match.LobbySlotType;
+package forge.gamemodes.net;
import org.apache.commons.lang3.StringUtils;
import forge.GuiBase;
+import forge.gamemodes.match.LobbySlotType;
+import forge.gamemodes.match.GameLobby.GameLobbyData;
+import forge.gamemodes.net.client.ClientGameLobby;
+import forge.gamemodes.net.client.FGameClient;
+import forge.gamemodes.net.event.IdentifiableNetEvent;
+import forge.gamemodes.net.event.MessageEvent;
+import forge.gamemodes.net.event.NetEvent;
+import forge.gamemodes.net.event.UpdateLobbyPlayerEvent;
+import forge.gamemodes.net.server.FServerManager;
+import forge.gamemodes.net.server.ServerGameLobby;
import forge.interfaces.IGuiGame;
import forge.interfaces.ILobbyListener;
import forge.interfaces.ILobbyView;
@@ -13,16 +21,7 @@ import forge.interfaces.IUpdateable;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.ForgeProfileProperties;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.GameLobby.GameLobbyData;
import forge.model.FModel;
-import forge.net.client.ClientGameLobby;
-import forge.net.client.FGameClient;
-import forge.net.event.IdentifiableNetEvent;
-import forge.net.event.MessageEvent;
-import forge.net.event.NetEvent;
-import forge.net.event.UpdateLobbyPlayerEvent;
-import forge.net.server.FServerManager;
-import forge.net.server.ServerGameLobby;
import forge.player.GamePlayerUtil;
import forge.util.gui.SOptionPane;
import forge.util.Localizer;
diff --git a/forge-gui/src/main/java/forge/net/OfflineLobby.java b/forge-gui/src/main/java/forge/gamemodes/net/OfflineLobby.java
similarity index 89%
rename from forge-gui/src/main/java/forge/net/OfflineLobby.java
rename to forge-gui/src/main/java/forge/gamemodes/net/OfflineLobby.java
index 392c8a880ca..ad21bbb8cd8 100644
--- a/forge-gui/src/main/java/forge/net/OfflineLobby.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/OfflineLobby.java
@@ -1,11 +1,11 @@
-package forge.net;
+package forge.gamemodes.net;
import java.util.Collections;
+import forge.gamemodes.match.GameLobby;
+import forge.gamemodes.match.LobbySlot;
+import forge.gamemodes.match.LobbySlotType;
import forge.interfaces.IGuiGame;
-import forge.match.GameLobby;
-import forge.match.LobbySlot;
-import forge.match.LobbySlotType;
//Temporary lobby instance to use for OnlineLobby before connecting to a server
public final class OfflineLobby extends GameLobby {
diff --git a/forge-gui/src/main/java/forge/net/ProtocolMethod.java b/forge-gui/src/main/java/forge/gamemodes/net/ProtocolMethod.java
similarity index 99%
rename from forge-gui/src/main/java/forge/net/ProtocolMethod.java
rename to forge-gui/src/main/java/forge/gamemodes/net/ProtocolMethod.java
index fe7f697de6d..e7b2c622bc2 100644
--- a/forge-gui/src/main/java/forge/net/ProtocolMethod.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/ProtocolMethod.java
@@ -1,4 +1,4 @@
-package forge.net;
+package forge.gamemodes.net;
import com.google.common.base.Function;
import forge.GuiBase;
@@ -10,10 +10,10 @@ import forge.game.phase.PhaseType;
import forge.game.player.DelayedReveal;
import forge.game.player.PlayerView;
import forge.game.spellability.SpellAbilityView;
+import forge.gamemodes.match.NextGameDecision;
import forge.interfaces.IGameController;
import forge.interfaces.IGuiGame;
import forge.localinstance.assets.FSkinProp;
-import forge.match.NextGameDecision;
import forge.player.PlayerZoneUpdates;
import forge.trackable.TrackableCollection;
import forge.util.ITriggerEvent;
diff --git a/forge-gui/src/main/java/forge/net/ReplyPool.java b/forge-gui/src/main/java/forge/gamemodes/net/ReplyPool.java
similarity index 98%
rename from forge-gui/src/main/java/forge/net/ReplyPool.java
rename to forge-gui/src/main/java/forge/gamemodes/net/ReplyPool.java
index ce1431b6002..cdfb6ef9df3 100644
--- a/forge-gui/src/main/java/forge/net/ReplyPool.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/ReplyPool.java
@@ -1,4 +1,4 @@
-package forge.net;
+package forge.gamemodes.net;
import java.util.Map;
import java.util.concurrent.Callable;
diff --git a/forge-gui/src/main/java/forge/net/client/ClientGameLobby.java b/forge-gui/src/main/java/forge/gamemodes/net/client/ClientGameLobby.java
similarity index 90%
rename from forge-gui/src/main/java/forge/net/client/ClientGameLobby.java
rename to forge-gui/src/main/java/forge/gamemodes/net/client/ClientGameLobby.java
index 87d5da06413..a5cbce01ce1 100644
--- a/forge-gui/src/main/java/forge/net/client/ClientGameLobby.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/client/ClientGameLobby.java
@@ -1,7 +1,7 @@
-package forge.net.client;
+package forge.gamemodes.net.client;
+import forge.gamemodes.match.GameLobby;
import forge.interfaces.IGuiGame;
-import forge.match.GameLobby;
public final class ClientGameLobby extends GameLobby {
private int localPlayer = -1;
diff --git a/forge-gui/src/main/java/forge/net/client/FGameClient.java b/forge-gui/src/main/java/forge/gamemodes/net/client/FGameClient.java
similarity index 93%
rename from forge-gui/src/main/java/forge/net/client/FGameClient.java
rename to forge-gui/src/main/java/forge/gamemodes/net/client/FGameClient.java
index 75547b95677..074ebe318be 100644
--- a/forge-gui/src/main/java/forge/net/client/FGameClient.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/client/FGameClient.java
@@ -1,7 +1,5 @@
-package forge.net.client;
+package forge.gamemodes.net.client;
-import forge.net.CompatibleObjectDecoder;
-import forge.net.CompatibleObjectEncoder;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
@@ -21,13 +19,15 @@ import java.util.concurrent.TimeoutException;
import com.google.common.collect.Lists;
import forge.game.player.PlayerView;
+import forge.gamemodes.net.CompatibleObjectDecoder;
+import forge.gamemodes.net.CompatibleObjectEncoder;
+import forge.gamemodes.net.ReplyPool;
+import forge.gamemodes.net.event.IdentifiableNetEvent;
+import forge.gamemodes.net.event.LobbyUpdateEvent;
+import forge.gamemodes.net.event.MessageEvent;
+import forge.gamemodes.net.event.NetEvent;
import forge.interfaces.IGuiGame;
import forge.interfaces.ILobbyListener;
-import forge.net.ReplyPool;
-import forge.net.event.IdentifiableNetEvent;
-import forge.net.event.LobbyUpdateEvent;
-import forge.net.event.MessageEvent;
-import forge.net.event.NetEvent;
public class FGameClient implements IToServer {
diff --git a/forge-gui/src/main/java/forge/net/client/GameClientHandler.java b/forge-gui/src/main/java/forge/gamemodes/net/client/GameClientHandler.java
similarity index 97%
rename from forge-gui/src/main/java/forge/net/client/GameClientHandler.java
rename to forge-gui/src/main/java/forge/gamemodes/net/client/GameClientHandler.java
index f93ef631051..db52bbcddbc 100644
--- a/forge-gui/src/main/java/forge/net/client/GameClientHandler.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/client/GameClientHandler.java
@@ -1,12 +1,17 @@
-package forge.net.client;
+package forge.gamemodes.net.client;
import com.google.common.collect.Lists;
import forge.LobbyPlayer;
import forge.game.*;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.match.LobbySlot;
+import forge.gamemodes.net.GameProtocolHandler;
+import forge.gamemodes.net.IRemote;
+import forge.gamemodes.net.ProtocolMethod;
+import forge.gamemodes.net.ReplyPool;
+import forge.gamemodes.net.event.LoginEvent;
import forge.interfaces.ILobbyListener;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.LobbySlot;
import forge.player.LobbyPlayerHuman;
import forge.player.PlayerZoneUpdate;
import forge.player.PlayerZoneUpdates;
@@ -17,11 +22,6 @@ import io.netty.channel.ChannelHandlerContext;
import forge.game.player.PlayerView;
import forge.interfaces.IGuiGame;
import forge.model.FModel;
-import forge.net.GameProtocolHandler;
-import forge.net.IRemote;
-import forge.net.ProtocolMethod;
-import forge.net.ReplyPool;
-import forge.net.event.LoginEvent;
import forge.trackable.TrackableCollection;
import java.util.*;
diff --git a/forge-gui/src/main/java/forge/gamemodes/net/client/IToServer.java b/forge-gui/src/main/java/forge/gamemodes/net/client/IToServer.java
new file mode 100644
index 00000000000..bef7652d148
--- /dev/null
+++ b/forge-gui/src/main/java/forge/gamemodes/net/client/IToServer.java
@@ -0,0 +1,6 @@
+package forge.gamemodes.net.client;
+
+import forge.gamemodes.net.IRemote;
+
+public interface IToServer extends IRemote {
+}
diff --git a/forge-gui/src/main/java/forge/net/client/NetGameController.java b/forge-gui/src/main/java/forge/gamemodes/net/client/NetGameController.java
similarity index 95%
rename from forge-gui/src/main/java/forge/net/client/NetGameController.java
rename to forge-gui/src/main/java/forge/gamemodes/net/client/NetGameController.java
index 85fe12feed5..5123c058e6f 100644
--- a/forge-gui/src/main/java/forge/net/client/NetGameController.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/client/NetGameController.java
@@ -1,16 +1,16 @@
-package forge.net.client;
+package forge.gamemodes.net.client;
import java.util.List;
import forge.game.card.CardView;
import forge.game.player.PlayerView;
import forge.game.spellability.SpellAbilityView;
+import forge.gamemodes.match.NextGameDecision;
+import forge.gamemodes.net.GameProtocolSender;
+import forge.gamemodes.net.ProtocolMethod;
import forge.interfaces.IDevModeCheats;
import forge.interfaces.IGameController;
import forge.interfaces.IMacroSystem;
-import forge.match.NextGameDecision;
-import forge.net.GameProtocolSender;
-import forge.net.ProtocolMethod;
import forge.util.ITriggerEvent;
public class NetGameController implements IGameController {
diff --git a/forge-gui/src/main/java/forge/gamemodes/net/client/package-info.java b/forge-gui/src/main/java/forge/gamemodes/net/client/package-info.java
new file mode 100644
index 00000000000..6bb306298e0
--- /dev/null
+++ b/forge-gui/src/main/java/forge/gamemodes/net/client/package-info.java
@@ -0,0 +1 @@
+package forge.gamemodes.net.client;
\ No newline at end of file
diff --git a/forge-gui/src/main/java/forge/net/event/GuiGameEvent.java b/forge-gui/src/main/java/forge/gamemodes/net/event/GuiGameEvent.java
similarity index 87%
rename from forge-gui/src/main/java/forge/net/event/GuiGameEvent.java
rename to forge-gui/src/main/java/forge/gamemodes/net/event/GuiGameEvent.java
index 20e9b9dfb2e..5ff72ab51d9 100644
--- a/forge-gui/src/main/java/forge/net/event/GuiGameEvent.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/event/GuiGameEvent.java
@@ -1,7 +1,7 @@
-package forge.net.event;
+package forge.gamemodes.net.event;
-import forge.net.ProtocolMethod;
-import forge.net.server.RemoteClient;
+import forge.gamemodes.net.ProtocolMethod;
+import forge.gamemodes.net.server.RemoteClient;
public final class GuiGameEvent implements IdentifiableNetEvent {
private static final long serialVersionUID = 6223690008522514574L;
diff --git a/forge-gui/src/main/java/forge/net/event/IdentifiableNetEvent.java b/forge-gui/src/main/java/forge/gamemodes/net/event/IdentifiableNetEvent.java
similarity index 75%
rename from forge-gui/src/main/java/forge/net/event/IdentifiableNetEvent.java
rename to forge-gui/src/main/java/forge/gamemodes/net/event/IdentifiableNetEvent.java
index a6df6ad10b0..5adcc0cdb24 100644
--- a/forge-gui/src/main/java/forge/net/event/IdentifiableNetEvent.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/event/IdentifiableNetEvent.java
@@ -1,4 +1,4 @@
-package forge.net.event;
+package forge.gamemodes.net.event;
import forge.game.IIdentifiable;
diff --git a/forge-gui/src/main/java/forge/net/event/LobbyUpdateEvent.java b/forge-gui/src/main/java/forge/gamemodes/net/event/LobbyUpdateEvent.java
similarity index 79%
rename from forge-gui/src/main/java/forge/net/event/LobbyUpdateEvent.java
rename to forge-gui/src/main/java/forge/gamemodes/net/event/LobbyUpdateEvent.java
index bd2ae2a38a1..f3e3779148d 100644
--- a/forge-gui/src/main/java/forge/net/event/LobbyUpdateEvent.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/event/LobbyUpdateEvent.java
@@ -1,7 +1,7 @@
-package forge.net.event;
+package forge.gamemodes.net.event;
-import forge.match.GameLobby.GameLobbyData;
-import forge.net.server.RemoteClient;
+import forge.gamemodes.match.GameLobby.GameLobbyData;
+import forge.gamemodes.net.server.RemoteClient;
public class LobbyUpdateEvent implements NetEvent {
private static final long serialVersionUID = 7114918637727047985L;
diff --git a/forge-gui/src/main/java/forge/net/event/LoginEvent.java b/forge-gui/src/main/java/forge/gamemodes/net/event/LoginEvent.java
similarity index 89%
rename from forge-gui/src/main/java/forge/net/event/LoginEvent.java
rename to forge-gui/src/main/java/forge/gamemodes/net/event/LoginEvent.java
index 170750751a9..9a2fc6dcee3 100644
--- a/forge-gui/src/main/java/forge/net/event/LoginEvent.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/event/LoginEvent.java
@@ -1,6 +1,6 @@
-package forge.net.event;
+package forge.gamemodes.net.event;
-import forge.net.server.RemoteClient;
+import forge.gamemodes.net.server.RemoteClient;
public class LoginEvent implements NetEvent {
private static final long serialVersionUID = -8865183377417377938L;
diff --git a/forge-gui/src/main/java/forge/net/event/LogoutEvent.java b/forge-gui/src/main/java/forge/gamemodes/net/event/LogoutEvent.java
similarity index 82%
rename from forge-gui/src/main/java/forge/net/event/LogoutEvent.java
rename to forge-gui/src/main/java/forge/gamemodes/net/event/LogoutEvent.java
index e10fc3a95f7..658f2a4eee1 100644
--- a/forge-gui/src/main/java/forge/net/event/LogoutEvent.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/event/LogoutEvent.java
@@ -1,6 +1,6 @@
-package forge.net.event;
+package forge.gamemodes.net.event;
-import forge.net.server.RemoteClient;
+import forge.gamemodes.net.server.RemoteClient;
public class LogoutEvent implements NetEvent {
private static final long serialVersionUID = -8262613254026625787L;
diff --git a/forge-gui/src/main/java/forge/net/event/MessageEvent.java b/forge-gui/src/main/java/forge/gamemodes/net/event/MessageEvent.java
similarity index 89%
rename from forge-gui/src/main/java/forge/net/event/MessageEvent.java
rename to forge-gui/src/main/java/forge/gamemodes/net/event/MessageEvent.java
index 7ccfe9f2e25..b7660da9c71 100644
--- a/forge-gui/src/main/java/forge/net/event/MessageEvent.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/event/MessageEvent.java
@@ -1,6 +1,6 @@
-package forge.net.event;
+package forge.gamemodes.net.event;
-import forge.net.server.RemoteClient;
+import forge.gamemodes.net.server.RemoteClient;
public final class MessageEvent implements NetEvent {
private static final long serialVersionUID = 1700060210647684186L;
diff --git a/forge-gui/src/main/java/forge/net/event/NetEvent.java b/forge-gui/src/main/java/forge/gamemodes/net/event/NetEvent.java
similarity index 61%
rename from forge-gui/src/main/java/forge/net/event/NetEvent.java
rename to forge-gui/src/main/java/forge/gamemodes/net/event/NetEvent.java
index 728faf03b96..a5fe571c6f3 100644
--- a/forge-gui/src/main/java/forge/net/event/NetEvent.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/event/NetEvent.java
@@ -1,8 +1,8 @@
-package forge.net.event;
+package forge.gamemodes.net.event;
import java.io.Serializable;
-import forge.net.server.RemoteClient;
+import forge.gamemodes.net.server.RemoteClient;
public interface NetEvent extends Serializable {
void updateForClient(RemoteClient client);
diff --git a/forge-gui/src/main/java/forge/net/event/ReplyEvent.java b/forge-gui/src/main/java/forge/gamemodes/net/event/ReplyEvent.java
similarity index 88%
rename from forge-gui/src/main/java/forge/net/event/ReplyEvent.java
rename to forge-gui/src/main/java/forge/gamemodes/net/event/ReplyEvent.java
index 7114536bc0e..6e10c7f3683 100644
--- a/forge-gui/src/main/java/forge/net/event/ReplyEvent.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/event/ReplyEvent.java
@@ -1,8 +1,8 @@
-package forge.net.event;
+package forge.gamemodes.net.event;
import java.io.Serializable;
-import forge.net.server.RemoteClient;
+import forge.gamemodes.net.server.RemoteClient;
public final class ReplyEvent implements NetEvent {
private static final long serialVersionUID = -2814651319617795386L;
diff --git a/forge-gui/src/main/java/forge/net/event/UpdateLobbyPlayerEvent.java b/forge-gui/src/main/java/forge/gamemodes/net/event/UpdateLobbyPlayerEvent.java
similarity index 98%
rename from forge-gui/src/main/java/forge/net/event/UpdateLobbyPlayerEvent.java
rename to forge-gui/src/main/java/forge/gamemodes/net/event/UpdateLobbyPlayerEvent.java
index 1c8bdfe7232..cf287999deb 100644
--- a/forge-gui/src/main/java/forge/net/event/UpdateLobbyPlayerEvent.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/event/UpdateLobbyPlayerEvent.java
@@ -1,4 +1,4 @@
-package forge.net.event;
+package forge.gamemodes.net.event;
import java.util.Collections;
import java.util.Set;
@@ -7,8 +7,8 @@ import forge.ai.AIOption;
import forge.deck.CardPool;
import forge.deck.Deck;
import forge.deck.DeckSection;
-import forge.match.LobbySlotType;
-import forge.net.server.RemoteClient;
+import forge.gamemodes.match.LobbySlotType;
+import forge.gamemodes.net.server.RemoteClient;
public final class UpdateLobbyPlayerEvent implements NetEvent {
private static final long serialVersionUID = -7354695008599789571L;
diff --git a/forge-gui/src/main/java/forge/gamemodes/net/event/package-info.java b/forge-gui/src/main/java/forge/gamemodes/net/event/package-info.java
new file mode 100644
index 00000000000..7e325db4627
--- /dev/null
+++ b/forge-gui/src/main/java/forge/gamemodes/net/event/package-info.java
@@ -0,0 +1 @@
+package forge.gamemodes.net.event;
\ No newline at end of file
diff --git a/forge-gui/src/main/java/forge/gamemodes/net/package-info.java b/forge-gui/src/main/java/forge/gamemodes/net/package-info.java
new file mode 100644
index 00000000000..ed6db7a8506
--- /dev/null
+++ b/forge-gui/src/main/java/forge/gamemodes/net/package-info.java
@@ -0,0 +1 @@
+package forge.gamemodes.net;
\ No newline at end of file
diff --git a/forge-gui/src/main/java/forge/net/server/FServerManager.java b/forge-gui/src/main/java/forge/gamemodes/net/server/FServerManager.java
similarity index 96%
rename from forge-gui/src/main/java/forge/net/server/FServerManager.java
rename to forge-gui/src/main/java/forge/gamemodes/net/server/FServerManager.java
index 8e4942ce6b4..e3c59cf040c 100644
--- a/forge-gui/src/main/java/forge/net/server/FServerManager.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/server/FServerManager.java
@@ -1,19 +1,19 @@
-package forge.net.server;
+package forge.gamemodes.net.server;
import forge.GuiBase;
+import forge.gamemodes.match.LobbySlot;
+import forge.gamemodes.match.LobbySlotType;
+import forge.gamemodes.net.CompatibleObjectDecoder;
+import forge.gamemodes.net.CompatibleObjectEncoder;
+import forge.gamemodes.net.event.LobbyUpdateEvent;
+import forge.gamemodes.net.event.LoginEvent;
+import forge.gamemodes.net.event.LogoutEvent;
+import forge.gamemodes.net.event.MessageEvent;
+import forge.gamemodes.net.event.NetEvent;
+import forge.gamemodes.net.event.UpdateLobbyPlayerEvent;
import forge.interfaces.IGameController;
import forge.interfaces.IGuiGame;
import forge.interfaces.ILobbyListener;
-import forge.match.LobbySlot;
-import forge.match.LobbySlotType;
-import forge.net.CompatibleObjectDecoder;
-import forge.net.CompatibleObjectEncoder;
-import forge.net.event.LobbyUpdateEvent;
-import forge.net.event.LoginEvent;
-import forge.net.event.LogoutEvent;
-import forge.net.event.MessageEvent;
-import forge.net.event.NetEvent;
-import forge.net.event.UpdateLobbyPlayerEvent;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFuture;
diff --git a/forge-gui/src/main/java/forge/net/server/GameServerHandler.java b/forge-gui/src/main/java/forge/gamemodes/net/server/GameServerHandler.java
similarity index 83%
rename from forge-gui/src/main/java/forge/net/server/GameServerHandler.java
rename to forge-gui/src/main/java/forge/gamemodes/net/server/GameServerHandler.java
index fc1fabd1d89..d5d5a023dc3 100644
--- a/forge-gui/src/main/java/forge/net/server/GameServerHandler.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/server/GameServerHandler.java
@@ -1,11 +1,11 @@
-package forge.net.server;
+package forge.gamemodes.net.server;
import io.netty.channel.ChannelHandlerContext;
+import forge.gamemodes.net.GameProtocolHandler;
+import forge.gamemodes.net.IRemote;
+import forge.gamemodes.net.ProtocolMethod;
+import forge.gamemodes.net.ReplyPool;
import forge.interfaces.IGameController;
-import forge.net.GameProtocolHandler;
-import forge.net.IRemote;
-import forge.net.ProtocolMethod;
-import forge.net.ReplyPool;
final class GameServerHandler extends GameProtocolHandler {
diff --git a/forge-gui/src/main/java/forge/gamemodes/net/server/IToClient.java b/forge-gui/src/main/java/forge/gamemodes/net/server/IToClient.java
new file mode 100644
index 00000000000..a2e0b4ba7df
--- /dev/null
+++ b/forge-gui/src/main/java/forge/gamemodes/net/server/IToClient.java
@@ -0,0 +1,6 @@
+package forge.gamemodes.net.server;
+
+import forge.gamemodes.net.IRemote;
+
+public interface IToClient extends IRemote {
+}
diff --git a/forge-gui/src/main/java/forge/net/server/NetGuiGame.java b/forge-gui/src/main/java/forge/gamemodes/net/server/NetGuiGame.java
similarity index 98%
rename from forge-gui/src/main/java/forge/net/server/NetGuiGame.java
rename to forge-gui/src/main/java/forge/gamemodes/net/server/NetGuiGame.java
index 91f71ab42f5..e0508bad59f 100644
--- a/forge-gui/src/main/java/forge/net/server/NetGuiGame.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/server/NetGuiGame.java
@@ -1,4 +1,4 @@
-package forge.net.server;
+package forge.gamemodes.net.server;
import com.google.common.base.Function;
import forge.LobbyPlayer;
@@ -12,11 +12,11 @@ import forge.game.player.IHasIcon;
import forge.game.player.PlayerView;
import forge.game.spellability.SpellAbilityView;
import forge.game.zone.ZoneType;
+import forge.gamemodes.match.AbstractGuiGame;
+import forge.gamemodes.net.GameProtocolSender;
+import forge.gamemodes.net.ProtocolMethod;
import forge.item.PaperCard;
import forge.localinstance.assets.FSkinProp;
-import forge.match.AbstractGuiGame;
-import forge.net.GameProtocolSender;
-import forge.net.ProtocolMethod;
import forge.player.PlayerZoneUpdate;
import forge.player.PlayerZoneUpdates;
import forge.trackable.TrackableCollection;
diff --git a/forge-gui/src/main/java/forge/net/server/RemoteClient.java b/forge-gui/src/main/java/forge/gamemodes/net/server/RemoteClient.java
similarity index 87%
rename from forge-gui/src/main/java/forge/net/server/RemoteClient.java
rename to forge-gui/src/main/java/forge/gamemodes/net/server/RemoteClient.java
index 9d48719919d..9130145167e 100644
--- a/forge-gui/src/main/java/forge/net/server/RemoteClient.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/server/RemoteClient.java
@@ -1,12 +1,13 @@
-package forge.net.server;
+package forge.gamemodes.net.server;
-import forge.net.ReplyPool;
-import forge.net.event.IdentifiableNetEvent;
-import forge.net.event.NetEvent;
import io.netty.channel.Channel;
import java.util.concurrent.TimeoutException;
+import forge.gamemodes.net.ReplyPool;
+import forge.gamemodes.net.event.IdentifiableNetEvent;
+import forge.gamemodes.net.event.NetEvent;
+
public final class RemoteClient implements IToClient {
private final Channel channel;
diff --git a/forge-gui/src/main/java/forge/net/server/ServerGameLobby.java b/forge-gui/src/main/java/forge/gamemodes/net/server/ServerGameLobby.java
similarity index 93%
rename from forge-gui/src/main/java/forge/net/server/ServerGameLobby.java
rename to forge-gui/src/main/java/forge/gamemodes/net/server/ServerGameLobby.java
index 255ad807c63..3ee3916608e 100644
--- a/forge-gui/src/main/java/forge/net/server/ServerGameLobby.java
+++ b/forge-gui/src/main/java/forge/gamemodes/net/server/ServerGameLobby.java
@@ -1,13 +1,13 @@
-package forge.net.server;
+package forge.gamemodes.net.server;
import java.util.Collections;
import org.apache.commons.lang3.StringUtils;
+import forge.gamemodes.match.GameLobby;
+import forge.gamemodes.match.LobbySlot;
+import forge.gamemodes.match.LobbySlotType;
import forge.interfaces.IGuiGame;
-import forge.match.GameLobby;
-import forge.match.LobbySlot;
-import forge.match.LobbySlotType;
public final class ServerGameLobby extends GameLobby {
diff --git a/forge-gui/src/main/java/forge/gamemodes/net/server/package-info.java b/forge-gui/src/main/java/forge/gamemodes/net/server/package-info.java
new file mode 100644
index 00000000000..99e4ae37e76
--- /dev/null
+++ b/forge-gui/src/main/java/forge/gamemodes/net/server/package-info.java
@@ -0,0 +1 @@
+package forge.gamemodes.net.server;
\ No newline at end of file
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestAwardPool.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestAwardPool.java
similarity index 95%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestAwardPool.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestAwardPool.java
index 077981baee7..6e02090c079 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestAwardPool.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestAwardPool.java
@@ -1,4 +1,4 @@
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import java.util.ArrayList;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestBattle.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestBattle.java
similarity index 98%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestBattle.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestBattle.java
index 6953bc4e872..8fb89403ae4 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestBattle.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestBattle.java
@@ -1,4 +1,4 @@
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import java.util.Set;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestChaosBattle.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestChaosBattle.java
similarity index 94%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestChaosBattle.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestChaosBattle.java
index ae99050a606..694984777bc 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestChaosBattle.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestChaosBattle.java
@@ -1,4 +1,4 @@
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import java.io.File;
import java.util.EnumSet;
@@ -8,17 +8,17 @@ import forge.LobbyPlayer;
import forge.deck.Deck;
import forge.game.GameType;
import forge.game.GameView;
+import forge.gamemodes.planarconquest.ConquestPreferences.CQPref;
+import forge.gamemodes.quest.QuestEventDifficulty;
+import forge.gamemodes.quest.QuestEventDuel;
+import forge.gamemodes.quest.QuestEventDuelManager;
+import forge.gamemodes.quest.QuestWorld;
import forge.interfaces.IButton;
import forge.interfaces.IGuiGame;
import forge.interfaces.IWinLoseView;
import forge.item.PaperCard;
import forge.localinstance.properties.ForgeConstants;
import forge.model.FModel;
-import forge.planarconquest.ConquestPreferences.CQPref;
-import forge.quest.QuestEventDifficulty;
-import forge.quest.QuestEventDuel;
-import forge.quest.QuestEventDuelManager;
-import forge.quest.QuestWorld;
import forge.util.Aggregates;
import forge.util.Localizer;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestCommander.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestCommander.java
similarity index 98%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestCommander.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestCommander.java
index 6bff8b41e60..8240fbe3ff6 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestCommander.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestCommander.java
@@ -1,4 +1,4 @@
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import com.google.common.base.Predicate;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestController.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestController.java
similarity index 98%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestController.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestController.java
index 035aba2cb6b..2d164da59ae 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestController.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestController.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import java.io.File;
import java.util.ArrayList;
@@ -34,18 +34,18 @@ import forge.game.GameRules;
import forge.game.GameType;
import forge.game.GameView;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.match.HostedMatch;
+import forge.gamemodes.planarconquest.ConquestPreferences.CQPref;
+import forge.gamemodes.quest.BoosterUtils;
import forge.interfaces.IButton;
import forge.interfaces.IGuiGame;
import forge.interfaces.IWinLoseView;
import forge.item.PaperCard;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.HostedMatch;
import forge.model.FModel;
-import forge.planarconquest.ConquestPreferences.CQPref;
import forge.player.GamePlayerUtil;
import forge.player.LobbyPlayerHuman;
-import forge.quest.BoosterUtils;
import forge.util.Aggregates;
import forge.util.FileUtil;
import forge.util.storage.IStorage;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestData.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestData.java
similarity index 99%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestData.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestData.java
index 039037f3c13..bf3923020db 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestData.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestData.java
@@ -15,11 +15,12 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import com.google.common.base.Function;
import forge.card.CardDb;
+import forge.gamemodes.planarconquest.ConquestPreferences.CQPref;
import forge.item.InventoryItem;
import forge.item.PaperCard;
import forge.itemmanager.ColumnDef;
@@ -29,7 +30,6 @@ import forge.localinstance.achievements.PlaneswalkerAchievements;
import forge.localinstance.assets.ISkinImage;
import forge.localinstance.properties.ForgeConstants;
import forge.model.FModel;
-import forge.planarconquest.ConquestPreferences.CQPref;
import forge.util.FileUtil;
import forge.util.XmlReader;
import forge.util.XmlWriter;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestDeckMap.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestDeckMap.java
similarity index 96%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestDeckMap.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestDeckMap.java
index 6671331029d..9404a939734 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestDeckMap.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestDeckMap.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import forge.deck.Deck;
import forge.util.storage.StorageBase;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestEvent.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestEvent.java
similarity index 99%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestEvent.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestEvent.java
index 133cf6d67e9..55b0fc09fe6 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestEvent.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestEvent.java
@@ -1,4 +1,4 @@
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import java.io.File;
import java.util.EnumSet;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestLocation.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestLocation.java
similarity index 98%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestLocation.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestLocation.java
index a73053cf441..f4e281540af 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestLocation.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestLocation.java
@@ -1,4 +1,4 @@
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import java.util.ArrayList;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestPlane.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestPlane.java
similarity index 99%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestPlane.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestPlane.java
index 2022cab112a..033633c39a2 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestPlane.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestPlane.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import java.util.Collections;
import java.util.EnumSet;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestPlaneData.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestPlaneData.java
similarity index 96%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestPlaneData.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestPlaneData.java
index 744a1cb8011..7b3a1990c03 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestPlaneData.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestPlaneData.java
@@ -1,8 +1,8 @@
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
+import forge.gamemodes.planarconquest.ConquestEvent.ConquestEventRecord;
import forge.item.PaperCard;
import forge.model.FModel;
-import forge.planarconquest.ConquestEvent.ConquestEventRecord;
import forge.util.XmlReader;
import forge.util.XmlWriter;
import forge.util.XmlWriter.IXmlWritable;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestPreferences.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestPreferences.java
similarity index 98%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestPreferences.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestPreferences.java
index 9bec3994f99..ba0085c884e 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestPreferences.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestPreferences.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import java.io.Serializable;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestRecord.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestRecord.java
similarity index 94%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestRecord.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestRecord.java
index 6f00f64bf31..8122c9e946e 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestRecord.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestRecord.java
@@ -1,4 +1,4 @@
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import forge.util.XmlReader;
import forge.util.XmlWriter;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestRegion.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestRegion.java
similarity index 99%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestRegion.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestRegion.java
index f413a4dc4b8..b38d08cbed8 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestRegion.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestRegion.java
@@ -1,4 +1,4 @@
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import java.util.ArrayList;
import java.util.HashSet;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestReward.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestReward.java
similarity index 92%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestReward.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestReward.java
index bc1351b03d0..54e205e6b9d 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestReward.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestReward.java
@@ -1,4 +1,4 @@
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import forge.item.PaperCard;
diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestUtil.java
similarity index 99%
rename from forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestUtil.java
index e06c8d24ac9..9178010506e 100644
--- a/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/ConquestUtil.java
@@ -1,4 +1,4 @@
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
@@ -14,13 +14,13 @@ import forge.deck.Deck;
import forge.deck.DeckFormat;
import forge.deck.DeckSection;
import forge.deck.generation.*;
+import forge.gamemodes.planarconquest.ConquestPreferences.CQPref;
+import forge.gamemodes.quest.QuestUtil;
import forge.item.PaperCard;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.assets.IHasSkinProp;
import forge.localinstance.properties.ForgeConstants;
import forge.model.FModel;
-import forge.planarconquest.ConquestPreferences.CQPref;
-import forge.quest.QuestUtil;
import forge.util.FileUtil;
import forge.util.Localizer;
import forge.util.MyRandom;
diff --git a/forge-gui/src/main/java/forge/planarconquest/IVConquestStats.java b/forge-gui/src/main/java/forge/gamemodes/planarconquest/IVConquestStats.java
similarity index 89%
rename from forge-gui/src/main/java/forge/planarconquest/IVConquestStats.java
rename to forge-gui/src/main/java/forge/gamemodes/planarconquest/IVConquestStats.java
index 2ecb628c09c..3034a8c5984 100644
--- a/forge-gui/src/main/java/forge/planarconquest/IVConquestStats.java
+++ b/forge-gui/src/main/java/forge/gamemodes/planarconquest/IVConquestStats.java
@@ -1,4 +1,4 @@
-package forge.planarconquest;
+package forge.gamemodes.planarconquest;
import forge.interfaces.IButton;
diff --git a/forge-gui/src/main/java/forge/puzzle/Puzzle.java b/forge-gui/src/main/java/forge/gamemodes/puzzle/Puzzle.java
similarity index 99%
rename from forge-gui/src/main/java/forge/puzzle/Puzzle.java
rename to forge-gui/src/main/java/forge/gamemodes/puzzle/Puzzle.java
index 007fb690d6c..11b424a4671 100644
--- a/forge-gui/src/main/java/forge/puzzle/Puzzle.java
+++ b/forge-gui/src/main/java/forge/gamemodes/puzzle/Puzzle.java
@@ -1,4 +1,4 @@
-package forge.puzzle;
+package forge.gamemodes.puzzle;
import com.google.common.collect.Sets;
import forge.ai.GameState;
diff --git a/forge-gui/src/main/java/forge/puzzle/PuzzleIO.java b/forge-gui/src/main/java/forge/gamemodes/puzzle/PuzzleIO.java
similarity index 98%
rename from forge-gui/src/main/java/forge/puzzle/PuzzleIO.java
rename to forge-gui/src/main/java/forge/gamemodes/puzzle/PuzzleIO.java
index c433ed807f6..0f6297c1fd2 100644
--- a/forge-gui/src/main/java/forge/puzzle/PuzzleIO.java
+++ b/forge-gui/src/main/java/forge/gamemodes/puzzle/PuzzleIO.java
@@ -1,4 +1,4 @@
-package forge.puzzle;
+package forge.gamemodes.puzzle;
import com.google.common.collect.Lists;
diff --git a/forge-gui/src/main/java/forge/quest/BoosterUtils.java b/forge-gui/src/main/java/forge/gamemodes/quest/BoosterUtils.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/BoosterUtils.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/BoosterUtils.java
index cf23ad1eee4..7f8e6e216cf 100644
--- a/forge-gui/src/main/java/forge/quest/BoosterUtils.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/BoosterUtils.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
@@ -23,18 +23,18 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import forge.card.*;
import forge.game.GameFormat;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.item.*;
import forge.item.IPaperCard.Predicates.Presets;
import forge.model.FModel;
-import forge.quest.data.QuestPreferences.QPref;
import forge.util.Aggregates;
import forge.util.MyRandom;
import forge.util.PredicateString.StringOp;
import org.apache.commons.lang3.StringUtils;
-import java.util.*;
+import static forge.gamemodes.quest.QuestUtilCards.isLegalInQuestFormat;
-import static forge.quest.QuestUtilCards.isLegalInQuestFormat;
+import java.util.*;
/**
*
diff --git a/forge-gui/src/main/java/forge/quest/IQuestEvent.java b/forge-gui/src/main/java/forge/gamemodes/quest/IQuestEvent.java
similarity index 85%
rename from forge-gui/src/main/java/forge/quest/IQuestEvent.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/IQuestEvent.java
index ab4d19a8c29..752f0167e26 100644
--- a/forge-gui/src/main/java/forge/quest/IQuestEvent.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/IQuestEvent.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import forge.game.player.IHasIcon;
diff --git a/forge-gui/src/main/java/forge/quest/IQuestRewardCard.java b/forge-gui/src/main/java/forge/gamemodes/quest/IQuestRewardCard.java
similarity index 94%
rename from forge-gui/src/main/java/forge/quest/IQuestRewardCard.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/IQuestRewardCard.java
index 5661550bd84..4e963b38579 100644
--- a/forge-gui/src/main/java/forge/quest/IQuestRewardCard.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/IQuestRewardCard.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import forge.item.InventoryItem;
import forge.item.PaperCard;
diff --git a/forge-gui/src/main/java/forge/quest/IQuestTournamentView.java b/forge-gui/src/main/java/forge/gamemodes/quest/IQuestTournamentView.java
similarity index 75%
rename from forge-gui/src/main/java/forge/quest/IQuestTournamentView.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/IQuestTournamentView.java
index ff47d6ad18b..cd7b46734b2 100644
--- a/forge-gui/src/main/java/forge/quest/IQuestTournamentView.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/IQuestTournamentView.java
@@ -1,9 +1,9 @@
-package forge.quest;
+package forge.gamemodes.quest;
+import forge.gamemodes.limited.BoosterDraft;
+import forge.gamemodes.quest.QuestDraftUtils.Mode;
+import forge.gamemodes.quest.data.QuestEventDraftContainer;
import forge.interfaces.IButton;
-import forge.limited.BoosterDraft;
-import forge.quest.QuestDraftUtils.Mode;
-import forge.quest.data.QuestEventDraftContainer;
public interface IQuestTournamentView {
Mode getMode();
diff --git a/forge-gui/src/main/java/forge/quest/IVQuestStats.java b/forge-gui/src/main/java/forge/gamemodes/quest/IVQuestStats.java
similarity index 96%
rename from forge-gui/src/main/java/forge/quest/IVQuestStats.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/IVQuestStats.java
index 19ab3593a20..3b4c8a048af 100644
--- a/forge-gui/src/main/java/forge/quest/IVQuestStats.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/IVQuestStats.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import forge.interfaces.IButton;
import forge.interfaces.ICheckBox;
diff --git a/forge-gui/src/main/java/forge/quest/MainWorldEventDuelManager.java b/forge-gui/src/main/java/forge/gamemodes/quest/MainWorldEventDuelManager.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/MainWorldEventDuelManager.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/MainWorldEventDuelManager.java
index 3421238909d..d7ac90f1454 100644
--- a/forge-gui/src/main/java/forge/quest/MainWorldEventDuelManager.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/MainWorldEventDuelManager.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import java.io.File;
import java.util.ArrayList;
@@ -6,11 +6,11 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
+import forge.gamemodes.quest.data.QuestPreferences;
+import forge.gamemodes.quest.data.QuestPreferences.DifficultyPrefs;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
+import forge.gamemodes.quest.io.MainWorldDuelReader;
import forge.model.FModel;
-import forge.quest.data.QuestPreferences;
-import forge.quest.data.QuestPreferences.DifficultyPrefs;
-import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.io.MainWorldDuelReader;
import forge.util.CollectionSuppliers;
import forge.util.MyRandom;
import forge.util.maps.EnumMapOfLists;
diff --git a/forge-gui/src/main/java/forge/quest/QuestChallengeGenerator.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestChallengeGenerator.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/QuestChallengeGenerator.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestChallengeGenerator.java
index 3248395acda..1aec7104b99 100644
--- a/forge-gui/src/main/java/forge/quest/QuestChallengeGenerator.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestChallengeGenerator.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import com.google.common.base.Predicate;
import forge.deck.DeckgenUtil;
diff --git a/forge-gui/src/main/java/forge/quest/QuestController.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestController.java
similarity index 96%
rename from forge-gui/src/main/java/forge/quest/QuestController.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestController.java
index 5775d1f546a..882e9824989 100644
--- a/forge-gui/src/main/java/forge/quest/QuestController.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestController.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import java.io.File;
import java.util.ArrayList;
@@ -35,22 +35,22 @@ import forge.deck.DeckGroup;
import forge.game.GameFormat;
import forge.game.event.GameEvent;
import forge.game.event.GameEventMulligan;
+import forge.gamemodes.quest.bazaar.QuestBazaarManager;
+import forge.gamemodes.quest.bazaar.QuestItemType;
+import forge.gamemodes.quest.bazaar.QuestPetStorage;
+import forge.gamemodes.quest.data.DeckConstructionRules;
+import forge.gamemodes.quest.data.GameFormatQuest;
+import forge.gamemodes.quest.data.QuestAchievements;
+import forge.gamemodes.quest.data.QuestAssets;
+import forge.gamemodes.quest.data.QuestData;
+import forge.gamemodes.quest.data.StarRating;
+import forge.gamemodes.quest.data.QuestPreferences.DifficultyPrefs;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
+import forge.gamemodes.quest.io.QuestChallengeReader;
import forge.item.PreconDeck;
import forge.localinstance.properties.ForgeConstants;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
-import forge.quest.bazaar.QuestBazaarManager;
-import forge.quest.bazaar.QuestItemType;
-import forge.quest.bazaar.QuestPetStorage;
-import forge.quest.data.DeckConstructionRules;
-import forge.quest.data.GameFormatQuest;
-import forge.quest.data.QuestAchievements;
-import forge.quest.data.QuestAssets;
-import forge.quest.data.QuestData;
-import forge.quest.data.QuestPreferences.DifficultyPrefs;
-import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.data.StarRating;
-import forge.quest.io.QuestChallengeReader;
import forge.util.storage.IStorage;
import forge.util.storage.StorageBase;
diff --git a/forge-gui/src/main/java/forge/quest/QuestDeckGroupMap.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestDeckGroupMap.java
similarity index 98%
rename from forge-gui/src/main/java/forge/quest/QuestDeckGroupMap.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestDeckGroupMap.java
index 4ef703fc1b5..307776d332e 100644
--- a/forge-gui/src/main/java/forge/quest/QuestDeckGroupMap.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestDeckGroupMap.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import java.util.HashMap;
import java.util.Map;
diff --git a/forge-gui/src/main/java/forge/quest/QuestDeckMap.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestDeckMap.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/QuestDeckMap.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestDeckMap.java
index 5c87ff54e57..18da1cefc3a 100644
--- a/forge-gui/src/main/java/forge/quest/QuestDeckMap.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestDeckMap.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import forge.deck.Deck;
import forge.util.storage.StorageBase;
diff --git a/forge-gui/src/main/java/forge/quest/QuestDraftUtils.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestDraftUtils.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/QuestDraftUtils.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestDraftUtils.java
index 6bc8342c624..bd6cfb4d7d1 100644
--- a/forge-gui/src/main/java/forge/quest/QuestDraftUtils.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestDraftUtils.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import com.google.common.collect.Lists;
@@ -11,16 +11,16 @@ import forge.game.GameRules;
import forge.game.GameType;
import forge.game.Match;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.limited.LimitedDeckEvaluator;
+import forge.gamemodes.match.HostedMatch;
+import forge.gamemodes.quest.data.QuestPreferences;
+import forge.gamemodes.tournament.system.TournamentBracket;
+import forge.gamemodes.tournament.system.TournamentPairing;
+import forge.gamemodes.tournament.system.TournamentPlayer;
import forge.interfaces.IGuiGame;
-import forge.limited.LimitedDeckEvaluator;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.HostedMatch;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
-import forge.quest.data.QuestPreferences;
-import forge.tournament.system.TournamentBracket;
-import forge.tournament.system.TournamentPairing;
-import forge.tournament.system.TournamentPlayer;
import forge.util.MyRandom;
import forge.util.storage.IStorage;
diff --git a/forge-gui/src/main/java/forge/quest/QuestEvent.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEvent.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/QuestEvent.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestEvent.java
index 2a9bf6c1b63..394151445f0 100644
--- a/forge-gui/src/main/java/forge/quest/QuestEvent.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEvent.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import com.google.common.base.Function;
diff --git a/forge-gui/src/main/java/forge/quest/QuestEventChallenge.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventChallenge.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/QuestEventChallenge.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestEventChallenge.java
index 9009b97c441..97d8613acef 100644
--- a/forge-gui/src/main/java/forge/quest/QuestEventChallenge.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventChallenge.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import com.google.common.base.Function;
import forge.deck.Deck;
diff --git a/forge-gui/src/main/java/forge/quest/QuestEventCommanderDuel.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventCommanderDuel.java
similarity index 94%
rename from forge-gui/src/main/java/forge/quest/QuestEventCommanderDuel.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestEventCommanderDuel.java
index 1d7924a04d7..4fe972a114f 100644
--- a/forge-gui/src/main/java/forge/quest/QuestEventCommanderDuel.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventCommanderDuel.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import forge.deck.DeckProxy;
diff --git a/forge-gui/src/main/java/forge/quest/QuestEventCommanderDuelManager.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventCommanderDuelManager.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/QuestEventCommanderDuelManager.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestEventCommanderDuelManager.java
index c9fbaa3457c..c7278e0afdb 100644
--- a/forge-gui/src/main/java/forge/quest/QuestEventCommanderDuelManager.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventCommanderDuelManager.java
@@ -1,9 +1,9 @@
-package forge.quest;
+package forge.gamemodes.quest;
import forge.deck.*;
+import forge.gamemodes.quest.data.QuestPreferences;
import forge.item.PaperCard;
import forge.model.FModel;
-import forge.quest.data.QuestPreferences;
import forge.util.MyRandom;
import java.util.ArrayList;
diff --git a/forge-gui/src/main/java/forge/quest/QuestEventDifficulty.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDifficulty.java
similarity index 92%
rename from forge-gui/src/main/java/forge/quest/QuestEventDifficulty.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDifficulty.java
index dcf7db625e3..7f82351a31e 100644
--- a/forge-gui/src/main/java/forge/quest/QuestEventDifficulty.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDifficulty.java
@@ -1,9 +1,9 @@
-package forge.quest;
+package forge.gamemodes.quest;
import org.apache.commons.lang3.StringUtils;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.model.FModel;
-import forge.quest.data.QuestPreferences.QPref;
/**
* TODO: Write javadoc for this type.
diff --git a/forge-gui/src/main/java/forge/quest/QuestEventDraft.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDraft.java
similarity index 98%
rename from forge-gui/src/main/java/forge/quest/QuestEventDraft.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDraft.java
index 88ff16f4bf6..776633aa61a 100644
--- a/forge-gui/src/main/java/forge/quest/QuestEventDraft.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDraft.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import forge.GuiBase;
import forge.card.CardEdition;
@@ -24,18 +24,18 @@ import forge.card.CardRarity;
import forge.deck.Deck;
import forge.deck.DeckGroup;
import forge.deck.DeckSection;
+import forge.gamemodes.limited.BoosterDraft;
+import forge.gamemodes.limited.LimitedPoolType;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
+import forge.gamemodes.quest.io.ReadPriceList;
+import forge.gamemodes.tournament.system.TournamentBracket;
+import forge.gamemodes.tournament.system.TournamentPairing;
+import forge.gamemodes.tournament.system.TournamentPlayer;
import forge.item.BoosterPack;
import forge.item.PaperCard;
-import forge.limited.BoosterDraft;
-import forge.limited.LimitedPoolType;
import forge.model.CardBlock;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
-import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.io.ReadPriceList;
-import forge.tournament.system.TournamentBracket;
-import forge.tournament.system.TournamentPairing;
-import forge.tournament.system.TournamentPlayer;
import forge.util.MyRandom;
import forge.util.NameGenerator;
import forge.util.TextUtil;
diff --git a/forge-gui/src/main/java/forge/quest/QuestEventDuel.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDuel.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/QuestEventDuel.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDuel.java
index bcb2f97ba1e..3e633ae7e27 100644
--- a/forge-gui/src/main/java/forge/quest/QuestEventDuel.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDuel.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
/**
diff --git a/forge-gui/src/main/java/forge/quest/QuestEventDuelManager.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDuelManager.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/QuestEventDuelManager.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDuelManager.java
index 138176ed248..83fc30228af 100644
--- a/forge-gui/src/main/java/forge/quest/QuestEventDuelManager.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDuelManager.java
@@ -15,13 +15,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
+import forge.gamemodes.quest.data.QuestPreferences;
+import forge.gamemodes.quest.data.QuestPreferences.DifficultyPrefs;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
+import forge.gamemodes.quest.io.QuestDuelReader;
import forge.model.FModel;
-import forge.quest.data.QuestPreferences;
-import forge.quest.data.QuestPreferences.DifficultyPrefs;
-import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.io.QuestDuelReader;
import forge.util.CollectionSuppliers;
import forge.util.MyRandom;
import forge.util.maps.EnumMapOfLists;
diff --git a/forge-gui/src/main/java/forge/quest/QuestEventDuelManagerInterface.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDuelManagerInterface.java
similarity index 89%
rename from forge-gui/src/main/java/forge/quest/QuestEventDuelManagerInterface.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDuelManagerInterface.java
index 48052ce87e6..58b49901433 100644
--- a/forge-gui/src/main/java/forge/quest/QuestEventDuelManagerInterface.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventDuelManagerInterface.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventLDADuel.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestEventLDADuel.java
index c2efbb1da94..974bb1971d3 100644
--- a/forge-gui/src/main/java/forge/quest/QuestEventLDADuel.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventLDADuel.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import forge.deck.DeckgenUtil;
diff --git a/forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventLDADuelManager.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestEventLDADuelManager.java
index 424701015de..a277f3de574 100644
--- a/forge-gui/src/main/java/forge/quest/QuestEventLDADuelManager.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestEventLDADuelManager.java
@@ -15,15 +15,15 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import forge.deck.CardArchetypeLDAGenerator;
import forge.deck.io.Archetype;
import forge.game.GameFormat;
+import forge.gamemodes.quest.data.QuestPreferences;
+import forge.gamemodes.quest.data.QuestPreferences.DifficultyPrefs;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.model.FModel;
-import forge.quest.data.QuestPreferences;
-import forge.quest.data.QuestPreferences.DifficultyPrefs;
-import forge.quest.data.QuestPreferences.QPref;
import forge.util.CollectionSuppliers;
import forge.util.MyRandom;
import forge.util.maps.EnumMapOfLists;
diff --git a/forge-gui/src/main/java/forge/quest/QuestMode.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestMode.java
similarity index 95%
rename from forge-gui/src/main/java/forge/quest/QuestMode.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestMode.java
index a50ea359177..c5fd721dc87 100644
--- a/forge-gui/src/main/java/forge/quest/QuestMode.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestMode.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
/**
* TODO: Write javadoc for this type.
diff --git a/forge-gui/src/main/java/forge/quest/QuestRewardCard.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestRewardCard.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/QuestRewardCard.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestRewardCard.java
index 9b0541dbc91..64bd8606b1d 100644
--- a/forge-gui/src/main/java/forge/quest/QuestRewardCard.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestRewardCard.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import java.util.ArrayList;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/quest/QuestRewardCardChooser.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestRewardCardChooser.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/QuestRewardCardChooser.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestRewardCardChooser.java
index 9850681e4e1..ae4343d47bc 100644
--- a/forge-gui/src/main/java/forge/quest/QuestRewardCardChooser.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestRewardCardChooser.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/forge-gui/src/main/java/forge/quest/QuestRewardCardDuplicate.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestRewardCardDuplicate.java
similarity index 98%
rename from forge-gui/src/main/java/forge/quest/QuestRewardCardDuplicate.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestRewardCardDuplicate.java
index 4b6a0e66df9..929ce4199f0 100644
--- a/forge-gui/src/main/java/forge/quest/QuestRewardCardDuplicate.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestRewardCardDuplicate.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/forge-gui/src/main/java/forge/quest/QuestRewardCardFiltered.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestRewardCardFiltered.java
similarity index 98%
rename from forge-gui/src/main/java/forge/quest/QuestRewardCardFiltered.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestRewardCardFiltered.java
index ba565e9b774..de4dd312ecb 100644
--- a/forge-gui/src/main/java/forge/quest/QuestRewardCardFiltered.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestRewardCardFiltered.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
diff --git a/forge-gui/src/main/java/forge/quest/QuestSpellShop.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestSpellShop.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/QuestSpellShop.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestSpellShop.java
index 318b689bedd..cda0191ca65 100644
--- a/forge-gui/src/main/java/forge/quest/QuestSpellShop.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestSpellShop.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import com.google.common.base.Function;
import forge.GuiBase;
@@ -6,13 +6,13 @@ import forge.deck.CardPool;
import forge.deck.Deck;
import forge.deck.DeckFormat;
import forge.deck.DeckSection;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
+import forge.gamemodes.quest.io.ReadPriceList;
import forge.item.*;
import forge.itemmanager.IItemManager;
import forge.itemmanager.SItemManagerUtil;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.io.ReadPriceList;
import forge.util.ItemPool;
import forge.util.gui.SOptionPane;
import org.apache.commons.lang3.tuple.Pair;
diff --git a/forge-gui/src/main/java/forge/quest/QuestTournamentController.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestTournamentController.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/QuestTournamentController.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestTournamentController.java
index b718fd9cd83..e937ae4c9f3 100644
--- a/forge-gui/src/main/java/forge/quest/QuestTournamentController.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestTournamentController.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import java.util.ArrayList;
import java.util.List;
@@ -9,20 +9,20 @@ import com.google.common.collect.Lists;
import forge.GuiBase;
import forge.deck.DeckGroup;
import forge.game.GameType;
+import forge.gamemodes.limited.BoosterDraft;
+import forge.gamemodes.quest.QuestDraftUtils.Mode;
+import forge.gamemodes.quest.QuestEventDraft.QuestDraftFormat;
+import forge.gamemodes.quest.data.QuestAchievements;
+import forge.gamemodes.quest.data.QuestPreferences;
+import forge.gamemodes.tournament.system.TournamentBracket;
+import forge.gamemodes.tournament.system.TournamentPairing;
+import forge.gamemodes.tournament.system.TournamentPlayer;
import forge.interfaces.IGuiGame;
import forge.item.BoosterPack;
import forge.item.PaperCard;
-import forge.limited.BoosterDraft;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.quest.QuestDraftUtils.Mode;
-import forge.quest.QuestEventDraft.QuestDraftFormat;
-import forge.quest.data.QuestAchievements;
-import forge.quest.data.QuestPreferences;
-import forge.tournament.system.TournamentBracket;
-import forge.tournament.system.TournamentPairing;
-import forge.tournament.system.TournamentPlayer;
import forge.util.TextUtil;
import forge.util.ThreadUtil;
import forge.util.gui.SGuiChoose;
diff --git a/forge-gui/src/main/java/forge/quest/QuestUtil.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestUtil.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/QuestUtil.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestUtil.java
index 5f67620fb5b..9efd1a0d816 100644
--- a/forge-gui/src/main/java/forge/quest/QuestUtil.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestUtil.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import com.google.common.collect.ImmutableMap;
@@ -29,21 +29,21 @@ import forge.deck.Deck;
import forge.game.GameRules;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.match.HostedMatch;
+import forge.gamemodes.quest.bazaar.IQuestBazaarItem;
+import forge.gamemodes.quest.bazaar.QuestItemType;
+import forge.gamemodes.quest.bazaar.QuestPetController;
+import forge.gamemodes.quest.data.DeckConstructionRules;
+import forge.gamemodes.quest.data.QuestAchievements;
+import forge.gamemodes.quest.data.QuestAssets;
import forge.interfaces.IButton;
import forge.interfaces.IGuiGame;
import forge.item.IPaperCard;
import forge.item.PaperToken;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.HostedMatch;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
-import forge.quest.bazaar.IQuestBazaarItem;
-import forge.quest.bazaar.QuestItemType;
-import forge.quest.bazaar.QuestPetController;
-import forge.quest.data.DeckConstructionRules;
-import forge.quest.data.QuestAchievements;
-import forge.quest.data.QuestAssets;
import forge.util.Localizer;
import forge.util.gui.SGuiChoose;
import forge.util.gui.SOptionPane;
@@ -77,7 +77,7 @@ public class QuestUtil {
* Returns new card instances of extra AI cards in play at start of event.
*
* @param qe
- * a {@link forge.quest.QuestEvent} object.
+ * a {@link forge.gamemodes.quest.QuestEvent} object.
* @return a {@link java.util.List} object.
*/
public static List getComputerStartingCards(final QuestEvent qe) {
@@ -96,7 +96,7 @@ public class QuestUtil {
*
* Returns list of current plant/pet configuration only.
* @param qc
- * a {@link forge.quest.QuestController} object.
+ * a {@link forge.gamemodes.quest.QuestController} object.
* @return a {@link java.util.List} object.
*/
public static List getHumanStartingCards(final QuestController qc) {
@@ -124,9 +124,9 @@ public class QuestUtil {
* plant/pet configuration, and cards in play at start of quest.
*
* @param qc
- * a {@link forge.quest.QuestController} object.
+ * a {@link forge.gamemodes.quest.QuestController} object.
* @param qe
- * a {@link forge.quest.QuestEvent} object.
+ * a {@link forge.gamemodes.quest.QuestEvent} object.
* @return a {@link java.util.List} object.
*/
public static List getHumanStartingCards(final QuestController qc, final QuestEvent qe) {
@@ -360,7 +360,7 @@ public class QuestUtil {
* - Current deck info
* - "Challenge In" info
*
- * @param view0 {@link forge.quest.IVQuestStats}
+ * @param view0 {@link forge.gamemodes.quest.IVQuestStats}
*/
public static void updateQuestView(final IVQuestStats view0) {
final QuestController qCtrl = FModel.getQuest();
@@ -453,7 +453,7 @@ public class QuestUtil {
}
/** Updates the current selected quest event, used when game is started.
- * @param event0 {@link forge.quest.QuestEvent}
+ * @param event0 {@link forge.gamemodes.quest.QuestEvent}
*/
public static void setEvent(final QuestEvent event0) {
event = event0;
diff --git a/forge-gui/src/main/java/forge/quest/QuestUtilCards.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestUtilCards.java
similarity index 98%
rename from forge-gui/src/main/java/forge/quest/QuestUtilCards.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestUtilCards.java
index a780157ab74..d965977f588 100644
--- a/forge-gui/src/main/java/forge/quest/QuestUtilCards.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestUtilCards.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
@@ -30,18 +30,18 @@ import forge.card.MagicColor;
import forge.deck.Deck;
import forge.deck.DeckSection;
import forge.game.GameFormat;
+import forge.gamemodes.quest.bazaar.QuestItemType;
+import forge.gamemodes.quest.data.GameFormatQuest;
+import forge.gamemodes.quest.data.QuestAssets;
+import forge.gamemodes.quest.data.QuestPreferences;
+import forge.gamemodes.quest.data.QuestPreferences.DifficultyPrefs;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.item.*;
import forge.item.SealedProduct.Template;
import forge.item.generation.BoosterSlots;
import forge.item.generation.UnOpenedProduct;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
-import forge.quest.bazaar.QuestItemType;
-import forge.quest.data.GameFormatQuest;
-import forge.quest.data.QuestAssets;
-import forge.quest.data.QuestPreferences;
-import forge.quest.data.QuestPreferences.DifficultyPrefs;
-import forge.quest.data.QuestPreferences.QPref;
import forge.util.Aggregates;
import forge.util.ItemPool;
import forge.util.MyRandom;
diff --git a/forge-gui/src/main/java/forge/quest/QuestUtilUnlockSets.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestUtilUnlockSets.java
similarity index 98%
rename from forge-gui/src/main/java/forge/quest/QuestUtilUnlockSets.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestUtilUnlockSets.java
index cb2e852554f..7f64be4ec92 100644
--- a/forge-gui/src/main/java/forge/quest/QuestUtilUnlockSets.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestUtilUnlockSets.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import java.util.ArrayList;
import java.util.Collections;
@@ -33,12 +33,12 @@ import com.google.common.collect.Lists;
import forge.GuiBase;
import forge.card.CardEdition;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
+import forge.gamemodes.quest.io.ReadPriceList;
import forge.item.PaperCard;
import forge.item.SealedProduct;
import forge.item.generation.UnOpenedProduct;
import forge.model.FModel;
-import forge.quest.data.QuestPreferences.QPref;
-import forge.quest.io.ReadPriceList;
import forge.util.gui.SGuiChoose;
import forge.util.gui.SOptionPane;
import forge.util.storage.IStorage;
diff --git a/forge-gui/src/main/java/forge/quest/QuestWinLoseController.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestWinLoseController.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/QuestWinLoseController.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestWinLoseController.java
index 8b07f978a41..5508ef16f10 100644
--- a/forge-gui/src/main/java/forge/quest/QuestWinLoseController.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestWinLoseController.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import com.google.common.collect.ImmutableList;
import forge.LobbyPlayer;
@@ -8,6 +8,10 @@ import forge.game.GameFormat;
import forge.game.GameOutcome;
import forge.game.GameView;
import forge.game.player.*;
+import forge.gamemodes.quest.bazaar.QuestItemType;
+import forge.gamemodes.quest.data.QuestPreferences;
+import forge.gamemodes.quest.data.QuestPreferences.DifficultyPrefs;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.interfaces.IButton;
import forge.interfaces.IWinLoseView;
import forge.item.*;
@@ -19,10 +23,6 @@ import forge.localinstance.assets.FSkinProp;
import forge.localinstance.properties.ForgePreferences.FPref;
import forge.model.FModel;
import forge.player.GamePlayerUtil;
-import forge.quest.bazaar.QuestItemType;
-import forge.quest.data.QuestPreferences;
-import forge.quest.data.QuestPreferences.DifficultyPrefs;
-import forge.quest.data.QuestPreferences.QPref;
import forge.util.Localizer;
import forge.util.MyRandom;
import forge.util.TextUtil;
diff --git a/forge-gui/src/main/java/forge/quest/QuestWorld.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestWorld.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/QuestWorld.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/QuestWorld.java
index f69cbe5d7df..1e501342a91 100644
--- a/forge-gui/src/main/java/forge/quest/QuestWorld.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestWorld.java
@@ -15,14 +15,14 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import com.google.common.base.Function;
import forge.deck.Deck;
import forge.game.GameFormat;
+import forge.gamemodes.quest.data.GameFormatQuest;
import forge.item.PaperCard;
import forge.model.FModel;
-import forge.quest.data.GameFormatQuest;
import forge.util.storage.StorageReaderFile;
import java.util.ArrayList;
diff --git a/forge-gui/src/main/java/forge/quest/SellRules.java b/forge-gui/src/main/java/forge/gamemodes/quest/SellRules.java
similarity index 96%
rename from forge-gui/src/main/java/forge/quest/SellRules.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/SellRules.java
index 614cf576fe5..a5877b28267 100644
--- a/forge-gui/src/main/java/forge/quest/SellRules.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/SellRules.java
@@ -15,9 +15,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
-import forge.quest.data.QuestAchievements;
+import forge.gamemodes.quest.data.QuestAchievements;
import forge.util.FileSection;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/quest/StartingPoolPreferences.java b/forge-gui/src/main/java/forge/gamemodes/quest/StartingPoolPreferences.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/StartingPoolPreferences.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/StartingPoolPreferences.java
index b4713b04686..7da42a6690a 100644
--- a/forge-gui/src/main/java/forge/quest/StartingPoolPreferences.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/StartingPoolPreferences.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest;
+package forge.gamemodes.quest;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/quest/StartingPoolType.java b/forge-gui/src/main/java/forge/gamemodes/quest/StartingPoolType.java
similarity index 95%
rename from forge-gui/src/main/java/forge/quest/StartingPoolType.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/StartingPoolType.java
index 875c84f1adb..6b6fccb0d86 100644
--- a/forge-gui/src/main/java/forge/quest/StartingPoolType.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/StartingPoolType.java
@@ -1,4 +1,4 @@
-package forge.quest;
+package forge.gamemodes.quest;
import forge.util.Localizer;
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/IQuestBazaarItem.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/IQuestBazaarItem.java
similarity index 94%
rename from forge-gui/src/main/java/forge/quest/bazaar/IQuestBazaarItem.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/IQuestBazaarItem.java
index 721989f3b30..5de342e8cea 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/IQuestBazaarItem.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/IQuestBazaarItem.java
@@ -15,11 +15,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.data.QuestAssets;
import forge.localinstance.assets.ISkinImage;
-import forge.quest.QuestController;
-import forge.quest.data.QuestAssets;
/**
* This interface defines a thing that can be sold at the Bazaar.
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestBazaarManager.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestBazaarManager.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestBazaarManager.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestBazaarManager.java
index 6e3db328e7a..5ce9a499764 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestBazaarManager.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestBazaarManager.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
import java.io.File;
import java.io.IOException;
@@ -44,9 +44,9 @@ import org.xml.sax.SAXException;
import com.thoughtworks.xstream.XStream;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.data.QuestAssets;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.data.QuestAssets;
import forge.util.IgnoringXStream;
import forge.util.XmlUtil;
@@ -134,7 +134,7 @@ public class QuestBazaarManager {
*
* @param stallName
* a {@link java.lang.String} object.
- * @return a {@link forge.quest.bazaar.QuestStallDefinition} object.
+ * @return a {@link forge.gamemodes.quest.bazaar.QuestStallDefinition} object.
*/
public QuestStallDefinition getStall(final String stallName) {
if (stalls.isEmpty()) {
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemBasic.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemBasic.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestItemBasic.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemBasic.java
index 2c1a291228a..098ffaf2baa 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemBasic.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemBasic.java
@@ -15,17 +15,17 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
import org.apache.commons.lang3.StringUtils;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import forge.GuiBase;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.data.QuestAssets;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.assets.ISkinImage;
-import forge.quest.QuestController;
-import forge.quest.data.QuestAssets;
/**
*
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemCharmOfVigor.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemCharmOfVigor.java
similarity index 91%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestItemCharmOfVigor.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemCharmOfVigor.java
index d150ef2372e..665a35f4fe8 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemCharmOfVigor.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemCharmOfVigor.java
@@ -15,10 +15,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
-import forge.quest.QuestController;
-import forge.quest.data.QuestAssets;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.data.QuestAssets;
/**
*
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemCharmOfVim.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemCharmOfVim.java
similarity index 89%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestItemCharmOfVim.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemCharmOfVim.java
index 8b4dd2db0e9..760411d8e1b 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemCharmOfVim.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemCharmOfVim.java
@@ -15,10 +15,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
-import forge.quest.QuestController;
-import forge.quest.data.QuestAssets;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.data.QuestAssets;
public class QuestItemCharmOfVim extends QuestItemBasic {
QuestItemCharmOfVim() {
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemElixir.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemElixir.java
similarity index 94%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestItemElixir.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemElixir.java
index 5371d01cbcf..f9cb4eaa7d9 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemElixir.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemElixir.java
@@ -15,9 +15,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
-import forge.quest.data.QuestAssets;
+import forge.gamemodes.quest.data.QuestAssets;
/**
* This item has special coding.
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemEstates.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemEstates.java
similarity index 94%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestItemEstates.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemEstates.java
index 59c48177b79..9c44d797562 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemEstates.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemEstates.java
@@ -15,9 +15,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
-import forge.quest.data.QuestAssets;
+import forge.gamemodes.quest.data.QuestAssets;
/**
*
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemMembership.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemMembership.java
similarity index 94%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestItemMembership.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemMembership.java
index 91a06c40f10..67aa1dc7337 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemMembership.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemMembership.java
@@ -15,9 +15,9 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
-import forge.quest.data.QuestAssets;
+import forge.gamemodes.quest.data.QuestAssets;
/**
*
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemPoundFlesh.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemPoundFlesh.java
similarity index 93%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestItemPoundFlesh.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemPoundFlesh.java
index ffbbf46dc74..00f01997eee 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemPoundFlesh.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemPoundFlesh.java
@@ -15,10 +15,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
-import forge.quest.QuestMode;
-import forge.quest.data.QuestAssets;
+import forge.gamemodes.quest.QuestMode;
+import forge.gamemodes.quest.data.QuestAssets;
/**
* This item has special coding.
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemType.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemType.java
similarity index 96%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestItemType.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemType.java
index 07cb6165f9e..a7aaf1a6958 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemType.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemType.java
@@ -15,16 +15,17 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
import com.thoughtworks.xstream.annotations.XStreamAlias;
-import forge.quest.data.QuestItemCondition;
+
+import forge.gamemodes.quest.data.QuestItemCondition;
/**
* TODO: Write javadoc for this type.
*
*/
-@XStreamAlias(value = "forge.quest.data.item.QuestItemType")
+@XStreamAlias(value = "forge.gamemodes.quest.data.item.QuestItemType")
public enum QuestItemType {
/** The SLEIGHT. */
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemZeppelin.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemZeppelin.java
similarity index 90%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestItemZeppelin.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemZeppelin.java
index 55e2717e127..1402ab7b14f 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestItemZeppelin.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestItemZeppelin.java
@@ -15,10 +15,10 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
-import forge.quest.QuestController;
-import forge.quest.data.QuestAssets;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.data.QuestAssets;
/**
*
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestPetController.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestPetController.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestPetController.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestPetController.java
index cf2e129582f..4060c06d747 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestPetController.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestPetController.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
import java.util.ArrayList;
import java.util.List;
@@ -24,14 +24,14 @@ import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import forge.GuiBase;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.data.QuestAssets;
+import forge.gamemodes.quest.data.QuestPreferences;
import forge.item.PaperToken;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.assets.ISkinImage;
import forge.localinstance.properties.ForgeConstants;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.data.QuestAssets;
-import forge.quest.data.QuestPreferences;
/**
*
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestPetStats.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestPetStats.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestPetStats.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestPetStats.java
index 35091dabd40..1fe2951d656 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestPetStats.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestPetStats.java
@@ -1,4 +1,4 @@
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestPetStorage.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestPetStorage.java
similarity index 98%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestPetStorage.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestPetStorage.java
index 899f7c93d4a..f26ad2ab838 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestPetStorage.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestPetStorage.java
@@ -1,10 +1,11 @@
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.security.NoTypePermission;
import com.thoughtworks.xstream.security.NullPermission;
import com.thoughtworks.xstream.security.PrimitiveTypePermission;
-import forge.quest.data.QuestAssets;
+
+import forge.gamemodes.quest.data.QuestAssets;
import forge.util.IgnoringXStream;
import forge.util.XmlUtil;
import org.w3c.dom.Attr;
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestStallDefinition.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestStallDefinition.java
similarity index 98%
rename from forge-gui/src/main/java/forge/quest/bazaar/QuestStallDefinition.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestStallDefinition.java
index fbeec5ac344..4a1002d59e0 100644
--- a/forge-gui/src/main/java/forge/quest/bazaar/QuestStallDefinition.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/QuestStallDefinition.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.bazaar;
+package forge.gamemodes.quest.bazaar;
import java.util.ArrayList;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/package-info.java b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/package-info.java
new file mode 100644
index 00000000000..972f66e917c
--- /dev/null
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/bazaar/package-info.java
@@ -0,0 +1,3 @@
+/** Forge Card Game. */
+package forge.gamemodes.quest.bazaar;
+
diff --git a/forge-gui/src/main/java/forge/quest/data/DeckConstructionRules.java b/forge-gui/src/main/java/forge/gamemodes/quest/data/DeckConstructionRules.java
similarity index 90%
rename from forge-gui/src/main/java/forge/quest/data/DeckConstructionRules.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/data/DeckConstructionRules.java
index 3744beea09d..c058d8b3b55 100644
--- a/forge-gui/src/main/java/forge/quest/data/DeckConstructionRules.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/data/DeckConstructionRules.java
@@ -1,4 +1,4 @@
-package forge.quest.data;
+package forge.gamemodes.quest.data;
/**
* Used to clarify which subformat a quest is using e.g. Commander.
diff --git a/forge-gui/src/main/java/forge/quest/data/GameFormatQuest.java b/forge-gui/src/main/java/forge/gamemodes/quest/data/GameFormatQuest.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/data/GameFormatQuest.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/data/GameFormatQuest.java
index b7da238eb3e..a8eb41ec78e 100644
--- a/forge-gui/src/main/java/forge/quest/data/GameFormatQuest.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/data/GameFormatQuest.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.data;
+package forge.gamemodes.quest.data;
import com.google.common.base.Predicate;
diff --git a/forge-gui/src/main/java/forge/quest/data/QuestAchievements.java b/forge-gui/src/main/java/forge/gamemodes/quest/data/QuestAchievements.java
similarity index 96%
rename from forge-gui/src/main/java/forge/quest/data/QuestAchievements.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/data/QuestAchievements.java
index d5c29d91158..d4f36857292 100644
--- a/forge-gui/src/main/java/forge/quest/data/QuestAchievements.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/data/QuestAchievements.java
@@ -1,10 +1,10 @@
-package forge.quest.data;
+package forge.gamemodes.quest.data;
+import forge.gamemodes.quest.QuestEventDraft;
+import forge.gamemodes.quest.QuestEventDraft.QuestDraftFormat;
+import forge.gamemodes.quest.data.QuestPreferences.DifficultyPrefs;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.model.FModel;
-import forge.quest.QuestEventDraft;
-import forge.quest.QuestEventDraft.QuestDraftFormat;
-import forge.quest.data.QuestPreferences.DifficultyPrefs;
-import forge.quest.data.QuestPreferences.QPref;
import java.util.ArrayList;
import java.util.HashSet;
diff --git a/forge-gui/src/main/java/forge/quest/data/QuestAssets.java b/forge-gui/src/main/java/forge/gamemodes/quest/data/QuestAssets.java
similarity index 96%
rename from forge-gui/src/main/java/forge/quest/data/QuestAssets.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/data/QuestAssets.java
index 98e03b13394..32b20a860ff 100644
--- a/forge-gui/src/main/java/forge/quest/data/QuestAssets.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/data/QuestAssets.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.data;
+package forge.gamemodes.quest.data;
import java.lang.reflect.InvocationTargetException;
@@ -25,15 +25,15 @@ import java.util.Map;
import forge.deck.Deck;
import forge.deck.DeckGroup;
+import forge.gamemodes.quest.QuestDeckGroupMap;
+import forge.gamemodes.quest.QuestDeckMap;
+import forge.gamemodes.quest.QuestMode;
+import forge.gamemodes.quest.QuestUtilCards;
+import forge.gamemodes.quest.bazaar.QuestItemType;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.item.InventoryItem;
import forge.item.PaperCard;
import forge.model.FModel;
-import forge.quest.QuestDeckGroupMap;
-import forge.quest.QuestDeckMap;
-import forge.quest.QuestMode;
-import forge.quest.QuestUtilCards;
-import forge.quest.bazaar.QuestItemType;
-import forge.quest.data.QuestPreferences.QPref;
import forge.util.ItemPool;
/** */
diff --git a/forge-gui/src/main/java/forge/quest/data/QuestData.java b/forge-gui/src/main/java/forge/gamemodes/quest/data/QuestData.java
similarity index 98%
rename from forge-gui/src/main/java/forge/quest/data/QuestData.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/data/QuestData.java
index c50a93ad720..4142d0a9372 100644
--- a/forge-gui/src/main/java/forge/quest/data/QuestData.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/data/QuestData.java
@@ -15,13 +15,13 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.data;
+package forge.gamemodes.quest.data;
import forge.game.GameFormat;
+import forge.gamemodes.quest.QuestMode;
+import forge.gamemodes.quest.io.QuestDataIO;
import forge.localinstance.properties.ForgeConstants;
import forge.model.FModel;
-import forge.quest.QuestMode;
-import forge.quest.io.QuestDataIO;
import java.io.File;
import java.util.HashMap;
diff --git a/forge-gui/src/main/java/forge/quest/data/QuestEventDraftContainer.java b/forge-gui/src/main/java/forge/gamemodes/quest/data/QuestEventDraftContainer.java
similarity index 68%
rename from forge-gui/src/main/java/forge/quest/data/QuestEventDraftContainer.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/data/QuestEventDraftContainer.java
index e8501b58790..752b30d72b9 100644
--- a/forge-gui/src/main/java/forge/quest/data/QuestEventDraftContainer.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/data/QuestEventDraftContainer.java
@@ -1,8 +1,8 @@
-package forge.quest.data;
+package forge.gamemodes.quest.data;
import java.util.ArrayList;
-import forge.quest.QuestEventDraft;
+import forge.gamemodes.quest.QuestEventDraft;
public class QuestEventDraftContainer extends ArrayList {
private static final long serialVersionUID = -417036762608756613L;
diff --git a/forge-gui/src/main/java/forge/quest/data/QuestItemCondition.java b/forge-gui/src/main/java/forge/gamemodes/quest/data/QuestItemCondition.java
similarity index 93%
rename from forge-gui/src/main/java/forge/quest/data/QuestItemCondition.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/data/QuestItemCondition.java
index 8013d4b523a..be45ac34ee7 100644
--- a/forge-gui/src/main/java/forge/quest/data/QuestItemCondition.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/data/QuestItemCondition.java
@@ -1,4 +1,4 @@
-package forge.quest.data;
+package forge.gamemodes.quest.data;
/**
* This class should store the quest items' properties that are to be serialized.
diff --git a/forge-gui/src/main/java/forge/quest/data/QuestPreferences.java b/forge-gui/src/main/java/forge/gamemodes/quest/data/QuestPreferences.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/data/QuestPreferences.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/data/QuestPreferences.java
index a1e7df1a795..3008d8d1d63 100644
--- a/forge-gui/src/main/java/forge/quest/data/QuestPreferences.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/data/QuestPreferences.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.data;
+package forge.gamemodes.quest.data;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.PreferencesStore;
diff --git a/forge-gui/src/main/java/forge/quest/data/StarRating.java b/forge-gui/src/main/java/forge/gamemodes/quest/data/StarRating.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/data/StarRating.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/data/StarRating.java
index 37f5f30213b..05984f21cf2 100644
--- a/forge-gui/src/main/java/forge/quest/data/StarRating.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/data/StarRating.java
@@ -1,4 +1,4 @@
-package forge.quest.data;
+package forge.gamemodes.quest.data;
public class StarRating {
public String Name;
diff --git a/forge-gui/src/main/java/forge/gamemodes/quest/data/package-info.java b/forge-gui/src/main/java/forge/gamemodes/quest/data/package-info.java
new file mode 100644
index 00000000000..b65fd18b64b
--- /dev/null
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/data/package-info.java
@@ -0,0 +1,3 @@
+/** Forge Card Game. */
+package forge.gamemodes.quest.data;
+
diff --git a/forge-gui/src/main/java/forge/quest/io/MainWorldDuelReader.java b/forge-gui/src/main/java/forge/gamemodes/quest/io/MainWorldDuelReader.java
similarity index 97%
rename from forge-gui/src/main/java/forge/quest/io/MainWorldDuelReader.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/io/MainWorldDuelReader.java
index 22fe331d71a..e6163c5cbf2 100644
--- a/forge-gui/src/main/java/forge/quest/io/MainWorldDuelReader.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/io/MainWorldDuelReader.java
@@ -1,4 +1,4 @@
-package forge.quest.io;
+package forge.gamemodes.quest.io;
import java.io.File;
import java.io.FilenameFilter;
@@ -21,9 +21,9 @@ import forge.deck.Deck;
import forge.deck.DeckProxy;
import forge.deck.io.DeckSerializer;
import forge.deck.io.DeckStorage;
-import forge.quest.QuestEvent;
-import forge.quest.QuestEventDifficulty;
-import forge.quest.QuestEventDuel;
+import forge.gamemodes.quest.QuestEvent;
+import forge.gamemodes.quest.QuestEventDifficulty;
+import forge.gamemodes.quest.QuestEventDuel;
import forge.util.FileSection;
import forge.util.FileUtil;
import forge.util.TextUtil;
diff --git a/forge-gui/src/main/java/forge/quest/io/QuestChallengeReader.java b/forge-gui/src/main/java/forge/gamemodes/quest/io/QuestChallengeReader.java
similarity index 96%
rename from forge-gui/src/main/java/forge/quest/io/QuestChallengeReader.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/io/QuestChallengeReader.java
index 9e31616491d..d3adf100522 100644
--- a/forge-gui/src/main/java/forge/quest/io/QuestChallengeReader.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/io/QuestChallengeReader.java
@@ -1,10 +1,10 @@
-package forge.quest.io;
+package forge.gamemodes.quest.io;
import forge.ImageKeys;
import forge.deck.io.DeckSerializer;
import forge.deck.io.DeckStorage;
-import forge.quest.QuestEventChallenge;
-import forge.quest.QuestEventDifficulty;
+import forge.gamemodes.quest.QuestEventChallenge;
+import forge.gamemodes.quest.QuestEventDifficulty;
import forge.util.FileSection;
import forge.util.FileUtil;
import forge.util.TextUtil;
diff --git a/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java b/forge-gui/src/main/java/forge/gamemodes/quest/io/QuestDataIO.java
similarity index 98%
rename from forge-gui/src/main/java/forge/quest/io/QuestDataIO.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/io/QuestDataIO.java
index 71e2737dc0d..a88c05f8857 100644
--- a/forge-gui/src/main/java/forge/quest/io/QuestDataIO.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/io/QuestDataIO.java
@@ -15,12 +15,11 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.io;
+package forge.gamemodes.quest.io;
import com.thoughtworks.xstream.security.NoTypePermission;
import com.thoughtworks.xstream.security.NullPermission;
import com.thoughtworks.xstream.security.PrimitiveTypePermission;
-import forge.quest.data.QuestPreferences.QPref;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.converters.Converter;
import com.thoughtworks.xstream.converters.MarshallingContext;
@@ -32,14 +31,15 @@ import forge.deck.CardPool;
import forge.deck.Deck;
import forge.deck.DeckGroup;
import forge.deck.DeckSection;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestEventDraft;
+import forge.gamemodes.quest.QuestMode;
+import forge.gamemodes.quest.bazaar.QuestItemType;
+import forge.gamemodes.quest.data.*;
+import forge.gamemodes.quest.data.QuestPreferences.QPref;
import forge.item.*;
import forge.localinstance.properties.ForgeConstants;
import forge.model.FModel;
-import forge.quest.QuestController;
-import forge.quest.QuestEventDraft;
-import forge.quest.QuestMode;
-import forge.quest.bazaar.QuestItemType;
-import forge.quest.data.*;
import forge.util.FileUtil;
import forge.util.IgnoringXStream;
import forge.util.ItemPool;
@@ -96,7 +96,7 @@ public class QuestDataIO {
// allow any type from the same package
xStream.allowTypesByWildcard(new String[] {
QuestDataIO.class.getPackage().getName()+".*",
- "forge.quest.data.*"
+ "forge.gamemodes.quest.data.*"
});
xStream.registerConverter(new ItemPoolToXml());
xStream.registerConverter(new DeckToXml());
@@ -116,7 +116,7 @@ public class QuestDataIO {
*
* @param xmlSaveFile
* {@link java.io.File}
- * @return {@link forge.quest.data.QuestData}
+ * @return {@link forge.gamemodes.quest.data.QuestData}
*/
public static QuestData loadData(final File xmlSaveFile) throws IOException {
QuestData data;
@@ -168,7 +168,7 @@ public class QuestDataIO {
*
*
* @param newData
- * a {@link forge.quest.data.QuestData} object.
+ * a {@link forge.gamemodes.quest.data.QuestData} object.
* @param input
* a {@link java.lang.String} object.
* @throws ParserConfigurationException
@@ -320,7 +320,7 @@ public class QuestDataIO {
continue;
}
final Element x = (Element) _x;
- if (!x.getTagName().startsWith("forge.quest.data.")) {
+ if (!x.getTagName().startsWith("forge.gamemodes.quest.data.")) {
continue;
}
final String sLevel = x.getElementsByTagName("level").item(0).getTextContent();
@@ -398,7 +398,7 @@ public class QuestDataIO {
*
*
* @param qd
- * a {@link forge.quest.data.QuestData} object.
+ * a {@link forge.gamemodes.quest.data.QuestData} object.
*/
public static synchronized void saveData(final QuestData qd) {
try {
diff --git a/forge-gui/src/main/java/forge/quest/io/QuestDuelReader.java b/forge-gui/src/main/java/forge/gamemodes/quest/io/QuestDuelReader.java
similarity index 90%
rename from forge-gui/src/main/java/forge/quest/io/QuestDuelReader.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/io/QuestDuelReader.java
index 808df3e1616..1d1bf79e92a 100644
--- a/forge-gui/src/main/java/forge/quest/io/QuestDuelReader.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/io/QuestDuelReader.java
@@ -1,11 +1,11 @@
-package forge.quest.io;
+package forge.gamemodes.quest.io;
import forge.ImageKeys;
import forge.deck.io.DeckSerializer;
import forge.deck.io.DeckStorage;
-import forge.quest.QuestEvent;
-import forge.quest.QuestEventDifficulty;
-import forge.quest.QuestEventDuel;
+import forge.gamemodes.quest.QuestEvent;
+import forge.gamemodes.quest.QuestEventDifficulty;
+import forge.gamemodes.quest.QuestEventDuel;
import forge.util.FileSection;
import forge.util.FileUtil;
import forge.util.storage.StorageReaderFolder;
diff --git a/forge-gui/src/main/java/forge/quest/io/ReadPriceList.java b/forge-gui/src/main/java/forge/gamemodes/quest/io/ReadPriceList.java
similarity index 99%
rename from forge-gui/src/main/java/forge/quest/io/ReadPriceList.java
rename to forge-gui/src/main/java/forge/gamemodes/quest/io/ReadPriceList.java
index 60458bde657..d5249910e1c 100644
--- a/forge-gui/src/main/java/forge/quest/io/ReadPriceList.java
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/io/ReadPriceList.java
@@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
-package forge.quest.io;
+package forge.gamemodes.quest.io;
import forge.card.MagicColor;
import forge.localinstance.properties.ForgeConstants;
diff --git a/forge-gui/src/main/java/forge/gamemodes/quest/io/package-info.java b/forge-gui/src/main/java/forge/gamemodes/quest/io/package-info.java
new file mode 100644
index 00000000000..ced0a767d1d
--- /dev/null
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/io/package-info.java
@@ -0,0 +1,3 @@
+/** Forge Card Game. */
+package forge.gamemodes.quest.io;
+
diff --git a/forge-gui/src/main/java/forge/gamemodes/quest/package-info.java b/forge-gui/src/main/java/forge/gamemodes/quest/package-info.java
new file mode 100644
index 00000000000..547a7b4879c
--- /dev/null
+++ b/forge-gui/src/main/java/forge/gamemodes/quest/package-info.java
@@ -0,0 +1,3 @@
+/** Forge Card Game. */
+package forge.gamemodes.quest;
+
diff --git a/forge-gui/src/main/java/forge/tournament/TournamentData.java b/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentData.java
similarity index 98%
rename from forge-gui/src/main/java/forge/tournament/TournamentData.java
rename to forge-gui/src/main/java/forge/gamemodes/tournament/TournamentData.java
index 4574ecd7884..e7085f5af8f 100644
--- a/forge-gui/src/main/java/forge/tournament/TournamentData.java
+++ b/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentData.java
@@ -1,12 +1,12 @@
-package forge.tournament;
+package forge.gamemodes.tournament;
import com.thoughtworks.xstream.annotations.XStreamOmitField;
import forge.GuiBase;
import forge.deck.Deck;
import forge.game.GameType;
import forge.game.player.RegisteredPlayer;
+import forge.gamemodes.match.HostedMatch;
import forge.localinstance.properties.ForgeConstants;
-import forge.match.HostedMatch;
import java.io.File;
import java.text.DateFormat;
diff --git a/forge-gui/src/main/java/forge/tournament/TournamentIO.java b/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentIO.java
similarity index 99%
rename from forge-gui/src/main/java/forge/tournament/TournamentIO.java
rename to forge-gui/src/main/java/forge/gamemodes/tournament/TournamentIO.java
index 6a0a90c2726..4ce8a46e8ed 100644
--- a/forge-gui/src/main/java/forge/tournament/TournamentIO.java
+++ b/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentIO.java
@@ -1,4 +1,4 @@
-package forge.tournament;
+package forge.gamemodes.tournament;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.converters.Converter;
diff --git a/forge-gui/src/main/java/forge/tournament/TournamentUtil.java b/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentUtil.java
similarity index 99%
rename from forge-gui/src/main/java/forge/tournament/TournamentUtil.java
rename to forge-gui/src/main/java/forge/gamemodes/tournament/TournamentUtil.java
index 08f99eed11b..823dd6a18b9 100644
--- a/forge-gui/src/main/java/forge/tournament/TournamentUtil.java
+++ b/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentUtil.java
@@ -1,4 +1,4 @@
-package forge.tournament;
+package forge.gamemodes.tournament;
import forge.deck.Deck;
import forge.deck.DeckType;
diff --git a/forge-gui/src/main/java/forge/tournament/TournamentWinLoseController.java b/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentWinLoseController.java
similarity index 99%
rename from forge-gui/src/main/java/forge/tournament/TournamentWinLoseController.java
rename to forge-gui/src/main/java/forge/gamemodes/tournament/TournamentWinLoseController.java
index ecdefdd6388..2007bae14ed 100644
--- a/forge-gui/src/main/java/forge/tournament/TournamentWinLoseController.java
+++ b/forge-gui/src/main/java/forge/gamemodes/tournament/TournamentWinLoseController.java
@@ -1,4 +1,4 @@
-package forge.tournament;
+package forge.gamemodes.tournament;
import com.google.common.collect.Lists;
diff --git a/forge-gui/src/main/java/forge/tournament/system/AbstractTournament.java b/forge-gui/src/main/java/forge/gamemodes/tournament/system/AbstractTournament.java
similarity index 99%
rename from forge-gui/src/main/java/forge/tournament/system/AbstractTournament.java
rename to forge-gui/src/main/java/forge/gamemodes/tournament/system/AbstractTournament.java
index e658f3cac29..bd45f3b9f81 100644
--- a/forge-gui/src/main/java/forge/tournament/system/AbstractTournament.java
+++ b/forge-gui/src/main/java/forge/gamemodes/tournament/system/AbstractTournament.java
@@ -1,4 +1,4 @@
-package forge.tournament.system;
+package forge.gamemodes.tournament.system;
import com.google.common.collect.Lists;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
diff --git a/forge-gui/src/main/java/forge/tournament/system/TournamentBracket.java b/forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentBracket.java
similarity index 98%
rename from forge-gui/src/main/java/forge/tournament/system/TournamentBracket.java
rename to forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentBracket.java
index 52222ceb60c..763d5a7fb3d 100644
--- a/forge-gui/src/main/java/forge/tournament/system/TournamentBracket.java
+++ b/forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentBracket.java
@@ -1,4 +1,4 @@
-package forge.tournament.system;
+package forge.gamemodes.tournament.system;
import java.util.ArrayList;
import java.util.List;
diff --git a/forge-gui/src/main/java/forge/tournament/system/TournamentPairing.java b/forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentPairing.java
similarity index 98%
rename from forge-gui/src/main/java/forge/tournament/system/TournamentPairing.java
rename to forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentPairing.java
index 619cc142c3d..4b75135521c 100644
--- a/forge-gui/src/main/java/forge/tournament/system/TournamentPairing.java
+++ b/forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentPairing.java
@@ -1,4 +1,4 @@
-package forge.tournament.system;
+package forge.gamemodes.tournament.system;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import forge.LobbyPlayer;
diff --git a/forge-gui/src/main/java/forge/tournament/system/TournamentPlayer.java b/forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentPlayer.java
similarity index 98%
rename from forge-gui/src/main/java/forge/tournament/system/TournamentPlayer.java
rename to forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentPlayer.java
index babd4050cde..600397b00e6 100644
--- a/forge-gui/src/main/java/forge/tournament/system/TournamentPlayer.java
+++ b/forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentPlayer.java
@@ -1,4 +1,4 @@
-package forge.tournament.system;
+package forge.gamemodes.tournament.system;
import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
import forge.LobbyPlayer;
diff --git a/forge-gui/src/main/java/forge/tournament/system/TournamentRoundRobin.java b/forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentRoundRobin.java
similarity index 98%
rename from forge-gui/src/main/java/forge/tournament/system/TournamentRoundRobin.java
rename to forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentRoundRobin.java
index 5ec1b04b9ab..b379fdeea12 100644
--- a/forge-gui/src/main/java/forge/tournament/system/TournamentRoundRobin.java
+++ b/forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentRoundRobin.java
@@ -1,4 +1,4 @@
-package forge.tournament.system;
+package forge.gamemodes.tournament.system;
import com.google.common.collect.Lists;
import forge.player.GamePlayerUtil;
diff --git a/forge-gui/src/main/java/forge/tournament/system/TournamentSwiss.java b/forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentSwiss.java
similarity index 99%
rename from forge-gui/src/main/java/forge/tournament/system/TournamentSwiss.java
rename to forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentSwiss.java
index 31c9ae300ff..53c00eda0eb 100644
--- a/forge-gui/src/main/java/forge/tournament/system/TournamentSwiss.java
+++ b/forge-gui/src/main/java/forge/gamemodes/tournament/system/TournamentSwiss.java
@@ -1,4 +1,4 @@
-package forge.tournament.system;
+package forge.gamemodes.tournament.system;
import com.google.common.collect.Lists;
diff --git a/forge-gui/src/main/java/forge/interfaces/IGameController.java b/forge-gui/src/main/java/forge/interfaces/IGameController.java
index 758c50077c4..add0d69533c 100644
--- a/forge-gui/src/main/java/forge/interfaces/IGameController.java
+++ b/forge-gui/src/main/java/forge/interfaces/IGameController.java
@@ -5,7 +5,7 @@ import java.util.List;
import forge.game.card.CardView;
import forge.game.player.PlayerView;
import forge.game.spellability.SpellAbilityView;
-import forge.match.NextGameDecision;
+import forge.gamemodes.match.NextGameDecision;
import forge.util.ITriggerEvent;
public interface IGameController {
diff --git a/forge-gui/src/main/java/forge/interfaces/IGuiBase.java b/forge-gui/src/main/java/forge/interfaces/IGuiBase.java
index 029676c0496..68ffe5d1e19 100644
--- a/forge-gui/src/main/java/forge/interfaces/IGuiBase.java
+++ b/forge-gui/src/main/java/forge/interfaces/IGuiBase.java
@@ -9,10 +9,10 @@ import java.util.List;
import com.google.common.base.Function;
import forge.download.GuiDownloadService;
+import forge.gamemodes.match.HostedMatch;
import forge.item.PaperCard;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.assets.ISkinImage;
-import forge.match.HostedMatch;
import forge.sound.IAudioClip;
import forge.sound.IAudioMusic;
import forge.util.Callback;
diff --git a/forge-gui/src/main/java/forge/interfaces/ILobbyListener.java b/forge-gui/src/main/java/forge/interfaces/ILobbyListener.java
index dc1f67f7218..1102fda97ab 100644
--- a/forge-gui/src/main/java/forge/interfaces/ILobbyListener.java
+++ b/forge-gui/src/main/java/forge/interfaces/ILobbyListener.java
@@ -1,7 +1,7 @@
package forge.interfaces;
-import forge.match.GameLobby.GameLobbyData;
-import forge.net.client.ClientGameLobby;
+import forge.gamemodes.match.GameLobby.GameLobbyData;
+import forge.gamemodes.net.client.ClientGameLobby;
public interface ILobbyListener {
void message(String source, String message);
diff --git a/forge-gui/src/main/java/forge/interfaces/IPlayerChangeListener.java b/forge-gui/src/main/java/forge/interfaces/IPlayerChangeListener.java
index 61146fe105e..d414ce8a7b9 100644
--- a/forge-gui/src/main/java/forge/interfaces/IPlayerChangeListener.java
+++ b/forge-gui/src/main/java/forge/interfaces/IPlayerChangeListener.java
@@ -1,6 +1,6 @@
package forge.interfaces;
-import forge.net.event.UpdateLobbyPlayerEvent;
+import forge.gamemodes.net.event.UpdateLobbyPlayerEvent;
public interface IPlayerChangeListener {
void update(int index, UpdateLobbyPlayerEvent event);
diff --git a/forge-gui/src/main/java/forge/interfaces/IUpdateable.java b/forge-gui/src/main/java/forge/interfaces/IUpdateable.java
index 0a1c7e1cff3..dd1f80f574f 100644
--- a/forge-gui/src/main/java/forge/interfaces/IUpdateable.java
+++ b/forge-gui/src/main/java/forge/interfaces/IUpdateable.java
@@ -1,6 +1,6 @@
package forge.interfaces;
-import forge.match.LobbySlotType;
+import forge.gamemodes.match.LobbySlotType;
public interface IUpdateable{
void update(boolean fullUpdate);
diff --git a/forge-gui/src/main/java/forge/itemmanager/AdvancedSearch.java b/forge-gui/src/main/java/forge/itemmanager/AdvancedSearch.java
index 866f8eb2a34..c1723ec13d5 100644
--- a/forge-gui/src/main/java/forge/itemmanager/AdvancedSearch.java
+++ b/forge-gui/src/main/java/forge/itemmanager/AdvancedSearch.java
@@ -23,16 +23,16 @@ import forge.deck.DeckProxy;
import forge.deck.DeckSection;
import forge.game.GameFormat;
import forge.game.keyword.Keyword;
+import forge.gamemodes.planarconquest.ConquestCommander;
+import forge.gamemodes.planarconquest.ConquestPlane;
+import forge.gamemodes.planarconquest.ConquestRegion;
+import forge.gamemodes.quest.QuestSpellShop;
+import forge.gamemodes.quest.QuestWorld;
import forge.interfaces.IButton;
import forge.item.InventoryItem;
import forge.item.PaperCard;
import forge.item.SealedProduct;
import forge.model.FModel;
-import forge.planarconquest.ConquestCommander;
-import forge.planarconquest.ConquestPlane;
-import forge.planarconquest.ConquestRegion;
-import forge.quest.QuestSpellShop;
-import forge.quest.QuestWorld;
import forge.util.gui.SGuiChoose;
import forge.util.gui.SOptionPane;
import forge.util.Localizer;
diff --git a/forge-gui/src/main/java/forge/itemmanager/ColumnDef.java b/forge-gui/src/main/java/forge/itemmanager/ColumnDef.java
index 228085c97a4..8190ea419b2 100644
--- a/forge-gui/src/main/java/forge/itemmanager/ColumnDef.java
+++ b/forge-gui/src/main/java/forge/itemmanager/ColumnDef.java
@@ -23,12 +23,12 @@ import forge.card.mana.ManaCost;
import forge.deck.DeckProxy;
import forge.deck.io.DeckPreferences;
import forge.game.GameFormat;
+import forge.gamemodes.limited.DraftRankCache;
import forge.item.IPaperCard;
import forge.item.InventoryItem;
import forge.item.InventoryItemFromSet;
import forge.item.PaperCard;
import forge.itemmanager.ItemColumnConfig.SortState;
-import forge.limited.DraftRankCache;
import forge.model.FModel;
import forge.util.Localizer;
import forge.util.CardTranslation;
diff --git a/forge-gui/src/main/java/forge/itemmanager/SFilterUtil.java b/forge-gui/src/main/java/forge/itemmanager/SFilterUtil.java
index d44f68f540c..1e0fa5ea57c 100644
--- a/forge-gui/src/main/java/forge/itemmanager/SFilterUtil.java
+++ b/forge-gui/src/main/java/forge/itemmanager/SFilterUtil.java
@@ -6,13 +6,13 @@ import forge.StaticData;
import forge.card.*;
import forge.deck.DeckProxy;
import forge.game.GameFormat;
+import forge.gamemodes.quest.data.StarRating;
import forge.interfaces.IButton;
import forge.item.InventoryItem;
import forge.item.PaperCard;
import forge.itemmanager.SItemManagerUtil.StatTypes;
import forge.localinstance.properties.ForgePreferences;
import forge.model.FModel;
-import forge.quest.data.StarRating;
import forge.util.BinaryUtil;
import forge.util.PredicateString.StringOp;
diff --git a/forge-gui/src/main/java/forge/limited/package-info.java b/forge-gui/src/main/java/forge/limited/package-info.java
deleted file mode 100644
index 1323ddca75b..00000000000
--- a/forge-gui/src/main/java/forge/limited/package-info.java
+++ /dev/null
@@ -1,3 +0,0 @@
-/** Forge Card Game. */
-package forge.limited;
-
diff --git a/forge-gui/src/main/java/forge/match/input/package-info.java b/forge-gui/src/main/java/forge/match/input/package-info.java
deleted file mode 100644
index ec31157cdb5..00000000000
--- a/forge-gui/src/main/java/forge/match/input/package-info.java
+++ /dev/null
@@ -1,3 +0,0 @@
-/** Forge Card Game. */
-package forge.match.input;
-
diff --git a/forge-gui/src/main/java/forge/model/FModel.java b/forge-gui/src/main/java/forge/model/FModel.java
index 6fb3b17efe3..690502d68c8 100644
--- a/forge-gui/src/main/java/forge/model/FModel.java
+++ b/forge-gui/src/main/java/forge/model/FModel.java
@@ -32,24 +32,24 @@ import forge.game.GameFormat;
import forge.game.GameType;
import forge.game.card.CardUtil;
import forge.game.spellability.Spell;
-import forge.gauntlet.GauntletData;
+import forge.gamemodes.gauntlet.GauntletData;
+import forge.gamemodes.limited.GauntletMini;
+import forge.gamemodes.limited.ThemedChaosDraft;
+import forge.gamemodes.planarconquest.ConquestController;
+import forge.gamemodes.planarconquest.ConquestPlane;
+import forge.gamemodes.planarconquest.ConquestPreferences;
+import forge.gamemodes.planarconquest.ConquestUtil;
+import forge.gamemodes.quest.QuestController;
+import forge.gamemodes.quest.QuestWorld;
+import forge.gamemodes.quest.data.QuestPreferences;
+import forge.gamemodes.tournament.TournamentData;
import forge.interfaces.IProgressBar;
import forge.itemmanager.ItemManagerConfig;
-import forge.limited.GauntletMini;
-import forge.limited.ThemedChaosDraft;
import forge.localinstance.achievements.*;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.ForgePreferences;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.planarconquest.ConquestController;
-import forge.planarconquest.ConquestPlane;
-import forge.planarconquest.ConquestPreferences;
-import forge.planarconquest.ConquestUtil;
import forge.player.GamePlayerUtil;
-import forge.quest.QuestController;
-import forge.quest.QuestWorld;
-import forge.quest.data.QuestPreferences;
-import forge.tournament.TournamentData;
import forge.util.CardTranslation;
import forge.util.FileUtil;
import forge.util.Lang;
diff --git a/forge-gui/src/main/java/forge/model/MetaSet.java b/forge-gui/src/main/java/forge/model/MetaSet.java
index 9b977d4e647..1b9d68fbffc 100644
--- a/forge-gui/src/main/java/forge/model/MetaSet.java
+++ b/forge-gui/src/main/java/forge/model/MetaSet.java
@@ -20,13 +20,13 @@ package forge.model;
import com.google.common.base.Predicate;
+import forge.gamemodes.limited.CustomLimited;
+import forge.gamemodes.limited.SealedCardPoolGenerator;
import forge.item.IPaperCard;
import forge.item.PaperCard;
import forge.item.SealedProduct;
import forge.item.generation.IUnOpenedProduct;
import forge.item.generation.UnOpenedProduct;
-import forge.limited.CustomLimited;
-import forge.limited.SealedCardPoolGenerator;
import forge.localinstance.properties.ForgeConstants;
import forge.util.FileUtil;
diff --git a/forge-gui/src/main/java/forge/net/client/IToServer.java b/forge-gui/src/main/java/forge/net/client/IToServer.java
deleted file mode 100644
index 9f69092a186..00000000000
--- a/forge-gui/src/main/java/forge/net/client/IToServer.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package forge.net.client;
-
-import forge.net.IRemote;
-
-public interface IToServer extends IRemote {
-}
diff --git a/forge-gui/src/main/java/forge/net/client/package-info.java b/forge-gui/src/main/java/forge/net/client/package-info.java
deleted file mode 100644
index 7747d9eabb7..00000000000
--- a/forge-gui/src/main/java/forge/net/client/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package forge.net.client;
\ No newline at end of file
diff --git a/forge-gui/src/main/java/forge/net/event/package-info.java b/forge-gui/src/main/java/forge/net/event/package-info.java
deleted file mode 100644
index b6f2560b69e..00000000000
--- a/forge-gui/src/main/java/forge/net/event/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package forge.net.event;
\ No newline at end of file
diff --git a/forge-gui/src/main/java/forge/net/package-info.java b/forge-gui/src/main/java/forge/net/package-info.java
deleted file mode 100644
index 3d560a403f2..00000000000
--- a/forge-gui/src/main/java/forge/net/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package forge.net;
\ No newline at end of file
diff --git a/forge-gui/src/main/java/forge/net/server/IToClient.java b/forge-gui/src/main/java/forge/net/server/IToClient.java
deleted file mode 100644
index f5ca229fe3d..00000000000
--- a/forge-gui/src/main/java/forge/net/server/IToClient.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package forge.net.server;
-
-import forge.net.IRemote;
-
-public interface IToClient extends IRemote {
-}
diff --git a/forge-gui/src/main/java/forge/net/server/package-info.java b/forge-gui/src/main/java/forge/net/server/package-info.java
deleted file mode 100644
index 346f318f84b..00000000000
--- a/forge-gui/src/main/java/forge/net/server/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package forge.net.server;
\ No newline at end of file
diff --git a/forge-gui/src/main/java/forge/player/HumanCostDecision.java b/forge-gui/src/main/java/forge/player/HumanCostDecision.java
index f44f4e561a3..2e589bce30e 100644
--- a/forge-gui/src/main/java/forge/player/HumanCostDecision.java
+++ b/forge-gui/src/main/java/forge/player/HumanCostDecision.java
@@ -33,9 +33,9 @@ import forge.game.player.PlayerView;
import forge.game.spellability.SpellAbility;
import forge.game.spellability.SpellAbilityStackInstance;
import forge.game.zone.ZoneType;
-import forge.match.input.InputConfirm;
-import forge.match.input.InputSelectCardsFromList;
-import forge.match.input.InputSelectManyBase;
+import forge.gamemodes.match.input.InputConfirm;
+import forge.gamemodes.match.input.InputSelectCardsFromList;
+import forge.gamemodes.match.input.InputSelectManyBase;
import forge.util.Aggregates;
import forge.util.TextUtil;
import forge.util.collect.FCollectionView;
diff --git a/forge-gui/src/main/java/forge/player/HumanPlay.java b/forge-gui/src/main/java/forge/player/HumanPlay.java
index 21ab3cb1680..b43a133d838 100644
--- a/forge-gui/src/main/java/forge/player/HumanPlay.java
+++ b/forge-gui/src/main/java/forge/player/HumanPlay.java
@@ -22,9 +22,9 @@ import forge.game.player.PlayerView;
import forge.game.spellability.*;
import forge.game.trigger.TriggerType;
import forge.game.zone.ZoneType;
-import forge.match.input.InputPayMana;
-import forge.match.input.InputPayManaOfCostPayment;
-import forge.match.input.InputSelectCardsFromList;
+import forge.gamemodes.match.input.InputPayMana;
+import forge.gamemodes.match.input.InputPayManaOfCostPayment;
+import forge.gamemodes.match.input.InputSelectCardsFromList;
import forge.util.TextUtil;
import forge.util.collect.FCollectionView;
import forge.util.gui.SGuiChoose;
diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java
index 39ee45e5cb1..1599820d63e 100644
--- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java
+++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java
@@ -61,6 +61,8 @@ import forge.game.zone.MagicStack;
import forge.game.zone.PlayerZone;
import forge.game.zone.Zone;
import forge.game.zone.ZoneType;
+import forge.gamemodes.match.NextGameDecision;
+import forge.gamemodes.match.input.*;
import forge.interfaces.IDevModeCheats;
import forge.interfaces.IGameController;
import forge.interfaces.IGuiGame;
@@ -71,8 +73,6 @@ import forge.localinstance.achievements.AchievementCollection;
import forge.localinstance.assets.FSkinProp;
import forge.localinstance.properties.ForgeConstants;
import forge.localinstance.properties.ForgePreferences.FPref;
-import forge.match.NextGameDecision;
-import forge.match.input.*;
import forge.model.FModel;
import forge.util.CardTranslation;
import forge.util.ITriggerEvent;
diff --git a/forge-gui/src/main/java/forge/player/TargetSelection.java b/forge-gui/src/main/java/forge/player/TargetSelection.java
index dcaddb0ab28..6102dccc761 100644
--- a/forge-gui/src/main/java/forge/player/TargetSelection.java
+++ b/forge-gui/src/main/java/forge/player/TargetSelection.java
@@ -37,7 +37,7 @@ import forge.game.spellability.StackItemView;
import forge.game.spellability.TargetRestrictions;
import forge.game.zone.Zone;
import forge.game.zone.ZoneType;
-import forge.match.input.InputSelectTargets;
+import forge.gamemodes.match.input.InputSelectTargets;
import forge.util.Aggregates;
import java.util.ArrayList;
diff --git a/forge-gui/src/main/java/forge/quest/bazaar/package-info.java b/forge-gui/src/main/java/forge/quest/bazaar/package-info.java
deleted file mode 100644
index 3721f2ec75f..00000000000
--- a/forge-gui/src/main/java/forge/quest/bazaar/package-info.java
+++ /dev/null
@@ -1,3 +0,0 @@
-/** Forge Card Game. */
-package forge.quest.bazaar;
-
diff --git a/forge-gui/src/main/java/forge/quest/data/package-info.java b/forge-gui/src/main/java/forge/quest/data/package-info.java
deleted file mode 100644
index d825a8d5923..00000000000
--- a/forge-gui/src/main/java/forge/quest/data/package-info.java
+++ /dev/null
@@ -1,3 +0,0 @@
-/** Forge Card Game. */
-package forge.quest.data;
-
diff --git a/forge-gui/src/main/java/forge/quest/io/package-info.java b/forge-gui/src/main/java/forge/quest/io/package-info.java
deleted file mode 100644
index b53092c935e..00000000000
--- a/forge-gui/src/main/java/forge/quest/io/package-info.java
+++ /dev/null
@@ -1,3 +0,0 @@
-/** Forge Card Game. */
-package forge.quest.io;
-
diff --git a/forge-gui/src/main/java/forge/quest/package-info.java b/forge-gui/src/main/java/forge/quest/package-info.java
deleted file mode 100644
index c56b40d7644..00000000000
--- a/forge-gui/src/main/java/forge/quest/package-info.java
+++ /dev/null
@@ -1,3 +0,0 @@
-/** Forge Card Game. */
-package forge.quest;
-