diff --git a/Babushka.csproj b/Babushka.csproj
index e75f04c..70c0d51 100644
--- a/Babushka.csproj
+++ b/Babushka.csproj
@@ -2,5 +2,6 @@
net8.0
true
+ enable
\ No newline at end of file
diff --git a/prefabs/UI/Book/Book.tscn b/prefabs/UI/Book/Book.tscn
new file mode 100644
index 0000000..c8fa1c5
--- /dev/null
+++ b/prefabs/UI/Book/Book.tscn
@@ -0,0 +1,20 @@
+[gd_scene load_steps=2 format=3 uid="uid://cqcs80xsgygeb"]
+
+[ext_resource type="PackedScene" uid="uid://2q1n6g2kj5er" path="res://prefabs/UI/Quest/QuestLog.tscn" id="1_7u5et"]
+
+[node name="Book" type="Control"]
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="QuestLog" parent="." instance=ExtResource("1_7u5et")]
+layout_mode = 1
+offset_left = 247.0
+offset_top = 72.0
+offset_right = -205.0
+offset_bottom = -76.0
+grow_horizontal = 1
+grow_vertical = 1
diff --git a/prefabs/UI/Quest/QuestListItem.tscn b/prefabs/UI/Quest/QuestListItem.tscn
new file mode 100644
index 0000000..f1f55f5
--- /dev/null
+++ b/prefabs/UI/Quest/QuestListItem.tscn
@@ -0,0 +1,23 @@
+[gd_scene load_steps=2 format=3 uid="uid://1iqqwh7d6xoh"]
+
+[ext_resource type="Script" uid="uid://dwhee40ksubke" path="res://scripts/CSharp/Common/Quest/QuestListItemUi.cs" id="1_svwef"]
+
+[node name="QuestListItem" type="Control"]
+custom_minimum_size = Vector2(0, 30)
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+script = ExtResource("1_svwef")
+
+[node name="TitleButton" type="Button" parent="."]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[connection signal="pressed" from="TitleButton" to="." method="ClickedTitleButton"]
diff --git a/prefabs/UI/Quest/QuestLog.tscn b/prefabs/UI/Quest/QuestLog.tscn
new file mode 100644
index 0000000..b1421e1
--- /dev/null
+++ b/prefabs/UI/Quest/QuestLog.tscn
@@ -0,0 +1,53 @@
+[gd_scene load_steps=5 format=3 uid="uid://2q1n6g2kj5er"]
+
+[ext_resource type="Script" uid="uid://c7ilqe2fmjyvx" path="res://scripts/CSharp/Common/Quest/QuestListUi.cs" id="1_17sli"]
+[ext_resource type="Script" uid="uid://o1qpo0wdqlw3" path="res://scripts/CSharp/Common/Quest/QuestLog.cs" id="1_vc33n"]
+[ext_resource type="PackedScene" uid="uid://1iqqwh7d6xoh" path="res://prefabs/UI/Quest/QuestListItem.tscn" id="2_fswdj"]
+[ext_resource type="Script" uid="uid://b8mywolvj2yq7" path="res://scripts/CSharp/Common/Quest/QuestDescriptionUi.cs" id="4_1vy15"]
+
+[node name="QuestLog" type="Control"]
+custom_minimum_size = Vector2(700, 500)
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_right = -452.0
+offset_bottom = -148.0
+grow_horizontal = 2
+grow_vertical = 2
+script = ExtResource("1_vc33n")
+
+[node name="LeftPage" type="Control" parent="."]
+layout_mode = 1
+anchor_bottom = 1.0
+offset_right = 350.0
+grow_vertical = 2
+
+[node name="VBoxContainer" type="VBoxContainer" parent="LeftPage"]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+script = ExtResource("1_17sli")
+_questListItemPrefab = ExtResource("2_fswdj")
+
+[node name="RightPage" type="Control" parent="."]
+layout_mode = 1
+anchor_left = 1.0
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_left = -350.0
+grow_vertical = 2
+
+[node name="Description" type="RichTextLabel" parent="RightPage"]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+script = ExtResource("4_1vy15")
+
+[connection signal="DetailQuestChanged" from="." to="RightPage/Description" method="UpdateText"]
diff --git a/project.godot b/project.godot
index 0cc2d20..ac4800c 100644
--- a/project.godot
+++ b/project.godot
@@ -11,7 +11,7 @@ config_version=5
[application]
config/name="Babushka"
-run/main_scene="uid://dbxy2y85r1d8x"
+run/main_scene="uid://dbpsqfedlku4f"
config/features=PackedStringArray("4.4", "C#", "Forward Plus")
config/icon="res://icon.svg"
@@ -19,6 +19,7 @@ config/icon="res://icon.svg"
Dialogic="*res://addons/dialogic/Core/DialogicGameHandler.gd"
InventoryManager="*res://scripts/CSharp/Common/Inventory/InventoryManager.cs"
+QuestManager="*res://scripts/CSharp/Common/Quest/QuestManager.cs"
[dialogic]
@@ -66,10 +67,6 @@ translation/id_counter=22
translation/locales=["de", "en"]
text/autopauses={}
-[display]
-
-window/size/always_on_top=true
-
[dotnet]
project/assembly_name="Babushka"
diff --git a/resources/quests/test_01.tres b/resources/quests/test_01.tres
new file mode 100644
index 0000000..ed1775e
--- /dev/null
+++ b/resources/quests/test_01.tres
@@ -0,0 +1,10 @@
+[gd_resource type="Resource" script_class="QuestResource" load_steps=2 format=3 uid="uid://0aruj4lm74n6"]
+
+[ext_resource type="Script" uid="uid://vji5lp4qc8pp" path="res://scripts/CSharp/Common/Quest/QuestResource.cs" id="1_kisdg"]
+
+[resource]
+script = ExtResource("1_kisdg")
+id = "test_01"
+title = "First Testing Quest"
+description = "Do the first thing you do to complete this quest"
+metadata/_custom_type_script = "uid://vji5lp4qc8pp"
diff --git a/resources/quests/test_02.tres b/resources/quests/test_02.tres
new file mode 100644
index 0000000..4d80320
--- /dev/null
+++ b/resources/quests/test_02.tres
@@ -0,0 +1,10 @@
+[gd_resource type="Resource" script_class="QuestResource" load_steps=2 format=3 uid="uid://be1dmc6d2mxl5"]
+
+[ext_resource type="Script" uid="uid://vji5lp4qc8pp" path="res://scripts/CSharp/Common/Quest/QuestResource.cs" id="1_t87fj"]
+
+[resource]
+script = ExtResource("1_t87fj")
+id = "test_02"
+title = "Second Testing Quest"
+description = "Second my ass. Do what ever. I don't care"
+metadata/_custom_type_script = "uid://vji5lp4qc8pp"
diff --git a/resources/quests/test_03.tres b/resources/quests/test_03.tres
new file mode 100644
index 0000000..9f2ae66
--- /dev/null
+++ b/resources/quests/test_03.tres
@@ -0,0 +1,10 @@
+[gd_resource type="Resource" script_class="QuestResource" load_steps=2 format=3 uid="uid://tmmnsg1bge2"]
+
+[ext_resource type="Script" uid="uid://vji5lp4qc8pp" path="res://scripts/CSharp/Common/Quest/QuestResource.cs" id="1_y0umc"]
+
+[resource]
+script = ExtResource("1_y0umc")
+id = "test_03"
+title = "Third Testing Quest"
+description = "I'd like to apologize for the second quest, he has some bad manners"
+metadata/_custom_type_script = "uid://vji5lp4qc8pp"
diff --git a/scenes/testing/babushka_tests_book.tscn b/scenes/testing/babushka_tests_book.tscn
new file mode 100644
index 0000000..3a5a51e
--- /dev/null
+++ b/scenes/testing/babushka_tests_book.tscn
@@ -0,0 +1,15 @@
+[gd_scene load_steps=6 format=3 uid="uid://dbpsqfedlku4f"]
+
+[ext_resource type="PackedScene" uid="uid://cqcs80xsgygeb" path="res://prefabs/UI/Book/Book.tscn" id="1_bd7dq"]
+[ext_resource type="Script" uid="uid://cg0oqug38c81n" path="res://scripts/CSharp/Common/Quest/QuestTestingScript.cs" id="2_sv6jn"]
+[ext_resource type="Resource" uid="uid://0aruj4lm74n6" path="res://resources/quests/test_01.tres" id="3_nhtae"]
+[ext_resource type="Resource" uid="uid://be1dmc6d2mxl5" path="res://resources/quests/test_02.tres" id="4_kr4yw"]
+[ext_resource type="Resource" uid="uid://tmmnsg1bge2" path="res://resources/quests/test_03.tres" id="5_4cktu"]
+
+[node name="BabushkaTestsBook" type="Node"]
+
+[node name="Book" parent="." instance=ExtResource("1_bd7dq")]
+
+[node name="QuestTesting" type="Node" parent="."]
+script = ExtResource("2_sv6jn")
+_questsToActivate = Array[Object]([ExtResource("3_nhtae"), ExtResource("4_kr4yw"), ExtResource("5_4cktu")])
diff --git a/scripts/CSharp/Common/Quest/QuestDescriptionUi.cs b/scripts/CSharp/Common/Quest/QuestDescriptionUi.cs
new file mode 100644
index 0000000..46cf256
--- /dev/null
+++ b/scripts/CSharp/Common/Quest/QuestDescriptionUi.cs
@@ -0,0 +1,11 @@
+using Godot;
+using System;
+using Babushka.scripts.CSharp.Common.Util;
+
+public partial class QuestDescriptionUi : RichTextLabel
+{
+ public void UpdateText(QuestLog questLog)
+ {
+ Text = questLog.currentDetailQuest?.description ?? "";
+ }
+}
diff --git a/scripts/CSharp/Common/Quest/QuestDescriptionUi.cs.uid b/scripts/CSharp/Common/Quest/QuestDescriptionUi.cs.uid
new file mode 100644
index 0000000..696a7ce
--- /dev/null
+++ b/scripts/CSharp/Common/Quest/QuestDescriptionUi.cs.uid
@@ -0,0 +1 @@
+uid://b8mywolvj2yq7
diff --git a/scripts/CSharp/Common/Quest/QuestListItemUi.cs b/scripts/CSharp/Common/Quest/QuestListItemUi.cs
new file mode 100644
index 0000000..7b037e6
--- /dev/null
+++ b/scripts/CSharp/Common/Quest/QuestListItemUi.cs
@@ -0,0 +1,33 @@
+#nullable enable
+using System;
+using Babushka.scripts.CSharp.Common.Util;
+using Godot;
+namespace Babushka.scripts.CSharp.Common.Quest;
+
+public partial class QuestListItemUi : Control
+{
+ private Button TitleButton => GetNode