t = game.get_player(connection_id)
     if not t:
         raise GameError('can only draw face when already logged in')
-    if len(face) != 9:
+    if len(face) != 18:
         raise GameError('wrong face string length')
     game.faces[t.name] = face
     game.changed = True
 cmd_PLAYER_FACE.argtypes = 'string'
 
 def cmd_GOD_PLAYER_FACE(game, name, face):
+    if len(face) != 18:
+        raise GameError('wrong face string length')
     game.faces[name] = face
 cmd_GOD_PLAYER_FACE.argtypes = 'string string'
 
 def cmd_GOD_PLAYER_HAT(game, name, hat):
+    if len(hat) != 18:
+        raise GameError('wrong hat string length')
     game.hats[name] = hat
 cmd_GOD_PLAYER_HAT.argtypes = 'string string'
 
 def cmd_THING_HAT_DESIGN(game, thing_id, design):
-    if len(design) != 9:
+    if len(design) != 18:
         raise GameError('hat design of wrong length')
     t = game.get_thing(thing_id)
     if not t:
 
             if t.name in self.faces:
                 return self.faces[t.name]
             else:
-                return 'O O' + ' v ' + '>-<'
+                return '/O  O\\' + '| oo |' + '\\>--</'
         return None
 
     def send_gamestate(self, connection_id=None):
 
 class Thing_Hat(Thing):
     symbol_hint = 'H'
     portable = True
-    design = ' X  X ==='
+    design = ' +--+ ' + ' |  | ' + '======'
 
 
 
         import string
         new_design = ''
         legal_chars = string.ascii_letters + string.digits + string.punctuation + ' '
-        for i in range(9):
+        for i in range(18):
             new_design += random.choice(list(legal_chars))
         hat.design = new_design
         self.sound('HAT REMIXER', 'remixing a hat …')
 
 </div>
 <script>
 "use strict";
-let websocket_location = "wss://plomlompom.com/rogue_chat/";
-//let websocket_location = "ws://localhost:8001/";
+//let websocket_location = "wss://plomlompom.com/rogue_chat/";
+let websocket_location = "ws://localhost:8000/";
 
 let mode_helps = {
     'play': {
     'enter_face': {
         'short': 'enter your face',
         'intro': '@ enter face line (enter nothing to abort):',
-        'long': 'Draw your face as ASCII art.  The string you enter must be 9 characters long, and will be divided on display into three lines of three characters each, from top to bottom..'
+        'long': 'Draw your face as ASCII art.  The string you enter must be 18 characters long, and will be divided on display into 3 lines of 6 characters each, from top to bottom..'
     },
     'write': {
         'short': 'change terrain',
                      }
                      info_to_cache += " / protection: " + protection + "\n";
                      if (t.hat) {
-                         info_to_cache += t.hat.slice(0, 3) + '\n';
-                         info_to_cache += t.hat.slice(3, 6) + '\n';
-                         info_to_cache += t.hat.slice(6, 9) + '\n';
+                         info_to_cache += t.hat.slice(0, 6) + '\n';
+                         info_to_cache += t.hat.slice(6, 12) + '\n';
+                         info_to_cache += t.hat.slice(12, 18) + '\n';
                      }
                      if (t.face) {
-                         info_to_cache += t.face.slice(0, 3) + '\n';
-                         info_to_cache += t.face.slice(3, 6) + '\n';
-                         info_to_cache += t.face.slice(6, 9) + '\n';
+                         info_to_cache += t.face.slice(0, 6) + '\n';
+                         info_to_cache += t.face.slice(6, 12) + '\n';
+                         info_to_cache += t.face.slice(12, 18) + '\n';
                      }
                  }
             }
         server.send(['LOGIN', tui.inputEl.value]);
         tui.inputEl.value = "";
     } else if (tui.mode.name == 'enter_face' && event.key == 'Enter') {
-        if (tui.inputEl.value.length != 9) {
+        if (tui.inputEl.value.length != 18) {
             tui.log_msg('? wrong input length, aborting');
         } else {
             server.send(['PLAYER_FACE', tui.inputEl.value]);
               server.send(["TASK:DOOR"]);
           } else if (event.key === tui.keys.install && tui.task_action_on('install')) {
               server.send(["TASK:INSTALL"]);
-          } else if (event.key === tui.keys.install && tui.task_action_on('wear')) {
+          } else if (event.key === tui.keys.wear && tui.task_action_on('wear')) {
               server.send(["TASK:WEAR"]);
           } else if (event.key in tui.movement_keys && tui.task_action_on('move')) {
               server.send(['TASK:MOVE', tui.movement_keys[event.key]]);
 
     'enter_face': {
         'short': 'enter your face',
         'intro': '@ enter face line (enter nothing to abort):',
-        'long': 'Draw your face as ASCII art.  The string you enter must be 9 characters long, and will be divided on display into three lines of three characters each, from top to bottom..'
+        'long': 'Draw your face as ASCII art.  The string you enter must be 18 characters long, and will be divided on display into 3 lines of 6 characters each, from top to bottom..'
     },
     'write': {
         'short': 'change terrain',
                         protection = 'none'
                     info_to_cache += ' / protection: %s\n' % protection
                     if hasattr(t, 'hat'):
-                        info_to_cache += t.hat[0:3] + '\n'
-                        info_to_cache += t.hat[3:6] + '\n'
-                        info_to_cache += t.hat[6:9] + '\n'
+                        info_to_cache += t.hat[0:6] + '\n'
+                        info_to_cache += t.hat[6:12] + '\n'
+                        info_to_cache += t.hat[12:18] + '\n'
                     if hasattr(t, 'face'):
-                        info_to_cache += t.face[0:3] + '\n'
-                        info_to_cache += t.face[3:6] + '\n'
-                        info_to_cache += t.face[6:9] + '\n'
+                        info_to_cache += t.face[0:6] + '\n'
+                        info_to_cache += t.face[6:12] + '\n'
+                        info_to_cache += t.face[12:18] + '\n'
             terrain_char = self.game.map_content[pos_i]
             terrain_desc = '?'
             if terrain_char in self.game.terrains:
                 self.send('LOGIN ' + quote(self.input_))
                 self.input_ = ""
             elif self.mode.name == 'enter_face' and key == '\n':
-                if len(self.input_) != 9:
+                if len(self.input_) != 18:
                     self.log_msg('? wrong input length, aborting')
                 else:
                     self.send('PLAYER_FACE %s' % quote(self.input_))