您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
LokisMod Helps you to enjoy agario and take controll of your server be the king of the leaderboard and dominate everyone Updates coming soon
- // ==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;
- };
- };