diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/DetailBlue.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/DetailBlue.asset.taml
new file mode 100644
index 000000000..a71da4b5a
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/DetailBlue.asset.taml
@@ -0,0 +1,7 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/DetailBlue.cs b/Templates/BaseGame/game/data/Prototyping/Materials/DetailBlue.cs
new file mode 100644
index 000000000..e008f6107
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/DetailBlue.cs
@@ -0,0 +1,6 @@
+//--- OBJECT WRITE BEGIN ---
+singleton Material(DetailBlue) {
+ mapTo="DetailBlue";
+ DiffuseMapAsset = "Prototyping:DetailBlue_ALBEDO";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/DetailBlue.png b/Templates/BaseGame/game/data/Prototyping/Materials/DetailBlue.png
new file mode 100644
index 000000000..ed5114055
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/Materials/DetailBlue.png differ
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/DetailBlue_ALBEDO.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/DetailBlue_ALBEDO.asset.taml
new file mode 100644
index 000000000..506ce42b5
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/DetailBlue_ALBEDO.asset.taml
@@ -0,0 +1,9 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/FloorGray.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/FloorGray.asset.taml
new file mode 100644
index 000000000..f69435a38
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/FloorGray.asset.taml
@@ -0,0 +1,7 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/FloorGray.cs b/Templates/BaseGame/game/data/Prototyping/Materials/FloorGray.cs
new file mode 100644
index 000000000..b75f8f2c3
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/FloorGray.cs
@@ -0,0 +1,6 @@
+//--- OBJECT WRITE BEGIN ---
+singleton Material(FloorGray) {
+ mapTo="FloorGray";
+ DiffuseMapAsset = "Prototyping:FloorGray_ALBEDO";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/FloorGray.png b/Templates/BaseGame/game/data/Prototyping/Materials/FloorGray.png
new file mode 100644
index 000000000..c4b574c76
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/Materials/FloorGray.png differ
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/FloorGray_ALBEDO.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/FloorGray_ALBEDO.asset.taml
new file mode 100644
index 000000000..b02f19601
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/FloorGray_ALBEDO.asset.taml
@@ -0,0 +1,9 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/InteractiveRed.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/InteractiveRed.asset.taml
new file mode 100644
index 000000000..86008f591
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/InteractiveRed.asset.taml
@@ -0,0 +1,7 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/InteractiveRed.cs b/Templates/BaseGame/game/data/Prototyping/Materials/InteractiveRed.cs
new file mode 100644
index 000000000..32049d72b
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/InteractiveRed.cs
@@ -0,0 +1,6 @@
+//--- OBJECT WRITE BEGIN ---
+singleton Material(InteractiveRed) {
+ mapTo="InteractiveRed";
+ DiffuseMapAsset = "Prototyping:InteractiveRed_ALBEDO";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/InteractiveRed.png b/Templates/BaseGame/game/data/Prototyping/Materials/InteractiveRed.png
new file mode 100644
index 000000000..59e6cb32a
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/Materials/InteractiveRed.png differ
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/InteractiveRed_ALBEDO.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/InteractiveRed_ALBEDO.asset.taml
new file mode 100644
index 000000000..1488c2bc9
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/InteractiveRed_ALBEDO.asset.taml
@@ -0,0 +1,9 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/NatureBrown.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/NatureBrown.asset.taml
new file mode 100644
index 000000000..1d86b24ce
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/NatureBrown.asset.taml
@@ -0,0 +1,7 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/NatureBrown.cs b/Templates/BaseGame/game/data/Prototyping/Materials/NatureBrown.cs
new file mode 100644
index 000000000..a91e65ce7
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/NatureBrown.cs
@@ -0,0 +1,6 @@
+//--- OBJECT WRITE BEGIN ---
+singleton Material(NatureBrown) {
+ mapTo="NatureBrown";
+ DiffuseMapAsset = "Prototyping:NatureBrown_ALBEDO";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/NatureBrown.png b/Templates/BaseGame/game/data/Prototyping/Materials/NatureBrown.png
new file mode 100644
index 000000000..a12544f04
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/Materials/NatureBrown.png differ
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/NatureBrown_ALBEDO.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/NatureBrown_ALBEDO.asset.taml
new file mode 100644
index 000000000..bef06651b
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/NatureBrown_ALBEDO.asset.taml
@@ -0,0 +1,9 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/NatureGreen.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/NatureGreen.asset.taml
new file mode 100644
index 000000000..f8b1729e3
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/NatureGreen.asset.taml
@@ -0,0 +1,7 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/NatureGreen.cs b/Templates/BaseGame/game/data/Prototyping/Materials/NatureGreen.cs
new file mode 100644
index 000000000..16671facd
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/NatureGreen.cs
@@ -0,0 +1,6 @@
+//--- OBJECT WRITE BEGIN ---
+singleton Material(NatureGreen) {
+ mapTo="NatureGreen";
+ DiffuseMapAsset = "Prototyping:NatureGreen_ALBEDO";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/NatureGreen.png b/Templates/BaseGame/game/data/Prototyping/Materials/NatureGreen.png
new file mode 100644
index 000000000..3947de2a9
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/Materials/NatureGreen.png differ
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/NatureGreen_ALBEDO.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/NatureGreen_ALBEDO.asset.taml
new file mode 100644
index 000000000..c9dcd991f
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/NatureGreen_ALBEDO.asset.taml
@@ -0,0 +1,9 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/NullPink.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/NullPink.asset.taml
new file mode 100644
index 000000000..62bdc57c0
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/NullPink.asset.taml
@@ -0,0 +1,7 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/NullPink.cs b/Templates/BaseGame/game/data/Prototyping/Materials/NullPink.cs
new file mode 100644
index 000000000..73e6281c4
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/NullPink.cs
@@ -0,0 +1,6 @@
+//--- OBJECT WRITE BEGIN ---
+singleton Material(NullPink) {
+ mapTo="NullPink";
+ DiffuseMapAsset = "Prototyping:NullPink_ALBEDO";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/NullPink.png b/Templates/BaseGame/game/data/Prototyping/Materials/NullPink.png
new file mode 100644
index 000000000..dcb9d25fc
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/Materials/NullPink.png differ
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/NullPink_ALBEDO.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/NullPink_ALBEDO.asset.taml
new file mode 100644
index 000000000..c499be82e
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/NullPink_ALBEDO.asset.taml
@@ -0,0 +1,9 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/TrimYellow.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/TrimYellow.asset.taml
new file mode 100644
index 000000000..6469f6bcf
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/TrimYellow.asset.taml
@@ -0,0 +1,7 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/TrimYellow.cs b/Templates/BaseGame/game/data/Prototyping/Materials/TrimYellow.cs
new file mode 100644
index 000000000..f201adfb5
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/TrimYellow.cs
@@ -0,0 +1,6 @@
+//--- OBJECT WRITE BEGIN ---
+singleton Material(TrimYellow) {
+ mapTo="TrimYellow";
+ DiffuseMapAsset = "Prototyping:TrimYellow_ALBEDO";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/TrimYellow.png b/Templates/BaseGame/game/data/Prototyping/Materials/TrimYellow.png
new file mode 100644
index 000000000..0e2f58f71
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/Materials/TrimYellow.png differ
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/TrimYellow_ALBEDO.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/TrimYellow_ALBEDO.asset.taml
new file mode 100644
index 000000000..3547eb10d
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/TrimYellow_ALBEDO.asset.taml
@@ -0,0 +1,9 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/WallOrange.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/WallOrange.asset.taml
new file mode 100644
index 000000000..af0aa6510
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/WallOrange.asset.taml
@@ -0,0 +1,7 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/WallOrange.cs b/Templates/BaseGame/game/data/Prototyping/Materials/WallOrange.cs
new file mode 100644
index 000000000..b216b3b81
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/WallOrange.cs
@@ -0,0 +1,6 @@
+//--- OBJECT WRITE BEGIN ---
+singleton Material(WallOrange) {
+ mapTo="WallOrange";
+ DiffuseMapAsset = "Prototyping:WallOrange_ALBEDO";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/WallOrange.png b/Templates/BaseGame/game/data/Prototyping/Materials/WallOrange.png
new file mode 100644
index 000000000..43c4953e8
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/Materials/WallOrange.png differ
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/WallOrange_ALBEDO.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/WallOrange_ALBEDO.asset.taml
new file mode 100644
index 000000000..f7af52532
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/WallOrange_ALBEDO.asset.taml
@@ -0,0 +1,9 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/WaterBlue.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/WaterBlue.asset.taml
new file mode 100644
index 000000000..1349cb284
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/WaterBlue.asset.taml
@@ -0,0 +1,7 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/WaterBlue.cs b/Templates/BaseGame/game/data/Prototyping/Materials/WaterBlue.cs
new file mode 100644
index 000000000..7b0a75a5d
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/WaterBlue.cs
@@ -0,0 +1,6 @@
+//--- OBJECT WRITE BEGIN ---
+singleton Material(WaterBlue) {
+ mapTo="WaterBlue";
+ DiffuseMapAsset = "Prototyping:WaterBlue_ALBEDO";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/WaterBlue.png b/Templates/BaseGame/game/data/Prototyping/Materials/WaterBlue.png
new file mode 100644
index 000000000..af76476a8
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/Materials/WaterBlue.png differ
diff --git a/Templates/BaseGame/game/data/Prototyping/Materials/WaterBlue_ALBEDO.asset.taml b/Templates/BaseGame/game/data/Prototyping/Materials/WaterBlue_ALBEDO.asset.taml
new file mode 100644
index 000000000..4c1c5bce6
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Materials/WaterBlue_ALBEDO.asset.taml
@@ -0,0 +1,9 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/Prototyping.cs b/Templates/BaseGame/game/data/Prototyping/Prototyping.cs
new file mode 100644
index 000000000..e9a1eff28
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Prototyping.cs
@@ -0,0 +1,37 @@
+function Prototyping::onCreate(%this)
+{
+}
+
+function Prototyping::onDestroy(%this)
+{
+}
+
+//This is called when the server is initially set up by the game application
+function Prototyping::initServer(%this)
+{
+}
+
+//This is called when the server is created for an actual game/map to be played
+function Prototyping::onCreateGameServer(%this)
+{
+}
+
+//This is called when the server is shut down due to the game/map being exited
+function Prototyping::onDestroyGameServer(%this)
+{
+}
+
+//This is called when the client is initially set up by the game application
+function Prototyping::initClient(%this)
+{
+}
+
+//This is called when a client connects to a server
+function Prototyping::onCreateClientConnection(%this)
+{
+}
+
+//This is called when a client disconnects from a server
+function Prototyping::onDestroyClientConnection(%this)
+{
+}
diff --git a/Templates/BaseGame/game/data/Prototyping/Prototyping.module b/Templates/BaseGame/game/data/Prototyping/Prototyping.module
new file mode 100644
index 000000000..5992ba427
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/Prototyping.module
@@ -0,0 +1,15 @@
+
+
+
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/ConePrimitive.asset.taml b/Templates/BaseGame/game/data/Prototyping/shapes/ConePrimitive.asset.taml
new file mode 100644
index 000000000..d3b543e25
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/ConePrimitive.asset.taml
@@ -0,0 +1,6 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/ConePrimitive.cs b/Templates/BaseGame/game/data/Prototyping/shapes/ConePrimitive.cs
new file mode 100644
index 000000000..20631dc26
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/ConePrimitive.cs
@@ -0,0 +1,28 @@
+//--- OBJECT WRITE BEGIN ---
+new TSShapeConstructor(ConePrimitive_fbx) {
+ baseShape = "./ConePrimitive.fbx";
+ upAxis = "DEFAULT";
+ unit = "-1";
+ LODType = "TrailingNumber";
+ singleDetailSize = "0";
+ IgnoreNodeScale = "0";
+ AdjustCenter = "0";
+ AdjustFloor = "0";
+ forceUpdateMaterials = "0";
+ convertLeftHanded = "0";
+ calcTangentSpace = "0";
+ genUVCoords = "0";
+ transformUVCoords = "0";
+ flipUVCoords = "1";
+ findInstances = "0";
+ limitBoneWeights = "0";
+ JoinIdenticalVerts = "1";
+ reverseWindingOrder = "1";
+ invertNormals = "0";
+ removeRedundantMats = "1";
+ animTiming = "Seconds";
+ animFPS = "2";
+ canSave = "1";
+ canSaveDynamicFields = "1";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/ConePrimitive.fbx b/Templates/BaseGame/game/data/Prototyping/shapes/ConePrimitive.fbx
new file mode 100644
index 000000000..9553e84f4
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/shapes/ConePrimitive.fbx differ
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/CubePrimitive.asset.taml b/Templates/BaseGame/game/data/Prototyping/shapes/CubePrimitive.asset.taml
new file mode 100644
index 000000000..7d1b70ffe
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/CubePrimitive.asset.taml
@@ -0,0 +1,6 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/CubePrimitive.cs b/Templates/BaseGame/game/data/Prototyping/shapes/CubePrimitive.cs
new file mode 100644
index 000000000..6b5f861c8
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/CubePrimitive.cs
@@ -0,0 +1,28 @@
+//--- OBJECT WRITE BEGIN ---
+new TSShapeConstructor(CubePrimitive_fbx) {
+ baseShape = "./CubePrimitive.fbx";
+ upAxis = "DEFAULT";
+ unit = "-1";
+ LODType = "TrailingNumber";
+ singleDetailSize = "0";
+ IgnoreNodeScale = "0";
+ AdjustCenter = "0";
+ AdjustFloor = "0";
+ forceUpdateMaterials = "0";
+ convertLeftHanded = "0";
+ calcTangentSpace = "0";
+ genUVCoords = "0";
+ transformUVCoords = "0";
+ flipUVCoords = "1";
+ findInstances = "0";
+ limitBoneWeights = "0";
+ JoinIdenticalVerts = "1";
+ reverseWindingOrder = "1";
+ invertNormals = "0";
+ removeRedundantMats = "1";
+ animTiming = "Seconds";
+ animFPS = "2";
+ canSave = "1";
+ canSaveDynamicFields = "1";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/CubePrimitive.fbx b/Templates/BaseGame/game/data/Prototyping/shapes/CubePrimitive.fbx
new file mode 100644
index 000000000..f3df1de2b
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/shapes/CubePrimitive.fbx differ
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/CylinderPrimitive.asset.taml b/Templates/BaseGame/game/data/Prototyping/shapes/CylinderPrimitive.asset.taml
new file mode 100644
index 000000000..702a44847
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/CylinderPrimitive.asset.taml
@@ -0,0 +1,6 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/CylinderPrimitive.cs b/Templates/BaseGame/game/data/Prototyping/shapes/CylinderPrimitive.cs
new file mode 100644
index 000000000..5603b0e1f
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/CylinderPrimitive.cs
@@ -0,0 +1,28 @@
+//--- OBJECT WRITE BEGIN ---
+new TSShapeConstructor(CylinderPrimitive_fbx) {
+ baseShape = "./CylinderPrimitive.fbx";
+ upAxis = "DEFAULT";
+ unit = "-1";
+ LODType = "TrailingNumber";
+ singleDetailSize = "0";
+ IgnoreNodeScale = "0";
+ AdjustCenter = "0";
+ AdjustFloor = "0";
+ forceUpdateMaterials = "0";
+ convertLeftHanded = "0";
+ calcTangentSpace = "0";
+ genUVCoords = "0";
+ transformUVCoords = "0";
+ flipUVCoords = "1";
+ findInstances = "0";
+ limitBoneWeights = "0";
+ JoinIdenticalVerts = "1";
+ reverseWindingOrder = "1";
+ invertNormals = "0";
+ removeRedundantMats = "1";
+ animTiming = "Seconds";
+ animFPS = "2";
+ canSave = "1";
+ canSaveDynamicFields = "1";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/CylinderPrimitive.fbx b/Templates/BaseGame/game/data/Prototyping/shapes/CylinderPrimitive.fbx
new file mode 100644
index 000000000..36bebed8f
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/shapes/CylinderPrimitive.fbx differ
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/SpherePrimitive.asset.taml b/Templates/BaseGame/game/data/Prototyping/shapes/SpherePrimitive.asset.taml
new file mode 100644
index 000000000..d53d3809e
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/SpherePrimitive.asset.taml
@@ -0,0 +1,6 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/SpherePrimitive.cs b/Templates/BaseGame/game/data/Prototyping/shapes/SpherePrimitive.cs
new file mode 100644
index 000000000..b9b693ac9
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/SpherePrimitive.cs
@@ -0,0 +1,28 @@
+//--- OBJECT WRITE BEGIN ---
+new TSShapeConstructor(SpherePrimitive_fbx) {
+ baseShape = "./SpherePrimitive.fbx";
+ upAxis = "DEFAULT";
+ unit = "-1";
+ LODType = "TrailingNumber";
+ singleDetailSize = "0";
+ IgnoreNodeScale = "0";
+ AdjustCenter = "0";
+ AdjustFloor = "0";
+ forceUpdateMaterials = "0";
+ convertLeftHanded = "0";
+ calcTangentSpace = "0";
+ genUVCoords = "0";
+ transformUVCoords = "0";
+ flipUVCoords = "1";
+ findInstances = "0";
+ limitBoneWeights = "0";
+ JoinIdenticalVerts = "1";
+ reverseWindingOrder = "1";
+ invertNormals = "0";
+ removeRedundantMats = "1";
+ animTiming = "Seconds";
+ animFPS = "2";
+ canSave = "1";
+ canSaveDynamicFields = "1";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/SpherePrimitive.fbx b/Templates/BaseGame/game/data/Prototyping/shapes/SpherePrimitive.fbx
new file mode 100644
index 000000000..1245c20a8
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/shapes/SpherePrimitive.fbx differ
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/TorusPrimitive.asset.taml b/Templates/BaseGame/game/data/Prototyping/shapes/TorusPrimitive.asset.taml
new file mode 100644
index 000000000..839f05ae7
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/TorusPrimitive.asset.taml
@@ -0,0 +1,6 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/TorusPrimitive.cs b/Templates/BaseGame/game/data/Prototyping/shapes/TorusPrimitive.cs
new file mode 100644
index 000000000..b2dedc16a
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/TorusPrimitive.cs
@@ -0,0 +1,28 @@
+//--- OBJECT WRITE BEGIN ---
+new TSShapeConstructor(TorusPrimitive_fbx) {
+ baseShape = "./TorusPrimitive.fbx";
+ upAxis = "DEFAULT";
+ unit = "-1";
+ LODType = "TrailingNumber";
+ singleDetailSize = "0";
+ IgnoreNodeScale = "0";
+ AdjustCenter = "0";
+ AdjustFloor = "0";
+ forceUpdateMaterials = "0";
+ convertLeftHanded = "0";
+ calcTangentSpace = "0";
+ genUVCoords = "0";
+ transformUVCoords = "0";
+ flipUVCoords = "1";
+ findInstances = "0";
+ limitBoneWeights = "0";
+ JoinIdenticalVerts = "1";
+ reverseWindingOrder = "1";
+ invertNormals = "0";
+ removeRedundantMats = "1";
+ animTiming = "Seconds";
+ animFPS = "2";
+ canSave = "1";
+ canSaveDynamicFields = "1";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/TorusPrimitive.fbx b/Templates/BaseGame/game/data/Prototyping/shapes/TorusPrimitive.fbx
new file mode 100644
index 000000000..147c12220
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/shapes/TorusPrimitive.fbx differ
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/TubePrimitive.asset.taml b/Templates/BaseGame/game/data/Prototyping/shapes/TubePrimitive.asset.taml
new file mode 100644
index 000000000..94e90643e
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/TubePrimitive.asset.taml
@@ -0,0 +1,6 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/TubePrimitive.cs b/Templates/BaseGame/game/data/Prototyping/shapes/TubePrimitive.cs
new file mode 100644
index 000000000..f73be16fb
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/TubePrimitive.cs
@@ -0,0 +1,28 @@
+//--- OBJECT WRITE BEGIN ---
+new TSShapeConstructor(TubePrimitive_fbx) {
+ baseShape = "./TubePrimitive.fbx";
+ upAxis = "DEFAULT";
+ unit = "-1";
+ LODType = "TrailingNumber";
+ singleDetailSize = "0";
+ IgnoreNodeScale = "0";
+ AdjustCenter = "0";
+ AdjustFloor = "0";
+ forceUpdateMaterials = "0";
+ convertLeftHanded = "0";
+ calcTangentSpace = "0";
+ genUVCoords = "0";
+ transformUVCoords = "0";
+ flipUVCoords = "1";
+ findInstances = "0";
+ limitBoneWeights = "0";
+ JoinIdenticalVerts = "1";
+ reverseWindingOrder = "1";
+ invertNormals = "0";
+ removeRedundantMats = "1";
+ animTiming = "Seconds";
+ animFPS = "2";
+ canSave = "1";
+ canSaveDynamicFields = "1";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/TubePrimitive.fbx b/Templates/BaseGame/game/data/Prototyping/shapes/TubePrimitive.fbx
new file mode 100644
index 000000000..6a901f8d8
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/shapes/TubePrimitive.fbx differ
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/kork_chan.asset.taml b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chan.asset.taml
new file mode 100644
index 000000000..b12b5ae46
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chan.asset.taml
@@ -0,0 +1,7 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/kork_chan.cs b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chan.cs
new file mode 100644
index 000000000..c4b9b2e74
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chan.cs
@@ -0,0 +1,6 @@
+//--- OBJECT WRITE BEGIN ---
+singleton Material(kork_chan) {
+ mapTo="kork_chan";
+ DiffuseMapAsset = "Prototyping:kork_chan_ALBEDO";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/kork_chan.png b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chan.png
new file mode 100644
index 000000000..f26c586e4
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chan.png differ
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/kork_chanShape.asset.taml b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chanShape.asset.taml
new file mode 100644
index 000000000..24f375fc8
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chanShape.asset.taml
@@ -0,0 +1,7 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/kork_chanShape.cs b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chanShape.cs
new file mode 100644
index 000000000..f6fe9b059
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chanShape.cs
@@ -0,0 +1,28 @@
+//--- OBJECT WRITE BEGIN ---
+new TSShapeConstructor(kork_chanShape_fbx) {
+ baseShape = "./kork_chanShape.fbx";
+ upAxis = "DEFAULT";
+ unit = "-1";
+ LODType = "TrailingNumber";
+ singleDetailSize = "0";
+ IgnoreNodeScale = "0";
+ AdjustCenter = "0";
+ AdjustFloor = "0";
+ forceUpdateMaterials = "0";
+ convertLeftHanded = "0";
+ calcTangentSpace = "0";
+ genUVCoords = "0";
+ transformUVCoords = "0";
+ flipUVCoords = "1";
+ findInstances = "0";
+ limitBoneWeights = "0";
+ JoinIdenticalVerts = "1";
+ reverseWindingOrder = "1";
+ invertNormals = "0";
+ removeRedundantMats = "1";
+ animTiming = "Seconds";
+ animFPS = "2";
+ canSave = "1";
+ canSaveDynamicFields = "1";
+};
+//--- OBJECT WRITE END ---
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/kork_chanShape.fbx b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chanShape.fbx
new file mode 100644
index 000000000..9551be299
Binary files /dev/null and b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chanShape.fbx differ
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/kork_chan_ALBEDO.asset.taml b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chan_ALBEDO.asset.taml
new file mode 100644
index 000000000..982280d50
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/kork_chan_ALBEDO.asset.taml
@@ -0,0 +1,9 @@
+
diff --git a/Templates/BaseGame/game/data/Prototyping/shapes/materials.cs b/Templates/BaseGame/game/data/Prototyping/shapes/materials.cs
new file mode 100644
index 000000000..482e431af
--- /dev/null
+++ b/Templates/BaseGame/game/data/Prototyping/shapes/materials.cs
@@ -0,0 +1,8 @@
+
+singleton Material(DetailBlue)
+{
+ mapTo = "DetailBlue";
+ diffuseColor[0] = "0.8 0.8 0.8 1";
+ DiffuseMap[0] = "data/Prototyping/Materials/DetailBlue.png";
+ translucentBlendOp = "None";
+};