diff --git a/.godot/editor/create_recent.Node b/.godot/editor/create_recent.Node
index dab04a2dcd0382458aae92cb380e91648a93783e..25249fabde26a5c30ffd013cb7c0d30a24ab1367 100644
--- a/.godot/editor/create_recent.Node
+++ b/.godot/editor/create_recent.Node
@@ -1,8 +1,8 @@
+Label
 Button
 Control
 HBoxContainer
 Node
-Label
 CanvasLayer
 Camera2D
 Timer
diff --git a/.godot/editor/editor_layout.cfg b/.godot/editor/editor_layout.cfg
index efad65994738b084eacc081a3843fc22582f062b..461ed2d2ec2dadbe45409af94837d54ee77ec834 100644
--- a/.godot/editor/editor_layout.cfg
+++ b/.godot/editor/editor_layout.cfg
@@ -2,7 +2,7 @@
 
 dock_3_selected_tab_idx=0
 dock_4_selected_tab_idx=0
-dock_5_selected_tab_idx=0
+dock_5_selected_tab_idx=1
 dock_floating={}
 dock_bottom=[]
 dock_closed=[]
@@ -28,15 +28,16 @@ dock_5="Inspector,Node,History"
 [EditorNode]
 
 open_scenes=PackedStringArray("res://main.tscn", "res://scenes/Shop.tscn", "res://scenes/game.tscn", "res://scenes/ui/ui.tscn", "res://scenes/managers/state_manager.tscn", "res://scenes/screens/title_screen.tscn", "res://scenes/screens/select_piece_screen.tscn")
-current_scene="res://scenes/game.tscn"
+current_scene="res://scenes/ui/ui.tscn"
 center_split_offset=-241
 selected_default_debugger_tab_idx=0
 selected_main_editor_idx=2
+selected_bottom_panel_item=0
 
 [ScriptEditor]
 
 open_scripts=["res://scripts/ui/display_piece_manager.gd", "res://scripts/game.gd", "res://scripts/ui/game_ui.gd", "res://scripts/King.gd", "res://scripts/Mage.gd", "res://scripts/main/main.gd", "res://scripts/Pawn.gd", "res://scripts/run_data/run_data.gd", "res://scripts/managers/scene_manager.gd", "res://scripts/screens/select_piece_screen.gd", "res://scripts/Shop.gd", "res://scripts/shop_item.gd", "res://scripts/managers/state_manager.gd", "res://scripts/screens/title_screen.gd"]
-selected_script="res://scripts/game.gd"
+selected_script="res://scripts/ui/game_ui.gd"
 open_help=["String"]
 script_split_offset=70
 list_split_offset=0
diff --git a/.godot/editor/filesystem_update4 b/.godot/editor/filesystem_update4
index af595287b3d543b86f09432daa921849a891fca2..e8bd63fd384bd95b6c05b87ebad06a727df06490 100644
--- a/.godot/editor/filesystem_update4
+++ b/.godot/editor/filesystem_update4
@@ -14,3 +14,5 @@ res://main.tscn
 res://scenes/Shop.tscn
 res://scenes/managers/state_manager.tscn
 res://scripts/ui/game_ui.gd
+res://scripts/run_data/run_data.gd
+res://scripts/managers/state_manager.gd
diff --git a/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg b/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg
index cadb5021d38dd40b19d02efa35eb913bd7e88841..2c7b1e74f37c48c4b7cc60bdb9cc486676953e1e 100644
--- a/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg
+++ b/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg
@@ -8,7 +8,7 @@ Anim={
 "grid_snap_active": false,
 "grid_step": Vector2(8, 8),
 "grid_visibility": 1,
-"ofs": Vector2(-379.813, -116.439),
+"ofs": Vector2(-141.408, -29.9846),
 "primary_grid_step": Vector2i(8, 8),
 "show_group_gizmos": true,
 "show_guides": true,
@@ -34,7 +34,7 @@ Anim={
 "snap_rotation_step": 0.261799,
 "snap_scale": false,
 "snap_scale_step": 0.1,
-"zoom": 0.629961
+"zoom": 0.793701
 }
 3D={
 "fov": 70.01,
@@ -175,4 +175,4 @@ Anim={
 "zfar": 4000.01,
 "znear": 0.05
 }
-selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/Game")])
+selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/UI/GoldDisplay")])
diff --git a/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg b/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg
index c74d2ef9258cb8399318e8de190e9e8918470cc1..07cfab693d5e7f555cd205d58148529c48f55cdc 100644
--- a/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg
+++ b/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg
@@ -1,5 +1,5 @@
 [folding]
 
-node_unfolds=[NodePath("."), PackedStringArray("opponent_shader", "Editor Description"), NodePath("ShadowContainer"), PackedStringArray("Ordering"), NodePath("TileContainer"), PackedStringArray("Transform", "Ordering"), NodePath("PieceContainer"), PackedStringArray("Ordering", "Process", "Texture"), NodePath("Background"), PackedStringArray("Layout", "material", "Ordering", "Layout/Transform", "Layout/Grow Direction", "Layout/Container Sizing", "Layout/Anchor Points", "Layout/Anchor Offsets", "Texture"), NodePath("Explosion"), PackedStringArray("Ordering", "Transform", "Scale", "Time"), NodePath("PlayerPieces"), PackedStringArray("Transform"), NodePath("OpponentPieces"), PackedStringArray("Visibility", "Transform"), NodePath("GoldDisplay"), PackedStringArray("Theme Overrides", "Theme Overrides/fonts", "Theme Overrides/font_sizes")]
+node_unfolds=[NodePath("."), PackedStringArray("opponent_shader", "Editor Description"), NodePath("ShadowContainer"), PackedStringArray("Ordering"), NodePath("TileContainer"), PackedStringArray("Transform", "Ordering"), NodePath("PieceContainer"), PackedStringArray("Ordering", "Process", "Texture"), NodePath("Background"), PackedStringArray("Layout", "material", "Ordering", "Layout/Transform", "Layout/Grow Direction", "Layout/Container Sizing", "Layout/Anchor Points", "Layout/Anchor Offsets", "Texture"), NodePath("Explosion"), PackedStringArray("Ordering", "Transform", "Scale", "Time"), NodePath("PlayerPieces"), PackedStringArray("Transform"), NodePath("OpponentPieces"), PackedStringArray("Visibility", "Transform")]
 resource_unfolds=["res://scenes/game.tscn::ShaderMaterial_gdbwp", PackedStringArray("Shader Parameters", "Resource")]
 nodes_folded=[]
diff --git a/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg b/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg
index d3c311229998d01171ec6537a17527e44c1df6c2..d0ed9a5b85fba2c5720404459a196acbdbf38337 100644
--- a/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg
+++ b/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg
@@ -175,4 +175,4 @@ Anim={
 "zfar": 4000.01,
 "znear": 0.05
 }
-selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/Game")])
+selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/UI/GoldDisplay")])
diff --git a/.godot/editor/project_metadata.cfg b/.godot/editor/project_metadata.cfg
index 2b38bce60be6e25371ece44035b6f207c7d64250..e9d73e4a29aeee079ca33c737e9ec48a5fcc76ec 100644
--- a/.godot/editor/project_metadata.cfg
+++ b/.godot/editor/project_metadata.cfg
@@ -2,6 +2,7 @@
 
 <<<<<<<HEADexecutable_path="D:/SteamLibrary/steamapps/common/Godot Engine/godot.windows.opt.tools.64.exe"
 executable_path="D:/SteamLibrary/steamapps/common/Godot Engine/godot.windows.opt.tools.64.exe"
+use_advanced_connections=false
 
 [recent_files]
 
@@ -10,7 +11,7 @@ scripts=["String", "res://scripts/screens/title_screen.gd", "res://scripts/ui/di
 
 [dialog_bounds]
 
-create_new_node=Rect2(1264, 190, 1616, 1130)
+create_new_node=Rect2(2194, 121, 1304, 769)
 
 [script_setup]
 
diff --git a/.godot/editor/script_editor_cache.cfg b/.godot/editor/script_editor_cache.cfg
index 3775489fb59302ce57b253078609cd2397a4a55d..2664e837b2220f66259b83a01a4c8f567ded939e 100644
--- a/.godot/editor/script_editor_cache.cfg
+++ b/.godot/editor/script_editor_cache.cfg
@@ -31,11 +31,11 @@ state={
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 39,
+"column": 35,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 297,
-"scroll_position": 279.0,
+"row": 360,
+"scroll_position": 12.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
 }
@@ -59,11 +59,11 @@ state={
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 14,
+"column": 27,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 48,
-"scroll_position": 33.0,
+"row": 50,
+"scroll_position": 30.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
 }
@@ -73,10 +73,10 @@ state={
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 18,
+"column": 14,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 14,
+"row": 112,
 "scroll_position": 0.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
@@ -133,11 +133,11 @@ state={
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 0,
+"column": 38,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 19,
-"scroll_position": 0.0,
+"row": 26,
+"scroll_position": 3.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
 }
@@ -147,10 +147,10 @@ state={
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 1,
+"column": 38,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 9,
+"row": 21,
 "scroll_position": 0.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
@@ -175,11 +175,11 @@ state={
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 0,
+"column": 29,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 62,
-"scroll_position": 39.0,
+"row": 64,
+"scroll_position": 43.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
 }
diff --git a/scenes/game.tscn b/scenes/game.tscn
index 915b17ea65b980f0562b87037e36fdb84024cdc7..70b55e6b949d06bf39e922b6990a3ee6175da8a0 100644
--- a/scenes/game.tscn
+++ b/scenes/game.tscn
@@ -78,17 +78,6 @@ size_flags_vertical = 0
 text = "Shop Toggle
 "
 
-[node name="GoldDisplay" type="Label" parent="."]
-anchors_preset = 1
-anchor_left = 1.0
-anchor_right = 1.0
-offset_left = -125.0
-offset_top = 36.0
-offset_right = -2.0
-offset_bottom = 103.0
-grow_horizontal = 0
-theme_override_font_sizes/font_size = 26
-
 [node name="StateManager" parent="." instance=ExtResource("6_7nmsy")]
 
 [node name="UI" parent="." instance=ExtResource("6_m4s5t")]
diff --git a/scenes/ui/ui.tscn b/scenes/ui/ui.tscn
index 30724a9e53746769c95176cb9263ba759d6b126c..29bd40777d71eab0c28b486723518a5b1d891f70 100644
--- a/scenes/ui/ui.tscn
+++ b/scenes/ui/ui.tscn
@@ -20,7 +20,7 @@ layout_mode = 0
 offset_right = 40.0
 offset_bottom = 40.0
 
-[node name="Button" type="Button" parent="DisplayPieceManager"]
+[node name="ConfirmButton" type="Button" parent="DisplayPieceManager"]
 layout_mode = 0
 offset_left = 207.0
 offset_top = -176.0
@@ -35,3 +35,11 @@ offset_bottom = 23.0
 theme_override_font_sizes/font_size = 28
 text = "Gold: 0
 "
+
+[node name="StateLabel" type="Label" parent="."]
+offset_left = 270.0
+offset_right = 310.0
+offset_bottom = 39.0833
+theme_override_font_sizes/font_size = 28
+
+[connection signal="pressed" from="DisplayPieceManager/ConfirmButton" to="." method="_on_confirm_pressed"]
diff --git a/scripts/game.gd b/scripts/game.gd
index 2afcc496547d15fe71f835ba8c4d6c79161407ed..fea54188ebf7b4f5355e3579e70aa6a3342ee451 100644
--- a/scripts/game.gd
+++ b/scripts/game.gd
@@ -355,7 +355,10 @@ func place_new_piece(x: int, y: int, piece_name: String) -> void:
 			board[x][y] = new_piece
 			piece_container.add_child(new_piece)
 			
+			
+			piece_selector.delete_button()
 			piece_selector.clear_selection()
+			RunData.remove_piece(piece_name)
 
 func is_opponent(x,y):
 	if board[x][y] == null:
diff --git a/scripts/managers/state_manager.gd b/scripts/managers/state_manager.gd
index c00ab9ed3e3998a18ae10424d6c9912934b2047b..2a5a754cb4836300adef0925be9d12d444239ac9 100644
--- a/scripts/managers/state_manager.gd
+++ b/scripts/managers/state_manager.gd
@@ -17,3 +17,6 @@ func change_state(new_state: GameState) -> void:
 	
 func get_current_state() -> GameState:
 	return current_state
+
+func get_state_as_string() -> String:
+	return GameState.keys()[current_state]
diff --git a/scripts/run_data/run_data.gd b/scripts/run_data/run_data.gd
index 49ae23e6a4882455642fe709615ff7c08eb8ac09..2ee26069aef57324b9150d1de57bded40c93955d 100644
--- a/scripts/run_data/run_data.gd
+++ b/scripts/run_data/run_data.gd
@@ -45,5 +45,12 @@ func add_piece(piece: String) -> void:
 	print(piece)
 	print(pieces)
 	
+func remove_piece(piece: String) -> void:
+	pieces.erase(piece)
+	
 func get_pieces() -> Array:
 	return pieces
+
+# DEBUGGING function
+func print_pieces() -> void:
+	print(pieces)
diff --git a/scripts/ui/display_piece_manager.gd b/scripts/ui/display_piece_manager.gd
index e84c6bcfb3ccae1268d0d19d4e41a6f3d3f1caa9..ad87c57e92d37475be6224a247026a7d01630ead 100644
--- a/scripts/ui/display_piece_manager.gd
+++ b/scripts/ui/display_piece_manager.gd
@@ -60,3 +60,6 @@ func clear_selection() -> void:
 		selected_button.modulate = Color(1, 1, 1)
 	selected_button = null
 	selected_piece = ""
+	
+func delete_button() -> void:
+	selected_button.queue_free()
diff --git a/scripts/ui/game_ui.gd b/scripts/ui/game_ui.gd
index 2435ad4803033bfc2e806ed483415ce033ff72d9..048d5a424a769fe946341c98a715ae2bfcab75b9 100644
--- a/scripts/ui/game_ui.gd
+++ b/scripts/ui/game_ui.gd
@@ -5,6 +5,7 @@ class_name GameUI
 
 @onready var display_piece_manager: Control = $DisplayPieceManager
 @onready var gold_display: Label = $GoldDisplay
+@onready var state_label: Label = $StateLabel
 
 # Called when the node enters the scene tree for the first time.
 func _ready() -> void:
@@ -12,8 +13,15 @@ func _ready() -> void:
 	RunData.currency_changed.connect(update_gold_display)
 	display_piece_manager.refresh_pieces_display()
 	
+func _process(delta: float) -> void:
+	state_label.text = state_manager.get_state_as_string()
+	
 func update_gold_display(new_currency: int = RunData.get_currency()) -> void:
 	gold_display.text = "Gold: %d" % new_currency
 	
 func get_display_piece_manager() -> Control:
 	return display_piece_manager
+
+func _on_confirm_pressed() -> void:
+	state_manager.change_state(state_manager.GameState.PLAYING)
+	display_piece_manager.visible = false