Index: modules/addon_utils.py =================================================================== --- modules/addon_utils.py (revision 51254) +++ modules/addon_utils.py (working copy) @@ -147,9 +147,12 @@ for path in path_list: - # force all contrib addons to be 'TESTING' - if path.endswith(("addons_contrib", "addons_extern")): + if path.endswith("addons_contrib"): + # force all contrib addons to be 'TESTING' force_support = 'TESTING' + elif path.endswith("addons_extern"): + # force all extern addons to be 'EXTERN' + force_support = "EXTERN" else: force_support = None @@ -323,7 +326,9 @@ import traceback traceback.print_exc() else: - print("addon_utils.disable", module_name, "not loaded") + if mod: state = "enabled" + else: state = "loaded" + print("addon_utils.disable: %s not %s." % (module_name, state)) # could be in more then once, unlikely but better do this just in case. addons = _bpy.context.user_preferences.addons Index: startup/bl_operators/wm.py =================================================================== --- startup/bl_operators/wm.py (revision 51243) +++ startup/bl_operators/wm.py (working copy) @@ -1678,7 +1678,8 @@ target = EnumProperty( name="Target Path", items=(('DEFAULT', "Default", ""), - ('PREFS', "User Prefs", "")), + ('PREFS', "User Prefs", ""), + ('EXTERN', "User addons (extern)", ""),), ) filepath = StringProperty( @@ -1725,6 +1726,8 @@ if self.target == 'DEFAULT': # don't use bpy.utils.script_paths("addons") because we may not be able to write to it. path_addons = bpy.utils.user_resource('SCRIPTS', "addons", create=True) + elif self.target == 'EXTERN': + path_addons = bpy.utils.user_resource('SCRIPTS', "addons_extern", create=True) else: path_addons = bpy.context.user_preferences.filepaths.script_directory if path_addons: Index: startup/bl_ui/__init__.py =================================================================== --- startup/bl_ui/__init__.py (revision 51243) +++ startup/bl_ui/__init__.py (working copy) @@ -120,6 +120,7 @@ items=[('OFFICIAL', "Official", "Officially supported"), ('COMMUNITY', "Community", "Maintained by community developers"), ('TESTING', "Testing", "Newly contributed scripts (excluded from release builds)"), + ('EXTERN', "Extern", "Scripts downloaded from other sources"), ], name="Support", description="Display support level", Index: startup/bl_ui/space_userpref.py =================================================================== --- startup/bl_ui/space_userpref.py (revision 51243) +++ startup/bl_ui/space_userpref.py (working copy) @@ -1002,6 +1002,7 @@ 'OFFICIAL': 'FILE_BLEND', 'COMMUNITY': 'POSE_DATA', 'TESTING': 'MOD_EXPLODE', + 'EXTERN': 'URL', } @classmethod