diff --git a/sdk/jme3-templates/src/com/jme3/gde/templates/files/AppState.html b/sdk/jme3-templates/src/com/jme3/gde/templates/files/AppState.html
new file mode 100644
index 000000000..684b2034b
--- /dev/null
+++ b/sdk/jme3-templates/src/com/jme3/gde/templates/files/AppState.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+ A generic AppState that allows adding global behavior to your application.
+
+
diff --git a/sdk/jme3-templates/src/com/jme3/gde/templates/files/AppState.template b/sdk/jme3-templates/src/com/jme3/gde/templates/files/AppState.template
new file mode 100644
index 000000000..33b764e91
--- /dev/null
+++ b/sdk/jme3-templates/src/com/jme3/gde/templates/files/AppState.template
@@ -0,0 +1,40 @@
+<#assign licenseFirst = "/*">
+<#assign licensePrefix = " * ">
+<#assign licenseLast = " */">
+<#include "../Licenses/license-${project.license}.txt">
+
+<#if package?? && package != "">
+package ${package};
+
+#if>
+import com.jme3.app.Application;
+import com.jme3.app.state.AbstractAppState;
+import com.jme3.app.state.AppStateManager;
+
+/**
+ *
+ * @author ${user}
+ */
+public class ${name} extends AbstractAppState{
+
+@Override
+ public void initialize(AppStateManager stateManager, Application app) {
+ super.initialize(stateManager, app);
+ //TODO: initialize your AppState, e.g. attach spatials to rootNode
+ //this is called on the OpenGL thread after the AppState has been attached
+ }
+
+ @Override
+ public void update(float tpf) {
+ //TODO: implement behavior during runtime
+ }
+
+ @Override
+ public void cleanup() {
+ super.cleanup();
+ //TODO: clean up what you initialized in the initialize method,
+ //e.g. remove all spatials from rootNode
+ //this is called on the OpenGL thread after the AppState has been detached
+ }
+
+}
diff --git a/sdk/jme3-templates/src/com/jme3/gde/templates/files/Control.template b/sdk/jme3-templates/src/com/jme3/gde/templates/files/Control.template
index 49faab2ec..ebad395a4 100644
--- a/sdk/jme3-templates/src/com/jme3/gde/templates/files/Control.template
+++ b/sdk/jme3-templates/src/com/jme3/gde/templates/files/Control.template
@@ -6,6 +6,7 @@
<#if package?? && package != "">
package ${package};
+#if>
import com.jme3.export.InputCapsule;
import com.jme3.export.JmeExporter;
import com.jme3.export.JmeImporter;
@@ -17,7 +18,6 @@ import com.jme3.scene.control.AbstractControl;
import com.jme3.scene.control.Control;
import java.io.IOException;
-#if>
/**
*
* @author ${user}
diff --git a/sdk/jme3-templates/src/com/jme3/gde/templates/layer.xml b/sdk/jme3-templates/src/com/jme3/gde/templates/layer.xml
index 16ad31c49..d0dcd8807 100644
--- a/sdk/jme3-templates/src/com/jme3/gde/templates/layer.xml
+++ b/sdk/jme3-templates/src/com/jme3/gde/templates/layer.xml
@@ -14,7 +14,7 @@
-
+
@@ -26,6 +26,16 @@
+
+
+
+
+
+
+
+
+
+