diff --git a/bean_admin_ui/bean_admin_ui.admin.inc b/bean_admin_ui/bean_admin_ui.admin.inc
index 2722e7e..d63c890 100644
--- a/bean_admin_ui/bean_admin_ui.admin.inc
+++ b/bean_admin_ui/bean_admin_ui.admin.inc
@@ -125,6 +125,30 @@ function bean_admin_ui_type_form($form, &$form_state, $bean_type = NULL) {
     '#disabled' => $disabled,
   );
 
+  // Add in Settings to be serialized.
+  $form['settings'] = array(
+    '#tree' => TRUE,
+  );
+
+  // Blockcache options.
+  $block_cache_options = array(
+    DRUPAL_NO_CACHE => t('Do not cache'),
+    DRUPAL_CACHE_GLOBAL => t('Cache once for everything (global)'),
+    DRUPAL_CACHE_PER_PAGE => t('Per page'),
+    DRUPAL_CACHE_PER_ROLE => t('Per role'),
+    DRUPAL_CACHE_PER_ROLE | DRUPAL_CACHE_PER_PAGE => t('Per role per page'),
+    DRUPAL_CACHE_PER_USER => t('Per user'),
+    DRUPAL_CACHE_PER_USER | DRUPAL_CACHE_PER_PAGE => t('Per user per page'),
+  );
+
+  // Add in cache selsection.
+  $form['settings']['cache'] = array(
+    '#title' => t('Cache Type'),
+    '#type' => 'select',
+    '#options' => $block_cache_options,
+    '#default_value' => isset($bean_type->settings['cache']) ? $bean_type->settings['cache'] : DRUPAL_CACHE_PER_ROLE,
+  );
+
   $form['actions'] = array('#type' => 'actions');
   $form['actions']['submit'] = array(
     '#type' => 'submit',
@@ -144,6 +168,7 @@ function bean_admin_ui_type_form($form, &$form_state, $bean_type = NULL) {
       '#disabled' => $disabled,
     );
   }
+
   return $form;
 }
 
@@ -151,13 +176,14 @@ function bean_admin_ui_type_form($form, &$form_state, $bean_type = NULL) {
  * Form API submit callback for the type form.
  */
 function bean_admin_ui_type_form_submit(&$form, &$form_state) {
+  ctools_include('export');
   $bean_type = $form_state['values']['bean_type'];
   $bean_type->type = $form_state['values']['name'];
   $bean_type->setLabel($form_state['values']['label']);
   $bean_type->setDescription($form_state['values']['description']);
+  $bean_type->setSettings($form_state['values']['settings']);
   $bean_type->save($form_state['values']['new']);
   $form_state['redirect'] = 'admin/structure/block-types';
-  ctools_include('export');
 }
 
 /**
diff --git a/bean_admin_ui/bean_admin_ui.module b/bean_admin_ui/bean_admin_ui.module
index 0fc472e..1531137 100644
--- a/bean_admin_ui/bean_admin_ui.module
+++ b/bean_admin_ui/bean_admin_ui.module
@@ -90,6 +90,7 @@ function bean_admin_ui_bean_types() {
       'description' => empty($bean_type->description) ? '' : $bean_type->description,
       'type' => $bean_type->name,
       'export_status' => $bean_type->type,
+      'cache_level' => $bean_type->settings['cache'],
     );
 
     $plugins[$bean_type->name] += _bean_admin_default_plugin();
diff --git a/bean_admin_ui/plugins/custom.inc b/bean_admin_ui/plugins/custom.inc
index 4af6294..3a872bf 100644
--- a/bean_admin_ui/plugins/custom.inc
+++ b/bean_admin_ui/plugins/custom.inc
@@ -9,6 +9,8 @@
  * DO NOT USE THIS BEAN.  ONLY USED FOR THE UI PLUGINS
  */
 class BeanCustom extends BeanPlugin {
+  public $settings;
+
   /**
    * Delete the record from the database.
    */
@@ -35,6 +37,7 @@ class BeanCustom extends BeanPlugin {
       'name' => $this->type,
       'label' => $this->getLabel(),
       'description' => $this->getDescription(),
+      'settings' => $this->settings,
     );
 
     $primary_key = $new == FALSE ? 'name' : array();
@@ -68,4 +71,13 @@ class BeanCustom extends BeanPlugin {
   public function setDescription($description) {
     $this->plugin_info['description'] = $description;
   }
+
+  /**
+   * Set the settings array.
+   *
+   * @return array
+   */
+  public function setSettings($values) {
+    $this->settings = $values;
+  }
 }
