

Elden Ring: Wie ernte ich Runen mit einem selbst gebauten Bot?
Vorgeschichte
Ich spiele gerne Computerspiele, bei denen ich große Abenteuer erlebe und fremde Welten bereisen kann. Meistens bin ich der Magier, der aus dem Hinterhalt mächtige Sprüche klopft und wenn es zu brenzlich wird, wegrennt. Direkter Körperkontakt ist nicht so mein Ding, meine Reflexe sind nicht besonders.
Souls-like Spiele waren für mich deswegen immer außen vor, aber die fantastische Landschaft von Elden Ring hat mich doch so fasziniert, daß ich es mal angespielt habe. Umso überraschter war ich, daß ich viel Spaß damit habe, einfach nur die Spielwelt zu durchstreifen und verborgene Schleichwege zu entdecken. Mit den Ober-Bossen in den Höhlen lege ich mich nicht an und die niederen Monster in der Spielwelt kann ich gut im Fernkampf mit Magie erledigen. Außerdem ist die Spielwelt weitläufig genug, daß ich vielem aus dem Weg gehen kann. Einige wenige Oberwelt-Bosse habe ich dadurch besiegt, daß ich mir einen sicheren Standort gesucht habe und sie mit unzähligen Pfeilen beschossen habe, bis sie klein beigaben.

In der Karte sieht man die Gebiete, die ich auf diese Weise freigelegt habe, ohne einen der Story-Bosse zu töten. Im Norden kam ich nicht weiter, weil mich ein nerviges Monster mit Teleport-Fähigkeiten attackierte und für weitere Gebiete im Süden muß ich den ersten Story-Boss, Margit, besiegen. Dem kam ich mit meiner statischen Spielweise und Ausrichtung auf Magie allerdings immer noch nicht bei. Ich war Level 64 und hatte fast alle Runen in Weisheit investiert. Wegen Baldurs Gate 3 und Aktivitäten in der realen Welt verlor ich erst mal das Interesse an Elden Ring.
Nach 2 Jahren Pause habe ich mir das Spiel wieder vorgenommen. Ich mußte stärker werden, hatte aber keine Lust mehr auf stumpfsinniges Grinden. Auf Youtube fand ich eine Anleitung für einen Bot, der automatisch in einer Endlosschleife ein Monster killt. Ich habe das ausprobiert, aber anders als im Video bekomme ich nur 77 Runen von diesem Monster. Für so wenig Gewinn lohnt sich der Aufwand nicht. Ein Stufenaufstieg kostet aktuell etwa 25000 Runen.
Ich habe schon Stellen im Spiel gefunden, wo ich mehr ernten kann, sogar ohne mir die Hände schmutzig zu machen. An mehreren Stellen der Spielwelt bekämpfen sich feindliche Monster gegenseitig. Ich brauche mich nur danebenzustellen und bekomme die Runen der getöteten Monster zugesprochen. Ist doch nicht mein Problem, wenn die sich die Köpfe einschlagen, ich stehe da nur rum! Die beste Stelle für diese Strategie war zu diesem Zeitpunkt die Nordhochstraße von Liurnia, wo sich Soldaten und Geister bekämpfen. Eine Weile hatte ich dieses Grinding manuell betrieben, jetzt wollte ich einen Bot dafür schreiben.
Der pazifistische Elden Ring Grind-Bot
Im oben erwähnten Youtube Video ist das Gerüst einer AutoHotKey-Datei verlinkt, die im Video nach und nach mit Aktionen gefüllt wird. Viele Fragen bleiben allerdings offen, die ich erst durch einiges Herumprobieren klären konnte. Hier beschreibe ich die Details.
Vorbereitung auf dem Rechner
Zuerst lädt man sich die quelloffene und kostenlose Software AutoHotKey herunter und installiert sie. Das Script ist für AutoHotKey 1 gedacht, mit der Version 2 funktioniert es nicht. Beide Versionen lassen sich parallel installieren und anhand bestimmter Schlüsselwörter im Script startet automatisch die zum Script passende Version.
Das Script ist in ANSI-Kodierung gespeichert. Wichtig ist das für die Erkennung des richtigen Fensters, in das nach Start gewechselt werden soll. Es hat ein ™ am Ende des Namens. Wenn das Script als UTF8 interpretiert wird, ändert sich dieses Zeichen und der Bildschirm wird nicht gefunden.
Alle Game-Controller müssen abgestöpselt sein! Auch wenn das Spiel nur durch die Tastatur gesteuert wird, werden die Werte des Analog-Sticks von angeschlossenen Game-Controllern ausgewertet und der Held läuft einen Bogen, wenn er eigentlich geradeaus laufen sollte. Die Analogsticks stehen ja nie genau in der Mitte, sondern dort, wo die Federn sie beim letzten Loslassen des Sticks hingezogen haben.
Die Maus muß an einem erschütterungsfreien Ort liegen, damit sie nicht dazwischengrätscht. Während das Makro läuft, sind Maus und Tastatur nicht für Eingaben gesperrt.
Das Script kopiert man sich an irgendeinen Ort und startet es mit den gleichen Rechten wie das Spiel. Wenn das Spiel aus irgendwelchen Gründen als Admin läuft, muß auch das Script mit Admin-Rechten gestartet werden, sonst werden die Tastendrücke vom Spiel nicht entgegengenommen (rechter Mausklick → Als Administrator ausführen).
Vorbereitung im Spiel
Damit ich alles durch Tastatureingaben steuern und auf Mauseingaben verzichten kann, muß ich im Spiel unter Tastatur-/Maus-Einstellungen → Steuerung → Tastenbelegung einige Tasten definieren, für Aktionen, die normalerweise mit der Maus gesteuert werden: L für Kamera nach links drehen, J für Kamera nach rechts. Wenn ich das Beispiel aus dem Video nachstellen will, brauche ich noch Q für Ziele auswählen und Y für Angriff. Außerdem ist bei mir die Standard-Tastenbelegung anders als im Video: Ducken liegt auf X.

Das Spiel soll im Fenster-Modus mit geringerer Auflösung als 4k laufen. Ich will einerseits dem Treiben auf dem Bildschirm zusehen können, und andererseits nicht zu viel Grafikleistung sinnlos verpulvern und die Stromrechnung niedrig halten.
Vor Ausführung des Scripts muß die Spielfigur in der Nähe des Punktes der Gnade Nordhochstraße von Liurnia stehen (siehe Karte). Welche Ausrüstung ich trage, ist egal, da ich nicht aktiv in den Kampf eingreife.
Was macht das Script?
In jeder Runde starte ich vom Ort der Gnade aus, der die Position und Richtung auf immer die gleichen Werte setzt. In der Auswahl ist jeweils der nächstliegende Ort der Gnade voreingestellt. Solange ich nicht zu weit davon weglaufe, lande ich immer wieder dort.


Vom Start renne ich geradeaus, ducke mich und gehe näher an das Kampfgetümmel heran, bis mir die Runen der getöteten Feinde angerechnet werden. Auf Höhe einer Soldaten-Leiche biege ich links ab in sichere Entfernung vom Schlachtfeld, damit ich nicht entdeckt und angegriffen werde. Jeder getötete Geist bringt 43 Runen ein, in Summe knapp 500 Runen pro Runde.


Weil mein Held nicht nur Pazifist, sondern auch Blumenliebhaber und Vegetarier ist, sammelt er anschließend die in der Gegend liegenden Blumen und Früchte auf. Ein echtes Weichei! :-)


Danach drehe ich mich in kleinen Schritten und rufe jedesmal E auf, um meine im Falle eines unverhofften Ablebens fallengelassenen Runen aufzuheben. So habe ich einen herrlichen Blick auf das Kampfgeschehen, das ich mir bis zum Ende ansehe.


Beim Auskundschaften der Strecke sind die ungenauen Drehwinkel ein Problem. Während der kurzen Tastendrücke dreht sich die Kamera sehr schnell. Kleine Schwankungen in den Zeiten wirken sich in Ungenauigkeiten der Winkel von einigen Grad aus. Mein Held läuft dadurch jedesmal einen etwas anderen Weg. Um den Positionsfehler zum Schluß gering zu halten, sollte man vom Punkt der Gnade so weit wie möglich geradeaus gehen und dann erst drehen. Daß der Kampfplatz ohne Drehung vom Punkt der Gnade erreicht werden kann, zeigt mir, daß die Entwickler dort das gleiche wie ich vorhatten.
Das Script aus dem Youtube-Video umgeht das Drehwinkelproblem durch Anvisieren eines stillstehenden Feindes. Weil ich niemanden töte, kann ich das nicht tun. Stattdessen muß ich den Weg so legen, daß ich mit kleinen Winkelabweichungen zurechtkomme.
Hindernisse sollte man umgehen, weil man durch sie undefiniert abgelenkt werden oder sogar hängenbleiben kann. Sie können andererseits aber auch zur Justage der Lauflänge dienen. Kleine Barrikaden stoppen einen sich anschleichenden Krieger, lassen sich durch einen anschließenden Sprung aber zerstören und geben den Weg frei. Sprünge sind noch an anderer Stelle nützlich: Durch einen Sprung und anschließendes Ducken kommt man zuverlässig wieder in geduckten Status, auch wenn der Held an einem Hindernis irgendwann ungewollt aufgestanden ist.
Pazifismus +
Das Kräfteverhältnis zwischen Soldaten und Geistern ist sehr ungleich. Es gewinnen immer die Soldaten. Das ist natürlich ungerecht und ich habe die Möglichkeit, die Geister mit meinen Marionettensoldaten zu unterstützen. Nach wie vor mache ich mir nicht selbst die Finger schmutzig, helfe aber den Geistern. Wobei das auch keine richtige Hilfe ist, denn am Ende sind sie trotzdem alle tot. Aber hey, waren die Geister das nicht auch schon vorher?
Auf jeden Fall bringen die toten Soldaten 108 und 122 Runen, womit sich der Ertrag pro Runde je nach Ausgang des Kampfes auf etwa 1000 Runen alle 4 Minuten erhöht.
Die Marionettensoldaten erhöhen die Komplexität deutlich:
- Weil sie gleich nach der Beschwörung rückwärts laufend losschießen, rempeln sie mich an und bringen mich vom Weg ab. Ich drehe mich deshalb zur Beschwörung kurz um und sehe zu, daß ich Abstand gewinne.
- Weil sie durch ihren unentwegten Rückwärtsgang Feinde in meine Richtung ziehen können, schenke ich mir das Früchte sammeln und suche mir lieber einen geschützteren Ort, an dem ich das Ende des Kampfes abwarte.
- Schließlich kann ich nicht die Karte mit G aufrufen, solange die Marionettensoldaten schießen. Ich muß mit der neuen Schleife warten, bis sie sich deaktiviert haben, oder selber für die Deaktivierung sorgen. Das mache ich, indem ich zum Schluß den Kampfbereich verlasse. Während des Kampfes habe ich den Helden in einer verwinkelten Ecke geparkt, aus der er sich durch die Bewegungen in einem versehentlich neu gestarteten Makro nicht befreien kann.
- Natürlich muß jetzt vor Start des Makros die entsprechende Geisterasche im oberen Feld ausgerüstet sein.




Abbiegestelle
Blumenpflücken


Endposition
Asche der Marionettensoldaten
Was machen die Scripte im Detail?
Dazu schaut Ihr Euch am besten die Dateien selbst in einem beliebigen Text-Editor an. Ihr könnt die Tasten im Script auch selber im Spiel drücken, dann seht Ihr, was passiert.
Script 1: EldenRingScript_Nordhochstrasse_Liurnia.ahk.
Script 2: EldenRingScript_Pazifist_plus_Nordhochstrasse_Liurnia.ahk.
Viel Spaß beim Experimentieren und Runen schürfen!
