diff --git a/.gitattributes b/.gitattributes
index fc754566585..779fba4cf77 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -910,10 +910,12 @@ forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuDraft.java
forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuSealed.java -text
forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/VSubmenuWinston.java -text
forge-gui-desktop/src/main/java/forge/screens/home/sanctioned/package-info.java -text
+forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuAchievements.java -text
forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuAvatars.java -text
forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuDownloaders.java -text
forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java -text
forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuReleaseNotes.java -text
+forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java -text
forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAvatars.java -text
forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuDownloaders.java -text
forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java -text
diff --git a/forge-gui-desktop/src/main/java/forge/gui/framework/EDocID.java b/forge-gui-desktop/src/main/java/forge/gui/framework/EDocID.java
index f8371e0fff7..49ef5a3ecc5 100644
--- a/forge-gui-desktop/src/main/java/forge/gui/framework/EDocID.java
+++ b/forge-gui-desktop/src/main/java/forge/gui/framework/EDocID.java
@@ -13,6 +13,7 @@ import forge.screens.home.sanctioned.VSubmenuConstructed;
import forge.screens.home.sanctioned.VSubmenuDraft;
import forge.screens.home.sanctioned.VSubmenuSealed;
import forge.screens.home.sanctioned.VSubmenuWinston;
+import forge.screens.home.settings.VSubmenuAchievements;
import forge.screens.home.settings.VSubmenuAvatars;
import forge.screens.home.settings.VSubmenuDownloaders;
import forge.screens.home.settings.VSubmenuPreferences;
@@ -55,6 +56,7 @@ public enum EDocID { /** */
HOME_GAUNTLETQUICK (VSubmenuGauntletQuick.SINGLETON_INSTANCE), /** */
HOME_GAUNTLETCONTESTS (VSubmenuGauntletContests.SINGLETON_INSTANCE), /** */
HOME_PREFERENCES (VSubmenuPreferences.SINGLETON_INSTANCE), /** */
+ HOME_ACHIEVEMENTS (VSubmenuAchievements.SINGLETON_INSTANCE), /** */
HOME_AVATARS (VSubmenuAvatars.SINGLETON_INSTANCE), /** */
HOME_UTILITIES (VSubmenuDownloaders.SINGLETON_INSTANCE), /** */
HOME_CONSTRUCTED (VSubmenuConstructed.SINGLETON_INSTANCE), /** */
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/VHomeUI.java b/forge-gui-desktop/src/main/java/forge/screens/home/VHomeUI.java
index c8bd2f78525..a9e15cb43dc 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/VHomeUI.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/VHomeUI.java
@@ -31,6 +31,7 @@ import forge.screens.home.quest.*;
import forge.screens.home.sanctioned.VSubmenuConstructed;
import forge.screens.home.sanctioned.VSubmenuDraft;
import forge.screens.home.sanctioned.VSubmenuSealed;
+import forge.screens.home.settings.VSubmenuAchievements;
import forge.screens.home.settings.VSubmenuAvatars;
import forge.screens.home.settings.VSubmenuDownloaders;
import forge.screens.home.settings.VSubmenuPreferences;
@@ -130,6 +131,7 @@ public enum VHomeUI implements IVTopLevelUI {
allSubmenus.add(VSubmenuGauntletContests.SINGLETON_INSTANCE);
allSubmenus.add(VSubmenuPreferences.SINGLETON_INSTANCE);
+ allSubmenus.add(VSubmenuAchievements.SINGLETON_INSTANCE);
allSubmenus.add(VSubmenuAvatars.SINGLETON_INSTANCE);
allSubmenus.add(VSubmenuDownloaders.SINGLETON_INSTANCE);
allSubmenus.add(VSubmenuReleaseNotes.SINGLETON_INSTANCE);
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuAchievements.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuAchievements.java
new file mode 100644
index 00000000000..c02bdd2ef94
--- /dev/null
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuAchievements.java
@@ -0,0 +1,37 @@
+package forge.screens.home.settings;
+
+import forge.UiCommand;
+import forge.gui.framework.ICDoc;
+
+/**
+ * Controls the achievements submenu in the home UI.
+ *
+ *
(C at beginning of class name denotes a control class.)
+ *
+ */
+public enum CSubmenuAchievements implements ICDoc {
+ /** */
+ SINGLETON_INSTANCE;
+
+ /* (non-Javadoc)
+ * @see forge.control.home.IControlSubmenu#update()
+ */
+ @Override
+ public void initialize() {
+ }
+
+ /* (non-Javadoc)
+ * @see forge.control.home.IControlSubmenu#update()
+ */
+ @Override
+ public void update() {
+ }
+
+ /* (non-Javadoc)
+ * @see forge.gui.framework.ICDoc#getCommandOnSelect()
+ */
+ @Override
+ public UiCommand getCommandOnSelect() {
+ return null;
+ }
+}
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java
new file mode 100644
index 00000000000..b8d2e7c71b2
--- /dev/null
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuAchievements.java
@@ -0,0 +1,112 @@
+package forge.screens.home.settings;
+
+import forge.gui.framework.DragCell;
+import forge.gui.framework.DragTab;
+import forge.gui.framework.EDocID;
+import forge.screens.home.EMenuGroup;
+import forge.screens.home.IVSubmenu;
+import forge.screens.home.VHomeUI;
+import forge.toolbox.*;
+import net.miginfocom.swing.MigLayout;
+
+import javax.swing.*;
+
+/**
+ * Assembles Swing components of achievements submenu singleton.
+ *
+ *
(V at beginning of class name denotes a view class.)
+ */
+public enum VSubmenuAchievements implements IVSubmenu {
+ /** */
+ SINGLETON_INSTANCE;
+
+ // Fields used with interface IVDoc
+ private DragCell parentCell;
+ private final DragTab tab = new DragTab("Achievements");
+ private final JPanel pnlAchievements = new JPanel();
+ private final FScrollPane scrContent = new FScrollPane(pnlAchievements, false,
+ ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+
+ private VSubmenuAchievements() {
+ pnlAchievements.setOpaque(false);
+ pnlAchievements.setLayout(new MigLayout("insets 0, gap 0, wrap 2"));
+ }
+
+ /* (non-Javadoc)
+ * @see forge.view.home.IViewSubmenu#populate()
+ */
+ @Override
+ public void populate() {
+ VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().removeAll();
+
+ VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().setLayout(new MigLayout("insets 0, gap 0"));
+ VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().add(scrContent, "w 98%!, h 98%!, gap 1% 0 1% 0");
+
+ VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().repaintSelf();
+ VHomeUI.SINGLETON_INSTANCE.getPnlDisplay().revalidate();
+ }
+
+ /* (non-Javadoc)
+ * @see forge.view.home.IViewSubmenu#getGroup()
+ */
+ @Override
+ public EMenuGroup getGroupEnum() {
+ return EMenuGroup.SETTINGS;
+ }
+
+ /* (non-Javadoc)
+ * @see forge.gui.home.IVSubmenu#getMenuTitle()
+ */
+ @Override
+ public String getMenuTitle() {
+ return "Achievements";
+ }
+
+ /* (non-Javadoc)
+ * @see forge.gui.home.IVSubmenu#getItemEnum()
+ */
+ @Override
+ public EDocID getItemEnum() {
+ return EDocID.HOME_ACHIEVEMENTS;
+ }
+
+ /* (non-Javadoc)
+ * @see forge.gui.framework.IVDoc#getDocumentID()
+ */
+ @Override
+ public EDocID getDocumentID() {
+ return EDocID.HOME_ACHIEVEMENTS;
+ }
+
+ /* (non-Javadoc)
+ * @see forge.gui.framework.IVDoc#getTabLabel()
+ */
+ @Override
+ public DragTab getTabLabel() {
+ return tab;
+ }
+
+ /* (non-Javadoc)
+ * @see forge.gui.framework.IVDoc#getLayoutControl()
+ */
+ @Override
+ public CSubmenuAchievements getLayoutControl() {
+ return CSubmenuAchievements.SINGLETON_INSTANCE;
+ }
+
+ /* (non-Javadoc)
+ * @see forge.gui.framework.IVDoc#setParentCell(forge.gui.framework.DragCell)
+ */
+ @Override
+ public void setParentCell(DragCell cell0) {
+ this.parentCell = cell0;
+ }
+
+ /* (non-Javadoc)
+ * @see forge.gui.framework.IVDoc#getParentCell()
+ */
+ @Override
+ public DragCell getParentCell() {
+ return parentCell;
+ }
+}