Decrypting Visual Novel Maker games

Start an HTTP server at the root of the game. Go to it in the browser and the game should start. Paste this into the console (Ctrl+Shift+I) and select which directory of resources you'd like to export.

async function decryptStuff() {
    var handle = await showDirectoryPicker({mode: 'readwrite'}),
        outDir = await handle.getDirectoryHandle('dec', {create: true});

    for await (const entry of handle.values())
        if (entry.kind === 'file')
            entry.getFile().then(function (file) {
                var xhr = new XMLHttpRequest,
                    url = URL.createObjectURL(file);
                xhr.open('GET', url, true);
                xhr.responseType = 'arraybuffer';
                xhr.onload = async function () {
                    URL.revokeObjectURL(url);
                    var outFile = await outDir.getFileHandle(file.name, { create: true }),
                        writable = await outFile.createWritable();
                    await writable.write(GS.DataPreparer.prepare(xhr.response));
                    await writable.close();
                    console.log('Exported ' + file.name);
                };
                xhr.send();
            });
}

decryptStuff();