diff --git a/controllers/player.py b/controllers/player.py
index e7b1106bf7b65d0b6253df57e749ee799224d082..329b2495b8deefc2aeb7d455276193f201730523 100644
--- a/controllers/player.py
+++ b/controllers/player.py
@@ -79,6 +79,15 @@ def submit():
     new_input = {"submit": parameters["submit"]}
 
     if JSON_CONTAINS(parameters, [('inputs', dict)]):
+
+        #Load role definitions for additional validation (e.g. maxlength)
+        elements = B64_TO_JSON(room_record.roles)[player_record.role]["elements"]
+        input_definitions = {}
+        for element in elements:
+            if element["type"] == "input":
+                input_definitions[element["name"]] = element
+
+
         inputs = parameters["inputs"]
         for key in inputs:
 
@@ -87,6 +96,9 @@ def submit():
             if (not isinstance(inputs[key], str)) or (keytest != key):
                 return(FAIL(CODE_MISSING))
 
+            if input_definitions[key]["length"] and len(inputs[key]) > input_definitions[key]["length"]:
+                return(FAIL(CODE_MISSING))
+
             inputs[key] = ''.join(c for c in inputs[key] if (c.isalnum() or c == " "))
 
         new_input["inputs"] = inputs
diff --git a/static/game/debug/renderer.js b/static/game/debug/renderer.js
index c4c971cce938426a1e790b16624e22bd5c2cd8c2..def0bac34cee64f070ea49ef3bcea5b9cdbbc113 100644
--- a/static/game/debug/renderer.js
+++ b/static/game/debug/renderer.js
@@ -63,6 +63,7 @@ function renderRole(_definition, _roleIdle) {
         var c = element["class"];
         var name = element["name"];
         var value = element["value"];
+        var length = element["length"];
 
         if(prompt){
             for(var varname in prompt){
@@ -81,6 +82,9 @@ function renderRole(_definition, _roleIdle) {
             case "input":
                 e = $("<input class='game_input' type='text'/>");
                 e.attr("placeholder", value);
+                if(length) {
+                    e.attr("maxlength", length);
+                }
                 if(!prompt) {
                     e.attr("disabled", "true");
                 }