diff --git a/SHADE.sln b/SHADE.sln
index 67bacd3b..fadd2bea 100644
--- a/SHADE.sln
+++ b/SHADE.sln
@@ -30,6 +30,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHADE_Engine", "SHADE_Engin
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SHADE_Managed", "SHADE_Managed\SHADE_Managed.vcxproj", "{16DB1400-829B-9036-4BD6-D9B3B755D512}"
+ ProjectSection(ProjectDependencies) = postProject
+ {88F1A057-74BE-FB62-9DD7-E90A890331F1} = {88F1A057-74BE-FB62-9DD7-E90A890331F1}
+ {C0FF640D-2C14-8DBE-F595-301E616989EF} = {C0FF640D-2C14-8DBE-F595-301E616989EF}
+ {8EAD431C-7A4F-6EF2-630A-82464F4BF542} = {8EAD431C-7A4F-6EF2-630A-82464F4BF542}
+ EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/SHADE_Managed/SHADE_Managed.vcxproj.filters b/SHADE_Managed/SHADE_Managed.vcxproj.filters
index c83321cd..ae83954d 100644
--- a/SHADE_Managed/SHADE_Managed.vcxproj.filters
+++ b/SHADE_Managed/SHADE_Managed.vcxproj.filters
@@ -34,6 +34,9 @@
Scripts
+
+ Scripts
+
Utility
@@ -64,6 +67,9 @@
Scripts
+
+ Scripts
+
Utility
diff --git a/SHADE_Managed/src/Scripts/ScriptStore.cxx b/SHADE_Managed/src/Scripts/ScriptStore.cxx
new file mode 100644
index 00000000..86329f29
--- /dev/null
+++ b/SHADE_Managed/src/Scripts/ScriptStore.cxx
@@ -0,0 +1,673 @@
+/************************************************************************************//*!
+\file ScriptStore.cxx
+\author Tng Kah Wei, kahwei.tng, 390009620
+\par email: kahwei.tng\@digipen.edu
+\date Oct 28, 2021
+\brief Contains the definition of the functions for the ScriptStore managed
+ static class.
+
+ Note: This file is written in C++17/CLI.
+
+Copyright (C) 2021 DigiPen Institute of Technology.
+Reproduction or disclosure of this file or its contents without the prior written consent
+of DigiPen Institute of Technology is prohibited.
+*//*************************************************************************************/
+// Precompiled Headers
+#include "SHpch.h"
+// Primary Header
+#include "ScriptStore.hxx"
+// Standard Libraries
+#include
+// Project Headers
+#include "Utility/Debug.hxx"
+#include "Utility/Convert.hxx"
+#include "Tools/SHLogger.h"
+#include "Script.hxx"
+#include "Engine/Entity.hxx"
+
+namespace SHADE
+{
+ /*---------------------------------------------------------------------------------*/
+ /* Scripts Manipulation Functions */
+ /*---------------------------------------------------------------------------------*/
+ generic
+ T ScriptStore::AddScript(Entity entity)
+ {
+ // Check if entity exists and is a valid GameObject
+ if (!EntityUtils::IsValid(entity) /*|| !GameObjectLibrary::Contains(entity)*/)
+ throw gcnew System::ArgumentException("Invalid Entity provided to add a Script to.");
+
+ System::Collections::Generic::List