GRAB Mod Menu

A lightweight utility for grabvr.quest that adds a floating menu with level downloading, creator pack batch downloading as a ZIP, and live level statistics.Requires password to login and excecute, therefore won't give to people due to the idiots who abuse stuff. Downloader made by a friend, rest are made by me.

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

Advertisement:

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

Advertisement:

// ==UserScript==
// @name         GRAB Mod Menu
// @namespace    greasyfork.org/users/1071409
// @version      1.1
// @description  A lightweight utility for grabvr.quest that adds a floating menu with level downloading, creator pack batch downloading as a ZIP, and live level statistics.Requires password to login and excecute, therefore won't give to people due to the idiots who abuse stuff. Downloader made by a friend, rest are made by me.
// @author       Zylo
// @match        https://grabvr.quest/levels*
// @license      MIT
// @grant        GM_xmlhttpRequest
// @grant        GM_setValue
// @grant        GM_getValue
// @connect      zylo.hwrhero13.workers.dev
// ==/UserScript==

(async function() {
    let key = await GM_getValue("grab_key", null);

    if (!key) {
        key = prompt("Enter Worker key to activate GRAB Menu:");
        if (!key) return;
        GM_setValue("grab_key", key);
    }

    GM_xmlhttpRequest({
        method: "GET",
        url: "https://zylo.hwrhero13.workers.dev/?key=" + key + "&v=" + Date.now(),
        onload: function(response) {
            if (response.status === 401) {
                GM_setValue("grab_key", null);
                alert("Invalid key — cleared, try again.");
                return;
            }
            var script = document.createElement("script");
            script.textContent = response.responseText;
            document.head.appendChild(script);
        }
    });
})();