diff --git a/app/views/editor/level/settings_tab_view.coffee b/app/views/editor/level/settings_tab_view.coffee
index 4e2518be6..7a1290db1 100644
--- a/app/views/editor/level/settings_tab_view.coffee
+++ b/app/views/editor/level/settings_tab_view.coffee
@@ -8,7 +8,12 @@ module.exports = class SettingsTabView extends View
   id: 'editor-level-settings-tab-view'
   className: 'tab-pane'
   template: template
-  editableSettings: ['name', 'description', 'documentation', 'nextLevel', 'background', 'victory', 'i18n', 'icon', 'goals']  # not thangs or scripts or the backend stuff
+  
+  # not thangs or scripts or the backend stuff
+  editableSettings: [
+    'name', 'description', 'documentation', 'nextLevel', 'background', 'victory', 'i18n', 'icon', 'goals',
+    'type', 'showsGuide'
+  ]
 
   subscriptions:
     'level-loaded': 'onLevelLoaded'
diff --git a/server/levels/level_schema.coffee b/server/levels/level_schema.coffee
index d0d448267..cbfb84497 100644
--- a/server/levels/level_schema.coffee
+++ b/server/levels/level_schema.coffee
@@ -226,7 +226,8 @@ _.extend LevelSchema.properties,
   i18n: {type: "object", format: 'i18n', props: ['name', 'description'], description: "Help translate this level"}
   icon: { type: 'string', format: 'image-file', title: 'Icon' }
   goals: c.array {title: 'Goals', description: 'An array of goals which are visible to the player and can trigger scripts.'}, GoalSchema
-
+  type: c.shortString(title: "Type", description: "What kind of level this is.", "enum": ['campaign', 'ladder'])
+  showsGuide: c.shortString(title: "Shows Guide", description: "If the guide is shown at the beginning of the level.", "enum": ['first-time', 'always'])
 
 c.extendBasicProperties LevelSchema, 'level'
 c.extendSearchableProperties LevelSchema