diff --git a/Adventures in Lestoria/Adventures in Lestoria.vcxproj b/Adventures in Lestoria/Adventures in Lestoria.vcxproj
index a4d7d47e..0e142bd6 100644
--- a/Adventures in Lestoria/Adventures in Lestoria.vcxproj	
+++ b/Adventures in Lestoria/Adventures in Lestoria.vcxproj	
@@ -861,6 +861,10 @@
       <SubType>
       </SubType>
     </ClCompile>
+    <ClCompile Include="HubPauseMenu.cpp">
+      <SubType>
+      </SubType>
+    </ClCompile>
     <ClCompile Include="IBullet.cpp" />
     <ClCompile Include="BuyItemWindow.cpp">
       <SubType>
@@ -1022,6 +1026,10 @@
       <SubType>
       </SubType>
     </ClCompile>
+    <ClCompile Include="ItemHubLoadout.cpp">
+      <SubType>
+      </SubType>
+    </ClCompile>
     <ClCompile Include="ItemLoadoutWindow.cpp" />
     <ClCompile Include="ItemScript.cpp">
       <SubType>
diff --git a/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters b/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters
index a6d72859..e1a4b3ae 100644
--- a/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters	
+++ b/Adventures in Lestoria/Adventures in Lestoria.vcxproj.filters	
@@ -1292,6 +1292,12 @@
     <ClCompile Include="HomingBullet.cpp">
       <Filter>Source Files\Bullet Types</Filter>
     </ClCompile>
+    <ClCompile Include="HubPauseMenu.cpp">
+      <Filter>Source Files\Interface</Filter>
+    </ClCompile>
+    <ClCompile Include="ItemHubLoadout.cpp">
+      <Filter>Source Files\Interface</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <None Include="cpp.hint" />
diff --git a/Adventures in Lestoria/AdventuresInLestoria.cpp b/Adventures in Lestoria/AdventuresInLestoria.cpp
index 877efbb9..f65a3474 100644
--- a/Adventures in Lestoria/AdventuresInLestoria.cpp	
+++ b/Adventures in Lestoria/AdventuresInLestoria.cpp	
@@ -527,14 +527,15 @@ bool AiL::DownPressed(){
 }
 
 void AiL::HandleUserInput(float fElapsedTime){
-	if(!Menu::stack.empty()||GameState::STATE==GameState::states[States::DIALOG])return; //A window being opened means there's no user input allowed.
+	if(!Menu::stack.empty()||GameState::GetCurrentState()==States::DIALOG)return; //A window being opened means there's no user input allowed.
 	if(GetKey(SCROLL).bPressed)displayHud=!displayHud;
 
 	bool setIdleAnimation=true;
 	bool heldDownMovementKey=false; //Is true when a movement key has been held down.
 	
 	if(KEY_MENU.Released()){
-		Menu::OpenMenu(MenuType::PAUSE);
+		if(GameState::GetCurrentState()==States::GAME_HUB)Menu::OpenMenu(MenuType::HUB_PAUSE);
+		else Menu::OpenMenu(MenuType::PAUSE);
 	}
 	float animationSpd=0.f;
 	player->movementVelocity={};
@@ -3957,6 +3958,7 @@ void AiL::SetLoadoutItem(int slot,std::string itemName){
 				};
 				game->GetPlayer()->SetItem1UseFunc(itemAbility);
 				Component<MenuItemItemButton>(MenuType::ITEM_LOADOUT,"Loadout Item 1")->SetItem(loadout[slot]);
+				Component<MenuItemItemButton>(MenuType::ITEM_HUB_LOADOUT,"Loadout Item 1")->SetItem(loadout[slot]);
 			}break;
 			case 1:{
 				itemAbility.action=[&](Player*p,vf2d pos={}){
@@ -3964,6 +3966,7 @@ void AiL::SetLoadoutItem(int slot,std::string itemName){
 				};
 				game->GetPlayer()->SetItem2UseFunc(itemAbility);
 				Component<MenuItemItemButton>(MenuType::ITEM_LOADOUT,"Loadout Item 2")->SetItem(loadout[slot]);
+				Component<MenuItemItemButton>(MenuType::ITEM_HUB_LOADOUT,"Loadout Item 2")->SetItem(loadout[slot]);
 			}break;
 			case 2:{
 				itemAbility.action=[&](Player*p,vf2d pos={}){
@@ -3971,6 +3974,7 @@ void AiL::SetLoadoutItem(int slot,std::string itemName){
 				};
 				game->GetPlayer()->SetItem3UseFunc(itemAbility);
 				Component<MenuItemItemButton>(MenuType::ITEM_LOADOUT,"Loadout Item 3")->SetItem(loadout[slot]);
+				Component<MenuItemItemButton>(MenuType::ITEM_HUB_LOADOUT,"Loadout Item 3")->SetItem(loadout[slot]);
 			}break;
 		}
 
@@ -4032,6 +4036,9 @@ void AiL::ClearLoadoutItem(int slot){
 			game->GetPlayer()->SetItem1UseFunc(itemAbility);
 			Component<MenuItemItemButton>(MenuType::ITEM_LOADOUT,"Loadout Item 1")->SetItem(Item::BLANK);
 			Component<MenuItemItemButton>(MenuType::ITEM_LOADOUT,"Loadout Item 1")->UpdateIcon();
+			
+			Component<MenuItemItemButton>(MenuType::ITEM_HUB_LOADOUT,"Loadout Item 1")->SetItem(Item::BLANK);
+			Component<MenuItemItemButton>(MenuType::ITEM_HUB_LOADOUT,"Loadout Item 1")->UpdateIcon();
 		}break;
 		case 1:{
 			itemAbility.action=[&](Player*p,vf2d pos={}){
@@ -4040,6 +4047,10 @@ void AiL::ClearLoadoutItem(int slot){
 			game->GetPlayer()->SetItem2UseFunc(itemAbility);
 			Component<MenuItemItemButton>(MenuType::ITEM_LOADOUT,"Loadout Item 2")->SetItem(Item::BLANK);
 			Component<MenuItemItemButton>(MenuType::ITEM_LOADOUT,"Loadout Item 2")->UpdateIcon();
+
+			Component<MenuItemItemButton>(MenuType::ITEM_HUB_LOADOUT,"Loadout Item 2")->SetItem(Item::BLANK);
+			Component<MenuItemItemButton>(MenuType::ITEM_HUB_LOADOUT,"Loadout Item 2")->UpdateIcon();
+
 		}break;
 		case 2:{
 			itemAbility.action=[&](Player*p,vf2d pos={}){
@@ -4048,6 +4059,10 @@ void AiL::ClearLoadoutItem(int slot){
 			game->GetPlayer()->SetItem3UseFunc(itemAbility);
 			Component<MenuItemItemButton>(MenuType::ITEM_LOADOUT,"Loadout Item 3")->SetItem(Item::BLANK);
 			Component<MenuItemItemButton>(MenuType::ITEM_LOADOUT,"Loadout Item 3")->UpdateIcon();
+
+			Component<MenuItemItemButton>(MenuType::ITEM_HUB_LOADOUT,"Loadout Item 3")->SetItem(Item::BLANK);
+			Component<MenuItemItemButton>(MenuType::ITEM_HUB_LOADOUT,"Loadout Item 3")->UpdateIcon();
+
 		}break;
 	}
 }
@@ -4094,7 +4109,7 @@ bool AiL::GamePaused(){
 	return 
 		fadeOutDuration>0
 		||disableFadeIn
-		||Menu::IsMenuOpen()&&Menu::stack.front()==Menu::menus[MenuType::PAUSE]/*The pause menu would be the only thing open and would be the menu in front.*/
+		||Menu::IsMenuOpen()&&(Menu::stack.front()==Menu::menus[MenuType::PAUSE]||Menu::stack.front()==Menu::menus[MenuType::HUB_PAUSE])/*The pause menu would be the only thing open and would be the menu in front.*/
 		||LoadingScreen::loading;
 }
 
diff --git a/Adventures in Lestoria/DamageNumber.cpp b/Adventures in Lestoria/DamageNumber.cpp
index 8840c26e..8b63a2f2 100644
--- a/Adventures in Lestoria/DamageNumber.cpp	
+++ b/Adventures in Lestoria/DamageNumber.cpp	
@@ -143,8 +143,18 @@ void DamageNumber::Draw(){
 
 float DamageNumber::GetOriginalRiseSpd(){
 	float riseSpd{20.f};
-	if(type==INTERRUPT||type==MANA_GAIN||type==HEALTH_GAIN)riseSpd=40.f;
-	if(type==DOT)riseSpd=-10.f;
+	switch(type){
+		case INTERRUPT:
+		case HEALTH_GAIN:{
+			riseSpd=40.f;
+		}break;
+		case MANA_GAIN:{
+			riseSpd=-20.f;
+		}break;
+		case DOT:{
+			riseSpd=-10.f;
+		}break;
+	}
 	return riseSpd;
 }
 
diff --git a/Adventures in Lestoria/HubPauseMenu.cpp b/Adventures in Lestoria/HubPauseMenu.cpp
new file mode 100644
index 00000000..4384b018
--- /dev/null
+++ b/Adventures in Lestoria/HubPauseMenu.cpp	
@@ -0,0 +1,130 @@
+#pragma region License
+/*
+License (OLC-3)
+~~~~~~~~~~~~~~~
+
+Copyright 2024 Joshua Sigona <sigonasr2@gmail.com>
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions or derivations of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+2. Redistributions or derivative works in binary form must reproduce the above
+copyright notice. This list of conditions and the following	disclaimer must be
+reproduced in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may
+be used to endorse or promote products derived from this software without specific
+prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS	"AS IS" AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL THE COPYRIGHT	HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL,	SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+Portions of this software are copyright � 2024 The FreeType
+Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
+All rights reserved.
+*/
+#pragma endregion
+
+#include "Menu.h"
+#include "MenuComponent.h"
+#include "GameState.h"
+#include "MenuLabel.h"
+#include "AdventuresInLestoria.h"
+#include "CharacterRotatingDisplay.h"
+#include "ClassInfo.h"
+#include "Unlock.h"
+
+INCLUDE_game
+INCLUDE_GFX
+
+void Menu::InitializeHubPauseWindow(){
+	Menu*hubPauseWindow=CreateMenu(MenuType::HUB_PAUSE,CENTERED,vi2d{96,168});
+
+	hubPauseWindow->ADD("Resume Button",MenuComponent)(geom2d::rect<float>{{6.f,0.f},{84.f,24.f}},"Resume",[](MenuFuncData data){void ClearGarbage();
+		game->ClearGarbage();
+		Menu::CloseMenu();
+		return true;
+	},ButtonAttr::FIT_TO_LABEL)END;
+	hubPauseWindow->ADD("Character Button",MenuComponent)(geom2d::rect<float>{{6.f,28.f},{84.f,24.f}},"Character",[](MenuFuncData data){
+		Component<CharacterRotatingDisplay>(CHARACTER_MENU,"Character Rotating Display")->SetIcon(GFX[classutils::GetClassInfo(game->GetPlayer()->GetClassName()).classFullImgName].Decal());
+		Component<MenuComponent>(CHARACTER_MENU,"Equip Selection Select Button")->Click();
+		Menu::OpenMenu(CHARACTER_MENU);
+		return true;
+	},ButtonAttr::FIT_TO_LABEL)END;
+	hubPauseWindow->ADD("Change Loadout Button",MenuComponent)(geom2d::rect<float>{{6.f,56.f},{84.f,24.f}},"Change\nLoadout",[](MenuFuncData data){
+		Menu::OpenMenu(ITEM_HUB_LOADOUT);
+		return true;
+	},ButtonAttr::FIT_TO_LABEL)END;
+	hubPauseWindow->ADD("Inventory Button",MenuComponent)(geom2d::rect<float>{{6.f,84.f},{84.f,24.f}},"Inventory",[](MenuFuncData data){
+		Menu::OpenMenu(INVENTORY);
+		return true;
+	},ButtonAttr::FIT_TO_LABEL)END;
+	hubPauseWindow->ADD("Settings Button",MenuComponent)(geom2d::rect<float>{{6.f,112.f},{84.f,24.f}},"Settings",[](MenuFuncData data){
+		Menu::OpenMenu(SETTINGS);
+		return true;
+	},ButtonAttr::FIT_TO_LABEL)END;
+	hubPauseWindow->ADD("Return to Camp Button",MenuComponent)(geom2d::rect<float>{{6.f,140.f},{84.f,24.f}},"Leave Area",[](MenuFuncData data){
+		Component<MenuLabel>(LEVEL_COMPLETE,"Stage Complete Label")->SetLabel("Stage Summary");
+		Component<MenuComponent>(LEVEL_COMPLETE,"Level Details Outline")->SetLabel("");
+
+		if(game->GetCurrentMapName()=="HUB"&&game->PreviousStageCompleted())Unlock::UnlockCurrentMap(); //Special unlock for the hub area when leaving.
+
+		if(Unlock::IsUnlocked("STORY_1_1")){
+			Component<MenuComponent>(LEVEL_COMPLETE,"Next Button")->Enable();
+		}else{
+			Component<MenuComponent>(LEVEL_COMPLETE,"Next Button")->Disable();
+		}
+		if(GameState::STATE==GameState::states[States::GAME_HUB]){
+			GameState::ChangeState(States::OVERWORLD_MAP,0.4f);
+		}else{
+			GameState::ChangeState(States::LEVEL_COMPLETE,0.4f);
+		}
+		return true;
+	},ButtonAttr::FIT_TO_LABEL)END;
+
+	hubPauseWindow->SetupKeyboardNavigation(
+	[](MenuType type,Data&returnData){ //On Open
+		returnData="Resume Button";
+	},
+	{ //Button Key
+		{game->KEY_SCROLL,{"Navigate",[](MenuType type){}}},
+		{game->KEY_BACK,{"Resume",[](MenuType type){
+			Component<MenuComponent>(type,"Resume Button")->Click();
+		}}},
+		{game->KEY_MENU,{"Resume",[](MenuType type){
+			Component<MenuComponent>(type,"Resume Button")->Click();
+		}}},
+		{game->KEY_CONFIRM,{"Select",[](MenuType type){}}},
+	}
+	,{ //Button Navigation Rules
+		{"Resume Button",{
+			.up="Return to Camp Button",
+			.down="Character Button",}},
+		{"Character Button",{
+			.up="Resume Button",
+			.down="Change Loadout Button",}},
+		{"Change Loadout Button",{
+			.up="Character Button",
+			.down="Inventory Button",}},
+		{"Inventory Button",{
+			.up="Change Loadout Button",
+			.down="Settings Button",}},
+		{"Settings Button",{
+			.up="Inventory Button",
+			.down="Return to Camp Button",}},
+		{"Return to Camp Button",{
+			.up="Settings Button",
+			.down="Resume Button",}},
+	});
+}
\ No newline at end of file
diff --git a/Adventures in Lestoria/ItemHubLoadout.cpp b/Adventures in Lestoria/ItemHubLoadout.cpp
new file mode 100644
index 00000000..b9cce2af
--- /dev/null
+++ b/Adventures in Lestoria/ItemHubLoadout.cpp	
@@ -0,0 +1,148 @@
+#pragma region License
+/*
+License (OLC-3)
+~~~~~~~~~~~~~~~
+
+Copyright 2024 Joshua Sigona <sigonasr2@gmail.com>
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions or derivations of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+2. Redistributions or derivative works in binary form must reproduce the above
+copyright notice. This list of conditions and the following	disclaimer must be
+reproduced in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may
+be used to endorse or promote products derived from this software without specific
+prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS	"AS IS" AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL THE COPYRIGHT	HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL,	SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT	(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+Portions of this software are copyright � 2024 The FreeType
+Project (www.freetype.org). Please see LICENSE_FT.txt for more information.
+All rights reserved.
+*/
+#pragma endregion
+#include "AdventuresInLestoria.h"
+#include "DEFINES.h"
+#include "Menu.h"
+#include "MenuLabel.h"
+#include "MenuItemLoadoutButton.h"
+#include "State_OverworldMap.h"
+
+INCLUDE_game
+using A=Attribute;
+
+void Menu::InitializeItemHubLoadoutWindow(){
+	Menu*itemHubLoadoutWindow=CreateMenu(ITEM_HUB_LOADOUT,CENTERED,game->GetScreenSize()-vi2d{4,4});
+
+	float itemLoadoutWindowWidth=(game->GetScreenSize().x-5.f);
+
+	itemHubLoadoutWindow->ADD("Loadout Label",MenuLabel)(geom2d::rect<float>{{0,24},{itemLoadoutWindowWidth,24}},"Setup Item Loadout",2,ComponentAttr::SHADOW|ComponentAttr::BACKGROUND|ComponentAttr::OUTLINE)END;
+	
+	itemHubLoadoutWindow->ADD("Loadout Description Label",MenuLabel)(geom2d::rect<float>{{0,58},{itemLoadoutWindowWidth,24}},"Bring up to 3 items with you.",1,ComponentAttr::SHADOW)END;
+
+	float buttonBorderPadding=64;
+
+	itemHubLoadoutWindow->ADD("Loadout Item 1",MenuItemLoadoutButton)(geom2d::rect<float>{{64,90},{48,48}},0,[](MenuFuncData data){
+		Menu::menus.at(INVENTORY_CONSUMABLES)->I(A::LOADOUT_SLOT)=0; 
+		Menu::OpenMenu(INVENTORY_CONSUMABLES);
+		return true;
+	},[](MenuFuncData data){
+		std::weak_ptr<MenuItemLoadoutButton>loadoutButton=DYNAMIC_POINTER_CAST<MenuItemLoadoutButton>(data.component);
+		if(!ISBLANK(loadoutButton.lock()->GetItem())){
+			Component<MenuLabel>(ITEM_HUB_LOADOUT,"Item Name Label")->SetLabel(loadoutButton.lock()->GetItem().lock()->DisplayName());
+			Component<MenuLabel>(ITEM_HUB_LOADOUT,"Item Description")->SetLabel(loadoutButton.lock()->GetItem().lock()->Description());
+		}
+		return true;
+	},[](MenuFuncData data){
+		Component<MenuLabel>(ITEM_HUB_LOADOUT,"Item Name Label")->SetLabel("");
+		Component<MenuLabel>(ITEM_HUB_LOADOUT,"Item Description")->SetLabel("");
+		return true;
+	})END
+		->SetIconScale({2.f,2.f});
+	itemHubLoadoutWindow->ADD("Loadout Item 2",MenuItemLoadoutButton)(geom2d::rect<float>{{itemLoadoutWindowWidth/2-24,90},{48,48}},1,[](MenuFuncData data){
+		Menu::menus.at(INVENTORY_CONSUMABLES)->I(A::LOADOUT_SLOT)=1;
+		Menu::OpenMenu(INVENTORY_CONSUMABLES);
+		return true;
+	},[](MenuFuncData data){
+		std::weak_ptr<MenuItemLoadoutButton>loadoutButton=DYNAMIC_POINTER_CAST<MenuItemLoadoutButton>(data.component);
+		if(!ISBLANK(loadoutButton.lock()->GetItem())){
+			Component<MenuLabel>(ITEM_HUB_LOADOUT,"Item Name Label")->SetLabel(loadoutButton.lock()->GetItem().lock()->DisplayName());
+			Component<MenuLabel>(ITEM_HUB_LOADOUT,"Item Description")->SetLabel(loadoutButton.lock()->GetItem().lock()->Description());
+		}
+		return true;
+	},[](MenuFuncData data){
+		Component<MenuLabel>(ITEM_HUB_LOADOUT,"Item Name Label")->SetLabel("");
+		Component<MenuLabel>(ITEM_HUB_LOADOUT,"Item Description")->SetLabel("");
+		return true;
+	})END
+		->SetIconScale({2.f,2.f});
+	itemHubLoadoutWindow->ADD("Loadout Item 3",MenuItemLoadoutButton)(geom2d::rect<float>{{itemLoadoutWindowWidth-48-64,90},{48,48}},2,[](MenuFuncData data){
+		Menu::menus.at(INVENTORY_CONSUMABLES)->I(A::LOADOUT_SLOT)=2;
+		Menu::OpenMenu(INVENTORY_CONSUMABLES);
+		return true;
+	},[](MenuFuncData data){
+		std::weak_ptr<MenuItemLoadoutButton>loadoutButton=DYNAMIC_POINTER_CAST<MenuItemLoadoutButton>(data.component);
+		if(!ISBLANK(loadoutButton.lock()->GetItem())){
+			Component<MenuLabel>(ITEM_HUB_LOADOUT,"Item Name Label")->SetLabel(loadoutButton.lock()->GetItem().lock()->DisplayName());
+			Component<MenuLabel>(ITEM_HUB_LOADOUT,"Item Description")->SetLabel(loadoutButton.lock()->GetItem().lock()->Description());
+		}
+		return true;
+	},[](MenuFuncData data){
+		Component<MenuLabel>(ITEM_HUB_LOADOUT,"Item Name Label")->SetLabel("");
+		Component<MenuLabel>(ITEM_HUB_LOADOUT,"Item Description")->SetLabel("");
+		return true;
+	})END
+		->SetIconScale({2.f,2.f});
+
+	itemHubLoadoutWindow->ADD("Item Name Label",MenuLabel)(geom2d::rect<float>{{0,146},{itemLoadoutWindowWidth,12}},"",1,ComponentAttr::SHADOW)END;
+	itemHubLoadoutWindow->ADD("Item Description",MenuLabel)(geom2d::rect<float>{{0,158},{itemLoadoutWindowWidth,24}},"",1,ComponentAttr::SHADOW)END;
+
+	itemHubLoadoutWindow->ADD("Back Button",MenuComponent)(geom2d::rect<float>{{itemLoadoutWindowWidth/2-32,202},{64,16}},"Back",[](MenuFuncData data){Menu::CloseMenu();return true;})END;
+
+	itemHubLoadoutWindow->SetupKeyboardNavigation(
+	[](MenuType type,Data&returnData){ //On Open
+		returnData="Loadout Item 1";
+	},
+	{ //Button Key
+		{game->KEY_BACK,{"Back",[](MenuType type){
+			Component<MenuComponent>(type,"Back Button")->Click();
+		}}},
+		{game->KEY_CONFIRM,{"Select",[](MenuType type){}}},
+	}
+	,{ //Button Navigation Rules
+		{"Loadout Item 1",{
+			.up="Back Button",
+			.down="Back Button",
+			.left="Loadout Item 3",
+			.right="Loadout Item 2",}},
+		{"Loadout Item 2",{
+			.up="Back Button",
+			.down="Back Button",
+			.left="Loadout Item 1",
+			.right="Loadout Item 3",}},
+		{"Loadout Item 3",{
+			.up="Back Button",
+			.down="Back Button",
+			.left="Loadout Item 2",
+			.right="Loadout Item 1",}},
+		{"Back Button",{
+			.up="Loadout Item 1",
+			.down="Loadout Item 1",
+			.left="Back Button",
+			.right="Back Button",}},
+	});
+}
\ No newline at end of file
diff --git a/Adventures in Lestoria/Menu.cpp b/Adventures in Lestoria/Menu.cpp
index 1577f77c..4c585e83 100644
--- a/Adventures in Lestoria/Menu.cpp	
+++ b/Adventures in Lestoria/Menu.cpp	
@@ -124,6 +124,8 @@ void Menu::InitializeMenus(){
 	InitializeArtificerDisassembleWindow();
 	InitializeArtificerEnchantWindow();
 	InitializeArtificerEnchantConfirmWindow();
+	InitializeHubPauseWindow();
+	InitializeItemHubLoadoutWindow();
 
 	for(MenuType type=MenuType(int(MenuType::ENUM_START)+1);type<MenuType::ENUM_END;type=MenuType(int(type+1))){
 		if(menus.count(type)==0){
diff --git a/Adventures in Lestoria/Menu.h b/Adventures in Lestoria/Menu.h
index f0762952..802628b0 100644
--- a/Adventures in Lestoria/Menu.h	
+++ b/Adventures in Lestoria/Menu.h	
@@ -117,6 +117,8 @@ class Menu:public IAttributable{
 	static void InitializeArtificerDisassembleWindow();
 	static void InitializeArtificerEnchantWindow();
 	static void InitializeArtificerEnchantConfirmWindow();
+    static void InitializeHubPauseWindow();
+    static void InitializeItemHubLoadoutWindow();
 
     friend class AiL;
     friend class ItemInfo;
diff --git a/Adventures in Lestoria/MenuType.h b/Adventures in Lestoria/MenuType.h
index d4e38411..c3231621 100644
--- a/Adventures in Lestoria/MenuType.h	
+++ b/Adventures in Lestoria/MenuType.h	
@@ -75,6 +75,8 @@ enum MenuType{
     ARTIFICER_DISASSEMBLE, //100% Controller Compatibility 
     ARTIFICER_ENCHANT, //100% Controller Compatibility 
     ARTIFICER_ENCHANT_CONFIRM, //100% Controller Compatibility 
+    HUB_PAUSE, //100% Controller Compatibility
+    ITEM_HUB_LOADOUT, //100% Controller Compatibility
     ///////////////////////////////////////////////////////////
     /*DO NOT REMOVE!!*/ENUM_END////////////////////////////////
     ///////////////////////////////////////////////////////////
diff --git a/Adventures in Lestoria/Version.h b/Adventures in Lestoria/Version.h
index a70a5923..4ae2582e 100644
--- a/Adventures in Lestoria/Version.h	
+++ b/Adventures in Lestoria/Version.h	
@@ -39,7 +39,7 @@ All rights reserved.
 #define VERSION_MAJOR 1
 #define VERSION_MINOR 3
 #define VERSION_PATCH 0
-#define VERSION_BUILD 11928
+#define VERSION_BUILD 11935
 
 #define stringify(a) stringify_(a)
 #define stringify_(a) #a
diff --git a/x64/Release/Adventures in Lestoria.exe b/x64/Release/Adventures in Lestoria.exe
index 7545efb9..043d6031 100644
Binary files a/x64/Release/Adventures in Lestoria.exe and b/x64/Release/Adventures in Lestoria.exe differ