diff --git a/app/assets/javascripts/workers/worker_world.js b/app/assets/javascripts/workers/worker_world.js
index 00a2a2d03..45c5e80d7 100644
--- a/app/assets/javascripts/workers/worker_world.js
+++ b/app/assets/javascripts/workers/worker_world.js
@@ -5,6 +5,32 @@
 if(typeof window !== 'undefined' || !self.importScripts)
   throw "Attempt to load worker_world into main window instead of web worker.";
 
+// Taken from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
+// This is here for running simuations in enviroments lacking function.bind (PhantomJS mostly)
+if (!Function.prototype.bind) {
+  Function.prototype.bind = function (oThis) {
+    if (typeof this !== "function") {
+      // closest thing possible to the ECMAScript 5 internal IsCallable function
+      throw new TypeError("Function.prototype.bind (Shim) - target is not callable");
+    }
+
+    var aArgs = Array.prototype.slice.call(arguments, 1), 
+        fToBind = this, 
+        fNOP = function () {},
+        fBound = function () {
+          return fToBind.apply(this instanceof fNOP && oThis
+                                 ? this
+                                 : oThis,
+                               aArgs.concat(Array.prototype.slice.call(arguments)));
+        };
+
+    fNOP.prototype = this.prototype;
+    fBound.prototype = new fNOP();
+
+    return fBound;
+  };
+}
+
 // assign global window so that Brunch's require (in world.js) can go into it
 self.window = self;
 self.workerID = "Worker";
diff --git a/app/lib/AsyncCloner.coffee b/app/lib/AsyncCloner.coffee
new file mode 100644
index 000000000..7050d3452
--- /dev/null
+++ b/app/lib/AsyncCloner.coffee
@@ -0,0 +1,82 @@
+#CocoClass = require 'lib/CocoClass'
+#
+#module.exports = class AsyncCloner extends CocoClass
+#  constructor: (@source, @depth=2) ->
+#    # passing in a depth of 0 will just _.clone the first layer, and will result in 1 indexList
+#    super()
+#    @indexLists = []
+#    @initClone()
+#  
+#  initClone: () ->
+#    @target = AsyncCloner.cloneToDepth(@source, @depth)
+#    @indexLists = [_.keys(@target)] if _.isObject @target
+#    
+#  @cloneToDepth: (value, depth) ->
+#    value = _.clone(value)
+#    return value unless depth and _.isObject value
+#    value[key] = @cloneToDepth(value[key], depth-1) for key in _.keys value
+#    value
+#    
+#  clone: ->
+#    while @indexLists.length
+#      #console.log 'Clone loop:', JSON.stringify @indexLists
+#      @moveIndexForward() # fills or empties the index so @indexLists.length === @depth + 1
+#      break if @done()
+#      @cloneOne()
+#      @moveIndexForwardOne()
+#      break if @done() or @timeToSleep()
+#      
+#  moveIndexForward: ->
+#    while @indexLists.length
+#      nextValue = @getNextValue()
+#      if _.isObject(nextValue)
+#        if @indexLists.length <= @depth
+#          # push a new list if it's a collection
+#          @indexLists.push _.keys(nextValue)
+#          continue
+#        else 
+#          break # we done, the next value needs to be deep cloned
+#      #console.log 'Skipping:', @getNextPath()
+#      @moveIndexForwardOne() # move past this value otherwise
+#      #console.log '\tMoved index forward', JSON.stringify @indexLists
+#
+#  getNextValue: ->
+#    value = @target
+#    value = value[indexList[0]] for indexList in @indexLists
+#    value
+#    
+#  getNextParent: ->
+#    parent = @target
+#    parent = parent[indexList[0]] for indexList in @indexLists[...-1]
+#    parent
+#    
+#  getNextPath: ->
+#    (indexList[0] for indexList in @indexLists when indexList.length).join '.'
+#    
+#  moveIndexForwardOne: ->
+#    @indexLists[@indexLists.length-1].shift() # move the index forward one
+#    # if we reached the end of an index list, trim down through all finished lists
+#    while @indexLists.length and not @indexLists[@indexLists.length-1].length
+#      @indexLists.pop()
+#      @indexLists[@indexLists.length-1].shift() if @indexLists.length
+#
+#  cloneOne: ->
+#    if @indexLists.length isnt @depth + 1
+#      throw new Error('Cloner is in an invalid state!')
+#    parent = @getNextParent()
+#    key = @indexLists[@indexLists.length-1][0]
+#    parent[key] = _.cloneDeep parent[key]
+#    #console.log 'Deep Cloned:', @getNextPath()
+#
+#  done: -> not @indexLists.length
+#    
+#  timeToSleep: -> false
+
+
+###
+  Overall, the loop is:
+    Fill indexes if we need to to the depth we've cloned
+    Clone that one, popping it off the list.
+    If the last list is now empty, pop that list and every subsequent list if needed.
+    Check for doneness, or timeout.
+###
\ No newline at end of file
diff --git a/app/lib/LevelBus.coffee b/app/lib/LevelBus.coffee
index 18985716b..2ac996640 100644
--- a/app/lib/LevelBus.coffee
+++ b/app/lib/LevelBus.coffee
@@ -18,7 +18,6 @@ module.exports = class LevelBus extends Bus
     'surface:frame-changed': 'onFrameChanged'
     'surface:sprite-selected': 'onSpriteSelected'
     'level-set-playing': 'onSetPlaying'
-    'thang-code-ran': 'onCodeRan'
     'level-show-victory': 'onVictory'
     'tome:spell-changed': 'onSpellChanged'
     'tome:spell-created': 'onSpellCreated'
@@ -174,17 +173,6 @@ module.exports = class LevelBus extends Bus
     @changedSessionProperties.state = true
     @saveSession()
 
-  onCodeRan: (e) ->
-    return unless @onPoint()
-    state = @session.get('state')
-    state.thangs ?= {}
-    methods = _.cloneDeep(e.methods)
-    delete method.metrics.statements for methodName, method of methods
-    state.thangs[e.thangID] = { methods: methods }
-    @session.set('state', state)
-    @changedSessionProperties.state = true
-    @saveSession()
-
   onVictory: ->
     return unless @onPoint()
     state = @session.get('state')
diff --git a/app/lib/LevelLoader.coffee b/app/lib/LevelLoader.coffee
index 5651917a5..9d65a3d5d 100644
--- a/app/lib/LevelLoader.coffee
+++ b/app/lib/LevelLoader.coffee
@@ -47,6 +47,7 @@ module.exports = class LevelLoader extends CocoClass
   # Session Loading
 
   loadSession: ->
+    return if @headless
     if @sessionID
       url = "/db/level_session/#{@sessionID}"
     else
@@ -68,6 +69,7 @@ module.exports = class LevelLoader extends CocoClass
       @opponentSession.once 'sync', @onSessionLoaded, @
 
   sessionsLoaded: ->
+    return true if @headless
     @session.loaded and ((not @opponentSession) or @opponentSession.loaded)
 
   onSessionLoaded: ->
@@ -107,17 +109,18 @@ module.exports = class LevelLoader extends CocoClass
   # Things to do when either the Session or Supermodel load
 
   update: =>
+    return if @destroyed
     @notifyProgress()
 
     return if @updateCompleted
     return unless @supermodel?.finished() and @sessionsLoaded()
     @denormalizeSession()
     @loadLevelSounds()
-    app.tracker.updatePlayState(@level, @session)
+    app.tracker.updatePlayState(@level, @session) unless @headless
     @updateCompleted = true
 
   denormalizeSession: ->
-    return if @sessionDenormalized or @spectateMode
+    return if @headless or @sessionDenormalized or @spectateMode
     patch =
       'levelName': @level.get('name')
       'levelID': @level.get('slug') or @level.id
@@ -170,13 +173,11 @@ module.exports = class LevelLoader extends CocoClass
     building = thangType.buildSpriteSheet options
     return unless building
     #console.log 'Building:', thangType.get('name'), options
-    t0 = new Date()
     @spriteSheetsToBuild += 1
     thangType.once 'build-complete', =>
       return if @destroyed
       @spriteSheetsBuilt += 1
       @notifyProgress()
-      console.log "Built", thangType.get('name'), 'after', ((new Date()) - t0), 'ms'
 
   # World init
 
diff --git a/app/lib/scripts/ScriptManager.coffee b/app/lib/scripts/ScriptManager.coffee
index 004f7d854..69ef4427c 100644
--- a/app/lib/scripts/ScriptManager.coffee
+++ b/app/lib/scripts/ScriptManager.coffee
@@ -64,7 +64,7 @@ module.exports = ScriptManager = class ScriptManager extends CocoClass
     @triggered = []
     @ended = []
     @noteGroupQueue = []
-    @scripts = _.cloneDeep(@originalScripts)
+    @scripts = $.extend(true, [], @originalScripts)
 
   addScriptSubscriptions: ->
     idNum = 0
diff --git a/app/lib/simulator/Simulator.coffee b/app/lib/simulator/Simulator.coffee
index 441d65652..6dad97a9a 100644
--- a/app/lib/simulator/Simulator.coffee
+++ b/app/lib/simulator/Simulator.coffee
@@ -44,7 +44,7 @@ module.exports = class Simulator extends CocoClass
     return @handleNoGamesResponse() if jqXHR.status is 204
     @trigger 'statusUpdate', 'Setting up simulation!'
     @task = new SimulationTask(taskData)
-    @supermodel = new SuperModel()
+    @supermodel ?= new SuperModel()
     @god = new God maxWorkerPoolSize: 1, maxAngels: 1  # Start loading worker.
 
     @levelLoader = new LevelLoader supermodel: @supermodel, levelID: @task.getLevelName(), sessionID: @task.getFirstSessionID(), headless: true
diff --git a/app/lib/sprites/SpriteParser.coffee b/app/lib/sprites/SpriteParser.coffee
index 15fe749cd..ce5b08f4b 100644
--- a/app/lib/sprites/SpriteParser.coffee
+++ b/app/lib/sprites/SpriteParser.coffee
@@ -1,7 +1,7 @@
 module.exports = class SpriteParser
   constructor: (@thangTypeModel) ->
     # Create a new ThangType, or work with one we've been building
-    @thangType = _.cloneDeep(@thangTypeModel.attributes.raw)
+    @thangType = $.extend(true, {}, @thangTypeModel.attributes.raw)
     @thangType ?= {}
     @thangType.shapes ?= {}
     @thangType.containers ?= {}
diff --git a/app/lib/surface/CocoSprite.coffee b/app/lib/surface/CocoSprite.coffee
index 9fe0b45a1..d223ac571 100644
--- a/app/lib/surface/CocoSprite.coffee
+++ b/app/lib/surface/CocoSprite.coffee
@@ -22,6 +22,7 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
   healthBar: null
   marks: null
   labels: null
+  ranges: null
 
   options:
     resolutionFactor: 4
@@ -56,12 +57,13 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
 
   constructor: (@thangType, options) ->
     super()
-    @options = _.extend(_.cloneDeep(@options), options)
+    @options = _.extend($.extend(true, {}, @options), options)
     @setThang @options.thang
     console.error @toString(), "has no ThangType!" unless @thangType
     @actionQueue = []
     @marks = {}
     @labels = {}
+    @ranges = []
     @handledAoEs = {}
     @age = 0
     @scaleFactor = @targetScaleFactor = 1
@@ -250,6 +252,12 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
       return
     scaleX = if @getActionProp 'flipX' then -1 else 1
     scaleY = if @getActionProp 'flipY' then -1 else 1
+    if @thangType.get('name') is 'Arrow'
+      # scale the arrow so it appears longer when flying parallel to horizon
+      angle = @getRotation()
+      angle = -angle if angle < 0
+      angle = 180 - angle if angle > 90
+      scaleX = 0.5 + 0.5 * (90 - angle) / 90
     scaleFactorX = @thang.scaleFactorX ? @scaleFactor
     scaleFactorY = @thang.scaleFactorY ? @scaleFactor
     @imageObject.scaleX = @originalScaleX * scaleX * scaleFactorX
@@ -425,9 +433,17 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
       allProps = allProps.concat (@thang.programmableProperties ? [])
       allProps = allProps.concat (@thang.moreProgrammableProperties ? [])
 
-      @addMark('voiceradius') if 'voiceRange' in allProps
-      @addMark('visualradius') if 'visualRange' in allProps
-      @addMark('attackradius') if 'attackRange' in allProps
+      for property in allProps
+        if m = property.match /.*Range$/
+          if @thang[m[0]]? and @thang[m[0]] < 9001
+            @ranges.push
+              name: m[0]
+              radius: @thang[m[0]]
+
+      @ranges = _.sortBy @ranges, 'radius'
+      @ranges.reverse()
+
+      @addMark range.name for range in @ranges
 
       @addMark('bounds').toggle true if @thang?.drawsBounds
       @addMark('shadow').toggle true unless @thangType.get('shadow') is 0
@@ -438,13 +454,9 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
     @marks.repair?.toggle @thang?.errorsOut
 
     if @selected
-      @marks.voiceradius?.toggle true
-      @marks.visualradius?.toggle true
-      @marks.attackradius?.toggle true
+      @marks[range['name']].toggle true for range in @ranges
     else
-      @marks.voiceradius?.toggle false
-      @marks.visualradius?.toggle false
-      @marks.attackradius?.toggle false
+      @marks[range['name']].toggle false for range in @ranges
 
     mark.update() for name, mark of @marks
     #@thang.effectNames = ['berserk', 'confuse', 'control', 'curse', 'fear', 'poison', 'paralyze', 'regen', 'sleep', 'slow', 'haste']
diff --git a/app/lib/surface/Mark.coffee b/app/lib/surface/Mark.coffee
index dc7568b12..516862446 100644
--- a/app/lib/surface/Mark.coffee
+++ b/app/lib/surface/Mark.coffee
@@ -55,9 +55,7 @@ module.exports = class Mark extends CocoClass
       if @name is 'bounds' then @buildBounds()
       else if @name is 'shadow' then @buildShadow()
       else if @name is 'debug' then @buildDebug()
-      else if @name is 'voiceradius' then @buildRadius('voice')
-      else if @name is 'visualradius' then @buildRadius('visual')
-      else if @name is 'attackradius' then @buildRadius('attack')
+      else if @name.match(".*Range$") then @buildRadius(@name)
       else if @thangType then @buildSprite()
       else console.error "Don't know how to build mark for", @name
       @mark?.mouseEnabled = false
@@ -117,51 +115,40 @@ module.exports = class Mark extends CocoClass
     @mark.layerIndex = 10
     #@mark.cache 0, 0, diameter, diameter  # not actually faster than simple ellipse draw
 
-  buildRadius: (type) ->
-    return if type is 'voice' and @sprite.thang.voiceRange > 9000
-    return if type is 'visual' and @sprite.thang.visualRange > 9000
-    return if type is 'attack' and @sprite.thang.attackRange > 9000
-
+  buildRadius: (range) ->
+    alpha = 0.35
     colors =
-      voice: "rgba(0, 145, 0, alpha)"
-      visual: "rgba(0, 0, 145, alpha)"
-      attack: "rgba(145, 0, 0, alpha)"
+      voiceRange: "rgba(0, 145, 0, #{alpha})"
+      visualRange: "rgba(0, 0, 145, #{alpha})"
+      attackRange: "rgba(145, 0, 0, #{alpha})"
 
-    color = colors[type]
+    # Fallback colors which work on both dungeon and grass tiles
+    extracolors = [
+      "rgba(145, 0, 145, #{alpha})"
+      "rgba(0, 145, 145, #{alpha})"
+      "rgba(145, 105, 0, #{alpha})"
+      "rgba(225, 125, 0, #{alpha})"
+    ]
+
+    # Find the index of this range, to find the next-smallest radius
+    rangeNames = @sprite.ranges.map((range, index) ->
+      range['name']
+    )
+    i = rangeNames.indexOf(range)
 
     @mark = new createjs.Shape()
-    @mark.graphics.beginFill color.replace('alpha', 0.4)
-    
-    if type is 'voice'
-      r = @sprite.thang.voiceRange
-      ranges = [
-        r, 
-        if 'visualradius' of @sprite.marks and @sprite.thang.visualRange < 9001 then @sprite.thang.visualRange else 0,
-        if 'attackradius' of @sprite.marks and @sprite.thang.attackRange < 9001 then @sprite.thang.attackRange else 0 
-      ]
-    else if type is 'visual'
-      r = @sprite.thang.visualRange
-      ranges = [
-        r, 
-        if 'attackradius' of @sprite.marks and @sprite.thang.attackRange < 9001 then @sprite.thang.attackRange else 0,
-        if 'voiceradius' of @sprite.marks and @sprite.thang.voiceRange < 9001 then @sprite.thang.voiceRange else 0, 
-      ]
-    else if type is 'attack'
-      r = @sprite.thang.attackRange
-      ranges = [
-        r, 
-        if 'voiceradius' of @sprite.marks and @sprite.thang.voiceRange < 9001 then @sprite.thang.voiceRange else 0, 
-        if 'visualradius' of @sprite.marks and @sprite.thang.visualRange < 9001 then @sprite.thang.visualRange else 0
-      ]
-      
-    # Draw the outer circle
-    @mark.graphics.drawCircle 0, 0, r * Camera.PPM
 
-    # Cut out the inner circle
-    if Math.max(ranges['1'], ranges['2']) < r
-      @mark.graphics.arc 0, 0, Math.max(ranges['1'], ranges['2']) * Camera.PPM, Math.PI*2, 0, true
-    else if Math.min(ranges['1'], ranges['2']) < r
-      @mark.graphics.arc 0, 0, Math.min(ranges['1'], ranges['2']) * Camera.PPM, Math.PI*2, 0, true
+    if colors[range]?
+      @mark.graphics.beginFill colors[range]
+    else
+      @mark.graphics.beginFill extracolors[i]
+   
+    # Draw the outer circle
+    @mark.graphics.drawCircle 0, 0, @sprite.thang[range] * Camera.PPM
+
+    # Cut out the hollow part if necessary
+    if i+1 < @sprite.ranges.length
+      @mark.graphics.arc 0, 0, @sprite.ranges[i+1]['radius'], Math.PI*2, 0, true
 
     # Add perspective
     @mark.scaleY *= @camera.y2x
diff --git a/app/lib/surface/WizardSprite.coffee b/app/lib/surface/WizardSprite.coffee
index 702f79ce4..9a50abc0f 100644
--- a/app/lib/surface/WizardSprite.coffee
+++ b/app/lib/surface/WizardSprite.coffee
@@ -30,7 +30,7 @@ module.exports = class WizardSprite extends IndieSprite
 
   constructor: (thangType, options) ->
     if options?.isSelf
-      options.colorConfig = _.cloneDeep(me.get('wizard')?.colorConfig) or {}
+      options.colorConfig = $.extend(true, {}, me.get('wizard')?.colorConfig) or {}
     super thangType, options
     @isSelf = options.isSelf
     @targetPos = @thang.pos
@@ -67,7 +67,7 @@ module.exports = class WizardSprite extends IndieSprite
     @setNameLabel me.displayName() if @displayObject.visible  # not if we hid the wiz
     newColorConfig = me.get('wizard')?.colorConfig or {}
     shouldUpdate = not _.isEqual(newColorConfig, @options.colorConfig)
-    @options.colorConfig = _.cloneDeep(newColorConfig)
+    @options.colorConfig = $.extend(true, {}, newColorConfig)
     if shouldUpdate
       @setupSprite()
       @playAction(@currentAction)
diff --git a/app/lib/world/GoalManager.coffee b/app/lib/world/GoalManager.coffee
index b017482b8..d524a0386 100644
--- a/app/lib/world/GoalManager.coffee
+++ b/app/lib/world/GoalManager.coffee
@@ -90,7 +90,7 @@ module.exports = class GoalManager extends CocoClass
   # IMPLEMENTATION DETAILS
 
   addGoal: (goal) ->
-    goal = _.cloneDeep(goal)
+    goal = $.extend(true, {}, goal)
     goal.id = @nextGoalID++ if not goal.id
     return if @goalStates[goal.id]?
     @goals.push(goal)
diff --git a/app/locale/ar.coffee b/app/locale/ar.coffee
index c475a3616..a60615c42 100644
--- a/app/locale/ar.coffee
+++ b/app/locale/ar.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/bg.coffee b/app/locale/bg.coffee
index b437e563b..4c738a135 100644
--- a/app/locale/bg.coffee
+++ b/app/locale/bg.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "български език", englishDescri
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/cs.coffee b/app/locale/cs.coffee
index 19e9675d7..8d553c2aa 100644
--- a/app/locale/cs.coffee
+++ b/app/locale/cs.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
     nick_description: "Programátorský kouzelník, excentrický motivační mág i experimentátor. Nick by mohl dělat de-facto cokoliv, ale zvolil si vytvořit CodeCombat."
     jeremy_description: "Mistr zákaznické podpory, tester použitelnosti a organizátor komunity. Je velmi pravděpodobné, že jste si spolu již psali."
     michael_description: "Programátor, systémový administrátor a král podsvětí technického zázemí. Michael udržuje naše servery online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
   legal:
     page_title: "Licence"
diff --git a/app/locale/da.coffee b/app/locale/da.coffee
index cf28388d2..18a0d4789 100644
--- a/app/locale/da.coffee
+++ b/app/locale/da.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/de.coffee b/app/locale/de.coffee
index ecbe454f9..8b453fa9f 100644
--- a/app/locale/de.coffee
+++ b/app/locale/de.coffee
@@ -140,8 +140,8 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
     email_subscriptions: "Email Abonnements"
     email_announcements: "Ankündigungen"
     email_notifications: "Benachrichtigungen"
-#    email_notifications_description: "Get periodic notifications for your account."
-    email_announcements_description: "Erhalte regelmäßig Mitteilungen für deinen Account."
+    email_notifications_description: "Erhalte regelmäßig Benachrichtigungen zu deinem Account."
+    email_announcements_description: "Erhalte regelmäßig Ankündigungen zu deinem Account."
     contributor_emails: "Unterstützer Email"
     contribute_prefix: "Wir suchen nach Leuten, die mitmachen! Schau dir die"
     contribute_page: "Unterstützer Seite"
@@ -154,7 +154,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
   account_profile:
     edit_settings: "Einstellungen ändern"
     profile_for_prefix: "Profil von "
-#    profile_for_suffix: ""
+    profile_for_suffix: ""
     profile: "Profil"
     user_not_found: "Kein Nutzer gefunden. URL überprüft?"
     gravatar_not_found_mine: "Wir konnten dein Profil nicht finden, das mit folgender Email Adresse verbunden ist:"
@@ -182,7 +182,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
     reload_title: "Gesamten Code neu laden?"
     reload_really: "Bist Du sicher, dass Du das Level neu beginnen willst?"
     reload_confirm: "Alles neu laden"
-#    victory_title_prefix: ""
+    victory_title_prefix: ""
     victory_title_suffix: " Abgeschlossen"
     victory_sign_up: "Melde Dich an, um Fortschritte zu speichern"
     victory_sign_up_poke: "Möchtest Du Neuigkeiten per Mail erhalten? Erstelle einen kostenlosen Account und wir halten Dich auf dem Laufenden."
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
     nick_description: "Programmierzauberer, exzentrischer Motivationskünstler und  Auf-den-Kopf-stell-Experimentierer. Nick könnte alles mögliche tun und entschied CodeCombat zu bauen."
     jeremy_description: "Kundendienstmagier, Usability Tester und Community-Organisator. Wahrscheinlich hast du schon mit Jeremy gesprochen."
     michael_description: "Programmierer, Systemadministrator und studentisch technisches Wunderkind, Michael hält unsere Server am Laufen."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
   legal:
     page_title: "Rechtliches"
@@ -507,10 +508,10 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
     counselor_title: "Berater"
     counselor_title_description: "(Experte/Lehrer)"
 
-#  ladder:
-#    please_login: "Please log in first before playing a ladder game."
-#    my_matches: "My Matches"
-#    simulate: "Simulate"
+  ladder:
+    please_login: "Bitte logge dich zunächst ein, bevor du ein Ladder-Game spielst."
+    my_matches: "Meine Matches"
+    simulate: "Simuliere"
 #    simulation_explanation: "By simulating games you can get your game ranked faster!"
 #    simulate_games: "Simulate Games!"
 #    simulate_all: "RESET AND SIMULATE GAMES"
@@ -529,15 +530,15 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
 #    code_being_simulated: "Your new code is being simulated by other players for ranking. This will refresh as new matches come in."
 #    no_ranked_matches_pre: "No ranked matches for the "
 #    no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
-#    choose_opponent: "Choose an Opponent"
-#    tutorial_play: "Play Tutorial"
-#    tutorial_recommended: "Recommended if you've never played before"
-#    tutorial_skip: "Skip Tutorial"
+    choose_opponent: "Wähle einen Gegner"
+    tutorial_play: "Spiele Tutorial"
+    tutorial_recommended: "Empfohlen, wenn du noch nie zuvor gespielt hast."
+    tutorial_skip: "Überspringe Tutorial"
 #    tutorial_not_sure: "Not sure what's going on?"
-#    tutorial_play_first: "Play the Tutorial first."
-#    simple_ai: "Simple AI"
-#    warmup: "Warmup"
-#    vs: "VS"
+    tutorial_play_first: "Spiele zuerst das Tutorial."
+    simple_ai: "Einfache KI"
+    warmup: "Aufwärmen"
+    vs: "VS"
 
 #  multiplayer_launch:
 #    introducing_dungeon_arena: "Introducing Dungeon Arena"
diff --git a/app/locale/el.coffee b/app/locale/el.coffee
index bf8d73aab..7c91855b4 100644
--- a/app/locale/el.coffee
+++ b/app/locale/el.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/en-AU.coffee b/app/locale/en-AU.coffee
index b023461e2..6b5fc38d6 100644
--- a/app/locale/en-AU.coffee
+++ b/app/locale/en-AU.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that matter. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/en-GB.coffee b/app/locale/en-GB.coffee
index b22a3fb3f..650e626e2 100644
--- a/app/locale/en-GB.coffee
+++ b/app/locale/en-GB.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that matter. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/en-US.coffee b/app/locale/en-US.coffee
index f0d48a618..c3498ac88 100644
--- a/app/locale/en-US.coffee
+++ b/app/locale/en-US.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that matter. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/en.coffee b/app/locale/en.coffee
index b0527c58c..26346f12d 100644
--- a/app/locale/en.coffee
+++ b/app/locale/en.coffee
@@ -350,7 +350,7 @@ module.exports = nativeDescription: "English", englishDescription: "English", tr
     nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
     jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
     michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
-    glen_description: "Glen, describe thyself!"
+    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that matter. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
   legal:
     page_title: "Legal"
diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee
index 21ee55bfb..42e6f5714 100644
--- a/app/locale/es-419.coffee
+++ b/app/locale/es-419.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/es-ES.coffee b/app/locale/es-ES.coffee
index f4088723e..1b6c2f4bd 100644
--- a/app/locale/es-ES.coffee
+++ b/app/locale/es-ES.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
     nick_description: "Mago de la programación, hechicero excéntrico de la motivación y experimentador del revés. Nick pudo haber hecho cualquier cosa y eligió desarrollar CodeCombat."
     jeremy_description: "Mago de la atención al cliente, tester de usabilidad y organizador de la comunidad; es probable que ya hayas hablado con Jeremy."
     michael_description: "Programador, administrador de sistemas y prodigio técnico, Michael es el encargado de mantener nuestros servidores en línea."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
   legal:
     page_title: "Legal"
diff --git a/app/locale/es.coffee b/app/locale/es.coffee
index f9b4dd2d1..cf32e9db3 100644
--- a/app/locale/es.coffee
+++ b/app/locale/es.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/fa.coffee b/app/locale/fa.coffee
index 9c411e13f..a5f9ad1fc 100644
--- a/app/locale/fa.coffee
+++ b/app/locale/fa.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/fi.coffee b/app/locale/fi.coffee
index 9eb38128c..b839a8965 100644
--- a/app/locale/fi.coffee
+++ b/app/locale/fi.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee
index cf2191f0d..667f81052 100644
--- a/app/locale/fr.coffee
+++ b/app/locale/fr.coffee
@@ -66,12 +66,12 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
     no_ie: "CodeCombat ne fonctionnera pas sous Internet Explorer 9 ou moins. Désolé !"
     no_mobile: "CodeCombat n'a pas été créé pour les plateformes mobiles donc il est possible qu'il ne fonctionne pas correctement ! "
     play: "Jouer"
-#    old_browser: "Uh oh, your browser is too old to run CodeCombat. Sorry!"
-#    old_browser_suffix: "You can try anyway, but it probably won't work."
-#    campaign: "Campaign"
-#    for_beginners: "For Beginners"
-#    multiplayer: "Multiplayer"
-#    for_developers: "For Developers"
+    old_browser: "Oh oh, votre navigateur est trop vieux pour executer CodeCombat. Désolé!"
+    old_browser_suffix: "Vous pouvez essayer quan même, mais celà ne marchera probablement pas."
+    campaign: "Campagne"
+    for_beginners: "Pour débutants"
+    multiplayer: "Multijoueurs"
+    for_developers: "Pour développeurs"
 
   play:
     choose_your_level: "Choisissez votre niveau"
@@ -87,8 +87,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
     campaign_player_created: "Niveaux créés par les joueurs"
     campaign_player_created_description: "... Dans laquelle vous serez confrontés à la créativité des votres.<a href=\"/contribute#artisan\">Artisan Wizards</a>."
     level_difficulty: "Difficulté: "
-#    play_as: "Play As "
-#    spectate: "Spectate"
+    play_as: "Jouer comme "
+    spectate: "Spectateur"
 
   contact:
     contact_us: "Contacter CodeCombat"
@@ -130,7 +130,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
     wizard_tab: "Magicien"
     password_tab: "Mot de passe"
     emails_tab: "Emails"
-#    admin: "Admin"
+    admin: "Admin"
     gravatar_select: "Sélectionnez la photo Gravatar à utiliser"
     gravatar_add_photos: "Ajouter des vignettes et des photos sur un compte Gravatar pour votre e-mail pour choisir une image."
     gravatar_add_more_photos: "Ajouter plus de photos à votre compte Gravatar pour y accéder ici."
@@ -139,7 +139,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
     new_password_verify: "Vérifier"
     email_subscriptions: "Abonnements"
     email_announcements: "Annonces"
-#    email_notifications: "Notifications"
+    email_notifications: "Notifications"
     email_notifications_description: "Recevoir des notifications périodiques sur votre compte."
     email_announcements_description: "Recevoir des mails sur les dernières actualités et sur le développement de CodeCombat."
     contributor_emails: "Emails des contributeurs"
@@ -154,7 +154,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
   account_profile:
     edit_settings: "Éditer les préférences"
     profile_for_prefix: "Profil pour "
-#    profile_for_suffix: ""
+    profile_for_suffix: ""
     profile: "Profil"
     user_not_found: "Aucun utilisateur trouvé. Vérifier l'URL?"
     gravatar_not_found_mine: "Nous n'avons pas pu trouver votre profil associé à: "
@@ -187,8 +187,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
     victory_sign_up: "Inscrivez-vous pour recevoir les mises à jour"
     victory_sign_up_poke: "Vous voulez recevoir les dernières actualités par mail? Créez un compte gratuitement et nous vous tiendrons informés!"
     victory_rate_the_level: "Notez ce niveau: "
-#    victory_rank_my_game: "Rank My Game"
-#    victory_ranking_game: "Submitting..."
+    victory_rank_my_game: "Classer mon jeu"
+    victory_ranking_game: "Envoi..."
 #    victory_return_to_ladder: "Return to Ladder"
     victory_play_next_level: "Jouer au prochain niveau"
     victory_go_home: "Retourner à l'accueil"
@@ -212,19 +212,19 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
     tome_select_a_thang: "Sélectionnez une unité pour"
     tome_available_spells: "Sorts diponibles"
     hud_continue: "Continuer (appuie sur shift ou espace)"
-#    spell_saved: "Spell Saved"
-#    skip_tutorial: "Skip (esc)"
-#    editor_config: "Editor Config"
-#    editor_config_title: "Editor Configuration"
-#    editor_config_keybindings_label: "Key Bindings"
-#    editor_config_keybindings_default: "Default (Ace)"
-#    editor_config_keybindings_description: "Adds additional shortcuts known from the common editors."
-#    editor_config_invisibles_label: "Show Invisibles"
-#    editor_config_invisibles_description: "Displays invisibles such as spaces or tabs."
-#    editor_config_indentguides_label: "Show Indent Guides"
-#    editor_config_indentguides_description: "Displays vertical lines to see indentation better."
-#    editor_config_behaviors_label: "Smart Behaviors"
-#    editor_config_behaviors_description: "Autocompletes brackets, braces, and quotes."
+    spell_saved: "Sort enregistré"
+    skip_tutorial: "Passer (esc)"
+    editor_config: "Config de l'éditeur"
+    editor_config_title: "Configuration de l'éditeur"
+    editor_config_keybindings_label: "Raccourcis clavier"
+    editor_config_keybindings_default: "Par défault (Ace)"
+    editor_config_keybindings_description: "Ajouter de nouveaux raccourcis connus depuis l'éditeur commun."
+    editor_config_invisibles_label: "Afficher les caractères non-imprimables"
+    editor_config_invisibles_description: "Permet d'afficher les caractères comme les espaces et les tabulations."
+    editor_config_indentguides_label: "Montrer les indentations"
+    editor_config_indentguides_description: "Affiche des guides verticaux qui permettent de visualiser l'indentation."
+    editor_config_behaviors_label: "Auto-complétion"
+    editor_config_behaviors_description: "Ferme automatiquement les accolades, parenthèses, et chaînes de caractères."
 
   admin:
     av_title: "Vues d'administrateurs"
@@ -249,8 +249,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
     contact_us: "contactez nous!"
     hipchat_prefix: "Vous pouvez aussi nous trouver dans notre "
     hipchat_url: "conversation HipChat."
-#    revert: "Revert"
-#    revert_models: "Revert Models"
+    revert: "Annuler"
+    revert_models: "Annuler les modèles"
     level_some_options: "Quelques options?"
     level_tab_thangs: "Thangs"
     level_tab_scripts: "Scripts"
@@ -269,18 +269,18 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
     level_components_title: "Retourner à tous les Thangs"
     level_components_type: "Type"
     level_component_edit_title: "Éditer le composant"
-#    level_component_config_schema: "Config Schema"
-#    level_component_settings: "Settings"
+    level_component_config_schema: "Configurer le schéma"
+    level_component_settings: "Options"
     level_system_edit_title: "Éditer le système"
     create_system_title: "Créer un nouveau système"
     new_component_title: "Créer un nouveau composant"
     new_component_field_system: "Système"
-#    new_article_title: "Create a New Article"
-#    new_thang_title: "Create a New Thang Type"
-#    new_level_title: "Create a New Level"
-#    article_search_title: "Search Articles Here"
-#    thang_search_title: "Search Thang Types Here"
-#    level_search_title: "Search Levels Here"
+    new_article_title: "Créer un nouvel article"
+    new_thang_title: "Créer un nouveau Type Thang"
+    new_level_title: "Créer un nouveau niveau"
+    article_search_title: "Rechercher dans les articles"
+    thang_search_title: "Rechercher dans les types Thang"
+    level_search_title: "Rechercher dans les niveaux"
 
   article:
     edit_btn_preview: "Prévisualiser"
@@ -292,27 +292,27 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
     body: "Corps"
     version: "Version"
     commit_msg: "Message de mise à jour"
-#    history: "History"
-#    version_history_for: "Version History for: "
-#    result: "Result"
+    history: "Historique"
+    version_history_for: "Historique des versions pour : "
+    result: "Resultat"
     results: "Résultats"
     description: "Description"
     or: "ou"
     email: "Email"
-#    password: "Password"
+    password: "Mot de passe"
     message: "Message"
-#    code: "Code"
-#    ladder: "Ladder"
-#    when: "When"
-#    opponent: "Opponent"
-#    rank: "Rank"
-#    score: "Score"
-#    win: "Win"
-#    loss: "Loss"
-#    tie: "Tie"
-#    easy: "Easy"
-#    medium: "Medium"
-#    hard: "Hard"
+    code: "Code"
+    ladder: "Companion"
+    when: "Lorsuqe"
+    opponent: "Adversaire"
+    rank: "Rang"
+    score: "Score"
+    win: "Victoire"
+    loss: "Défaite"
+    tie: "Ex-aequo"
+    easy: "Facile"
+    medium: "Moyen"
+    hard: "Difficile"
 
   about:
     who_is_codecombat: "Qui est CodeCombat?"
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
     nick_description: "Assistant programmeur, mage à la motivation excentrique, et bidouilleur de l'extrême. Nick peut faire n'importe quoi mais il a choisi CodeCombat."
     jeremy_description: "Mage de l'assistance client, testeur de maniabilité, et community manager; vous avez probablement déjà parlé avec Jeremy."
     michael_description: "Programmeur, administrateur réseau, et l'enfant prodige du premier cycle, Michael est la personne qui maintient nos serveurs en ligne."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
   legal:
     page_title: "Légal"
@@ -507,37 +508,37 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
     counselor_title: "Conseiller"
     counselor_title_description: "(Expert/Professeur)"
 
-#  ladder:
-#    please_login: "Please log in first before playing a ladder game."
-#    my_matches: "My Matches"
-#    simulate: "Simulate"
-#    simulation_explanation: "By simulating games you can get your game ranked faster!"
-#    simulate_games: "Simulate Games!"
-#    simulate_all: "RESET AND SIMULATE GAMES"
-#    leaderboard: "Leaderboard"
-#    battle_as: "Battle as "
-#    summary_your: "Your "
-#    summary_matches: "Matches - "
-#    summary_wins: " Wins, "
-#    summary_losses: " Losses"
-#    rank_no_code: "No New Code to Rank"
-#    rank_my_game: "Rank My Game!"
-#    rank_submitting: "Submitting..."
-#    rank_submitted: "Submitted for Ranking"
-#    rank_failed: "Failed to Rank"
-#    rank_being_ranked: "Game Being Ranked"
-#    code_being_simulated: "Your new code is being simulated by other players for ranking. This will refresh as new matches come in."
-#    no_ranked_matches_pre: "No ranked matches for the "
-#    no_ranked_matches_post: " team! Play against some competitors and then come back here to get your game ranked."
-#    choose_opponent: "Choose an Opponent"
-#    tutorial_play: "Play Tutorial"
-#    tutorial_recommended: "Recommended if you've never played before"
-#    tutorial_skip: "Skip Tutorial"
-#    tutorial_not_sure: "Not sure what's going on?"
-#    tutorial_play_first: "Play the Tutorial first."
-#    simple_ai: "Simple AI"
-#    warmup: "Warmup"
-#    vs: "VS"
+  ladder:
+#    please_login: "Identifie toi avant de jouer à un ladder game."
+    my_matches: "Mes Matchs"
+    simulate: "Simuler"
+    simulation_explanation: "En simulant une partie, tu peux classer ton rang plus rapidement!"
+    simulate_games: "Simuler une Partie!"
+    simulate_all: "REINITIALISER ET SIMULER DES PARTIES"
+    leaderboard: "Classement"
+    battle_as: "Combattre comme "
+    summary_your: "Vos "
+    summary_matches: "Matchs - "
+    summary_wins: " Victoires, "
+    summary_losses: " Défaites"
+    rank_no_code: "Nouveau Code à Classer"
+    rank_my_game: "Classer ma Partie!"
+    rank_submitting: "Soumission en cours..."
+    rank_submitted: "Soumis pour le Classement"
+    rank_failed: "Erreur lors du Classement"
+    rank_being_ranked: "Partie en cours de Classement"
+    code_being_simulated: "Votre nouveau code est en cours de simulation par les autres joueurs pour le classement. Cela va se rafraichir lors que d'autres matchs auront lieu."
+    no_ranked_matches_pre: "Pas de match classé pour l'équipe "
+    no_ranked_matches_post: "! Affronte d'autres compétiteurs et reviens ici pour classer ta partie."
+    choose_opponent: "Choisir un Adversaire"
+    tutorial_play: "Jouer au Tutoriel"
+    tutorial_recommended: "Recommendé si tu n'as jamais joué avant"
+    tutorial_skip: "Passer le Tutoriel"
+    tutorial_not_sure: "Pas sûr de ce qu'il se passe?"
+    tutorial_play_first: "Jouer au Tutoriel d'abord."
+    simple_ai: "IA simple"
+    warmup: "Préchauffe"
+    vs: "VS"
 
 #  multiplayer_launch:
 #    introducing_dungeon_arena: "Introducing Dungeon Arena"
@@ -548,7 +549,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
 #    ladder_explanation: "Choose your heroes, enchant your human or ogre armies, and climb your way over defeated fellow Wizards to reach the top of the ladders–then challenge your friends in our glorious, asynchronous multiplayer coding arenas. If you're feeling creative, you can even"
 #    fork_our_arenas: "fork our arenas"
 #    create_worlds: "and create your own worlds."
-#    javascript_rusty: "JavaScript a bit rusty? Don't worry; there's a"
-#    tutorial: "tutorial"
-#    new_to_programming: ". New to programming? Hit our beginner campaign to skill up."
-#    so_ready: "I Am So Ready for This"
+    javascript_rusty: "JavaScript un peu rouillé? Pas de souci; il y a un"
+    tutorial: "tutoriel"
+    new_to_programming: ". Débutant en programmation? Essaie la campagne débutant pour progresser."
+    so_ready: "Je Suis Prêt Pour Ca"
diff --git a/app/locale/he.coffee b/app/locale/he.coffee
index 9d20257c5..20f0bca44 100644
--- a/app/locale/he.coffee
+++ b/app/locale/he.coffee
@@ -9,7 +9,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
     delay_3_sec: "שלוש שניות"
     delay_5_sec: "חמש שניות"
     manual: "מדריך"
-#    fork: "Fork"
+    fork: "קילשון"
     play: "שחק"
 
   modal:
@@ -26,141 +26,141 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
     forum: "פורום"
     admin: "אדמין"
     home: "בית"
-#    contribute: "Contribute"
-#    legal: "Legal"
-#    about: "About"
-#    contact: "Contact"
-#    twitter_follow: "Follow"
-#    employers: "Employers"
+    contribute: "תרום"
+    legal: "משפטי"
+    about: "עלינו"
+    contact: "צור קשר"
+    twitter_follow: "עקוב אחרינו בטוויטר"
+    employers: "עובדים"
 
-#  versions:
-#    save_version_title: "Save New Version"
-#    new_major_version: "New Major Version"
-#    cla_prefix: "To save changes, first you must agree to our"
+  versions:
+    save_version_title: "שמור גרסה חדשה"
+    new_major_version: "גרסה חשובה חדשה"
+    cla_prefix: "כדי לשמור יש להירשם לאתר"
 #    cla_url: "CLA"
 #    cla_suffix: "."
-#    cla_agree: "I AGREE"
+    cla_agree: "אני מסכים"
 
-#  login:
-#    sign_up: "Create Account"
-#    log_in: "Log In"
-#    log_out: "Log Out"
-#    recover: "recover account"
+  login:
+    sign_up: "הירשם"
+    log_in: "היכנס"
+    log_out: "צא"
+    recover: "שחזר סיסמה"
 
-#  recover:
-#    recover_account_title: "Recover Account"
-#    send_password: "Send Recovery Password"
+  recover:
+    recover_account_title: "שחזר סיסמה"
+    send_password: "שלח סיסמה חדשה"
 
-#  signup:
-#    create_account_title: "Create Account to Save Progress"
-#    description: "It's free. Just need a couple things and you'll be good to go:"
-#    email_announcements: "Receive announcements by email"
-#    coppa: "13+ or non-USA "
-#    coppa_why: "(Why?)"
-#    creating: "Creating Account..."
-#    sign_up: "Sign Up"
-#    log_in: "log in with password"
+  signup:
+    create_account_title: "הירשם כדי לשמור את התקדמותך"
+    description: "זה בחינם. רק כמה דברים וסיימנו:"
+    email_announcements: "קבל הודעות באימייל"
+    coppa: "בן יותר משלוש עשרה או לא בארצות הברית"
+    coppa_why: "(למה?)"
+    creating: "יוצר חשבון..."
+    sign_up: "הירשם"
+    log_in: "כנס עם סיסמה"
 
-#  home:
-#    slogan: "Learn to Code JavaScript by Playing a Game"
-#    no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!"
-#    no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!"
-#    play: "Play"
-#    old_browser: "Uh oh, your browser is too old to run CodeCombat. Sorry!"
-#    old_browser_suffix: "You can try anyway, but it probably won't work."
-#    campaign: "Campaign"
-#    for_beginners: "For Beginners"
-#    multiplayer: "Multiplayer"
-#    for_developers: "For Developers"
+  home:
+    slogan: "גם לשחק וגם ללמוד לתכנת"
+    no_ie: "המשחק לא עובד באקפלורר 9 וישן יותר. סליחה!"
+    no_mobile: "המשחק לא עוצב לטלפונים ואולי לא יעבוד"
+    play: "שחק"
+    old_browser: "או או, נראה כי הדפדפן שלך יותר מידי ישן כדי להריץ את המשחק. סליחה!"
+    old_browser_suffix: "אתה יכול לנסות בכול מקרה אבל זה כנראה לא יעבוד."
+    campaign: "מסע"
+    for_beginners: "למתחילים"
+    multiplayer: "רב-משתתפים"
+    for_developers: "למומחים"
 
-#  play:
-#    choose_your_level: "Choose Your Level"
-#    adventurer_prefix: "You can jump to any level below, or discuss the levels on "
-#    adventurer_forum: "the Adventurer forum"
-#    adventurer_suffix: "."
-#    campaign_beginner: "Beginner Campaign"
-#    campaign_beginner_description: "... in which you learn the wizardry of programming."
-#    campaign_dev: "Random Harder Levels"
-#    campaign_dev_description: "... in which you learn the interface while doing something a little harder."
-#    campaign_multiplayer: "Multiplayer Arenas"
-#    campaign_multiplayer_description: "... in which you code head-to-head against other players."
-#    campaign_player_created: "Player-Created"
-#    campaign_player_created_description: "... in which you battle against the creativity of your fellow <a href=\"/contribute#artisan\">Artisan Wizards</a>."
-#    level_difficulty: "Difficulty: "
-#    play_as: "Play As "
-#    spectate: "Spectate"
+  play:
+    choose_your_level: "בחר את השלב"
+    adventurer_prefix: "אתה יכול לבחור איזה שלב שאתה רוצה למטה, או לדון על שלבים ב"
+    adventurer_forum: "פורום ההרפתקנים"
+    adventurer_suffix: "."
+    campaign_beginner: "מסע המתחילים"
+    campaign_beginner_description: "...שבו תלמד את קסם התכנות."
+    campaign_dev: "שלבים אקראים קשים יותר"
+    campaign_dev_description: "...שבהם תלמד על הממשק בזמן שתעשה משהו קצת קשה יותר."
+    campaign_multiplayer: "זירות רב-המשתתפים"
+    campaign_multiplayer_description: "..."
+    campaign_player_created: "תוצרי השחקנים"
+    campaign_player_created_description: "... שבהם תילחם נגד היצירתיות של <a href=\"/contribute#artisan\">בעלי-המלאכה</a>."
+    level_difficulty: "רמת קושי: "
+    play_as: "שחק בתור "
+    spectate: "צופה"
 
-#  contact:
-#    contact_us: "Contact CodeCombat"
-#    welcome: "Good to hear from you! Use this form to send us email. "
-#    contribute_prefix: "If you're interested in contributing, check out our "
-#    contribute_page: "contribute page"
-#    contribute_suffix: "!"
-#    forum_prefix: "For anything public, please try "
-#    forum_page: "our forum"
-#    forum_suffix: " instead."
-#    send: "Send Feedback"
+  contact:
+    contact_us: "צור קשר"
+    welcome: "טוב לשמוע ממך! השתמש בטופס זה כדי לשלוח לנו אימייל. "
+    contribute_prefix: "אם אתה מעונין לתרום, אז תבדוק את "
+    contribute_page: "דף התרומות שלנו"
+    contribute_suffix: "!"
+    forum_prefix: "בשביל דברים ציבוריים, לך ל "
+    forum_page: "פורום שלנו"
+    forum_suffix: " במקום."
+    send: "שלח אימייל"
 
   diplomat_suggestion:
-#    title: "Help translate CodeCombat!"
-#    sub_heading: "We need your language skills."
-    pitch_body: "We develop CodeCombat in English, but we already have players all over the world. Many of them want to play in Hebrew but don't speak English, so if you can speak both, please consider signing up to be a Diplomat and help translate both the CodeCombat website and all the levels into Hebrew."
-    missing_translations: "Until we can translate everything into Hebrew, you'll see English when Hebrew isn't available."
-#    learn_more: "Learn more about being a Diplomat"
-#    subscribe_as_diplomat: "Subscribe as a Diplomat"
+    title: "עזור לתרגם את CodeCombat!"
+    sub_heading: "אנו צריכים את קישורי השפה שלך!"
+    pitch_body: "אנו פיתחנו את המשחק באנגלית, אבל יש הרבה שחקנים מכול העולם. חלק מהם רוצים לשחק בעברית והם לא מבינים אנגלית. אם אתה דובר את שני השפות, עברית ואנגלית, אז בבקשה עזור לנו לתרגם לעברית את האתר ואת השלבים."
+    missing_translations: "עד שנתרגם הכול לעברית, מה שלא תורגם יופיע באנגלית."
+    learn_more: "תלמד עות על תרומת דיפלומטיה"
+    subscribe_as_diplomat: "הירשם כדיפלומט"
 
-#  wizard_settings:
-#    title: "Wizard Settings"
-#    customize_avatar: "Customize Your Avatar"
-#    clothes: "Clothes"
-#    trim: "Trim"
-#    cloud: "Cloud"
-#    spell: "Spell"
-#    boots: "Boots"
-#    hue: "Hue"
-#    saturation: "Saturation"
-#    lightness: "Lightness"
+  wizard_settings:
+    title: "הגדרות קוסם"
+    customize_avatar: "עצב את הדמות שלך"
+    clothes: "בגדים"
+    trim: "קישוט"
+    cloud: "ענן"
+    spell: "כישוף"
+    boots: "מגפיים"
+    hue: "Hue"
+    saturation: "גוון"
+    lightness: "בהירות"
 
-#  account_settings:
-#    title: "Account Settings"
-#    not_logged_in: "Log in or create an account to change your settings."
-#    autosave: "Changes Save Automatically"
-#    me_tab: "Me"
-#    picture_tab: "Picture"
-#    wizard_tab: "Wizard"
-#    password_tab: "Password"
-#    emails_tab: "Emails"
-#    admin: "Admin"
-#    gravatar_select: "Select which Gravatar photo to use"
-#    gravatar_add_photos: "Add thumbnails and photos to a Gravatar account for your email to choose an image."
-#    gravatar_add_more_photos: "Add more photos to your Gravatar account to access them here."
-#    wizard_color: "Wizard Clothes Color"
-#    new_password: "New Password"
-#    new_password_verify: "Verify"
-#    email_subscriptions: "Email Subscriptions"
-#    email_announcements: "Announcements"
-#    email_notifications: "Notifications"
-#    email_notifications_description: "Get periodic notifications for your account."
-#    email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
-#    contributor_emails: "Contributor Class Emails"
-#    contribute_prefix: "We're looking for people to join our party! Check out the "
-#    contribute_page: "contribute page"
-#    contribute_suffix: " to find out more."
-#    email_toggle: "Toggle All"
-#    error_saving: "Error Saving"
-#    saved: "Changes Saved"
-#    password_mismatch: "Password does not match."
+  account_settings:
+    title: "הגדרות חשבון"
+    not_logged_in: "היכנס או הירשם כדי לערוך את ההדרות שלך"
+    autosave: "שינויים נשמרו אוטומטית"
+    me_tab: "אני"
+    picture_tab: "תמונה"
+    wizard_tab: "קוסם"
+    password_tab: "סיסמה"
+    emails_tab: "אימיילים"
+    admin: "אדמין"
+    gravatar_select: "תבחר באיזו תמונת גרבטר אתה רוצה להישתמש"
+    gravatar_add_photos: "Add thumbnails and photos to a Gravatar account for your email to choose an image."
+    gravatar_add_more_photos: "תוסיף עוד תמונות לחשבון הגרבטר שלך כדי להסיג אותם כאן."
+    wizard_color: "צבע הקוסם"
+    new_password: "סיסמה חדשה"
+    new_password_verify: "חזור על הסיסמה שנית"
+    email_subscriptions: "הרשמויות אימייל"
+    email_announcements: "הודעות"
+    email_notifications: "עדכונים"
+    email_notifications_description: "קבל עדכונים לחשבון שלך."
+    email_announcements_description: "קבל את החדשות ואת הפיתוחים הכי חדישים במשחק באימייל."
+    contributor_emails: "אימיילים של כיתות תורמים"
+    contribute_prefix: "אנו מחפשים אנשים שיצתרפו למסיבה! תראו את"
+    contribute_page: "דף התרימות"
+    contribute_suffix: " בשביל עוד מידע."
+    email_toggle: "עדכן"
+    error_saving: "בעיה בשמירה"
+    saved: "השינויים נשמרו"
+    password_mismatch: "סיסמאות לא זהות"
 
-#  account_profile:
-#    edit_settings: "Edit Settings"
-#    profile_for_prefix: "Profile for "
-#    profile_for_suffix: ""
-#    profile: "Profile"
-#    user_not_found: "No user found. Check the URL?"
-#    gravatar_not_found_mine: "We couldn't find your profile associated with:"
-#    gravatar_not_found_email_suffix: "."
-#    gravatar_signup_prefix: "Sign up at "
-#    gravatar_signup_suffix: " to get set up!"
+  account_profile:
+    edit_settings: "ערוך הגדרות"
+    profile_for_prefix: "פרופיל ל"
+    profile_for_suffix: ""
+    profile: "פרופיל"
+    user_not_found: "משתמש לא נמצא. בדקת את הURL?"
+    gravatar_not_found_mine: "לא הצלחנו למצא חשבון גרבטר המותאם עם: "
+    gravatar_not_found_email_suffix: "."
+    gravatar_signup_prefix: "הירשם ב"
+    gravatar_signup_suffix: "כדי לקבל תמונת חשבון"
 #    gravatar_not_found_other: "Alas, there's no profile associated with this person's email address."
 #    gravatar_contact: "Contact"
 #    gravatar_websites: "Websites"
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/hi.coffee b/app/locale/hi.coffee
index e3d4e91b6..13df8c201 100644
--- a/app/locale/hi.coffee
+++ b/app/locale/hi.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/hu.coffee b/app/locale/hu.coffee
index 46ba51598..35f3584a4 100644
--- a/app/locale/hu.coffee
+++ b/app/locale/hu.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/id.coffee b/app/locale/id.coffee
index 97e73561b..8799a1ec1 100644
--- a/app/locale/id.coffee
+++ b/app/locale/id.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/it.coffee b/app/locale/it.coffee
index 4b537cdcc..5d2c14f17 100644
--- a/app/locale/it.coffee
+++ b/app/locale/it.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
   legal:
     page_title: "Questioni legali"
diff --git a/app/locale/ja.coffee b/app/locale/ja.coffee
index bba1de5b5..ba6a21dd5 100644
--- a/app/locale/ja.coffee
+++ b/app/locale/ja.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/ko.coffee b/app/locale/ko.coffee
index c3c6323a8..ce567d414 100644
--- a/app/locale/ko.coffee
+++ b/app/locale/ko.coffee
@@ -8,7 +8,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
     delay_1_sec: "1초"
     delay_3_sec: "3초"
     delay_5_sec: "5초"
-#    manual: "Manual"
+    manual: "수동"
     fork: "Fork"
     play: "시작"
 
@@ -66,12 +66,12 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
     no_ie: "죄송하지만 코드컴뱃은 인터넷 익스플로러 9에서는 동작하지 않습니다."
     no_mobile: "코드 컴뱃은 모바일 기기용으로 제작되지 않았습니다. 아마 동작하지 않을 가능성이 높습니다."
     play: "시작"
-#    old_browser: "Uh oh, your browser is too old to run CodeCombat. Sorry!"
-#    old_browser_suffix: "You can try anyway, but it probably won't work."
-#    campaign: "Campaign"
-#    for_beginners: "For Beginners"
-#    multiplayer: "Multiplayer"
-#    for_developers: "For Developers"
+    old_browser: "브라우저가 너무 오래된 버전이라 코드컴뱃을 실행할 수 없습니다."
+    old_browser_suffix: "시도해볼 수는 있겠지만..안될수도 있습니다."
+    campaign: "캠페인"
+    for_beginners: "초보자용"
+    multiplayer: "멀티플레이어"
+    for_developers: "개발자용"
 
   play:
     choose_your_level: "레벨을 선택하세요."
@@ -85,10 +85,10 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
     campaign_multiplayer: "멀티 플레이어 전투장"
     campaign_multiplayer_description: "... 이곳에서 당신은 다른 인간 플레이어들과 직접 결투할 수 있습니다."
     campaign_player_created: "사용자 직접 제작"
-    campaign_player_created_description: "... 당신 동료가 고안한 레벨에 도전하세요 <a href=\"/contributeartisan\">Artisan Wizards</a>."
+    campaign_player_created_description: "... 당신 동료가 고안한 레벨에 도전하세요 <a href=\"/contributeartisan\">마법사 장인</a>."
     level_difficulty: "난이도: "
     play_as: "Play As "
-#    spectate: "Spectate"
+    spectate: "관중모드"
 
   contact:
     contact_us: "코드컴뱃에 전할말"
@@ -104,8 +104,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
   diplomat_suggestion:
     title: "코드 컴뱃 번역을 도와주세요!"
     sub_heading: "우리는 당신의 언어 능력이필요합니다."
-    pitch_body: "We develop CodeCombat in English, but we already have players all over the world. Many of them want to play in Korean but don't speak English, so if you can speak both, please consider signing up to be a Diplomat and help translate both the CodeCombat website and all the levels into Korean."
-    missing_translations: "Until we can translate everything into Korean, you'll see English when Korean isn't available."
+    pitch_body: "우리는 영어로 코드컴뱃을 개발하기 시작했지만, 이미 전세계의 유저들이 코드컴뱃을 이용하고 있습니다. 그중 많은 사람들이 한국어로 플레이하기를 바랍니다. 혹시 당신이 영어/한국어에 모두 능숙하다면, Diplomat 으로 코드컴뱃에 참여해서 모든 레벨 뿐 아니라 웹사이트를 한국어로 번역할 수 있습니다."
+    missing_translations: "우리가 모든 내용을 한국어로 번역할때까지 기본은 영어로 제공됩니다."
     learn_more: "외교관에 대해서 좀더 자세히알기"
     subscribe_as_diplomat: "훌륭한 외교관으로써, 정기 구독하기"
 
@@ -136,17 +136,17 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
     gravatar_add_more_photos: "코드컴뱃에서 더 많은 이미지를 추가하려면 우선 당신의 Gravatar 계정에 좀 더 많은 이미지를 추가해 주세요"
     wizard_color: "마법사 옷 색깔"
     new_password: "새 비밀번호"
-    new_password_verify: "승인"
+    new_password_verify: "확인(다시한번 입력해주세요)"
     email_subscriptions: "이메일 구독"
     email_announcements: "공지사항"
     email_notifications: "알람"
-    email_notifications_description: "계정을 위해서 정기적으로 구독하세요"
+    email_notifications_description: "계정에 관련된 사항을 정기적으로 구독하세요"
     email_announcements_description: "코드 컴뱃의 개발 또는 진행상황을 이메일로 구독 하세요"
-#    contributor_emails: "Contributor Class Emails"
+    contributor_emails: "조력자들 이메일"
     contribute_prefix: "우리는 언제나 당신의 참여를 환영 합니다 : "
     contribute_page: "참여하기 페이지"
-    contribute_suffix: " 좀 더 찾기 위해."
-    email_toggle: "모두 토글"
+    contribute_suffix: "자세한 사항이 설명되어 있습니다."
+    email_toggle: "모두 변경"
     error_saving: "오류 저장"
     saved: "변경사항 저장 완료"
     password_mismatch: "비밀번호가 일치하지 않습니다."
@@ -160,11 +160,11 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
     gravatar_not_found_mine: "죄송하지만 귀하의 이메일 주소를 찾을 수 없습니다 :"
     gravatar_not_found_email_suffix: "."
     gravatar_signup_prefix: "등록"
-#    gravatar_signup_suffix: " to get set up!"
+    gravatar_signup_suffix: " 등록하세요"
     gravatar_not_found_other: "이 사람의 이메일 주소와 관련된 어떤것도 찾을 수 없습니다."
     gravatar_contact: "연락처"
     gravatar_websites: "웹사이트"
-#    gravatar_accounts: "As Seen On"
+    gravatar_accounts: "보이는대로"
     gravatar_profile_link: "전체 Gravatar 프로필"
 
   play_level:
@@ -214,25 +214,25 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
     hud_continue: "계속진행 (shift+space)"
     spell_saved: "마법 저장 완료"
     skip_tutorial: "넘기기 (esc)"
-#    editor_config: "Editor Config"
-#    editor_config_title: "Editor Configuration"
-#    editor_config_keybindings_label: "Key Bindings"
-#    editor_config_keybindings_default: "Default (Ace)"
-#    editor_config_keybindings_description: "Adds additional shortcuts known from the common editors."
-#    editor_config_invisibles_label: "Show Invisibles"
-#    editor_config_invisibles_description: "Displays invisibles such as spaces or tabs."
-#    editor_config_indentguides_label: "Show Indent Guides"
-#    editor_config_indentguides_description: "Displays vertical lines to see indentation better."
-#    editor_config_behaviors_label: "Smart Behaviors"
-#    editor_config_behaviors_description: "Autocompletes brackets, braces, and quotes."
+    editor_config: "에디터 설정"
+    editor_config_title: "에디터 설정"
+    editor_config_keybindings_label: "단축키 설정"
+    editor_config_keybindings_default: "기본(Ace)"
+    editor_config_keybindings_description: "일반적인 에디터와 마찬가지인 단축키 설정"
+    editor_config_invisibles_label: "투명 설정"
+    editor_config_invisibles_description: "스페이스, 탭 설정"
+    editor_config_indentguides_label: "들여쓰기 가이드 보기"
+    editor_config_indentguides_description: "들여쓰기 확인위해 세로줄 표시하기."
+    editor_config_behaviors_label: "자동 기능"
+    editor_config_behaviors_description: "괄호, 인용부호, 따옴표 자동 완성."
 
   admin:
     av_title: "관리자 뷰"
     av_entities_sub_title: "속성들"
     av_entities_users_url: "유저들"
     av_entities_active_instances_url: "액티브 인스턴스들"
-#    av_other_sub_title: "Other"
-    av_other_debug_base_url: "베이스 (for debugging base.jade)"
+    av_other_sub_title: "다른 사람들"
+    av_other_debug_base_url: "베이스 (base.jade 디버깅)"
     u_title: "유저 목록"
     lg_title: "가장 최근 게임"
 
@@ -240,15 +240,16 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
     main_title: "코드 컴뱃 에디터들"
     main_description: "당신의 레벨들, 캠페인들, 유닛 그리고 교육 컨텐츠들을 구축하세요. 우리는 당신이 필요한 모든 도구들을 제공합니다!"
     article_title: "기사 에디터들"
-#    article_description: "Write articles that give players overviews of programming concepts which can be used across a variety of levels and campaigns."
+    article_description: "기사를 써주세요. 다른 플레이어들에게 프로그래밍 개념에 관한 전체적인 그림을 알려줄 수 있고, 여러 레벨과 캠페인에 대해 설명할 수 있습니다."
     thang_title: "Thang 에디터"
-#    thang_description: "Build units, defining their default logic, graphics and audio. Currently only supports importing Flash exported vector graphics."
+    thang_description: "유닛들, 기본적인 인공지능, 그래픽과 오디오등을 직접 빌드하세요. 현재는 백터 그래픽으로 추출된 플래시파일만 임폴트 가능합니다."
     level_title: "레벨 에디터"
-#    level_description: "Includes the tools for scripting, uploading audio, and constructing custom logic to create all sorts of levels. Everything we use ourselves!"
-#    security_notice: "Many major features in these editors are not currently enabled by default. As we improve the security of these systems, they will be made generally available. If you'd like to use these features sooner, "
-    contact_us: "연락히기!"
+    level_description: "스크립팅, 오디오 업로드, 모든 레벨을 생성하기 위한 사용자 정의 로직등 우리가 사용하는 모든 것들을 구축하는 것을 위한 툴들을 포함합니다.
+"
+    security_notice: "이러한 에디터들의 중요한 특징들은 현재 대부분 기본적으로 제공되지 않습니다. 조만간 이런 시스템들의 안정성을 업그레이트 한후에, 이러한 기능들이 제공될 것입니다."
+    contact_us: "연락하기!"
     hipchat_prefix: "당신은 또한 우리를 여기에서 찾을 수 있습니다 : "
-#    hipchat_url: "HipChat room."
+    hipchat_url: "힙챗 룸"
     revert: "되돌리기"
     revert_models: "모델 되돌리기"
     level_some_options: "다른 옵션들?"
@@ -257,17 +258,17 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
     level_tab_settings: "설정"
     level_tab_components: "요소들"
     level_tab_systems: "시스템"
-#    level_tab_thangs_title: "Current Thangs"
-#    level_tab_thangs_conditions: "Starting Conditions"
-#    level_tab_thangs_add: "Add Thangs"
+    level_tab_thangs_title: "현재 Thangs"
+    level_tab_thangs_conditions: "컨디션 시작"
+    level_tab_thangs_add: "Thangs 추가"
     level_settings_title: "설정"
     level_component_tab_title: "현재 요소들"
     level_component_btn_new: "새로운 요소들 생성"
     level_systems_tab_title: "현재 시스템"
     level_systems_btn_new: "새로운 시스템생성"
     level_systems_btn_add: "새로운 시스템 추가"
-#    level_components_title: "Back to All Thangs"
-#    level_components_type: "Type"
+    level_components_title: "모든 Thang 들로 되돌아가기"
+    level_components_type: "타입"
     level_component_edit_title: "요소 편집"
     level_component_config_schema: "환경 설정"
     level_component_settings: "설정"
@@ -309,32 +310,33 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
     score: "점수"
     win: "승"
     loss: "패"
-    tie: "비김"
-    easy: "쉬움"
-    medium: "중간"
-    hard: "어려"
+    tie: "무승부"
+    easy: "초급"
+    medium: "중급"
+    hard: "상급"
 
-#  about:
-#    who_is_codecombat: "Who is CodeCombat?"
-#    why_codecombat: "Why CodeCombat?"
-#    who_description_prefix: "together started CodeCombat in 2013. We also created "
-#    who_description_suffix: "in 2008, growing it to the #1 web and iOS application for learning to write Chinese and Japanese characters."
-#    who_description_ending: "Now it's time to teach people to write code."
-#    why_paragraph_1: "When making Skritter, George didn't know how to program and was constantly frustrated by his inability to implement his ideas. Afterwards, he tried learning, but the lessons were too slow. His housemate, wanting to reskill and stop teaching, tried Codecademy, but \"got bored.\" Each week another friend started Codecademy, then dropped off. We realized it was the same problem we'd solved with Skritter: people learning a skill via slow, intensive lessons when what they need is fast, extensive practice. We know how to fix that."
-#    why_paragraph_2: "Need to learn to code? You don't need lessons. You need to write a lot of code and have a great time doing it."
-#    why_paragraph_3_prefix: "That's what programming is about. It's gotta be fun. Not fun like"
-#    why_paragraph_3_italic: "yay a badge"
-#    why_paragraph_3_center: "but fun like"
-#    why_paragraph_3_italic_caps: "NO MOM I HAVE TO FINISH THE LEVEL!"
-#    why_paragraph_3_suffix: "That's why CodeCombat is a multiplayer game, not a gamified lesson course. We won't stop until you can't stop--but this time, that's a good thing."
-#    why_paragraph_4: "If you're going to get addicted to some game, get addicted to this one and become one of the wizards of the tech age."
-#    why_ending: "And hey, it's free. "
-#    why_ending_url: "Start wizarding now!"
-#    george_description: "CEO, business guy, web designer, game designer, and champion of beginning programmers everywhere."
-#    scott_description: "Programmer extraordinaire, software architect, kitchen wizard, and master of finances. Scott is the reasonable one."
-#    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
-#    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
-#    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+  about:
+    who_is_codecombat: "코드컴뱃은 누구인가?"
+    why_codecombat: "왜 코드컴뱃이지?"
+    who_description_prefix: "우리는 2013년에 함께 코드컴뱃을 시작했으며 또한 우리는"
+    who_description_suffix: "2008년에 중국어와 일본어를 배우기위해 이를 IOS 마켓 1위로 키우고 있었습니다."
+    who_description_ending: "이제 사람들에게 코드를 가르치기 위한 시점이 다가왔다고 생각합니다."
+    why_paragraph_1: "처음에 Skritter 를 만들때, George는 어떻게 프로그래밍을 하는지 전혀 몰랐고, 그의 아이디어를 제대로 구현하지 못해 좌절하곤 했습니다. 그후에, 그는 코딩을 배우려고 노력했지만 늘 진행속도가 느렸죠. 그때 그의 룸메이트가 코드아카데미를 통해 배우려고 시도했으나, 너무 \"지루\"했습니다. 매주마다 다른 친구들이 코드아카데미를 통해 배우려고 시도했으나 글쎄요, 결과가 썩 좋진 않았습니다. 우리는 이것은 우리가 Skritter를 통해 해결한 문제와 같은 종류의 것임을 깨달았습니다: 느리고 강도높은 레슨을 통해 배우는 사람들은 좀더 빠르고, 포괄적인 연습을 필요로 합니다. 우리는 그것을 어떻게 해결하는지 잘 알고 있습니다."
+    why_paragraph_2: "프로그래밍을 배울 필요가 있으세요? 레슨 받을 필요 없습니다. 아마 엄청난 시간과 노력을 소모해야 할 것입니다."
+    why_paragraph_3_prefix: "프로그래밍은 재미있어야 합니다."
+    why_paragraph_3_italic: "여기 뱃지있어 받아가~"
+    why_paragraph_3_center: "이런 단순히 뱃지얻는식 게임 말고,"
+    why_paragraph_3_italic_caps: "오 엄마 나 이 레벨 반드시 끝내야되! <- 이런 방식 말고요."
+    why_paragraph_3_suffix: "이것이 왜 코드컴뱃이 멀티플레이 게임인지를 말해줍니다. 단순히 게임화된 레슨의 연장이 아닙니다. 우리는 당신이 너무 재밌어서 멈출 수 없을때까지 절대 멈추지 않을 것입니다."
+    why_paragraph_4: "만약 당신이 어떤 게임이 곧잘 중독된다면 이번엔 코드컴뱃 한번 시도해보세요 그리고 기술시대에 사는 마법사중 하나가 되어보는 건 어떠세요?"
+    why_ending: "이봐 이거 공짜래."
+    why_ending_url: "지금바로 마법사가 되어 보세요!"
+    george_description: "CEO, 비즈니스맨, 웹디자이너, 게임 디자이너, 그리고 전세계의 초보 프로그래머들의 왕."
+    scott_description: "비범한 프로그래머, 소프트웨어 아키텍쳐, 주방 마법사 그리고 재무의 신. Scott 은 매우 합리적인 사람입니다"
+    nick_description: "프로그래밍 마법사, 별난 자극의 마술사, 거꾸로 생각하는것을 좋아하는 실험가. Nick은 뭐든지 할수있는 남자입니다. 그 뭐든지 중에 코드 컴뱃을 선택했죠. "
+    jeremy_description: "고객 지원 마법사, 사용성 테스터, 커뮤니티 오거나이저; 당신은 아마 이미 Jeremy랑 이야기 했을거에요."
+    michael_description: "프로그래머, 시스템 관리자, 기술 신동(대학생이래요),Michael 은 우리 서버를 계속 무결점상태로 유지시켜주는 사람입니다."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
@@ -491,21 +493,21 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
 #    translating_diplomats: "Our Translating Diplomats:"
 #    helpful_ambassadors: "Our Helpful Ambassadors:"
 
-#  classes:
-#    archmage_title: "Archmage"
-#    archmage_title_description: "(Coder)"
-#    artisan_title: "Artisan"
-#    artisan_title_description: "(Level Builder)"
-#    adventurer_title: "Adventurer"
-#    adventurer_title_description: "(Level Playtester)"
-#    scribe_title: "Scribe"
-#    scribe_title_description: "(Article Editor)"
-#    diplomat_title: "Diplomat"
-#    diplomat_title_description: "(Translator)"
-#    ambassador_title: "Ambassador"
-#    ambassador_title_description: "(Support)"
-#    counselor_title: "Counselor"
-#    counselor_title_description: "(Expert/Teacher)"
+  classes:
+    archmage_title: "대마법사"
+    archmage_title_description: "(코더)"
+    artisan_title: "장인"
+    artisan_title_description: "(레벨 제작자)"
+    adventurer_title: "모험가"
+    adventurer_title_description: "(레벨 테스터)"
+    scribe_title: "작가"
+    scribe_title_description: "(기사 에디터)"
+    diplomat_title: "외교관"
+    diplomat_title_description: "(번역가)"
+    ambassador_title: "대사"
+    ambassador_title_description: "(지원)"
+    counselor_title: "카운셀러"
+    counselor_title_description: "(전문가/선생)"
 
 #  ladder:
 #    please_login: "Please log in first before playing a ladder game."
diff --git a/app/locale/lt.coffee b/app/locale/lt.coffee
index 94281b912..42d5d7dd0 100644
--- a/app/locale/lt.coffee
+++ b/app/locale/lt.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/ms-BA.coffee b/app/locale/ms-BA.coffee
index 4f3d39669..9855cb92a 100644
--- a/app/locale/ms-BA.coffee
+++ b/app/locale/ms-BA.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/nb.coffee b/app/locale/nb.coffee
index 463c4e080..2e4fd394a 100644
--- a/app/locale/nb.coffee
+++ b/app/locale/nb.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/nl.coffee b/app/locale/nl.coffee
index c33793099..090bc7969 100644
--- a/app/locale/nl.coffee
+++ b/app/locale/nl.coffee
@@ -66,12 +66,12 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
     no_ie: "CodeCombat werkt niet in IE8 of ouder. Sorry!"
     no_mobile: "CodeCombat is niet gemaakt voor mobiele apparaten en werkt misschien niet!"
     play: "Speel"
-#    old_browser: "Uh oh, your browser is too old to run CodeCombat. Sorry!"
-#    old_browser_suffix: "You can try anyway, but it probably won't work."
-#    campaign: "Campaign"
-#    for_beginners: "For Beginners"
+    old_browser: "Uh oh, jouw browser is te oud om CodeCombat te kunnen spelen, Sorry!"
+    old_browser_suffix: "Je kan toch proberen, maar het zal waarschijnlijk niet werken!"
+    campaign: "Campagne"
+    for_beginners: "Voor Beginners"
 #    multiplayer: "Multiplayer"
-#    for_developers: "For Developers"
+    for_developers: "Voor ontwikkelaars"
 
   play:
     choose_your_level: "Kies Je Level"
@@ -87,8 +87,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
     campaign_player_created: "Door-spelers-gemaakt"
     campaign_player_created_description: "... waarin je ten strijde trekt tegen de creativiteit van andere <a href=\"/contribute#artisan\">Ambachtelijke Tovenaars</a>."
     level_difficulty: "Moeilijkheidsgraad: "
-#    play_as: "Play As "
-#    spectate: "Spectate"
+    play_as: "Speel als "
+    spectate: "Schouw toe"
 
   contact:
     contact_us: "Contact opnemen met CodeCombat"
@@ -187,9 +187,9 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
     victory_sign_up: "Schrijf je in om je progressie op te slaan"
     victory_sign_up_poke: "Wil je jouw code opslaan? Maak een gratis account aan!"
     victory_rate_the_level: "Beoordeel het level: "
-#    victory_rank_my_game: "Rank My Game"
-#    victory_ranking_game: "Submitting..."
-#    victory_return_to_ladder: "Return to Ladder"
+    victory_rank_my_game: "Rankschik mijn Wedstrijd"
+    victory_ranking_game: "Verzenden..."
+    victory_return_to_ladder: "Keer terug naar de ladder"
     victory_play_next_level: "Speel Volgend Level"
     victory_go_home: "Ga naar Home"
     victory_review: "Vertel ons meer!"
@@ -213,18 +213,18 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
     tome_available_spells: "Beschikbare spreuken"
     hud_continue: "Ga verder (druk shift-space)"
     spell_saved: "Spreuk Opgeslagen"
-#    skip_tutorial: "Skip (esc)"
-#    editor_config: "Editor Config"
-#    editor_config_title: "Editor Configuration"
-#    editor_config_keybindings_label: "Key Bindings"
+    skip_tutorial: "Overslaan (esc)"
+    editor_config: "Editor Configuratie"
+    editor_config_title: "Editor Configuratie"
+    editor_config_keybindings_label: "Toets instellingen"
 #    editor_config_keybindings_default: "Default (Ace)"
-#    editor_config_keybindings_description: "Adds additional shortcuts known from the common editors."
-#    editor_config_invisibles_label: "Show Invisibles"
-#    editor_config_invisibles_description: "Displays invisibles such as spaces or tabs."
-#    editor_config_indentguides_label: "Show Indent Guides"
-#    editor_config_indentguides_description: "Displays vertical lines to see indentation better."
-#    editor_config_behaviors_label: "Smart Behaviors"
-#    editor_config_behaviors_description: "Autocompletes brackets, braces, and quotes."
+    editor_config_keybindings_description: "Voeg extra shortcuts toe van de gebruikelijke editors."
+    editor_config_invisibles_label: "Toon onzichtbare"
+    editor_config_invisibles_description: "Toon onzichtbare whitespace karakters."
+    editor_config_indentguides_label: "Toon inspringing regels"
+    editor_config_indentguides_description: "Toon verticale hulplijnen om de zichtbaarheid te verbeteren."
+    editor_config_behaviors_label: "Slim gedrag"
+    editor_config_behaviors_description: "Auto-aanvulling (gekrulde) haakjes en aanhalingstekens."
 
   admin:
     av_title: "Administrator panels"
@@ -249,8 +249,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
     contact_us: "contacteer ons!"
     hipchat_prefix: "Je kan ons ook vinden in ons"
     hipchat_url: "(Engelstalig) HipChat kanaal."
-#    revert: "Revert"
-#    revert_models: "Revert Models"
+    revert: "Keer wijziging terug"
+    revert_models: "keer wijziging model terug"
     level_some_options: "Enkele opties?"
     level_tab_thangs: "Elementen"
     level_tab_scripts: "Scripts"
@@ -299,12 +299,12 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
     description: "Beschrijving"
     or: "of"
     email: "Email"
-#    password: "Password"
+    password: "Wachtwoord"
     message: "Bericht"
     code: "Code"
     ladder: "Ladder"
     when: "Wanneer"
-#    opponent: "Opponent"
+    opponent: "Tegenstander"
     rank: "Rang"
     score: "Score"
     win: "Win"
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
     nick_description: "Getalenteerde programmeur, excentriek gemotiveerd, een rasechte experimenteerder. Nick kan alles en kiest ervoor om CodeCombat te ontwikkelen."
     jeremy_description: "Klantenservice Manager, usability tester en gemeenschapsorganisator; Je hebt waarschijnlijk al gesproken met Jeremy."
     michael_description: "Programmeur, sys-admin, en technisch wonderkind, Michael is de persoon die onze servers draaiende houdt."
+    glen_description: "Programmeur en gepassioneerde game developer, met de motivatie om de wereld te verbeteren, door het ontwikkelen van de dingen die belangrijk zijn. Het woord onmogelijk staat niet in zijn woordenboek. Nieuwe vaardigheden leren is een plezier voor him!"
 
   legal:
     page_title: "Legaal"
@@ -469,7 +470,7 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
     more_about_diplomat: "Leer meer over het worden van een geweldige Diplomaat"
     diplomat_subscribe_desc: "Ontvang e-mails over i18n ontwikkelingen en levels om te vertalen."
     ambassador_summary: "We proberen een gemeenschap te bouwen en elke gemeenschap heeft een supportteam nodig wanneer er problemen zijn. We hebben chats, e-mails en sociale netwerken zodat onze gebruikers het spel kunnen leren kennen. Als jij mensen wilt helpen betrokken te raken, plezier te hebben en wat te leren programmeren, dan is dit wellicht de klasse voor jou."
-#    ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you."
+    ambassador_introduction: "We zijn een community aan het uitbouwen, en jij maakt er deel van uit. We hebben Olark chatkamers, emails, en soeciale netwerken met veel andere mensen waarmee je kan praten en hulp kan vragen over het spel en om bij te leren. Als jij mensen wil helpen en te werken nabij de hartslag van CodeCombat in het bijsturen van onze toekomstvisie, dan is dit de geknipte klasse voor jou!"
     ambassador_attribute_1: "Communicatieskills. Problemen die spelers hebben kunnen identificeren en ze helpen deze op te lossen. Verder zul je ook de rest van ons geïnformeerd houden over wat de spelers zeggen, wat ze leuk vinden, wat ze minder vinden en waar er meer van moet zijn!"
     ambassador_join_desc: "vertel ons wat over jezelf, wat je hebt gedaan en wat je graag zou doen. We zien verder wel!"
     ambassador_join_note_strong: "Opmerking"
@@ -539,16 +540,16 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
     warmup: "Opwarming"
     vs: "tegen"
 
-#  multiplayer_launch:
-#    introducing_dungeon_arena: "Introducing Dungeon Arena"
-#    new_way: "March 17, 2014: The new way to compete with code."
-#    to_battle: "To Battle, Developers!"
-#    modern_day_sorcerer: "You know how to code? That's badass. You're a modern-day sorcerer! Isn't about time that you used your magic coding powers to command your minions in epic combat? And we're not talking robots here."
-#    arenas_are_here: "CodeCombat head-to-head multiplayer arenas are here."
-#    ladder_explanation: "Choose your heroes, enchant your human or ogre armies, and climb your way over defeated fellow Wizards to reach the top of the ladders–then challenge your friends in our glorious, asynchronous multiplayer coding arenas. If you're feeling creative, you can even"
-#    fork_our_arenas: "fork our arenas"
-#    create_worlds: "and create your own worlds."
-#    javascript_rusty: "JavaScript a bit rusty? Don't worry; there's a"
-#    tutorial: "tutorial"
-#    new_to_programming: ". New to programming? Hit our beginner campaign to skill up."
-#    so_ready: "I Am So Ready for This"
+  multiplayer_launch:
+    introducing_dungeon_arena: "Introductie van Dungeon Arena"
+    new_way: "17 maart, 2014: De nieuwe manier om te concurreren met code."
+    to_battle: "Naar het slagveld, ontwikkelaars!"
+    modern_day_sorcerer: "Kan jij programmeren? Hoe stoer is dat. Jij bent een modere voetballer! is het niet tijd dat je jouw magische krachten gebruikt voor het controlleren van jou minions in het slagveld? En nee, we praten heir niet over robots."
+    arenas_are_here: "CodeCombat head-to-head multiplayer arenas are here."
+    ladder_explanation: "Kies jouw helden, betover jouw mens of ogre legers, en beklim jouw weg naar de top in de ladder, door het verslagen van vriend en vijand. Daag nu je vrienden uit in multiplayer coding arenas en verkrijg faam en glorie. Indien je creatief bent, kan je zelfs"
+    fork_our_arenas: "onze arenas forken"
+    create_worlds: "en jouw eigen werelden creëren."
+    javascript_rusty: "Jouw JavaScript is een beetje roest? Wees niet bang, er is een"
+    tutorial: "tutorial"
+    new_to_programming: ". Ben je net begonnen met programmeren? Speel dan eerst onze beginners campagne."
+    so_ready: "Ik ben hier zo klaar voor"
diff --git a/app/locale/nn.coffee b/app/locale/nn.coffee
index d4a8a1c6f..7a0fced5c 100644
--- a/app/locale/nn.coffee
+++ b/app/locale/nn.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/no.coffee b/app/locale/no.coffee
index b10046d73..b1df6cf90 100644
--- a/app/locale/no.coffee
+++ b/app/locale/no.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/pl.coffee b/app/locale/pl.coffee
index 40335dc6d..4773db823 100644
--- a/app/locale/pl.coffee
+++ b/app/locale/pl.coffee
@@ -104,7 +104,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
   diplomat_suggestion:
     title: "Pomóż w tłumaczeniu CodeCombat!"
     sub_heading: "Potrzebujemy twoich zdolności językowych."
-    pitch_body: "Tworzymy CodeCombat w języku angielskim, jednak nasi gracze pochodzą z całego świata. Wielu z nich chciałoby zagrać zagrać w swoim języku, ponieważ nie znają angielskiego, więc jeśli znasz oba języki zostań Dyplomatą i pomóż w tłumaczeniu strony CodeCombat, jak i samej gry."
+    pitch_body: "Tworzymy CodeCombat w języku angielskim, jednak nasi gracze pochodzą z całego świata. Wielu z nich chciałoby zagrać w swoim języku, ponieważ nie znają angielskiego, więc jeśli znasz oba języki zostań Dyplomatą i pomóż w tłumaczeniu strony CodeCombat, jak i samej gry."
     missing_translations: "Dopóki nie przetłumaczymy wszystkiego na polski, będziesz widział niektóre napisy w języku angielskim."
     learn_more: "Dowiedz się więcej o Dyplomatach"
     subscribe_as_diplomat: "Dołącz do Dyplomatów"
@@ -198,7 +198,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
     multiplayer_title: "Ustawienia multiplayer"
     multiplayer_link_description: "Przekaż ten link, jeśli chcesz, by ktoś do ciebie dołączył."
     multiplayer_hint_label: "Podpowiedź:"
-    multiplayer_hint: "Klikjnij link by zaznaczyć wszystko, potem wciśnij Cmd-C lub Ctrl-C by skopiować ten link."
+    multiplayer_hint: "Kliknij link by zaznaczyć wszystko, potem wciśnij Cmd-C lub Ctrl-C by skopiować ten link."
     multiplayer_coming_soon: "Wkrótce więcej opcji multiplayer"
     guide_title: "Przewodnik"
     tome_minion_spells: "Czary twojego podopiecznego"
@@ -240,12 +240,12 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
     main_title: "Edytory CodeCombat"
     main_description: "Stwórz własne poziomy, kampanie, jednostki i materiały edukacyjne. Zapewniamy wszystkie narzędzia, jakich będziesz potrzebował!"
     article_title: "Edytor artykułów"
-    article_description: "Pisz artykuły, które dostarczą graczom wiedzy co do konceptów programistycznych, które będą mogli użyć w poziomach i kampaniach."
+    article_description: "Pisz artykuły, które dostarczą graczom wiedzy co do konceptów programistycznych, których będą mogli użyć w poziomach i kampaniach."
     thang_title: "Edytor obiektów"
     thang_description: "Twórz jednostki, definiuj ich domyślną logikę, grafiki i dźwięki. Aktualnie wspiera wyłącznie importowanie grafik wektorowych wyeksportowanych przez Flash."
     level_title: "Edytor poziomów"
     level_description: "Zawiera narzędzia do skryptowania, przesyłania dźwięków i konstruowania spersonalizowanych logik, by móc tworzyć najrozmaitsze poziomy. Wszystko to, czego sami używamy!"
-    security_notice: "Wiele ważnych fukncji nie jest obecnie domyślnie włączonych we wspomnianych edytorach. Wraz z ulepszeniem zabezpieczenia tych narzędzi, staną się one dostępne publicznie. Jeśli chciałbyś użyć ich już teraz, "
+    security_notice: "Wiele ważnych funkcji nie jest obecnie domyślnie włączonych we wspomnianych edytorach. Wraz z ulepszeniem zabezpieczenia tych narzędzi, staną się one dostępne publicznie. Jeśli chciałbyś użyć ich już teraz, "
     contact_us: "skontaktuj się z nami!"
     hipchat_prefix: "Możesz nas też spotkać w naszym"
     hipchat_url: "pokoju HipChat."
@@ -259,7 +259,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
     level_tab_systems: "Systemy"
     level_tab_thangs_title: "Aktualne obiekty"
     level_tab_thangs_conditions: "Warunki początkowe"
-    level_tab_thangs_add: "Dodoaj obiekty"
+    level_tab_thangs_add: "Dodaj obiekty"
     level_settings_title: "Ustawienia"
     level_component_tab_title: "Aktualne komponenty"
     level_component_btn_new: "Stwórz nowy komponent"
@@ -318,9 +318,9 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
     who_is_codecombat: "Czym jest CodeCombat?"
     why_codecombat: "Dlaczego CodeCombat?"
     who_description_prefix: "założyli CodeCombat w 2013 roku. Stworzyliśmy również "
-    who_description_suffix: "w roku 2008, doprowadzajac go do pierwszego miejsca wśród aplikacji do nauki zapisu chińskich i japońskich znaków zarówno wśród aplikacji internetowych, jak i aplikcji dla iOS."
+    who_description_suffix: "w roku 2008, doprowadzajac go do pierwszego miejsca wśród aplikacji do nauki zapisu chińskich i japońskich znaków zarówno wśród aplikacji internetowych, jak i aplikacji dla iOS."
     who_description_ending: "Teraz nadszedł czas, by nauczyć ludzi programowania."
-    why_paragraph_1: "Podczas tworzenia Skrittera, George nie umiał programować i ciągle towarzyszyła mu frustracja - nie mógł zaimplementować swoich pomysłów. Próbował się uczyć, lecz lekcje były zbyt wolne. Jego współlokator, chcąc się przebranżowić, spróbował Codeacademy, lecz \"nudziło go to.\" Każdego tygodnia któryś z kolegów podchodził do Codeacadem, by wkrótce potem zrezygnować. Zdaliśmy sobie sprawę, że mamy do czynienia z tym samym problemem, który rozwiązaliśmy Skritterem: ludzie uczący się umiejętności poprzez powolne, ciężkie lekcje, podczas gdy potrzebują oni szybkiej, energicznej praktyki. Wiemy, jak to naprawić."
+    why_paragraph_1: "Podczas tworzenia Skrittera, George nie umiał programować i ciągle towarzyszyła mu frustracja - nie mógł zaimplementować swoich pomysłów. Próbował się uczyć, lecz lekcje były zbyt wolne. Jego współlokator, chcąc się przebranżowić, spróbował Codeacademy, lecz \"nudziło go to.\" Każdego tygodnia któryś z kolegów podchodził do Codeacademy, by wkrótce potem zrezygnować. Zdaliśmy sobie sprawę, że mamy do czynienia z tym samym problemem, który rozwiązaliśmy Skritterem: ludzie uczący się umiejętności poprzez powolne, ciężkie lekcje, podczas gdy potrzebują oni szybkiej, energicznej praktyki. Wiemy, jak to naprawić."
     why_paragraph_2: "Chcesz nauczyć się programowania? Nie potrzeba ci lekcji. Potrzeba ci pisania dużej ilości kodu w sposób sprawiający ci przyjemność."
     why_paragraph_3_prefix: "O to chodzi w programowaniu - musi sprawiać radość. Nie radość w stylu"
     why_paragraph_3_italic: "hura, nowa odznaka"
@@ -332,9 +332,10 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
     why_ending_url: "Zostań czarodziejem już teraz!"
     george_description: "CEO, człowiek od biznesu, web designer, game designer, i mistrz wszystkich początkujących programistów."
     scott_description: "Programista niezwykły, software architect, czarodziej kuchenny i mistrz finansów. Scott to ten rozsądny."
-    nick_description: "Programistyczny czarownik, ekscentryczny magik i eksperymentator pełną gębą. Nich może robić cokolwiek, a decyduje się pracować przy CodeCombat."
+    nick_description: "Programistyczny czarownik, ekscentryczny magik i eksperymentator pełną gębą. Nick może robić cokolwiek, a decyduje się pracować przy CodeCombat."
     jeremy_description: "Magik od kontaktów z klientami, tester użyteczności i organizator społeczności; prawdopodobnie już rozmawiałeś z Jeremym."
-    michael_description: "Programista, sys-admin, cudowne dziecko studiów technicznych, Michael to osoba utrzymująca nase serwery online."
+    michael_description: "Programista, sys-admin, cudowne dziecko studiów technicznych, Michael to osoba utrzymująca nasze serwery online."
+    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
   legal:
     page_title: "Nota prawna"
@@ -355,7 +356,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
     email_settings_url: "twoje ustawienia e-mail"
     email_description_suffix: "lub poprzez linki w e-mailach, które wysyłamy, możesz zmienić swoje ustawienia i w prosty sposób wypisać się z subskrypcji w dowolnym momencie."
     cost_title: "Koszty"
-    cost_description: "W tym momencie CodeCombat jest w stu procentach darmowe! Jednym z naszych głównych celów jest, by utrzymac taki stan rzeczy, aby jak najwięcej ludzi miało dostęp do gry, bez względu na ich zasobnośc. Jeśli nadejdą gorsze dni, dopuszczamy możliwość wprowadzenia płatnych subskrypcji lub pobierania opłat za część zawartości, ale wolelibyśmy, by tak się nie stało. Przy odrobinie szczęścia, uda nam się podtrzymać obecną sytuację dzięki:"
+    cost_description: "W tym momencie CodeCombat jest w stu procentach darmowe! Jednym z naszych głównych celów jest, by utrzymać taki stan rzeczy, aby jak najwięcej ludzi miało dostęp do gry, bez względu na ich zasobność. Jeśli nadejdą gorsze dni, dopuszczamy możliwość wprowadzenia płatnych subskrypcji lub pobierania opłat za część zawartości, ale wolelibyśmy, by tak się nie stało. Przy odrobinie szczęścia, uda nam się podtrzymać obecną sytuację dzięki:"
     recruitment_title: "Rekrutacji"
     recruitment_description_prefix: "Dzięki CodeCombat, staniesz się potężnym czarodziejem - nie tylko w grze, ale również w prawdziwym życiu."
     url_hire_programmers: "Firmy nie nadążają z zatrudnianiem programistów"
@@ -392,7 +393,7 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
     rights_description: "Opisy"
     rights_writings: "Teksty"
     rights_media: "Multimedia (dźwięki, muzyka) i jakiekolwiek inne typy prac i zasobów stworzonych specjalnie dla danego poziomu, które nie zostały publicznie udostępnione do tworzenia poziomów."
-    rights_clarification: "Gwoli wyjaśnienia, wszystko, co jest dostępne w Edytorze Poziomów w celu tworzenia nowych poziomów podlega licencji CC, podczas gdy zasoby stworzone w Edytorze Poziomów lub przesłane w toku tworzenia poziomu - nie."
+    rights_clarification: "Gwoli wyjaśnienia, wszystko, co jest dostępne w Edytorze Poziomów w celu tworzenia nowych poziomów, podlega licencji CC, podczas gdy zasoby stworzone w Edytorze Poziomów lub przesłane w toku tworzenia poziomu - nie."
     nutshell_title: "W skrócie"
     nutshell_description: "Wszelkie zasoby, które dostarczamy w Edytorze Poziomów są darmowe w użyciu w jakikolwiek sposób w celu tworzenia poziomów. Jednocześnie, zastrzegamy sobie prawo do ograniczenia rozpowszechniania poziomów (stworzonych przez codecombat.com) jako takich, aby mogła być za nie w przyszłości pobierana opłata, jeśli dojdzie do takiej konieczności."
     canonical: "Angielska wersja tego dokumentu jest ostateczna, kanoniczną wersją. Jeśli zachodzą jakieś rozbieżności pomiędzy tłumaczeniami, dokument anglojęzyczny ma pierwszeństwo."
diff --git a/app/locale/pt-BR.coffee b/app/locale/pt-BR.coffee
index b7067da3b..3f58c9a26 100644
--- a/app/locale/pt-BR.coffee
+++ b/app/locale/pt-BR.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
     nick_description: "Mago da programação, feiticeiro da motivação excêntrica e experimentador doido. Nick pode fazer qualquer coisa e escolheu desenvolver o CodeCombat."
     jeremy_description: "Mago em suporte ao consumidor, testador de usabilidade, e organizador da comunidade; você provavelmente já falou com o Jeremy."
     michael_description: "Programador, administrador de sistemas, e um técnico prodígio não graduado, Michael é a pessoa que mantém os servidores funcionando."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
   legal:
     page_title: "Jurídico"
diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee
index d414668f2..87aede2aa 100644
--- a/app/locale/pt-PT.coffee
+++ b/app/locale/pt-PT.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/pt.coffee b/app/locale/pt.coffee
index d0aa54b76..feb67d479 100644
--- a/app/locale/pt.coffee
+++ b/app/locale/pt.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/ro.coffee b/app/locale/ro.coffee
index dc105c4ca..bfe319854 100644
--- a/app/locale/ro.coffee
+++ b/app/locale/ro.coffee
@@ -10,7 +10,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
     delay_5_sec: "5 secunde"
     manual: "Manual"
     fork: "Fork"
-    play: "Joaca"
+    play: "Joacă"
 
   modal:
     close: "Inchide"
@@ -54,18 +54,18 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
   signup:
     create_account_title: "Crează cont pentru a salva progresul"
     description: "Este gratis. Doar un scurt formular inainte si poți continua:"
-    email_announcements: "Primește notificări prin emaill"
+    email_announcements: "Primește notificări prin email"
     coppa: "13+ sau non-USA "
     coppa_why: "(De ce?)"
-    creating: "Se crează contul..."
+    creating: "Se creează contul..."
     sign_up: "Înscrie-te"
     log_in: "loghează-te cu parola"
 
   home:
-    slogan: "Învață sa scri JavaScript jucându-te"
+    slogan: "Învață sa scrii JavaScript jucându-te"
     no_ie: "CodeCombat nu merge pe Internet Explorer 9 sau mai vechi. Scuze!"
-    no_mobile: "CodeCombat nu a fost proiectat pentru dispozitive mobile si s-ar putea sa nu meargâ!"
-    play: "Joacâ"
+    no_mobile: "CodeCombat nu a fost proiectat pentru dispozitive mobile si s-ar putea sa nu meargă!"
+    play: "Joacă"
 #    old_browser: "Uh oh, your browser is too old to run CodeCombat. Sorry!"
 #    old_browser_suffix: "You can try anyway, but it probably won't work."
 #    campaign: "Campaign"
@@ -102,9 +102,9 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
     send: "Trimite Feedback"
 
   diplomat_suggestion:
-    title: "Ajută-ne  să traducem CodeCombat!"
+    title: "Ajută-ne să traducem CodeCombat!"
     sub_heading: "Avem nevoie de abilitățile tale lingvistice."
-    pitch_body: "CodeCombat este dezvoltat in limba engleza , dar deja avem jucatări din toate colțurile lumii.Mulți dintre ei vor să joace in română și nu vorbesc engleză.Dacă poți vorbi ambele te rugăm să te gândești dacă ai dori să devi un Diplomat și să ne ajuți sa traducem atât jocul cât și site-ul."
+    pitch_body: "CodeCombat este dezvoltat in limba engleza , dar deja avem jucatări din toate colțurile lumii. Mulți dintre ei vor să joace in română și nu vorbesc engleză. Dacă poți vorbi ambele te rugăm să te gândești dacă ai dori să devi un Diplomat și să ne ajuți sa traducem atât jocul cât și site-ul."
     missing_translations: "Until we can translate everything into Romanian, you'll see English when Romanian isn't available."
     learn_more: "Află mai multe despre cum să fi un Diplomat"
     subscribe_as_diplomat: "Înscrie-te ca Diplomat"
@@ -179,7 +179,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
     goals: "Obiective"
     action_timeline: "Timeline-ul acțiunii"
     click_to_select: "Apasă pe o unitate pentru a o selecta."
-    reload_title: "Reîncarcă tot Codul?"
+    reload_title: "Reîncarcă tot codul?"
     reload_really: "Ești sigur că vrei să reîncarci nivelul de la început?"
     reload_confirm: "Reload All"
     victory_title_prefix: ""
@@ -238,11 +238,11 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
 
   editor:
     main_title: "Editori CodeCombat"
-    main_description: "Construiește propriile nivele,campanii,unități și conținut educațional.Noi îți furnizăm toate uneltele necesare!"
+    main_description: "Construiește propriile nivele, campanii, unități și conținut educațional. Noi îți furnizăm toate uneltele necesare!"
     article_title: "Editor Articol"
     article_description: "Scrie articole care oferă jucătorilor cunoștințe despre conceptele de programare care pot fi folosite pe o varietate de nivele și campanii."
     thang_title: "Editor Thang"
-    thang_description: "Construiește unități ,definește logica lor,grafica și sunetul.Momentan suportă numai importare de grafică vectorială exportată din Flash."
+    thang_description: "Construiește unități, definește logica lor, grafica și sunetul. Momentan suportă numai importare de grafică vectorială exportată din Flash."
     level_title: "Editor Nivele"
     level_description: "Include uneltele pentru scriptare, upload audio, și construcție de logică costum pentru toate tipurile de nivele.Tot ce folosim noi înșine!"
     security_notice: "Multe setări majore de securitate în aceste editoare nu sunt momentan disponibile.Pe măsură ce îmbunătățim securitatea acestor sisteme, ele vor deveni disponibile. Dacă doriți să folosiți aceste setări mai devrme, "
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
     nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick poate să facă orice si a ales să dezvolte CodeCombat."
     jeremy_description: "Customer support mage, usability tester, and community organizer; probabil ca ați vorbit deja cu Jeremy."
     michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael este cel care ține serverele in picioare."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
   legal:
     page_title: "Aspecte Legale"
@@ -357,7 +358,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
     cost_title: "Cost"
     cost_description: "Momentan, CodeCombat este 100% gratis! Unul dintre obiectele noastre principale este să îl menținem așa, astfel încât să poată juca cât mai mulți oameni. Dacă va fi nevoie , s-ar putea să percepem o plată pentru o pentru anumite servici,dar am prefera să nu o facem. Cu puțin noroc, vom putea susține compania cu:"
     recruitment_title: "Recrutare"
-    recruitment_description_prefix: "Aici la CodeCombat, vei deveni un vrăjitor puternic nu doar în joc , ci și în viața reală."
+    recruitment_description_prefix: "Aici la CodeCombat, vei deveni un vrăjitor puternic nu doar în joc, ci și în viața reală."
     url_hire_programmers: "Nimeni nu poate angaja programatori destul de rapid"
     recruitment_description_suffix: "așa că odată ce ți-ai dezvoltat abilitățile și esti de acord, noi vom trimite un demo cu cele mai bune realizări ale tale către miile de angajatori care se omoară să pună mâna pe tine. Pe noi ne plătesc puțin, pe tine te vor plăti"
     recruitment_description_italic: "mult"
@@ -392,7 +393,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
     rights_description: "Descriere"
     rights_writings: "Scrieri"
     rights_media: "Media (sunete, muzică) și orice alt conținut creativ dezvoltat special pentru acel nivel care nu este valabil în mod normal pentru creat nivele."
-    rights_clarification: "Pentru a clarifica, orice este valabil in Editorul de Nivele pentru scopul de a crea nivele se află sub CC,pe când conținutul creat cu Editorul de Nivele sau încărcat pentru a face nivelul nu se află."
+    rights_clarification: "Pentru a clarifica, orice este valabil in Editorul de Nivele pentru scopul de a crea nivele se află sub CC, pe când conținutul creat cu Editorul de Nivele sau încărcat pentru a face nivelul nu se află."
     nutshell_title: "Pe scurt"
     nutshell_description: "Orice resurse vă punem la dispoziție în Editorul de Nivele puteți folosi liber cum vreți pentru a crea nivele. Dar ne rezervăm dreptul de a rezerva distribuția de nivele în sine (care sunt create pe codecombat.com) astfel încât să se poată percepe o taxă pentru ele pe vitor, dacă se va ajunge la așa ceva."
     canonical: "Versiunea in engleză a acestui document este cea definitivă, versiunea canonică. Dacă există orice discrepanțe între traduceri, documentul in engleză are prioritate."
@@ -410,8 +411,8 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
     alert_account_message_pref: "Pentru a te abona la email-uri de clasă, va trebui să "
     alert_account_message_suf: "mai întâi."
     alert_account_message_create_url: "creați un cont"
-    archmage_summary: "Interesat să lucrezi la grafica jocului, interfața grafică cu utilizatorul, baze de date și organizare server , multiplayer networking, fizică, sunet, sau performanțe game engine ? Vrei să ajuți la construirea unui joc pentru a învăța pe alții ceea ce te pricepi? Avem o grămadă de făcut dacă ești un programator experimentat și vrei sa dezvolți pentru CodeCombat, această clasă este pentru tine. Ne-ar plăcea să ne ajuți să construim cel mai bun joc de programare făcut vreodată."
-    archmage_introduction: "Una dintre cele mai bune părți despre construirea unui joc este că sintetizează atât de multe lucruri diferite. Grafică, sunet, networking în timp real, social networking, și desigur multe dintre aspectele comune ale programării, de la gestiune low-level a bazelor de date , și administrare server până la construirea de interfețe. Este mult de muncă, și dacă ești un programator cu experiență, cu un dor de a se arunca cu capul înainte îm CodeCombat, această clasă ți se potrivește. Ne-ar plăcea să ne ajuți să construim cel mai bun joc de programare făcut vreodată."
+    archmage_summary: "Interesat să lucrezi la grafica jocului, interfața grafică cu utilizatorul, baze de date și organizare server, multiplayer networking, fizică, sunet, sau performanțe game engine? Vrei să ajuți la construirea unui joc pentru a învăța pe alții ceea ce te pricepi? Avem o grămadă de făcut dacă ești un programator experimentat și vrei sa dezvolți pentru CodeCombat, această clasă este pentru tine. Ne-ar plăcea să ne ajuți să construim cel mai bun joc de programare făcut vreodată."
+    archmage_introduction: "Una dintre cele mai bune părți despre construirea unui joc este că sintetizează atât de multe lucruri diferite. Grafică, sunet, networking în timp real, social networking, și desigur multe dintre aspectele comune ale programării, de la gestiune low-level a bazelor de date, și administrare server până la construirea de interfețe. Este mult de muncă, și dacă ești un programator cu experiență, cu un dor de a se arunca cu capul înainte îm CodeCombat, această clasă ți se potrivește. Ne-ar plăcea să ne ajuți să construim cel mai bun joc de programare făcut vreodată."
     class_attributes: "Atribute pe clase"
     archmage_attribute_1_pref: "Cunoștințe în "
     archmage_attribute_1_suf: ", sau o dorință de a învăța. Majoritatea codului este în acest limbaj. Dacă ești fan Ruby sau Python, te vei simți ca acasă. Este JavaScript, dar cu o sintaxă mai frumoasă."
@@ -432,7 +433,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
     artisan_attribute_1: "Orice experiență în crearea de conținut ca acesta ar fi de preferat, precum folosirea editoarelor de nivele de la Blizzard. Dar nu este obligatoriu!"
     artisan_attribute_2: "Un chef de a face o mulțime de teste și iterări. Pentru a face nivele bune, trebuie să testați pe mai mulți oameni și să obțineți feedback, și să fiți pregăți să reparați o mulțime de lucruri."
     artisan_attribute_3: "Pentru moment trebui să ai nervi de oțel. Editorul nostru de nivele este abia la început și încă are multe probleme. Ai fost avertizat!"
-    artisan_join_desc: "Folosiți editorul de nivele urmărind acești pași , mai mult sau mai puțin:"
+    artisan_join_desc: "Folosiți editorul de nivele urmărind acești pași, mai mult sau mai puțin:"
     artisan_join_step1: "Citește documentația."
     artisan_join_step2: "Crează un nivel nou și explorează nivelele deja existente."
     artisan_join_step3: "Găsește-ne pe chatul nostru de Hipchat pentru ajutor."
diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee
index 2839363bb..52fc935d1 100644
--- a/app/locale/ru.coffee
+++ b/app/locale/ru.coffee
@@ -66,11 +66,11 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
     no_ie: "CodeCombat не работает в IE8 или более старых версиях. Нам очень жаль!"
     no_mobile: "CodeCombat не приспособлен для работы на мобильных устройствах и может не работать!"
     play: "Играть"
-    old_browser: "Ой, Ваш браузер слишком старый для игры CodeCombat. Извините!"
-    old_browser_suffix: "Вы все равно можете попробовать, но скорее всего это не будет работать"
-#    campaign: "Campaign"
+    old_browser: "Ой, ваш браузер слишком стар для запуска CodeCombat. Извините!"
+    old_browser_suffix: "Вы всё равно можете попробовать, но, скорее всего, это не будет работать."
+    campaign: "Кампания"
     for_beginners: "Новичкам"
-    multiplayer: "Командная игра"
+    multiplayer: "Мультиплеер"
     for_developers: "Разработчикам"
 
   play:
@@ -214,17 +214,17 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
     hud_continue: "Продолжить (Shift+Пробел)"
     spell_saved: "Заклинание сохранено"
     skip_tutorial: "Пропуск (Esc)"
-#    editor_config: "Editor Config"
-#    editor_config_title: "Editor Configuration"
-#    editor_config_keybindings_label: "Key Bindings"
-#    editor_config_keybindings_default: "Default (Ace)"
-#    editor_config_keybindings_description: "Adds additional shortcuts known from the common editors."
-#    editor_config_invisibles_label: "Show Invisibles"
-#    editor_config_invisibles_description: "Displays invisibles such as spaces or tabs."
-#    editor_config_indentguides_label: "Show Indent Guides"
-#    editor_config_indentguides_description: "Displays vertical lines to see indentation better."
-#    editor_config_behaviors_label: "Smart Behaviors"
-#    editor_config_behaviors_description: "Autocompletes brackets, braces, and quotes."
+    editor_config: "Настройки редактора"
+    editor_config_title: "Настройки редактора"
+    editor_config_keybindings_label: "Сочетания клавиш"
+    editor_config_keybindings_default: "По умолчанию (Ace)"
+    editor_config_keybindings_description: "Добавляет дополнительные сочетания, известные из популярных редакторов."
+    editor_config_invisibles_label: "Показывать непечатные символы"
+    editor_config_invisibles_description: "Отображение непечатных символов, таких как пробелы или табуляции."
+    editor_config_indentguides_label: "Показывать направляющие отступов"
+    editor_config_indentguides_description: "Отображение вертикальных линий для лучшего обзора отступов."
+    editor_config_behaviors_label: "Умное поведение"
+    editor_config_behaviors_description: "Автозавершать квадратные, фигурные скобки и кавычки."
 
   admin:
     av_title: "Админ панель"
@@ -334,7 +334,12 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
     scott_description: "Экстраординарный программист, архитектор программного обеспечения, кухонный волшебник и мастер финансов. Скотт рассудителен."
     nick_description: "Маг программирования, мудрец эксцентричного мотивирования и чудаковатый экспериментатор. Ник может всё и хочет построить CodeCombat."
     jeremy_description: "Маг клиентской поддержки, юзабилити-тестер, и организатор сообщества; вы наверняка уже говорили с Джереми."
+<<<<<<< HEAD
     michael_description: "Программист, сисадмин и непризнанный технический гений, Михаэль является лицом, поддерживающим наши серверы в доступности."
+=======
+    michael_description: "Программист, сисадмин и непризнанный технический гений, Михаэль является лицом, поддерживающим наши серверы онлайн."
+    glen_description: "Программист и страстный разработчик игр, с мотивацией сделать этот мир лучше путём разработки действительно значащих вещей. Слова \"невозможно\" нет в его словаре. Освоение новых навыков его развлечение!"
+>>>>>>> 034a18c960c7fc14478ea285c9130c57645a3631
 
   legal:
     page_title: "Юридическая информация"
@@ -539,16 +544,16 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
     warmup: "Разминка"
     vs: "против"
 
-#  multiplayer_launch:
-#    introducing_dungeon_arena: "Introducing Dungeon Arena"
-#    new_way: "March 17, 2014: The new way to compete with code."
-#    to_battle: "To Battle, Developers!"
-#    modern_day_sorcerer: "You know how to code? That's badass. You're a modern-day sorcerer! Isn't about time that you used your magic coding powers to command your minions in epic combat? And we're not talking robots here."
-#    arenas_are_here: "CodeCombat head-to-head multiplayer arenas are here."
-#    ladder_explanation: "Choose your heroes, enchant your human or ogre armies, and climb your way over defeated fellow Wizards to reach the top of the ladders–then challenge your friends in our glorious, asynchronous multiplayer coding arenas. If you're feeling creative, you can even"
-#    fork_our_arenas: "fork our arenas"
-#    create_worlds: "and create your own worlds."
-#    javascript_rusty: "JavaScript a bit rusty? Don't worry; there's a"
-#    tutorial: "tutorial"
-#    new_to_programming: ". New to programming? Hit our beginner campaign to skill up."
-#    so_ready: "I Am So Ready for This"
+  multiplayer_launch:
+    introducing_dungeon_arena: "Представляем Арену подземелья"
+    new_way: "17 марта 2014: Новый способ соревноваться с помощью кода."
+    to_battle: "В бой, разработчики!"
+    modern_day_sorcerer: "Вы знаете, как программировать? Это круто. Вы волшебник наших дней! Разве не время, чтобы вы использовали свои магические силы программирования для управления миньонами в эпичной битве? И мы не говорим здесь роботы."
+    arenas_are_here: "Мультиплеерные арены CodeCombat на равных уже здесь."
+    ladder_explanation: "Выбирайте своих героев, зачаровывайте свои армии людей или огров, и взберитесь через поверженных коллег-Волшебников на вершину ладдеров–затем бросьте вызов своим друзьям в наших славных, асинхронно-мультиплеерных аренах прогрммирования. Если вы ощущаете себя творческим, можете даже"
+    fork_our_arenas: "сделать форк наших арен"
+    create_worlds: "и создавать свои собственные миры."
+    javascript_rusty: "Подзабыли JavaScript? Не беспокойтесь; есть"
+    tutorial: "обучение"
+    new_to_programming: ". Новичок в программировании? Пройдите нашу кампанию для новичков, чтобы повысить навык."
+    so_ready: "Я полностью готов для этого"
diff --git a/app/locale/sk.coffee b/app/locale/sk.coffee
index faee2435c..72229679f 100644
--- a/app/locale/sk.coffee
+++ b/app/locale/sk.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/sl.coffee b/app/locale/sl.coffee
index 90998b1cb..89adb77ce 100644
--- a/app/locale/sl.coffee
+++ b/app/locale/sl.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/sr.coffee b/app/locale/sr.coffee
index b93dcb02e..acb613416 100644
--- a/app/locale/sr.coffee
+++ b/app/locale/sr.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/sv.coffee b/app/locale/sv.coffee
index 25b06bafb..63eb00b46 100644
--- a/app/locale/sv.coffee
+++ b/app/locale/sv.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/th.coffee b/app/locale/th.coffee
index c0d2b7df6..42f447444 100644
--- a/app/locale/th.coffee
+++ b/app/locale/th.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/tr.coffee b/app/locale/tr.coffee
index fa2746e4e..36f8f3b50 100644
--- a/app/locale/tr.coffee
+++ b/app/locale/tr.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
     nick_description: "Programlama sihirbazı, tuhaf motivasyon büyücü ve tersine mühendis. Nick her şeyden anlar ve şu anda CodeCombat'i inşa etmekle meşgul."
     jeremy_description: "Müşteri hizmetleri büyücüsü, kullanılabilirlik test edicisi ve topluluk örgütleyici; muhtemelen Jeremy ile konuşmuşluğunuz vardır."
     michael_description: "Programcı, sistem yöneticisi, halihazırda üniversite okuyan teknik-harika-çocuk. Michael sunucularımızı ayakta tutan adamın ta kendisi."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
   legal:
     page_title: "Hukuki"
diff --git a/app/locale/uk.coffee b/app/locale/uk.coffee
index 39e5da8b9..5fb4da5cd 100644
--- a/app/locale/uk.coffee
+++ b/app/locale/uk.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "українська мова", englishDesc
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
   legal:
     page_title: "Юридичні нотатки"
diff --git a/app/locale/ur.coffee b/app/locale/ur.coffee
index 9fac46d84..19c90913f 100644
--- a/app/locale/ur.coffee
+++ b/app/locale/ur.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/vi.coffee b/app/locale/vi.coffee
index a4aef3d86..f9dc8839b 100644
--- a/app/locale/vi.coffee
+++ b/app/locale/vi.coffee
@@ -3,14 +3,14 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
     loading: "Tải..."
     saving: "Lưu..."
     sending: "Gởi..."
-#    cancel: "Cancel"
-#    save: "Save"
+    cancel: "Hủy"
+    save: "Lưu"
 #    delay_1_sec: "1 second"
 #    delay_3_sec: "3 seconds"
 #    delay_5_sec: "5 seconds"
 #    manual: "Manual"
 #    fork: "Fork"
-#    play: "Play"
+    play: "Các cấp độ"
 
   modal:
     close: "Đóng"
@@ -19,53 +19,53 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
   not_found:
     page_not_found: "không tìm thấy trang"
 
-#  nav:
-#    play: "Levels"
-#    editor: "Editor"
+  nav:
+    play: "Các cấp độ"
+    editor: "Chỉnh sửa"
 #    blog: "Blog"
-#    forum: "Forum"
-#    admin: "Admin"
-#    home: "Home"
-#    contribute: "Contribute"
-#    legal: "Legal"
-#    about: "About"
-#    contact: "Contact"
-#    twitter_follow: "Follow"
-#    employers: "Employers"
+    forum: "Diễn đàn"
+    admin: "Quản trị viên"
+    home: "Nhà"
+    contribute: "Contribute"
+    legal: "Hợp pháp"
+    about: "Về"
+    contact: "Liên hệ"
+    twitter_follow: "Đi theo"
+    employers: "Người tuyển việc"
 
-#  versions:
-#    save_version_title: "Save New Version"
-#    new_major_version: "New Major Version"
-#    cla_prefix: "To save changes, first you must agree to our"
+  versions:
+    save_version_title: "Lưu Phiên bản Mới"
+    new_major_version: "Phiên bản chính mới"
+    cla_prefix: "Để lưu thay đổi, bạn phải chấp thuận với chúng tôi trước"
 #    cla_url: "CLA"
 #    cla_suffix: "."
-#    cla_agree: "I AGREE"
+    cla_agree: "TÔI ĐỒNG Ý"
 
   login:
     sign_up: "Tạo tài khoản"
     log_in: "Đăng nhập"
     log_out: "Đăng xuất"
-#    recover: "recover account"
+    recover: "Khôi phục tài khoản"
 
-#  recover:
-#    recover_account_title: "Recover Account"
-#    send_password: "Send Recovery Password"
+  recover:
+    recover_account_title: "Khôi phục tài khoản"
+    send_password: "Gởi mật mã khôi phục"
 
-#  signup:
-#    create_account_title: "Create Account to Save Progress"
-#    description: "It's free. Just need a couple things and you'll be good to go:"
-#    email_announcements: "Receive announcements by email"
-#    coppa: "13+ or non-USA "
-#    coppa_why: "(Why?)"
-#    creating: "Creating Account..."
-#    sign_up: "Sign Up"
-#    log_in: "log in with password"
+  signup:
+    create_account_title: "Tạo tài khoản để lưu tiến trình"
+    description: "Nó miễn phí. Chỉ cần một vài thứ và bạn có thể tiếp tục:"
+    email_announcements: "Nhận thông báo bằng email"
+    coppa: "13+ hoặc non-USA "
+    coppa_why: "(Tại sao?)"
+    creating: "Tạo tài khoản..."
+    sign_up: "Đăng ký"
+    log_in: "đăng nhập với mật khẩu"
 
-#  home:
-#    slogan: "Learn to Code JavaScript by Playing a Game"
-#    no_ie: "CodeCombat does not run in Internet Explorer 9 or older. Sorry!"
-#    no_mobile: "CodeCombat wasn't designed for mobile devices and may not work!"
-#    play: "Play"
+  home:
+    slogan: "Học mã Javascript bằng chơi Games"
+    no_ie: "Codecombat không chạy trong Internet Explorer 9 hoặc cũ hơn. Xin lỗi!"
+    no_mobile: "Codecombat không được thiết kế cho các thiết bị di động và có thể không hoạt động được!"
+    play: "Chơi"
 #    old_browser: "Uh oh, your browser is too old to run CodeCombat. Sorry!"
 #    old_browser_suffix: "You can try anyway, but it probably won't work."
 #    campaign: "Campaign"
@@ -73,45 +73,45 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
 #    multiplayer: "Multiplayer"
 #    for_developers: "For Developers"
 
-#  play:
-#    choose_your_level: "Choose Your Level"
-#    adventurer_prefix: "You can jump to any level below, or discuss the levels on "
-#    adventurer_forum: "the Adventurer forum"
+  play:
+    choose_your_level: "Chọn Trình của bạn"
+    adventurer_prefix: "Bạn có thể nhảy đến bất kỳ cấp độ dưới đây, hoặc nâng dần cấp độ "
+    adventurer_forum: "diễn đàn Adventurer"
 #    adventurer_suffix: "."
-#    campaign_beginner: "Beginner Campaign"
+    campaign_beginner: "Bắt đầu chiến dịch"
 #    campaign_beginner_description: "... in which you learn the wizardry of programming."
-#    campaign_dev: "Random Harder Levels"
+    campaign_dev: "Các cấp độ khó hơn ngẫu nhiên"
 #    campaign_dev_description: "... in which you learn the interface while doing something a little harder."
-#    campaign_multiplayer: "Multiplayer Arenas"
+    campaign_multiplayer: "Khu vực đa người chơi"
 #    campaign_multiplayer_description: "... in which you code head-to-head against other players."
-#    campaign_player_created: "Player-Created"
+    campaign_player_created: "Tạo người chơi"
 #    campaign_player_created_description: "... in which you battle against the creativity of your fellow <a href=\"/contribute#artisan\">Artisan Wizards</a>."
-#    level_difficulty: "Difficulty: "
+    level_difficulty: "Khó: "
 #    play_as: "Play As "
 #    spectate: "Spectate"
 
-#  contact:
-#    contact_us: "Contact CodeCombat"
-#    welcome: "Good to hear from you! Use this form to send us email. "
-#    contribute_prefix: "If you're interested in contributing, check out our "
-#    contribute_page: "contribute page"
+  contact:
+    contact_us: "Liên hệ CodeCombat"
+    welcome: "Rất vui được nhận tin từ bạn! Hãy dùng đơn này để gởi mail cho chúng tôi. "
+    contribute_prefix: "Nếu bạn muốn đóng góp, hãy kiểm tra "
+    contribute_page: "trang đóng góp"
 #    contribute_suffix: "!"
 #    forum_prefix: "For anything public, please try "
-#    forum_page: "our forum"
+    forum_page: "Diễn đàn của chúng tôi"
 #    forum_suffix: " instead."
-#    send: "Send Feedback"
+    send: "Gởi phản hồi"
 
   diplomat_suggestion:
-#    title: "Help translate CodeCombat!"
-#    sub_heading: "We need your language skills."
+    title: "Hãy giúp dịch thuật cho  CodeCombat!"
+    sub_heading: "Chúng tôi cần kỹ năng ngoại ngữ của bạn."
     pitch_body: "We develop CodeCombat in English, but we already have players all over the world. Many of them want to play in Vietnamese but don't speak English, so if you can speak both, please consider signing up to be a Diplomat and help translate both the CodeCombat website and all the levels into Vietnamese."
     missing_translations: "Until we can translate everything into Vietnamese, you'll see English when Vietnamese isn't available."
 #    learn_more: "Learn more about being a Diplomat"
 #    subscribe_as_diplomat: "Subscribe as a Diplomat"
 
-#  wizard_settings:
-#    title: "Wizard Settings"
-#    customize_avatar: "Customize Your Avatar"
+  wizard_settings:
+    title: "Cài đặt Wizard"
+    customize_avatar: "Tùy chỉnh Avatar của bạn"
 #    clothes: "Clothes"
 #    trim: "Trim"
 #    cloud: "Cloud"
@@ -121,65 +121,65 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
 #    saturation: "Saturation"
 #    lightness: "Lightness"
 
-#  account_settings:
-#    title: "Account Settings"
-#    not_logged_in: "Log in or create an account to change your settings."
-#    autosave: "Changes Save Automatically"
+  account_settings:
+    title: "Cài đặt Tài khoản"
+    not_logged_in: "Đăng nhập hoặc tạo tài khoản để thay đổi cài đặt."
+    autosave: "Tự động lưu thay đổi"
 #    me_tab: "Me"
-#    picture_tab: "Picture"
-#    wizard_tab: "Wizard"
-#    password_tab: "Password"
-#    emails_tab: "Emails"
+    picture_tab: "Bức tranh"
+    wizard_tab: "Wizard"
+    password_tab: "Mật khẩu"
+    emails_tab: "Emails"
 #    admin: "Admin"
-#    gravatar_select: "Select which Gravatar photo to use"
+    gravatar_select: "Chọn hình Gravatar để sử dụng"
 #    gravatar_add_photos: "Add thumbnails and photos to a Gravatar account for your email to choose an image."
 #    gravatar_add_more_photos: "Add more photos to your Gravatar account to access them here."
-#    wizard_color: "Wizard Clothes Color"
-#    new_password: "New Password"
-#    new_password_verify: "Verify"
-#    email_subscriptions: "Email Subscriptions"
-#    email_announcements: "Announcements"
+    wizard_color: "Màu trang phục Wizard"
+    new_password: "Mật khẩu mới"
+    new_password_verify: "Xác nhận"
+    email_subscriptions: "Thuê bao Email"
+    email_announcements: "Thông báo"
 #    email_notifications: "Notifications"
 #    email_notifications_description: "Get periodic notifications for your account."
-#    email_announcements_description: "Get emails on the latest news and developments at CodeCombat."
+    email_announcements_description: "Nhận email về tin tức mới nhất và sự phát triển của Codecombat."
 #    contributor_emails: "Contributor Class Emails"
-#    contribute_prefix: "We're looking for people to join our party! Check out the "
-#    contribute_page: "contribute page"
-#    contribute_suffix: " to find out more."
+    contribute_prefix: "Chúng tôi đang tìm thêm người vào nhóm của chúng tôi! Hãy kiểm "
+    contribute_page: "trang đóng góp"
+    contribute_suffix: " để tìm hiểu thêm."
 #    email_toggle: "Toggle All"
-#    error_saving: "Error Saving"
-#    saved: "Changes Saved"
-#    password_mismatch: "Password does not match."
+    error_saving: "Lỗi lưu"
+    saved: "Thay đổi được lưu"
+    password_mismatch: "Mật khẩu không khớp."
 
-#  account_profile:
-#    edit_settings: "Edit Settings"
+  account_profile:
+    edit_settings: "Chỉnh sửa cài đặt"
 #    profile_for_prefix: "Profile for "
 #    profile_for_suffix: ""
-#    profile: "Profile"
-#    user_not_found: "No user found. Check the URL?"
-#    gravatar_not_found_mine: "We couldn't find your profile associated with:"
-#    gravatar_not_found_email_suffix: "."
-#    gravatar_signup_prefix: "Sign up at "
-#    gravatar_signup_suffix: " to get set up!"
+    profile: "Hồ sơ"
+    user_not_found: "Không có người sử dụng được tìm thấy. Kiểm tra URL?"
+    gravatar_not_found_mine: "Chúng tôi không thể tìm thấy hồ sơ của bạn được đính kèm theo:"
+    gravatar_not_found_email_suffix: "."
+    gravatar_signup_prefix: "Đăng ký tại "
+    gravatar_signup_suffix: " để thiết lập!"
 #    gravatar_not_found_other: "Alas, there's no profile associated with this person's email address."
 #    gravatar_contact: "Contact"
-#    gravatar_websites: "Websites"
+    gravatar_websites: "Địa chỉ trang Web"
 #    gravatar_accounts: "As Seen On"
 #    gravatar_profile_link: "Full Gravatar Profile"
 
 #  play_level:
 #    level_load_error: "Level could not be loaded: "
-#    done: "Done"
+    done: "Hoàn thành"
 #    grid: "Grid"
-#    customize_wizard: "Customize Wizard"
+    customize_wizard: "Tùy chỉnh Wizard"
 #    home: "Home"
-#    guide: "Guide"
-#    multiplayer: "Multiplayer"
-#    restart: "Restart"
-#    goals: "Goals"
+    guide: "Hướng dẫn"
+    multiplayer: "Nhiều người chơi"
+    restart: "Khởi động lại"
+    goals: "Mục đích"
 #    action_timeline: "Action Timeline"
-#    click_to_select: "Click on a unit to select it."
-#    reload_title: "Reload All Code?"
+    click_to_select: "Kích vào đơn vị để chọn nó."
+    reload_title: "Tải lại tất cả mã?"
 #    reload_really: "Are you sure you want to reload this level back to the beginning?"
 #    reload_confirm: "Reload All"
 #    victory_title_prefix: ""
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
@@ -480,8 +481,8 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
 #    counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design."
 #    counselor_introduction_2: "Or really anything that is relevant to the development of CodeCombat. If you have knowledge and want to share it to help grow this project, then this class might be for you."
 #    counselor_attribute_1: "Experience, in any of the areas above or something you think might be helpful."
-#    counselor_attribute_2: "A little bit of free time!"
-#    counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)."
+    counselor_attribute_2: "Rảnh rỗi một chút!"
+    counselor_join_desc: "Nói cho chúng tôi điều gì đó về bạn, bạn đã làm cái gì và bạn hứng thú về cái gì. Chúng tôi sẽ đưa bạn vào danh sách liên lạc và chúng tôi sẽ liên hệ khi chúng tôi có thể(không thường xuyên)."
 #    more_about_counselor: "Learn More About Becoming a Counselor"
 #    changes_auto_save: "Changes are saved automatically when you toggle checkboxes."
 #    diligent_scribes: "Our Diligent Scribes:"
@@ -501,11 +502,11 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
 #    scribe_title: "Scribe"
 #    scribe_title_description: "(Article Editor)"
 #    diplomat_title: "Diplomat"
-#    diplomat_title_description: "(Translator)"
+    diplomat_title_description: "(Người phiên dịch)"
 #    ambassador_title: "Ambassador"
-#    ambassador_title_description: "(Support)"
-#    counselor_title: "Counselor"
-#    counselor_title_description: "(Expert/Teacher)"
+    ambassador_title_description: "(Hỗ trợ)"
+    counselor_title: "Người tư vấn"
+    counselor_title_description: "(Chuyên gia/ Giáo viên)"
 
 #  ladder:
 #    please_login: "Please log in first before playing a ladder game."
diff --git a/app/locale/zh-HANS.coffee b/app/locale/zh-HANS.coffee
index 3ca66c33b..cdbe10a04 100644
--- a/app/locale/zh-HANS.coffee
+++ b/app/locale/zh-HANS.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
   legal:
     page_title: "法律"
diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee
index 4e3324f7b..e9c619244 100644
--- a/app/locale/zh-HANT.coffee
+++ b/app/locale/zh-HANT.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/locale/zh.coffee b/app/locale/zh.coffee
index d84cf31ae..97df3ea31 100644
--- a/app/locale/zh.coffee
+++ b/app/locale/zh.coffee
@@ -335,6 +335,7 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
 #    nick_description: "Programming wizard, eccentric motivation mage, and upside-down experimenter. Nick can do anything and chooses to build CodeCombat."
 #    jeremy_description: "Customer support mage, usability tester, and community organizer; you've probably already spoken with Jeremy."
 #    michael_description: "Programmer, sys-admin, and undergrad technical wunderkind, Michael is the person keeping our servers online."
+#    glen_description: "Programmer and passionate game developer, with the motivation to make this world a better place, by developing things that mather. The word impossible can't be found in his dictionary. Learning new skills is his joy!"
 
 #  legal:
 #    page_title: "Legal"
diff --git a/app/models/ThangType.coffee b/app/models/ThangType.coffee
index bfd501adf..8d372c3cc 100644
--- a/app/models/ThangType.coffee
+++ b/app/models/ThangType.coffee
@@ -30,7 +30,7 @@ module.exports = class ThangType extends CocoModel
     return @actions or @buildActions()
 
   buildActions: ->
-    @actions = _.cloneDeep(@get('actions') or {})
+    @actions = $.extend(true, {}, @get('actions') or {})
     for name, action of @actions
       action.name = name
       for relatedName, relatedAction of action.relatedActions ? {}
@@ -139,17 +139,21 @@ module.exports = class ThangType extends CocoModel
     spriteSheet = null
     if @options.async
       buildQueue.push @builder
+      @builder.t0 = new Date().getTime()
       @builder.buildAsync() unless buildQueue.length > 1
       @builder.on 'complete', @onBuildSpriteSheetComplete, @, true, key
       return true
-    console.warn 'Building', @get('name'), @options, 'and blocking the main thread.'
+    t0 = new Date().getTime()
     spriteSheet = @builder.build()
+    console.warn "Built #{@get('name')} in #{new Date().getTime() - t0}ms on main thread."
     @spriteSheets[key] = spriteSheet
     delete @building[key]
     spriteSheet
 
   onBuildSpriteSheetComplete: (e, key) ->
+    console.log "Built #{@get('name')} async in #{new Date().getTime() - @builder.t0}ms." if @builder
     buildQueue = buildQueue.slice(1)
+    buildQueue[0].t0 = new Date().getTime() if buildQueue[0]
     buildQueue[0]?.buildAsync()
     @spriteSheets[key] = e.target.spriteSheet
     delete @building[key]
diff --git a/app/styles/editor/level/thangs_tab.sass b/app/styles/editor/level/thangs_tab.sass
index e643303bd..183d1cde6 100644
--- a/app/styles/editor/level/thangs_tab.sass
+++ b/app/styles/editor/level/thangs_tab.sass
@@ -75,13 +75,14 @@
     right: 0
     top: 0
     bottom: 0
-    
+
     #thangs-list
-      position: absolute
+      position: relative
       right: 0
-      top: 40px
+      top: 0
       bottom: 0
       overflow: scroll
+      height: 100%
 
     h3
       margin: 0 -20px 0 0
diff --git a/app/templates/about.jade b/app/templates/about.jade
index 848275412..869d5331e 100644
--- a/app/templates/about.jade
+++ b/app/templates/about.jade
@@ -160,6 +160,9 @@ block content
             h3 Glen De Cauwsemaecker
     
             p(data-i18n="about.glen_description")
-              | Glen, describe thyself!
+              | Programmer and passionate game developer,
+              | with the motivation to make this world a better place,
+              | by developing things that mather. The word impossible can't
+              | be found in his dictionary. Learning new skills is his joy!
 
 
diff --git a/app/templates/contribute/diplomat.jade b/app/templates/contribute/diplomat.jade
index a54cd73c7..02fb26d12 100644
--- a/app/templates/contribute/diplomat.jade
+++ b/app/templates/contribute/diplomat.jade
@@ -77,7 +77,7 @@ block content
           li Greek - Stergios
           li Latin American Spanish - Jesús Ruppel, Matthew Burt, Mariano Luzza
           li Spain Spanish - Matthew Burt, DanielRodriguezRivero, Anon
-          li French - Xeonarno, Elfisen, Armaldio, MartinDelille, pstweb, veritable, jaybi, xavismeh, Anon
+          li French - Xeonarno, Elfisen, Armaldio, MartinDelille, pstweb, veritable, jaybi, xavismeh, Anon, Feugy
           li Hungarian - ferpeter, csuvsaregal, atlantisguru, Anon
           li Japanese - g1itch, kengos
           li Chinese - Adam23, spacepope, yangxuan8282
diff --git a/app/templates/editor/level/thangs_tab.jade b/app/templates/editor/level/thangs_tab.jade
index 3e0311b85..e3af6b5cc 100644
--- a/app/templates/editor/level/thangs_tab.jade
+++ b/app/templates/editor/level/thangs_tab.jade
@@ -22,7 +22,8 @@
     #canvas-top-gradient.gradient
 
 .add-thangs-palette.thangs-column
-  h3(data-i18n="editor.level_tab_thangs_add") Add Thangs
+  #thangs-header
+    h3(data-i18n="editor.level_tab_thangs_add") Add Thangs
   #thangs-list
     for group in groups
       h4= group.name
diff --git a/app/templates/home.jade b/app/templates/home.jade
index ce17e1b5b..ba496db05 100644
--- a/app/templates/home.jade
+++ b/app/templates/home.jade
@@ -5,7 +5,7 @@ block content
   h1#site-slogan(data-i18n="home.slogan") Learn to Code JavaScript by Playing a Game
 
   #trailer-wrapper
-    <iframe width="920" height="518" src="//www.youtube.com/embed/1zjaA13k-dA?rel=0&controls=0&modestbranding=1&showinfo=0&iv_load_policy=3&vq=hd720" frameborder="0" allowfullscreen></iframe>
+    <iframe width="920" height="518" src="//www.youtube.com/embed/1zjaA13k-dA?rel=0&controls=0&modestbranding=1&showinfo=0&iv_load_policy=3&vq=hd720&wmode=transparent" frameborder="0" allowfullscreen></iframe>
     img(src="/images/pages/home/video_border.png")
   
   hr
diff --git a/app/templates/multiplayer_launch_modal.jade b/app/templates/multiplayer_launch_modal.jade
index e42e0a6ff..918d593f2 100644
--- a/app/templates/multiplayer_launch_modal.jade
+++ b/app/templates/multiplayer_launch_modal.jade
@@ -7,7 +7,7 @@ block modal-header-content
 block modal-body-content
 
   .multiplayer-launch-wrapper
-    <iframe id="multiplayer-video" width="640" height="360" src="//www.youtube.com/embed/wfc0U74LFCk?&rel=0&controls=0&modestbranding=1&showinfo=0&iv_load_policy=3&vq=hd720" frameborder="0" allowfullscreen></iframe>
+    <iframe id="multiplayer-video" width="640" height="360" src="//www.youtube.com/embed/wfc0U74LFCk?&rel=0&controls=0&modestbranding=1&showinfo=0&iv_load_policy=3&vq=hd720&wmode=transparent" frameborder="0" allowfullscreen></iframe>
     img(src="/images/pages/home/video_border.png")
 
   h3(data-i18n="multiplayer_launch.to_battle") To Battle, Developers!
diff --git a/app/templates/play/ladder/my_matches_tab.jade b/app/templates/play/ladder/my_matches_tab.jade
index ba767fdec..6b235148a 100644
--- a/app/templates/play/ladder/my_matches_tab.jade
+++ b/app/templates/play/ladder/my_matches_tab.jade
@@ -53,8 +53,13 @@ div#columns.row
             td.name-cell= match.opponentName || "Anonymous"
             td.time-cell= match.when
             td.battle-cell
-              - var text = match.state === 'win' ? 'Watch your victory' : 'Defeat the ' + team.otherTeam
-              a(href="/play/level/#{levelID}?team=#{team.id}&opponent=#{match.sessionID}")= text
+              a(href="/play/level/#{levelID}?team=#{team.id}&opponent=#{match.sessionID}")
+                if (match.state === 'win')
+                  span(data-i18n="ladder.watch_victory") Watch your victory
+                else
+                  span(data-i18n="ladder.defeat_the") Defeat the
+                  |  
+                  | #{team.otherTeam}
 
         if !team.matches.length
           tr
@@ -68,4 +73,3 @@ div#columns.row
                 span(data-i18n="ladder.no_ranked_matches_pre") No ranked matches for the
                 | #{team.name}
                 span(data-i18n="ladder.no_ranked_matches_post") team! Play against some competitors and then come back here to get your game ranked.
-
diff --git a/app/views/account/wizard_settings_view.coffee b/app/views/account/wizard_settings_view.coffee
index 78f9cee6a..9a5e20e9c 100644
--- a/app/views/account/wizard_settings_view.coffee
+++ b/app/views/account/wizard_settings_view.coffee
@@ -69,7 +69,7 @@ module.exports = class WizardSettingsView extends CocoView
     colorGroup.find('.minicolors-swatch').toggle Boolean(enabled)
 
   updateColorSettings: (colorGroup) =>
-    wizardSettings = _.cloneDeep(me.get('wizard')) or {}
+    wizardSettings = $.extend(true, {}, me.get('wizard')) or {}
     wizardSettings.colorConfig ?= {}
     colorName = colorGroup.data('name')
     wizardSettings.colorConfig[colorName] ?= {}
diff --git a/app/views/editor/components/main.coffee b/app/views/editor/components/main.coffee
index fdcc55a6e..06337a6c8 100644
--- a/app/views/editor/components/main.coffee
+++ b/app/views/editor/components/main.coffee
@@ -68,7 +68,7 @@ module.exports = class ThangComponentEditView extends CocoView
     treemaOptions =
       supermodel: @supermodel
       schema: { type: 'array', items: LevelComponent.schema.attributes }
-      data: (_.cloneDeep(c) for c in components)
+      data: ($.extend(true, {}, c) for c in components)
       callbacks: {select: @onSelectAddableComponent, enter: @onAddComponentEnterPressed }
       readOnly: true
       noSortable: true
@@ -155,7 +155,7 @@ module.exports = class ThangComponentEditView extends CocoView
 
 
   reportChanges: ->
-    @callback?(_.cloneDeep(@extantComponentsTreema.data))
+    @callback?($.extend(true, [], @extantComponentsTreema.data))
 
 class ThangComponentsArrayNode extends TreemaArrayNode
   valueClass: 'treema-thang-components-array'
diff --git a/app/views/editor/level/fork_view.coffee b/app/views/editor/level/fork_view.coffee
index f807df6c7..9f8ffb229 100644
--- a/app/views/editor/level/fork_view.coffee
+++ b/app/views/editor/level/fork_view.coffee
@@ -25,7 +25,7 @@ module.exports = class LevelForkView extends View
   forkLevel: ->
     @showLoading()
     forms.clearFormAlerts(@$el)
-    newLevel = new Level(_.cloneDeep(@level.attributes))
+    newLevel = new Level($.extend(true, {}, @level.attributes))
     newLevel.unset '_id'
     newLevel.unset 'version'
     newLevel.unset 'creator'
diff --git a/app/views/editor/level/scripts_tab_view.coffee b/app/views/editor/level/scripts_tab_view.coffee
index f0088ad21..8e06b8a58 100644
--- a/app/views/editor/level/scripts_tab_view.coffee
+++ b/app/views/editor/level/scripts_tab_view.coffee
@@ -21,7 +21,7 @@ module.exports = class ScriptsTabView extends View
   onLevelLoaded: (e) ->
     @level = e.level
     @dimensions = @level.dimensions()
-    scripts = _.cloneDeep(@level.get('scripts') ? [])
+    scripts = $.extend(true, [], @level.get('scripts') ? [])
     scripts = _.cloneDeep defaultScripts unless scripts.length
     treemaOptions =
       schema: Level.schema.get('properties').scripts
diff --git a/app/views/editor/level/system/add.coffee b/app/views/editor/level/system/add.coffee
index 3afd6e35c..4ea54e3ec 100644
--- a/app/views/editor/level/system/add.coffee
+++ b/app/views/editor/level/system/add.coffee
@@ -61,7 +61,7 @@ module.exports = class LevelSystemAddView extends View
       levelSystem =
         original: s.get('original') ? id
         majorVersion: s.get('version').major ? 0
-        config: _.cloneDeep(s.get('configSchema').default ? {})
+        config: $.extend(true, {}, s.get('configSchema').default ? {})
       @extantSystems.push levelSystem
       Backbone.Mediator.publish 'level-system-added', system: levelSystem
     @renderAvailableSystems()
diff --git a/app/views/editor/level/systems_tab_view.coffee b/app/views/editor/level/systems_tab_view.coffee
index a4b481754..59ed6fb48 100644
--- a/app/views/editor/level/systems_tab_view.coffee
+++ b/app/views/editor/level/systems_tab_view.coffee
@@ -54,7 +54,7 @@ module.exports = class SystemsTabView extends View
     @buildSystemsTreema()
 
   buildSystemsTreema: ->
-    systems = _.cloneDeep(@level.get('systems') ? [])
+    systems = $.extend(true, [], @level.get('systems') ? [])
     unless systems.length
       systems = @buildDefaultSystems()
       insertedDefaults = true
diff --git a/app/views/editor/level/thangs_tab_view.coffee b/app/views/editor/level/thangs_tab_view.coffee
index be020ff6f..fd0633877 100644
--- a/app/views/editor/level/thangs_tab_view.coffee
+++ b/app/views/editor/level/thangs_tab_view.coffee
@@ -104,12 +104,19 @@ module.exports = class ThangsTabView extends View
     context.groups = groups
     context
 
+  onWindowResize: (e) ->
+    $('#thangs-list').height('100%')
+    thangsHeaderHeight = $('#thangs-header').height()
+    oldHeight = $('#thangs-list').height()
+    $('#thangs-list').height(oldHeight - thangsHeaderHeight)
+
   afterRender: ->
     return if @startsLoading
     super()
     $('.tab-content').click @selectAddThang
     $('#thangs-list').bind 'mousewheel', @preventBodyScrollingInThangList
     @$el.find('#extant-thangs-filter button:first').button('toggle')
+    $(window).resize @onWindowResize
 
   onFilterExtantThangs: (e) ->
     @$el.find('#extant-thangs-filter button.active').button('toggle')
@@ -145,6 +152,9 @@ module.exports = class ThangsTabView extends View
     @thangsTreema.open()
     @onThangsChanged()  # Initialize the World with Thangs
     @initSurface()
+    thangsHeaderHeight = $('#thangs-header').height()
+    oldHeight = $('#thangs-list').height()
+    $('#thangs-list').height(oldHeight - thangsHeaderHeight)
 
   initSurface: ->
     surfaceCanvas = $('canvas#surface', @$el)
diff --git a/app/views/editor/thang/edit.coffee b/app/views/editor/thang/edit.coffee
index 23fa7f38d..a8a67ff39 100644
--- a/app/views/editor/thang/edit.coffee
+++ b/app/views/editor/thang/edit.coffee
@@ -40,7 +40,7 @@ module.exports = class ThangTypeEditView extends View
 
   constructor: (options, @thangTypeID) ->
     super options
-    @mockThang = _.cloneDeep(@mockThang)
+    @mockThang = $.extend(true, {}, @mockThang)
     @thangType = new ThangType(_id: @thangTypeID)
     @thangType.saveBackups = true
     @thangType.fetch()
@@ -320,7 +320,7 @@ module.exports = class ThangTypeEditView extends View
     @treema.set('/', @getThangData())
 
   getThangData: ->
-    data = _.cloneDeep(@thangType.attributes)
+    data = $.extend(true, {}, @thangType.attributes)
     data = _.pick data, (value, key) => not (key in ['components'])
 
   buildTreema: ->
diff --git a/app/views/play/ladder_view.coffee b/app/views/play/ladder_view.coffee
index 068921627..45cdbbc49 100644
--- a/app/views/play/ladder_view.coffee
+++ b/app/views/play/ladder_view.coffee
@@ -72,14 +72,15 @@ module.exports = class LadderView extends RootView
       @showPlayModal(hash) if @sessions.loaded
 
   fetchSessionsAndRefreshViews: ->
+    return if @destroyed or application.userIsIdle or @$el.find('#simulate.active').length or (new Date() - 2000 < @lastRefreshTime)
     @sessions.fetch({"success": @refreshViews})
 
   refreshViews: =>
-    return if @destroyed or application.userIsIdle or new Date() - 2000 < @lastRefreshTime
+    return if @destroyed or application.userIsIdle
     @lastRefreshTime = new Date()
     @ladderTab.refreshLadder()
     @myMatchesTab.refreshMatches()
-    console.log "Refreshing ladder and matches views."
+    console.log "Refreshed sessions for ladder and matches."
 
   onIdleChanged: (e) ->
     @refreshViews() unless e.idle
diff --git a/app/views/play/level/level_loading_view.coffee b/app/views/play/level/level_loading_view.coffee
index 3ac98738d..32da3377e 100644
--- a/app/views/play/level/level_loading_view.coffee
+++ b/app/views/play/level/level_loading_view.coffee
@@ -8,7 +8,7 @@ module.exports = class LevelLoadingView extends View
 
   subscriptions:
     'level-loader:progress-changed': 'onLevelLoaderProgressChanged'
-
+    
   afterRender: ->
     @$el.find('.tip.rare').remove() if _.random(1, 10) < 9
     tips = @$el.find('.tip').addClass('to-remove')
diff --git a/app/views/play/level/modal/docs_modal.coffee b/app/views/play/level/modal/docs_modal.coffee
index 42aa98319..88336fb64 100644
--- a/app/views/play/level/modal/docs_modal.coffee
+++ b/app/views/play/level/modal/docs_modal.coffee
@@ -25,7 +25,7 @@ module.exports = class DocsModal extends View
 
     @docs = specific.concat(general)
     marked.setOptions {gfm: true, sanitize: false, smartLists: true, breaks: false}
-    @docs = _.cloneDeep(@docs)
+    @docs = $.extend(true, [], @docs)
     doc.html = marked(utils.i18n doc, 'body') for doc in @docs
     doc.name = (utils.i18n doc, 'name') for doc in @docs
     doc.slug = _.string.slugify(doc.name) for doc in @docs
diff --git a/app/views/play/level_view.coffee b/app/views/play/level_view.coffee
index 68bca74d8..aaa718703 100644
--- a/app/views/play/level_view.coffee
+++ b/app/views/play/level_view.coffee
@@ -167,7 +167,7 @@ module.exports = class PlayLevelView extends View
     @insertSubviews ladderGame: (@level.get('type') is "ladder")
     @initVolume()
     @session.on 'change:multiplayer', @onMultiplayerChanged, @
-    @originalSessionState = _.cloneDeep(@session.get('state'))
+    @originalSessionState = $.extend(true, {}, @session.get('state'))
     @register()
     @controlBar.setBus(@bus)
     @surface.showLevel()
diff --git a/app/views/play/spectate_view.coffee b/app/views/play/spectate_view.coffee
index d3c79b7ae..283c7dc57 100644
--- a/app/views/play/spectate_view.coffee
+++ b/app/views/play/spectate_view.coffee
@@ -160,7 +160,7 @@ module.exports = class SpectateLevelView extends View
     @insertSubviews ladderGame: @otherSession?
     @initVolume()
 
-    @originalSessionState = _.cloneDeep(@session.get('state'))
+    @originalSessionState = $.extend(true, {}, @session.get('state'))
     @register()
     @controlBar.setBus(@bus)
     @surface.showLevel()
diff --git a/app/views/play_view.coffee b/app/views/play_view.coffee
index 123fc6fac..6ca2df50f 100644
--- a/app/views/play_view.coffee
+++ b/app/views/play_view.coffee
@@ -12,72 +12,72 @@ module.exports = class PlayView extends View
     tutorials = [
       {
         name: 'Rescue Mission'
-        id: 'rescue-mission'
-        description: "Tharin has been captured!"
-        image: '/file/db/level/52740644904ac0411700067c/rescue_mission_icon.png'
         difficulty: 1
+        id: 'rescue-mission'
+        image: '/file/db/level/52740644904ac0411700067c/rescue_mission_icon.png'
+        description: "Tharin has been captured!"
       }
       {
         name: 'Grab the Mushroom'
         difficulty: 1
-        image: '/file/db/level/529662dfe0df8f0000000007/grab_the_mushroom_icon.png'
         id: 'grab-the-mushroom'
+        image: '/file/db/level/529662dfe0df8f0000000007/grab_the_mushroom_icon.png'
         description: "Grab a powerup and smash a big ogre."
       }
       {
         name: 'Drink Me'
         difficulty: 1
-        image: '/file/db/level/525dc5589a0765e496000006/drink_me_icon.png'
         id: 'drink-me'
+        image: '/file/db/level/525dc5589a0765e496000006/drink_me_icon.png'
         description: "Drink up and slay two munchkins."
       }
       {
         name: 'Taunt the Guards'
         difficulty: 1
-        image: '/file/db/level/5276c9bdcf83207a2801ff8f/taunt_icon.png'
         id: 'taunt-the-guards'
+        image: '/file/db/level/5276c9bdcf83207a2801ff8f/taunt_icon.png'
         description: "Tharin, if clever, can escape with Phoebe."
       }
       {
         name: "It's a Trap"
         difficulty: 1
-        image: '/file/db/level/528aea2d7f37fc4e0700016b/its_a_trap_icon.png'
         id: 'its-a-trap'
+        image: '/file/db/level/528aea2d7f37fc4e0700016b/its_a_trap_icon.png'
         description: "Organize a dungeon ambush with archers."
       }
       {
         name: 'Break the Prison'
         difficulty: 1
-        image: '/file/db/level/5275272c69abdcb12401216e/break_the_prison_icon.png'
         id: 'break-the-prison'
+        image: '/file/db/level/5275272c69abdcb12401216e/break_the_prison_icon.png'
         description: "More comrades are imprisoned!"
       }
       {
         name: 'Taunt'
         difficulty: 1
-        image: '/file/db/level/525f150306e1ab0962000018/taunt_icon.png'
         id: 'taunt'
+        image: '/file/db/level/525f150306e1ab0962000018/taunt_icon.png'
         description: "Taunt the ogre to claim victory."
       }
       {
         name: 'Cowardly Taunt'
         difficulty: 1
-        image: '/file/db/level/525abfd9b12777d78e000009/cowardly_taunt_icon.png'
         id: 'cowardly-taunt'
+        image: '/file/db/level/525abfd9b12777d78e000009/cowardly_taunt_icon.png'
         description: "Lure infuriated ogres to their doom."
       }
       {
         name: 'Commanding Followers'
         difficulty: 1
-        image: '/file/db/level/525ef8ef06e1ab0962000003/commanding_followers_icon.png'
         id: 'commanding-followers'
+        image: '/file/db/level/525ef8ef06e1ab0962000003/commanding_followers_icon.png'
         description: "Lead allied soldiers into battle."
       }
       {
         name: 'Mobile Artillery'
         difficulty: 1
-        image: '/file/db/level/525085419851b83f4b000001/mobile_artillery_icon.png'
         id: 'mobile-artillery'
+        image: '/file/db/level/525085419851b83f4b000001/mobile_artillery_icon.png'
         description: "Blow ogres up!"
       }
     ]
@@ -85,38 +85,38 @@ module.exports = class PlayView extends View
     experienced = [
       {
         name: 'Hunter Triplets'
-        id: 'hunter-triplets'
-        description: "Three soldiers go ogre hunting."
-        image: '/file/db/level/526711d9add4f8965f000002/hunter_triplets_icon.png'
         difficulty: 2
+        id: 'hunter-triplets'
+        image: '/file/db/level/526711d9add4f8965f000002/hunter_triplets_icon.png'
+        description: "Three soldiers go ogre hunting."
       }
       {
         name: 'Emphasis on Aim'
         difficulty: 2
-        image: '/file/db/level/525f384d96cd77000000000f/munchkin_masher_icon.png'
         id: 'emphasis-on-aim'
+        image: '/file/db/level/525f384d96cd77000000000f/munchkin_masher_icon.png'
         description: "Chose your targets carefully."
       }
       {
         name: 'Zone of Danger'
-        id: 'zone-of-danger'
-        description: "Target the ogres swarming into arrow range."
-        image: '/file/db/level/526ae95c1e5cd30000000008/zone_of_danger_icon.png'
         difficulty: 3
+        id: 'zone-of-danger'
+        image: '/file/db/level/526ae95c1e5cd30000000008/zone_of_danger_icon.png'
+        description: "Target the ogres swarming into arrow range."
       }
       {
         name: 'Molotov Medic'
         difficulty: 2
-        image: '/file/db/level/52602ecb026e8481e7000001/generic_1.png'
         id: 'molotov-medic'
+        image: '/file/db/level/52602ecb026e8481e7000001/generic_1.png'
         description: "Tharin must play support in this dungeon battle."
       }
       {
         name: 'Gridmancer'
-        id: 'gridmancer'
-        description: "Challenge! Beat this level, get a job!"
-        image: '/file/db/level/52ae2460ef42c52f13000008/gridmancer_icon.png'
         difficulty: 5
+        id: 'gridmancer'
+        image: '/file/db/level/52ae2460ef42c52f13000008/gridmancer_icon.png'
+        description: "Challenge! Beat this level, get a job!"
       }
     ]
 
diff --git a/scripts/windows/coco-dev-setup/batch/config/downloads_32 b/scripts/windows/coco-dev-setup/batch/config/downloads_32
index 9f31f7124..28a9db70d 100755
--- a/scripts/windows/coco-dev-setup/batch/config/downloads_32
+++ b/scripts/windows/coco-dev-setup/batch/config/downloads_32
@@ -1,2 +1,3 @@
 http://nodejs.org/dist/v0.10.25/node-v0.10.25-x86.msi
-http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353.exe?direct 
\ No newline at end of file
+http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353.exe?direct
+http://www.python.org/ftp/python/2.7.6/python-2.7.6.msi
\ No newline at end of file
diff --git a/scripts/windows/coco-dev-setup/batch/config/downloads_64 b/scripts/windows/coco-dev-setup/batch/config/downloads_64
index e97840b7b..b22b5f2da 100755
--- a/scripts/windows/coco-dev-setup/batch/config/downloads_64
+++ b/scripts/windows/coco-dev-setup/batch/config/downloads_64
@@ -1,2 +1,3 @@
 http://nodejs.org/dist/v0.10.25/x64/node-v0.10.25-x64.msi
-http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct 
\ No newline at end of file
+http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct
+http://www.python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi
\ No newline at end of file
diff --git a/scripts/windows/coco-dev-setup/batch/config/header b/scripts/windows/coco-dev-setup/batch/config/header
index 0e1176c32..e25defc09 100755
--- a/scripts/windows/coco-dev-setup/batch/config/header
+++ b/scripts/windows/coco-dev-setup/batch/config/header
@@ -1,4 +1,4 @@
-
+ 
        _____           _        _____                 _           _   
       /  __ \         | |      /  __ \               | |         | |  
       | /  \/ ___   __| | ___  | /  \/ ___  _ __ ___ | |__   __ _| |_ 
diff --git a/scripts/windows/coco-dev-setup/batch/config/README.txt b/scripts/windows/coco-dev-setup/batch/config/info
similarity index 72%
rename from scripts/windows/coco-dev-setup/batch/config/README.txt
rename to scripts/windows/coco-dev-setup/batch/config/info
index 1d5b84cd0..b42a74484 100755
--- a/scripts/windows/coco-dev-setup/batch/config/README.txt
+++ b/scripts/windows/coco-dev-setup/batch/config/info
@@ -7,4 +7,7 @@
    \____/\___/ \__,_|\___|  \____/\___/|_| |_| |_|_.__/ \__,_|\__|
 
 ======================================================================
- Readme: Hello World!
\ No newline at end of file
+
+The installation of your CodeCombat Development Environment was succesfull!
+You are now ready to start contributing and join our wonderfull community!
+But where and how do you start your journey?
\ No newline at end of file
diff --git a/scripts/windows/coco-dev-setup/batch/config/tips b/scripts/windows/coco-dev-setup/batch/config/tips
new file mode 100755
index 000000000..b15f7d6e2
--- /dev/null
+++ b/scripts/windows/coco-dev-setup/batch/config/tips
@@ -0,0 +1,5 @@
+  1) This program is all about automating the setup of the CoCo environment
+  2) When there is a question, please answer carefull and correct
+  3) This setup is still in beta and may contain bugs
+  4) You can report bugs @ 'https://github.com/codecombat/codecombat/issues'
+  5) Having questions/suggestions? Talk with us on HipChat via CodeCombat.com
\ No newline at end of file
diff --git a/scripts/windows/coco-dev-setup/batch/dev-setup.bat b/scripts/windows/coco-dev-setup/batch/dev-setup.bat
index 6e76e993e..97e7d1ee2 100755
--- a/scripts/windows/coco-dev-setup/batch/dev-setup.bat
+++ b/scripts/windows/coco-dev-setup/batch/dev-setup.bat
@@ -1,6 +1,10 @@
 @echo off
 setlocal EnableDelayedExpansion
 
+Color 0A 
+
+mode con: cols=78 lines=60
+
 :: Global Variables
 set "temp-dir=C:\Coco-Temp"
 set install-log=%temp-dir%\coco-dev-install-log.txt
@@ -14,19 +18,25 @@ IF EXIST "%PROGRAMFILES(X86)%" (
 
 set "ZU-app=utilities\7za.exe"
 
+:: BUGS: 
+  ::  + DEBUG ALL STEPS UNTILL NOW DONE
+
+
 :: TODO:
-::  + Full Automatic Package bat file.
-::  + Write code to set environment variables...
 ::  + Write code to install vs if it's not yet installed on users pc
-::  + Write Git Checkout repository code:
-::      1) Let user specify destination
-::      2) do a git clone with the git application
+
 ::  + Configuraton and installation checklist:
-::      1) ... ?!
+::      1) cd codecombat
+::      2) npm install -g bower brunch nodemon sendwithus
+::      3) bower install
+::      4) gem install sass
+::      5) npm install
+::      6) brunch -w
+::      Extra... @ Fail run npm install
+
 ::  + Copy the automated dev batch file to root folder
 ::      => Let user define mongo-db directory
 ::  + Start the dev environment
-::  + Exit message and warn user that he can quit the window now
 	
 :: Create The Temporary Directory
 IF EXIST %temp-dir% rmdir %temp-dir% /s /q
@@ -43,6 +53,31 @@ call:parse_file_new "config\config" cnfg n
 call:log "Welcome to the automated Installation of the CodeCombat Dev. Environment!"
 call:log_sse "v%%cnfg[1]%% authored by %%cnfg[2]%% and published by %%cnfg[3]%%."
 
+:: Language Agreement Stuff
+
+call:log "In order to continue the installation of the developers environment"
+call:log "you will have to read and agree with the following license:
+call:draw_dss
+echo.
+call:parse_aa_and_draw "license.txt"
+echo.
+call:draw_dss
+call:strict_user_yn_question "Have you read the license and do you agree with it?"  
+
+if "%res%"=="false" (
+  call:log "Sorry to hear that, have a good day..."
+  call:log_sse "Installation and Setup of the CodeCombat environment is cancelled."
+  GOTO:END
+)
+
+:: Tips
+call:log "Before we start the installation, here are some tips:"
+echo.
+
+call:parse_aa_and_draw "config\tips"
+
+call:draw_ss
+
 :: Read Language Index
 call:parse_file_new "localisation\languages" lang lang_c
 
@@ -99,7 +134,7 @@ call:log_lw_sse 2
 
 :: downloads for all version...
 
-:: [TODO] The choice between Cygwin && Git ?! Is 
+:: [TODO] The choice between Cygwin && Git ?! Is  => HAVE EXTERNAL GIT APPLICATION LIST!!!
 
 call:log_lw_sse 3
 
@@ -109,13 +144,25 @@ call:log_lw 8
 call:install_software_o "git" "%%downloads[1]%%" exe 9
 call:draw_dss
 call:get_lw word 11
-:: [TODO] Check if that application exists, if not ask again with warning that the path is invalid!!! (SAFETYYYY)
-set /p git_exe_path="%word%: "
 
 :: [TODO] Add downloads for windows visual studio ?!
 
-:: architecture specific downloads...
-IF EXIST "%PROGRAMFILES(X86)%" (GOTO 64BIT) ELSE (GOTO 32BIT)
+call:user_set_git_path
+
+:user_set_git_path_fail
+  if not exist "%git_exe_path%" (
+    call:log_lw 27
+    call:draw_dss
+    call:user_set_git_path
+  )
+  :: architecture specific downloads...
+  IF EXIST "%PROGRAMFILES(X86)%" (GOTO 64BIT) ELSE (GOTO 32BIT)
+goto:eof
+
+:user_set_git_path
+  set /p git_exe_path="%word%: "
+  call:user_set_git_path_fail
+goto:eof
 
 :go_to_platform
   call:log_ds "Windows %~1 detected..."
@@ -127,7 +174,14 @@ goto:eof
   
   call:install_software_o "node-js" "%%downloads_64[1]%%" msi 12
   call:draw_dss
+  
+  call:get_path_from_user 41 42
+  set "node_js_path=%user_tmp_path%"
+  Call:draw_dss
+  
   call:install_software_o "ruby" "%%downloads_64[2]%%" exe 13
+  call:draw_dss
+  call:install_software_o "python" "%%downloads_64[3]%%" msi 26
   
   :: Some installations require specific windows versions
   for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j
@@ -144,7 +198,14 @@ GOTO END
   
   call:install_software_o "node-js" "%%downloads_32[1]%%" msi 12
   call:draw_dss
+  
+  call:get_path_from_user 41 42
+  set "node_js_path=%user_tmp_path%"
+  Call:draw_dss
+  
   call:install_software_o "ruby" "%%downloads_32[2]%%" exe 13
+  call:draw_dss
+  call:install_software_o "python" "%%downloads_32[3]%%" msi 26
   
   :: Some installations require specific windows versions
   for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j
@@ -187,6 +248,39 @@ goto END
 :git_rep_checkout
   call:log_lw_ss 16
   call:log_lw_sse 17
+  
+  set "PATH=%PATH%;%git_exe_path%\bin;%git_exe_path%\cmd" /M
+  
+  call:log_lw 36
+  call:log_lw 37
+  call:log_lw 38
+  
+  call:draw_dss
+  
+  call:get_lw word 39
+  set /p git_username="%word% "
+  
+  call:draw_dss
+    
+  call:get_empty_path_from_user 32
+  set "git_repository_path=%user_tmp_path%"
+  
+goto:git_rep_checkout_auto
+
+:git_rep_checkout_auto
+  git clone https://github.com/%git_username%/codecombat.git "%git_repository_path%"
+goto:git_repo_configuration
+
+:git_repo_configuration
+  call:log_lw_ss 35
+  call:log_lw_sse 36
+  
+  SET "PATH=%PATH%;%node_js_path%" /M
+  setx -m git "%git_exe_path%\bin"
+
+  call:log_lw 40
+  start cmd /k "npm install -g bower brunch nodemon sendwithus & exit"
+  
 goto report_ok
 
 :report_ok
@@ -199,7 +293,7 @@ goto report_ok
 goto clean_up
 
 :open_readme
-  call:open_txt_file "config/README.txt"
+  call:open_txt_file "config/info"
 goto:eof
 
 :warn_and_exit
@@ -214,7 +308,6 @@ goto END
 :clean_up
   call:log_lw_sse 23
   rmdir %temp-dir% /s /q
-  PAUSE
 goto END
 
 :: ============================ INSTALL SOFTWARE FUNCTIONS ======================
@@ -234,11 +327,7 @@ goto:eof
 
 :install_software_o
   call:get_lw word %~4
-  set /p result="%word% [Y/N]: "
-  call:draw_dss
-  set res=false
-  if "%result%"=="N" set res=true
-  if "%result%"=="n" set res=true
+  call:user_yn_question "%word%"
   if "%res%"=="true" (
     call:install_software %~1 %~2 %~3
   ) else (
@@ -271,13 +360,33 @@ goto:eof
   rmdir %packed_software_path%\%temp_dir%\ /s /q
 goto:eof
 
+:user_yn_question
+  set /p result="%~1 [Y/N]: "
+  call:draw_dss
+  set "res=false"
+  if "%result%"=="N" (set "res=true")
+  if "%result%"=="n" (set "res=true")
+goto:eof
+
+:strict_user_yn_question
+  set /p result="%~1 [Y/N]: "
+  call:draw_dss
+  set "res=unset"
+  if "%result%"=="N" (set "res=false")
+  if "%result%"=="n" (set "res=false")
+  if "%result%"=="Y" (set "res=true")
+  if "%result%"=="y" (set "res=true")
+  
+  if "%res%"=="unset" (
+    call:log "Please answer the question with either Y or N..."
+    call:draw_dss
+    call:strict_user_yn_question "%~1"
+  )
+goto:eof
+
 :install_packed_software_o
   call:get_lw word %~4
-  set /p result="%word% [Y/N]: "
-  call:draw_dss
-  set res=false
-  if "%result%"=="N" set res=true
-  if "%result%"=="n" set res=true
+  call:user_yn_question "%word%"
   if "%res%"=="true" (
     call:install_packed_software %~1 %~2 %~3
   ) else (
@@ -285,6 +394,28 @@ goto:eof
   )
 goto:eof
 
+:: ===================== USER - INTERACTION - FUNCTIONS ========================
+
+:get_path_from_user
+  call:get_lw word %~1
+  set /p user_tmp_path="%word% "
+  if not exist "%user_tmp_path%" (
+    call:log_lw 43
+    call:draw_dss
+    call:get_path_from_user %~1 %~2
+  )
+goto:eof
+
+:get_empty_path_from_user
+  call:get_lw word %~1
+  set /p user_tmp_path="%word% "
+  if exist "%user_tmp_path%" (
+    call:log_lw 33
+    call:draw_dss
+    call:get_path_from_user %~1
+  )
+goto:eof
+
 :: ============================== FUNCTIONS ====================================
 
 :log
@@ -293,11 +424,21 @@ goto:eof
 goto:eof
 
 :draw_ss
+  echo.
   call:log "-----------------------------------------------------------------------------"
+  echo.
 goto:eof
 
 :draw_dss
+  echo.
   call:log "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -"
+  echo.
+goto:eof
+
+:draw_seperator
+  echo.
+  echo                            + + + + + + + +                           
+  echo.
 goto:eof
 
 :log_ss
@@ -323,7 +464,7 @@ goto:eof
 
 :parse_aa_and_draw
   set "file=%~1"
-  for /F "usebackq delims=" %%a in ("%file%") do (
+  for /f "usebackq tokens=* delims=;" %%a in ("%file%") do (
     echo.%%a
   )
 goto:eof
@@ -341,7 +482,7 @@ goto:eof
   call:parse_file %~1 %~2 %~3
 goto:eof
 
-:: ============================== LOCALISATION FUNCTIONS ===========================
+:: ============================== LOCALISATION FUNCTIONS ================
 
 :get_lw
   call:get_lw_id %~1 %lang_id% %~2
@@ -357,6 +498,11 @@ goto:eof
   call:log "%str%"
 goto:eof
 
+:log_lw_prfx
+  call:get_lw str %~1
+  call:log "%~2%str%"
+goto:eof
+
 :log_lw_ss
   call:get_lw str %~1
   call:log_ss "%str%"
@@ -372,7 +518,16 @@ goto:eof
   call:log_sse "%str%"
 goto:eof
 
+:: ============================== WINDOWS FUNCTIONS ======================
+
+:set_env_var
+  setx -m %~1 %~2
+goto:eof
+
 :: ============================== EOF ====================================
 
 :END
+  exit
+goto:eof
+
 endlocal
\ No newline at end of file
diff --git a/scripts/windows/coco-dev-setup/batch/git-test.bat b/scripts/windows/coco-dev-setup/batch/git-test.bat
new file mode 100755
index 000000000..adee59c3e
--- /dev/null
+++ b/scripts/windows/coco-dev-setup/batch/git-test.bat
@@ -0,0 +1,50 @@
+@echo off
+setlocal EnableDelayedExpansion
+
+::  + Configuraton and installation checklist:
+::      1) cd codecombat
+::      2) npm install -g bower brunch nodemon sendwithus
+::      3) bower install
+::      4) gem install sass
+::      5) npm install
+::      6) brunch -w
+::      Extra... @ Fail run npm install
+
+echo "Moving to your git repository..."
+C:
+cd C:\CodeCombat
+
+PAUSE
+
+SET "PATH=%PATH%;C:\Program Files\Nodejs" /M
+setx -m git "C:\Program Files (x86)\Git\bin"
+SET "PATH=%PATH%;C:\Program Files (x86)\Git\bin;C:\Program Files (x86)\Git\cmd" /M
+
+PAUSE
+
+echo "Installing bower, brunch, nodemon and sendwithus..."
+start cmd /k "npm install -g bower brunch nodemon sendwithus & exit"
+
+PAUSE
+
+echo "running npm install..."
+start cmd /k "npm install & exit"
+
+PAUSE
+
+echo "Activating bower install..."
+start cmd /k "bower install & PAUSE & exit"
+
+PAUSE
+
+echo "Installing sass via gem..."
+start cmd /k "install sass & PAUSE & exit"
+
+PAUSE
+
+echo "comping repository via brunch..."
+start cmd /k "brunch -w & exit"
+
+PAUSE
+
+endlocal
\ No newline at end of file
diff --git a/scripts/windows/coco-dev-setup/batch/license.txt b/scripts/windows/coco-dev-setup/batch/license.txt
new file mode 100755
index 000000000..9cdbbf3f0
--- /dev/null
+++ b/scripts/windows/coco-dev-setup/batch/license.txt
@@ -0,0 +1,11 @@
+
+The MIT License (MIT)
+ 
+Copyright (c) 2014 CodeCombat Inc. and other contributors
+ 
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation  the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell     copies of the Software, and to permit persons to whom the Software is         furnished to do so, subject to the following conditions:
+ 
+The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software.
+ 
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,      FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE   AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN sCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THESOFTWARE.
diff --git a/scripts/windows/coco-dev-setup/batch/localisation/en b/scripts/windows/coco-dev-setup/batch/localisation/en
index a87a05c1e..ad997ee15 100755
--- a/scripts/windows/coco-dev-setup/batch/localisation/en
+++ b/scripts/windows/coco-dev-setup/batch/localisation/en
@@ -5,11 +5,11 @@ Don't close any windows please, unless specified explicitly.
 downloading:
 installing:
 CodeCombat is safely stored on a git repository.
-Therefore you need a git command-line application.
+Therefore you need a git command-line application (Git-bash).
 Examples: git-bash, CygWin, ...
-Do you already have a git command-line application?
+Do you already have git-bash?
 Download and Installation cancelled...
-Enter the path to your Git CL Exectutable
+Enter the path to where you installed Git-bash
 Do you already have the latest version of node-js installed?
 Do you already have the latest version of ruby installed?
 Do you already have the latest version of mongo-db installed?
@@ -23,4 +23,21 @@ Report your OS to the developers @ CodeCombat.com...
 Installation has been stopped...
 ... Cleaning up has been disabled... Terminating Script!
 unpacking and moving:
-Enter the path where you would like to install MongoDB:
\ No newline at end of file
+Enter the path where you would like to install MongoDB:
+Do you already have the latest version of python installed?
+The path to your git application is incorrect, please try again...
+You'll need to execute the following steps to continue the installation:
+Type: git clone https://github.com/codecombat/codecombat.git aPath
+Note: replace aPath with the destination of your git repository
+Close the git application and go back to this CMD window
+Enter the full path where you want to clone your repository to:
+The path you entered already exists, please try again...
+Good Job, we're almost there...
+Started the configuration of your git repository...
+You need a fork of the official CodeCombat...
+Haven't you done that yet, really...?
+Go over to https://github.com/codecombat/codecombat and do it now!
+Now then... Please enter your github username:
+Installing bower, brunch, nodemon and sendwithus...
+Please enter the full path of the location you installed nodejs to:
+The path you intered is invalid, please try again...
\ No newline at end of file
diff --git a/scripts/windows/coco-dev-setup/batch/localisation/fr b/scripts/windows/coco-dev-setup/batch/localisation/fr
index e17cb66fa..2b6cb7e7a 100755
--- a/scripts/windows/coco-dev-setup/batch/localisation/fr
+++ b/scripts/windows/coco-dev-setup/batch/localisation/fr
@@ -5,11 +5,11 @@ Don't close any windows please, unless specified explicitly.
 downloading:
 installing:
 CodeCombat is safely stored on a git repository.
-Therefore you need a git command-line application.
+Therefore you need a git command-line application (Git-bash).
 Examples: git-bash, CygWin, ...
-Do you already have a git command-line application?
+Do you already have git-bash?
 Download and Installation cancelled...
-Enter the path to your Git CL Exectutable
+Enter the path to where you installed Git-bash
 Do you already have the latest version of node-js installed?
 Do you already have the latest version of ruby installed?
 Do you already have the latest version of mongo-db installed?
@@ -23,4 +23,21 @@ Report your OS to the developers @ CodeCombat.com...
 Installation has been stopped...
 ... Cleaning up has been disabled... Terminating Script!
 unpacking and moving:
-Enter the path where you would like to install MongoDB:
\ No newline at end of file
+Enter the path where you would like to install MongoDB:
+Do you already have the latest version of python installed?
+The path to your git application is incorrect, please try again...
+You'll need to execute the following steps to continue the installation:
+Type: git clone https://github.com/codecombat/codecombat.git aPath
+Note: replace aPath with the destination of your git repository
+Close the git application and go back to this CMD window
+Enter the full path where you want to clone your repository to:
+The path you entered already exists, please try again...
+Good Job, we're almost there...
+Started the configuration of your git repository...
+You need a fork of the official CodeCombat...
+Haven't you done that yet, really...?
+Go over to https://github.com/codecombat/codecombat and do it now!
+Now then... Please enter your github username:
+Installing bower, brunch, nodemon and sendwithus...
+Please enter the full path of the location you installed nodejs to:
+The path you intered is invalid, please try again...
\ No newline at end of file
diff --git a/scripts/windows/coco-dev-setup/batch/localisation/nl b/scripts/windows/coco-dev-setup/batch/localisation/nl
index 7cdd2956b..752864fe7 100755
--- a/scripts/windows/coco-dev-setup/batch/localisation/nl
+++ b/scripts/windows/coco-dev-setup/batch/localisation/nl
@@ -5,11 +5,11 @@ Don't close any windows please, unless specified explicitly.
 downloading:
 installing:
 CodeCombat is safely stored on a git repository.
-Therefore you need a git command-line application.
+Therefore you need a git command-line application (Git-bash).
 Examples: git-bash, CygWin, ...
-Do you already have a git command-line application?
+Do you already have git-bash?
 Download and Installation cancelled...
-Enter the path to your Git CL Exectutable
+Enter the path to where you installed Git-bash
 Do you already have the latest version of node-js installed?
 Do you already have the latest version of ruby installed?
 Do you already have the latest version of mongo-db installed?
@@ -23,4 +23,21 @@ Report your OS to the developers @ CodeCombat.com...
 Installation has been stopped...
 ... Cleaning up has been disabled... Terminating Script!
 unpacking and moving:
-Enter the path where you would like to install MongoDB:
\ No newline at end of file
+Enter the path where you would like to install MongoDB:
+Do you already have the latest version of python installed?
+The path to your git application is incorrect, please try again...
+You'll need to execute the following steps to continue the installation:
+Type: git clone https://github.com/codecombat/codecombat.git aPath
+Note: replace aPath with the destination of your git repository
+Close the git application and go back to this CMD window
+Enter the full path where you want to clone your repository to:
+The path you entered already exists, please try again...
+Good Job, we're almost there...
+Started the configuration of your git repository...
+You need a fork of the official CodeCombat...
+Haven't you done that yet, really...?
+Go over to https://github.com/codecombat/codecombat and do it now!
+Now then... Please enter your github username:
+Installing bower, brunch, nodemon and sendwithus...
+Please enter the full path of the location you installed nodejs to:
+The path you intered is invalid, please try again...
\ No newline at end of file
diff --git a/server/commons/logging.coffee b/server/commons/logging.coffee
index 1a8e4d7ed..37c6b5668 100644
--- a/server/commons/logging.coffee
+++ b/server/commons/logging.coffee
@@ -5,4 +5,4 @@ module.exports.setup = ->
   winston.add(winston.transports.Console,
     colorize: true,
     timestamp: true
-  )
\ No newline at end of file
+  )
diff --git a/server/levels/level_handler.coffee b/server/levels/level_handler.coffee
index 81a5e6166..4f2dc595e 100644
--- a/server/levels/level_handler.coffee
+++ b/server/levels/level_handler.coffee
@@ -1,5 +1,6 @@
 Level = require('./Level')
 Session = require('./sessions/LevelSession')
+User = require '../users/User'
 SessionHandler = require('./sessions/level_session_handler')
 Feedback = require('./feedbacks/LevelFeedback')
 Handler = require('../commons/Handler')
@@ -32,6 +33,7 @@ LevelHandler = class LevelHandler extends Handler
     return @getMySessions(req, res, args[0]) if args[1] is 'my_sessions'
     return @getFeedback(req, res, args[0]) if args[1] is 'feedback'
     return @getRandomSessionPair(req,res,args[0]) if args[1] is 'random_session_pair'
+    return @getLeaderboardFriends(req, res, args[0]) if args[1] is 'leaderboard_friends'
     
     return @sendNotFoundError(res)
 
@@ -149,7 +151,33 @@ LevelHandler = class LevelHandler extends Handler
       return @sendDatabaseError(res, err) if err
       resultSessions ?= []
       @sendSuccess res, resultSessions
-      
+
+
+  getLeaderboardFriends: (req, res, id) ->
+    friendIDs = req.body.friendIDs or []
+    return res.send([]) unless friendIDs.length
+
+    query = User.find({facebookID:{$in:friendIDs}})
+      .select('facebookID name')
+      .lean()
+
+    query.exec (err, userResults) ->
+      return res.send([]) unless userResults.length
+      [id, version] = id.split('.')
+      userIDs = (r._id+'' for r in userResults)
+      q = {'level.original':id, 'level.majorVersion': parseInt(version), creator: {$in:userIDs}, totalScore:{$exists:true}}
+      query = Session.find(q)
+        .select('creator creatorName totalScore team')
+        .lean()
+
+      query.exec (err, sessionResults) ->
+        return res.send([]) unless sessionResults.length
+        res.send(sessionResults)
+        userMap = {}
+        userMap[u._id] = u.facebookID for u in userResults
+        session.facebookID = userMap[session.creator] for session in sessionResults
+        res.send(sessionResults)
+
   getRandomSessionPair: (req, res, slugOrID) ->
     findParameters = {}
     if Handler.isID slugOrID
diff --git a/server/queues/scoring.coffee b/server/queues/scoring.coffee
index 274fce9e5..b97ede18e 100644
--- a/server/queues/scoring.coffee
+++ b/server/queues/scoring.coffee
@@ -202,7 +202,7 @@ determineIfSessionShouldContinueAndUpdateLog = (sessionID, sessionRank, cb) ->
       cb null, true
     else
       ratio = (updatedSession.numberOfLosses) / (totalNumberOfGamesPlayed)
-      if ratio > 0.66
+      if ratio > 0.2
         cb null, false
         console.log "Ratio(#{ratio}) is bad, ending simulation"
       else
@@ -225,6 +225,9 @@ findNearestBetterSessionID = (levelOriginalID, levelMajorVersion, sessionID, ses
       submittedCode:
         $exists: true
       team: opposingTeam
+      
+    if opponentSessionTotalScore < 30
+      queryParameters["totalScore"]["$gt"] = opponentSessionTotalScore + 1
 
     limitNumber = 1