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, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==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);
        }
    });
})();