diff --git a/HazelCSharpTemplateProject/Class.cs b/HazelCSharpTemplateProject/Class.cs
new file mode 100644
index 0000000..588e46f
--- /dev/null
+++ b/HazelCSharpTemplateProject/Class.cs
@@ -0,0 +1,24 @@
+using Hazel;
+using System;
+
+namespace $rootnamespace$
+{
+ public class $safeitemrootname$ : Entity
+ {
+
+ ///
+ /// OnCreate is called once when the Entity that this script is attached to
+ /// is instantiated in the scene at runtime
+ ///
+ protected override void OnCreate()
+ {
+ }
+
+ ///
+ /// OnUpdate is called once every frame while this script is active in the scene
+ ///
+ protected override void OnUpdate(float deltaTime)
+ {
+ }
+ }
+}
diff --git a/HazelCSharpTemplateProject/HazelCSharpTemplateProject.csproj b/HazelCSharpTemplateProject/HazelCSharpTemplateProject.csproj
new file mode 100644
index 0000000..1c66bb4
--- /dev/null
+++ b/HazelCSharpTemplateProject/HazelCSharpTemplateProject.csproj
@@ -0,0 +1,75 @@
+
+
+
+ 17.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+ Debug
+ AnyCPU
+ {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}
+ Library
+ Properties
+ HazelCSharpTemplateProject
+ HazelCSharpTemplateProject
+ v4.7.2
+ 512
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HazelCSharpTemplateProject/HazelCSharpTemplateProject.ico b/HazelCSharpTemplateProject/HazelCSharpTemplateProject.ico
new file mode 100644
index 0000000..aae70d3
Binary files /dev/null and b/HazelCSharpTemplateProject/HazelCSharpTemplateProject.ico differ
diff --git a/HazelCSharpTemplateProject/HazelCSharpTemplateProject.vstemplate b/HazelCSharpTemplateProject/HazelCSharpTemplateProject.vstemplate
new file mode 100644
index 0000000..c43b218
--- /dev/null
+++ b/HazelCSharpTemplateProject/HazelCSharpTemplateProject.vstemplate
@@ -0,0 +1,18 @@
+
+
+
+ Hazel Entity Script
+ An empty C# script that inherits from Hazels Entity class
+ HazelCSharpTemplateProject.ico
+ ffa4a5df-2e25-4234-9bf0-0cdea8d75db6
+ CSharp
+ CSharp
+ 4.7.2
+ 4.7.2
+ 1
+ Class.cs
+
+
+ Class.cs
+
+
\ No newline at end of file
diff --git a/HazelCSharpTemplateProject/Properties/AssemblyInfo.cs b/HazelCSharpTemplateProject/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..80e5404
--- /dev/null
+++ b/HazelCSharpTemplateProject/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Hazel Visual Studio Templates Project")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Studio Cherno")]
+[assembly: AssemblyProduct("HazelCSharpTemplateProject")]
+[assembly: AssemblyCopyright("Copyright © Studio Cherno 2022")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("46abafd5-dc8a-4441-82dd-4ad3928b6845")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/HazelTools.sln b/HazelTools.sln
index 3375155..2266e73 100644
--- a/HazelTools.sln
+++ b/HazelTools.sln
@@ -4,22 +4,52 @@ VisualStudioVersion = 17.1.32210.238
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HazelTools", "HazelToolsVS\HazelTools.csproj", "{7D64803D-2F8D-4597-9762-A316C74E9816}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HazelCSharpTemplateProject", "HazelCSharpTemplateProject\HazelCSharpTemplateProject.csproj", "{46ABAFD5-DC8A-4441-82DD-4AD3928B6845}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|x86 = Debug|x86
net_4_5_Debug|Any CPU = net_4_5_Debug|Any CPU
+ net_4_5_Debug|x86 = net_4_5_Debug|x86
net_4_5_Release|Any CPU = net_4_5_Release|Any CPU
+ net_4_5_Release|x86 = net_4_5_Release|x86
Release|Any CPU = Release|Any CPU
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7D64803D-2F8D-4597-9762-A316C74E9816}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D64803D-2F8D-4597-9762-A316C74E9816}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7D64803D-2F8D-4597-9762-A316C74E9816}.Debug|x86.ActiveCfg = Debug|x86
+ {7D64803D-2F8D-4597-9762-A316C74E9816}.Debug|x86.Build.0 = Debug|x86
{7D64803D-2F8D-4597-9762-A316C74E9816}.net_4_5_Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D64803D-2F8D-4597-9762-A316C74E9816}.net_4_5_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7D64803D-2F8D-4597-9762-A316C74E9816}.net_4_5_Debug|x86.ActiveCfg = Debug|x86
+ {7D64803D-2F8D-4597-9762-A316C74E9816}.net_4_5_Debug|x86.Build.0 = Debug|x86
{7D64803D-2F8D-4597-9762-A316C74E9816}.net_4_5_Release|Any CPU.ActiveCfg = Release|Any CPU
{7D64803D-2F8D-4597-9762-A316C74E9816}.net_4_5_Release|Any CPU.Build.0 = Release|Any CPU
+ {7D64803D-2F8D-4597-9762-A316C74E9816}.net_4_5_Release|x86.ActiveCfg = Release|x86
+ {7D64803D-2F8D-4597-9762-A316C74E9816}.net_4_5_Release|x86.Build.0 = Release|x86
{7D64803D-2F8D-4597-9762-A316C74E9816}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D64803D-2F8D-4597-9762-A316C74E9816}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7D64803D-2F8D-4597-9762-A316C74E9816}.Release|x86.ActiveCfg = Release|x86
+ {7D64803D-2F8D-4597-9762-A316C74E9816}.Release|x86.Build.0 = Release|x86
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.Debug|x86.ActiveCfg = Debug|x86
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.Debug|x86.Build.0 = Debug|x86
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.net_4_5_Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.net_4_5_Debug|Any CPU.Build.0 = Debug|Any CPU
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.net_4_5_Debug|x86.ActiveCfg = Debug|x86
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.net_4_5_Debug|x86.Build.0 = Debug|x86
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.net_4_5_Release|Any CPU.ActiveCfg = Release|Any CPU
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.net_4_5_Release|Any CPU.Build.0 = Release|Any CPU
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.net_4_5_Release|x86.ActiveCfg = Release|x86
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.net_4_5_Release|x86.Build.0 = Release|x86
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.Release|Any CPU.Build.0 = Release|Any CPU
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.Release|x86.ActiveCfg = Release|x86
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/HazelToolsVS/HazelTools.csproj b/HazelToolsVS/HazelTools.csproj
index 2af9335..2da56cc 100644
--- a/HazelToolsVS/HazelTools.csproj
+++ b/HazelToolsVS/HazelTools.csproj
@@ -100,6 +100,15 @@
+
+
+ {46ABAFD5-DC8A-4441-82DD-4AD3928B6845}
+ HazelCSharpTemplateProject
+ ItemTemplates
+ false
+ TemplateProjectOutputGroup%3b
+
+
$(GetVsixSourceItemsDependsOn);IncludeNuGetResolvedAssets
diff --git a/HazelToolsVS/source.extension.vsixmanifest b/HazelToolsVS/source.extension.vsixmanifest
index 33d13d3..a7af8b7 100644
--- a/HazelToolsVS/source.extension.vsixmanifest
+++ b/HazelToolsVS/source.extension.vsixmanifest
@@ -21,6 +21,7 @@
+