LokisMod - Beta - MiniMap - Macro - Bots Coming Soon....

LokisMod Helps you to enjoy agario and take controll of your server be the king of the leaderboard and dominate everyone Updates coming soon

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         LokisMod - Beta - MiniMap - Macro - Bots Coming Soon....
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  LokisMod Helps you to enjoy agario and take controll of your server be the king of the leaderboard and dominate everyone Updates coming soon
// @author       Lokisdreams
// @match        https://agar.io/*
// @run-at       document-start
// @grant        none
// @license      MIT
// @require      https://code.jquery.com/jquery-3.6.0.min.js
// ==/UserScript==
//
// DO NOT TRY TO CHANGE ANYTHING CODE WILL MOSTLY BREAK
// LICENSED BY ECHOSERVICE.CC COMPANY OF LOKISDREAMS
// STEALING OR CHANGING CODE ISNT ALLOWED SO PLEASE RESPECT THAT AND HAVE FUN!
// LAST UPDATE 3/17/2025 4:51 AM
//
//                 # LOKI ON TOP #
//         # LOKI ON TOP # # LOKI ON TOP #
//      # LOKI ON TOP #      # LOKI ON TOP #
//      # LOKI ON TOP #  0   # LOKI ON TOP #
//      # LOKI ON TOP #      # LOKI ON TOP #
//        # LOKI ON TOP # # LOKI ON TOP #
//                # LOKI ON TOP #
//

(function() {
    "use strict";

    // Canvas Modding to change leaderboard text to red
    function canvasModding() {
        var proxiedFillText = CanvasRenderingContext2D.prototype.fillText;
        CanvasRenderingContext2D.prototype.fillText = function() {
            this.fillStyle = "red"; // Set text color to red

            if (arguments[0] == "Leaderboard") {
                arguments[0] = "👻 LokisMod"; // Change Leaderboard title
            }
            return proxiedFillText.apply(this, arguments);
        };

        var proxiedStrokeText = CanvasRenderingContext2D.prototype.strokeText;
        CanvasRenderingContext2D.prototype.strokeText = function() {
            this.strokeStyle = "red"; // Make text outline red
            return proxiedStrokeText.apply(this, arguments);
        };
    }

    // Start Canvas Modding after the game has loaded
    setTimeout(function() {
        canvasModding(); // Apply Leaderboard Modifications
    }, 3000); // Wait for 3 seconds for the game to load
})();

// Funktion, um den Titel zu ändern
   function changeTitleText() {
     const titleElement = document.getElementById("title");
      if (titleElement) {
       titleElement.textContent = "LokisMod"; // Titel zu "👻LokisMod👻" ändern
        titleElement.style.color = "red"; // Titelfarbe auf Rot setzen
    }
}

// Warten, bis die Seite geladen ist, und den Titel nach einer kurzen Verzögerung ändern
window.addEventListener("load", function() {
    setTimeout(changeTitleText, 1000); // 1 Sekunde warten, bis die Elemente geladen sind
});

    let lastTime = 0;
    let fps = 0;
    let frameCount = 0;
    let fpsDisplay;
    let pingDisplay;
    let ping = 0;

    // Funktion, um die FPS- und Ping-Anzeige zu erstellen
    function createDisplay() {
        // FPS-Anzeige erstellen
        fpsDisplay = document.createElement("div");
        fpsDisplay.style.position = "absolute";
        fpsDisplay.style.top = "10px";
        fpsDisplay.style.left = "10px";
        fpsDisplay.style.fontSize = "20px";
        fpsDisplay.style.color = "white";
        fpsDisplay.style.fontFamily = "Arial, sans-serif";
        fpsDisplay.style.zIndex = "9999";
        fpsDisplay.style.backgroundColor = "rgba(0, 0, 0, 0.5)";
        fpsDisplay.style.padding = "5px 10px";
        fpsDisplay.style.borderRadius = "5px";
        document.body.appendChild(fpsDisplay);

        // Ping-Anzeige erstellen
        pingDisplay = document.createElement("div");
        pingDisplay.style.position = "absolute";
        pingDisplay.style.top = "40px";
        pingDisplay.style.left = "10px";
        pingDisplay.style.fontSize = "20px";
        pingDisplay.style.color = "white";
        pingDisplay.style.fontFamily = "Arial, sans-serif";
        pingDisplay.style.zIndex = "9999";
        pingDisplay.style.backgroundColor = "rgba(0, 0, 0, 0.5)";
        pingDisplay.style.padding = "5px 10px";
        pingDisplay.style.borderRadius = "5px";
        document.body.appendChild(pingDisplay);
    }

    // Funktion zur Berechnung der FPS
    function calculateFPS() {
        frameCount++;
        const currentTime = performance.now();
        const deltaTime = currentTime - lastTime;

        if (deltaTime >= 1000) {
            fps = frameCount;
            frameCount = 0;
            lastTime = currentTime;
        }

        // Zeige die FPS im Element an
        if (fpsDisplay) {
            fpsDisplay.textContent = "FPS: " + fps;
        }

        // Rufe die Funktion erneut auf
        requestAnimationFrame(calculateFPS);
    }

    // Funktion zur Messung des Pings
    function measurePing() {
        const startTime = Date.now();
        const ws = new WebSocket('wss://agar.io'); // Standard WebSocket-URL für Agar.io (ändern, falls benötigt)

        ws.onopen = () => {
            const latency = Date.now() - startTime;
            ping = latency;
            ws.close();
        };

        ws.onerror = () => {
            ping = "N/A"; // Falls ein Fehler beim Ping auftritt
        };

        // Zeige den Ping im Element an
        if (pingDisplay) {
            pingDisplay.textContent = "Ping: " + ping + " ms";
        }

        // Wiederhole den Ping-Test alle 5 Sekunden
        setTimeout(measurePing, 5000);
    }

    // Starte das Skript
    window.addEventListener("load", function() {
        setTimeout(() => {
            createDisplay();
            calculateFPS();
            measurePing();
        }, 1000); // 1 Sekunde warten, bis die Seite vollständig geladen ist
    });

var Feed = false;
var Speed = 50;

// Functions
function split() {
    $("body").trigger($.Event("keydown", { keyCode: 32 }));
    $("body").trigger($.Event("keyup", { keyCode: 32 }));
}

function mass() {
    if (Feed) {
        window.onkeydown({ keyCode: 87 });
        window.onkeyup({ keyCode: 87 });
        setTimeout(mass, Speed);
    }
}

function keydown(event) {
    switch (event.keyCode) {
        // Feed Macro - Q Key
        case 81:                                        // Q
            Feed = true;
            setTimeout(mass, Speed);
            break;

        // Center Mouse - S Key
        case 83:                                       // S
            var X = window.innerWidth / 2;
            var Y = window.innerHeight / 2;
            $("canvas").trigger($.Event("mousemove", { clientX: X, clientY: Y }));
            break;

        // Tricksplit - Shift + 4
        case 16:                // Shift
            if (event.keyCode == 16 && event.shiftKey) {
                split();
                setTimeout(split, Speed);
                setTimeout(split, Speed * 2);
                setTimeout(split, Speed * 3);
            }
            break;

        // Doublesplit - A Key
        case 65:         // A
            split();
            setTimeout(split, Speed);
            setTimeout(split, Speed * 2);
            break;

        // Triplesplit - D Key
        case 68:         // D
            split();
            setTimeout(split, Speed);
            break;
    }
}

// When Player Lets Go Of Q, It Stops Feeding
function keyup(event) {
    if (event.keyCode == 81) {
        Feed = false;
    }
}

// Mouse Clicks
(function() {
    "use strict";

    // Stelle sicher, dass jQuery verfügbar ist
    if (typeof jQuery === "undefined") {
        var script = document.createElement("script");
        script.src = "https://code.jquery.com/jquery-3.6.0.min.js";
        script.onload = initMouseControls;
        document.head.appendChild(script);
    } else {
        initMouseControls();
    }

    function initMouseControls() {
        console.log("✅ Mouse Controls Loaded!");

        // Warte, bis das Spiel wirklich geladen ist
        let checkCanvas = setInterval(() => {
            let canvas = document.querySelector("canvas");
            if (canvas) {
                clearInterval(checkCanvas);
                setupMouseBindings(canvas);
            }
        }, 500);
    }

    function setupMouseBindings(canvas) {
        console.log("✅ Canvas gefunden! Maussteuerung wird aktiviert...");

        document.addEventListener("mousedown", function(event) {
            switch (event.which) {
                case 1: // Linksklick -> Split
                    split();
                    break;
                case 2: // Mittelklick -> Mehrfach-Split
                    split();
                    setTimeout(split, Speed);
                    setTimeout(split, Speed * 2);
                    setTimeout(split, Speed * 3);
                    break;
                case 3: // Rechtsklick -> Macro Feed aktivieren
                    Feed = true;
                    setTimeout(mass, Speed);
                    break;
            }
        });

        document.addEventListener("mouseup", function(event) {
            if (event.which == 3) { // Rechtsklick loslassen -> Macro Feed deaktivieren
                Feed = false;
            }
        });

        document.addEventListener("contextmenu", function(event) {
            event.preventDefault(); // Blockiert das Kontextmenü
        });
    }
})();

// Add event listeners for keydown and keyup
window.addEventListener('keydown', keydown);
window.addEventListener('keyup', keyup);

	$(document).ready(function() {
		$(document).on('keydown', function(e) {
			var key = e.which || e.keyCode;
			if(key == 77) { // key M
				core.playersMinimap(1)
				core.setMinimap(1)
			}
		});
	});

"use strict";

const qs = sel => document.querySelector(sel);
const observe = (target, options, callback) => {
	(new MutationObserver(callback)).observe(target, options);
};

let css = "";

// ** Block Advertisements
const scripts = document.getElementsByTagName("script");
const adRegex = /adinplay|amazon-adsystem|doubleclick\.net/;
for (const script of scripts) {
	if (adRegex.test(script.src)) {
		script.parentNode.removeChild(script);
		console.log("removed script", script.src);
	}
}

addEventListener("DOMContentLoaded", () => {
	const mainPanel = qs("#mainPanel");
	const playContainer = qs(".play-container");
	const playElm = qs("#mainui-play");
	const settingsBtn = qs("#settingsButton");
	let settingsElm = null;

	// ** Darken Stuff
	css += `
		#mainui-ads, #mainui-features, #mainui-modes, #mainui-offers,
			#mainui-party, #mainui-play, #mainui-promo, #mainui-user,
			#mainui-settings > .dialog, .tosBox, .agario-party-dialog
		{
			background: #000 !important;
			color: #ddd !important;
			outline: 1.5px solid #ddd;
			border-radius: 0;
		}
		.options, #region, #nick, .potion-slot-container,
			.potion-slot-container > .cover-up, .token > .party-token,
			.party-icon-back,
			#mode_ffa:not(.active):not(:hover),
			#mode_battleroyale:not(.active):not(:hover),
			#mode_teams:not(.active):not(:hover),
			#mode_experimental:not(.active):not(:hover)
		{
			background-color: #000 !important;
			color: #ddd !important;
		}
		#nick::selection, .party-token::selection {
			paddding: 2px;
			background-color: rgba(0, 255, 0, 0.5);
		}
		#mainui-grid > div {
			overflow: visible;
		}
		.label, .progress-bar-text {
			color: #fff !important;
			font-weight: 400;
		}
		@import url('https://fonts.googleapis.com/css?family=Ubuntu');
		body {
			font-family: 'Ubuntu', sans-serif !important;
		}
		#title {
			margin-top: 0 !important;
		}
		#playnick {
			margin-bottom: 40px !important;
		}
		#instructions {
			position: static !important;
			border-top: 1px solid grey;
			border-bottom: 1px solid grey;
			padding: 5px 10px;
		}
		#mainui-play {
			height: auto !important;
		}
		.play-blocker {
			display: none;
		}
		#stats span {
			color: rgba(255, 255, 255, 0.8) !important;
		}
		header {
			top: auto;
			bottom: 0;
		}
	`;
	const lb = qs("#statsTimeLeaderboardContainer");
	lb.lastElementChild.innerText = "Leaderboard";

	// ** Hide Static Ads
	css += `
		#adsTop, #adsBottom, #adsRight, #adsLeft,
			#mainui-ads, #mainui-promo, #socialButtons, .adsbygoogle,
			#agar-io_300x250, #agar-io_970x90
		{
			display: none !important;
		}
	`;

	// ** Canvas Height Correction
	// Really weird that the miniclip dev put the style on the html:
	document.body.parentElement.style = "--bottom-banner-height:0px;";

	// ** Move Settings Back To Center Column
	addEventListener("load", () => {
		settingsBtn.click();
		settingsBtn.parentElement.removeChild(settingsBtn);
		observe(mainPanel, {childList: true}, (mutationList, me) => {
			settingsElm = qs("#mainui-settings");
			if (!settingsElm) return;
			me.disconnect();

			for (const elm of [qs(".actions"), qs("#region"),
				qs("#quality"), qs(".options"), qs("#instructions"),
				qs(".versions")])
			{
				mainPanel.appendChild(elm);
			}
			settingsElm.parentElement.removeChild(settingsElm);
		});
	});
	css += `
		#mainui-settings > .dialog {
			position: static;
			left: 0;
			top: 0;
			transform: translate(0, 0);
			width: 295px;
		}
		.options {
			padding: 0 !important;
		}
		.options label {
			width: auto !important;
		}
		.actions > button {
			width: 130px !important;
		}
		.actions {
			margin-bottom: 15px;
		}
	`;

	// ** Append CSS To DOM
	const style = document.createElement("style");
	style.id = "agarExtras";
	style.innerHTML = css;
	document.head.appendChild(style);
});

let isChecking = false;

(function() {
    const blockedHosts = ["ads", "doubleclick", "googlesyndication", "adservice"];

    // Blockiere fetch-Requests
    const originalFetch = window.fetch;
    window.fetch = function(url, ...args) {
        if (blockedHosts.some(host => url.includes(host))) {
            console.log("[AdBlock] Blocked:", url);
            return Promise.reject("Blocked Ad Request");
        }
        return originalFetch(url, ...args);
    };
})();

function removeAds() {
        let adIframes = document.querySelectorAll('iframe');
        adIframes.forEach(function(iframe) {
            let src = iframe.src.toLowerCase();
            if (src.includes('ads') || src.includes('adserver') || src.includes('doubleclick') || src.includes('googlesyndication')) {
                iframe.remove();
            }
        });

        let adElements = document.querySelectorAll('[id*="adBanner"], [id*="adContainer"], [id*="ad-container"], [class*="adBox"], ' +
            '[class*="ad-container"], [id*="google_ads"], [class*="google_ads"], ' +
            '[id*="agar-io_300x250"], [class*="agar-io_300x250"], ' +
            '[id*="agar-io_160x600"], [class*="agar-io_160x600"], ' +
            '[id*="google_ads_iframe"], [class*="google_ads_iframe"], ' +
            '[id*="agar-io_160x600_2"], [class*="agar-io_160x600_2"], ' +
            '[id*="agar-io_970x90"], [class*="agar-io_970x90"], ' +
            '#preroll, .preroll, #adsBottom, .adsBottom, [id^="google_ads"], ' +
            '[id*="divFullscreenLoading"], [class*="divFullscreenLoading"]');
        adElements.forEach(function(ad) {
            ad.remove();
        });
    }

    function adjustBannerHeight() {
        document.documentElement.style.setProperty('--bottom-banner-height', '0px');
    }

    function clearUnused() {
        let oldAds = document.querySelectorAll('.old-ad');
        oldAds.forEach(ad => {
            ad.remove();
            ad = null;
        });
    }

    function update() {
        clearUnused();
        requestAnimationFrame(update);
    }

    function checkAds() {
        if (!isChecking) {
            isChecking = true;
            removeAds();
            adjustBannerHeight();
            isChecking = false;
        }
    }

window.onload = function() {
        // Sichert, dass das Canvas-Element existiert
        var canvas = document.getElementById("canvas");
        if (canvas) {
            var ctx = canvas.getContext("2d");
        }

        // Ersetzt die Titel- und Header-Elemente
        $("h2").replaceWith('<h2>LokisMod Agar.io</h2>');
        $("title").replaceWith('<title>LokisMod Agar.io</title>');
        $("h1").replaceWith('<h1>LokisMod Agar.io</h1>');
    };

    window.onload = function() {
        // Creating a toggle button for the menu
        const toggleButton = document.createElement('button');
        toggleButton.innerText = 'Toggle Menu';
        toggleButton.style.position = 'fixed';
        toggleButton.style.top = '80px'; // Adjusted to be slightly lower
        toggleButton.style.left = '10px'; // Slightly off from the left edge
        toggleButton.style.zIndex = '9999';
        toggleButton.style.padding = '15px 25px';
        toggleButton.style.cursor = 'pointer';
        toggleButton.style.backgroundColor = '#b22222'; // Dark red
        toggleButton.style.border = 'none';
        toggleButton.style.borderRadius = '10px';
        toggleButton.style.color = 'white';
        toggleButton.style.fontSize = '18px';
        toggleButton.style.fontWeight = 'bold';
        toggleButton.style.boxShadow = '0 0 15px rgba(178, 34, 34, 0.7)';
        toggleButton.style.transition = '0.3s ease-out';

        // Animation effect on hover
        toggleButton.onmouseover = function() {
            toggleButton.style.transform = 'scale(1.1)';
            toggleButton.style.boxShadow = '0 0 25px rgba(178, 34, 34, 1)';
        };

        toggleButton.onmouseout = function() {
            toggleButton.style.transform = 'scale(1)';
            toggleButton.style.boxShadow = '0 0 15px rgba(178, 34, 34, 0.7)';
        };

        // Appending the button to the body
        document.body.appendChild(toggleButton);

        // Creating the menu container
        const menu = document.createElement('div');
        menu.id = 'lokisModMenu';
        menu.style.position = 'fixed';
        menu.style.top = '100px'; // Below the toggle button
        menu.style.left = '10px';
        menu.style.width = '250px';
        menu.style.height = '300px';
        menu.style.backgroundColor = 'rgba(0, 0, 0, 0.8)';
        menu.style.color = 'white';
        menu.style.padding = '10px';
        menu.style.borderRadius = '10px';
        menu.style.boxShadow = '0 0 15px rgba(255, 0, 0, 0.7)';
        menu.style.zIndex = '10000';  // Make sure it shows on top of other elements
        menu.style.display = 'none';  // Initially hidden
        menu.style.transition = '0.3s ease';

        // Adding a glowing border effect on hover
        menu.onmouseover = function() {
            menu.style.boxShadow = '0 0 25px rgba(255, 0, 0, 1)';
        };

        menu.onmouseleave = function() {
            menu.style.boxShadow = '0 0 15px rgba(255, 0, 0, 0.7)';
        };

        // Adding some content to the menu
        const title = document.createElement('h2');
        title.innerText = 'LokisMod Features';
        title.style.textAlign = 'center';
        title.style.marginBottom = '15px';
        title.style.fontFamily = 'Arial, sans-serif';
        title.style.color = '#ff4d4d';
        title.style.textShadow = '0 0 10px rgba(255, 0, 0, 0.7)';
        menu.appendChild(title);

        const featureList = document.createElement('div');
        featureList.innerHTML = `
            <ul>
                <li>Press: A = Double Split </li>
                <li>Press: S = Center Mouse </li>
                <li>Press: M = Minimap </li>
                <li>Press: Q = Macro Feed </li>
                <li>Press: Shift = Tricksplit </li>
                <li>Press: D = Tripple Split </li>
                <li>Click Mouse = Split </li>
                <li>Added FPS Booster </li>
                <li>More Coming Soon </li>
            </ul>
        `;
        featureList.style.listStyle = 'none';
        featureList.style.fontFamily = 'Arial, sans-serif';
        featureList.style.fontSize = '16px';
        featureList.style.color = '#fff';
        menu.appendChild(featureList);

        // Appending the menu to the body
        document.body.appendChild(menu);

        // Toggle the visibility of the menu when the button is clicked
        toggleButton.onclick = function() {
            if (menu.style.display === 'none') {
                menu.style.display = 'block'; // Show the menu
            } else {
                menu.style.display = 'none'; // Hide the menu
            }
        };

        // Making the menu draggable
        let isDragging = false;
        let offsetX = 0;
        let offsetY = 0;

        menu.onmousedown = function(e) {
            isDragging = true;
            offsetX = e.clientX - menu.offsetLeft;
            offsetY = e.clientY - menu.offsetTop;
            document.onmousemove = function(e) {
                if (isDragging) {
                    menu.style.left = e.clientX - offsetX + 'px';
                    menu.style.top = e.clientY - offsetY + 'px';
                }
            };
        };

        document.onmouseup = function() {
            isDragging = false;
            document.onmousemove = null;
        };
    };