Sleazy Fork is available in English.

RSWARE — Omoggle 1v1 (Safe Core)

Score spoof via WS + display patches only

スクリプトをインストールするには、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         RSWARE — Omoggle 1v1 (Safe Core)
// @namespace    [tampermonkey.net](http://tampermonkey.net/)
// @version      9.1
// @description  Score spoof via WS + display patches only
// @match        *://*.omoggle.com/*
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';

    const CFG = {
        scoreSpoof: false,
        displayWin: false,
        liveSpoof: false,
        scoreVal: 10,
        enemySpoof: false,
        enemyVal: 1.0
    };

    let hookedWs = null;
    let floodTimer = null;
    let pktCount = 0;

    // === WebSocket hook (stable part) ===
    const OrigWS = window.WebSocket;
    window.WebSocket = function(url, proto) {
        const ws = proto ? new OrigWS(url, proto) : new OrigWS(url);
        if (url && url.includes('omoggle.com')) {
            hookedWs = ws;
        }

        const origSend = ws.send.bind(ws);
        ws.send = function(data) {
            if (CFG.scoreSpoof && typeof data === 'string') {
                try {
                    const p = JSON.parse(data);
                    if (p.type === 'score_update' && p.payload) {
                        p.payload.score = CFG.scoreVal;
                        pktCount++;
                        data = JSON.stringify(p);
                    }
                    if (p.type === 'score_submit' && p.payload) {
                        p.payload.self_score = CFG.scoreVal;
                        pktCount++;
                        data = JSON.stringify(p);
                    }
                } catch (_) {}
            }
            return origSend(data);
        };

        ws.addEventListener('message', function(e) {
            if (typeof e.data !== 'string') return;
            try {
                const p = JSON.parse(e.data);
                let changed = false;

                if (p.type === 'live_score' && p.payload) {
                    if (CFG.liveSpoof) { p.payload.your_score = CFG.scoreVal; changed = true; }
                    if (CFG.enemySpoof) { p.payload.opponent_score = CFG.enemyVal; changed = true; }
                }

                if (p.type === 'match_result' && p.payload) {
                    if (CFG.displayWin) {
                        p.payload.result = 'win';
                        p.payload.your_score = CFG.scoreVal;
                        changed = true;
                    }
                    if (CFG.enemySpoof) {
                        p.payload.opponent_score = CFG.enemyVal;
                        changed = true;
                    }
                }

                if (changed) {
                    const newMsg = new MessageEvent('message', {
                        data: JSON.stringify(p),
                        origin: e.origin
                    });
                    e.stopImmediatePropagation();
                    ws.dispatchEvent(newMsg);
                    return;
                }
            } catch (_) {}
        });

        return ws;
    };
    Object.assign(window.WebSocket, OrigWS);
    window.WebSocket.prototype = OrigWS.prototype;

    // Add your UI and toggles here if needed
})();