(function(ext) {
    ext._shutdown = function() {};
    ext._getStatus = function() {
        return {status: 2, msg: 'Ready'};
    };
    
    ext.create = function()
    var descriptor = {
        blocks: [],
        menus: {}
    };

    ScratchExtensions.register('Mod - Custom', descriptor, ext);
})({});

@@ -159,17 +159,401 @@
 unction(
-)
+name, params, js, type, desc) %7B%0A        eval(%22(function(ext) %7Bext._shutdown = function() %7B%7D; ext._getStatus = function() %7Breturn %7Bstatus: 2, msg: 'Ready'%7D;%7D; ext.%22 + name + %22 = function(%22 + params + %22) %7B%22 + js + %22%7D; var descriptor = %7Bblocks: %5B%5B%5C'%22 + type + %22%5C', %5C'%22 + desc + %22'%5C, %5C'%22 + name + %22%5C'%5D,%5D,%7D;ScratchExtensions.register(%5C'%22 + name + %22%5C', descriptor, ext);%7D)(%7B%7D);%22)%0A    %7D;%0A    
 %0A    var
@@ -585,18 +585,16 @@
 locks: %5B
-%5D,
 %0A       
@@ -598,17 +598,124 @@
     
-menus: %7B%7D
+    %5B' ', 'create block: name %25s params %25s js %25s type %25s desc %25s', 'create', %22custom%22, %22r%22, %22block%22%5D,%0A            %5D,
 %0A   

Update script.js