(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);
})({});

(function(ext) {
    ext._shutdown = function() {};
    ext._getStatus = function() {
        return {status: 2, msg: 'Ready'};
    };
    
    ext.create = function(name, params, js, type, desc) {
        eval("(function(ext) {ext._shutdown = function() {}; ext._getStatus = function() {return {status: 2, msg: 'Ready'};}; ext." + name + " = function(" + params + ") {" + js + "}; var descriptor = {blocks: [[\'" + type + "\', \'" + desc + "'\, \'" + name + "\'],],};ScratchExtensions.register(\'" + name + "\', descriptor, ext);})({});")
    };
    
    var descriptor = {
        blocks: [
            [' ', 'create block: name %s params %s js %s type %s desc %s', 'create', "custom", "r", "block"],
            ],
    };

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

Update script.js