Sammelalbum-Jagd
Die meisten Bots greifen die drei Gegner an, die die Arena zufällig anbietet. Für Ehre ist das in Ordnung und fürs Sammelalbum nutzlos, denn diese drei Namen sucht das Spiel aus, nicht das, was dir fehlt.
Mercy SF durchkämmt im Hintergrund die Ruhmeshalle, merkt sich die Ausrüstung jedes gesehenen Spielers und schickt den nächsten Angriff an das global beste schlagbare Ziel: das, welches die meisten Gegenstände trägt, die dein Album noch nicht hat.

Eingeschaltet wird das mit auto_scrapbook, und arena_mode gehört auf Scrapbook.
Wie der Pool arbeitet
Der Crawler baut je Konto einen Pool aus Spielern und ihrer Ausrüstung im Speicher auf. Jeder Kampf wird dann aus dem Pool gewählt statt aus der Vorschlagsliste der Arena.
Der Pool lebt für die Sitzung und nicht länger, und das ist Absicht. Ihn zu speichern sah nach kostenlosem Wissen aus und war keines:
- er wuchs ohne Grenze. Ein gemessenes Konto erreichte 187.136 Spieler in 119 MB und stieg weiter um rund 20 MB alle zwanzig Minuten;
- jede Änderung schrieb die ganze Datei synchron neu, und zwar unter der Sperre, die der Bot braucht, um einen Kampf zu wählen, und der Arenabildschirm, um zu zeichnen. Gemessen: eine Neuschreibung von 119 MB alle 27 Sekunden;
- der Schreibvorgang war nicht atomar, und ein fehlgeschlagenes Parsen fiel auf einen leeren Cache zurück, ein Absturz mitten im Schreiben verwarf den ganzen Durchlauf also ohnehin still;
- zwischengespeicherte Ausrüstung ist eine Momentaufnahme dessen, was jemand getragen hat, und Spieler rüsten ständig um, das meiste, was einen Neustart überlebte, war also falsch.
Bei jedem Lauf neu zu scannen ist auch das, was der Referenzhelfer tut, von dem das inspiriert ist, und zwar aus demselben Grund.
Ein Ziel wählen
Ein Spieler im Pool muss mehrere Hürden nehmen, bevor er einen Angriff wert ist.
| Hürde | Einstellung | Standard | Bedeutung |
|---|---|---|---|
| Stufenobergrenze | scrapbook_max_level_diff | 0 | Wie viele Stufen über deiner ein Ziel liegen darf. 0 heißt „nie über mir“. |
| Stufenuntergrenze | scrapbook_min_level_diff | 0 | Wie viele Stufen unter deiner ein Ziel liegen darf. 0 heißt keine Untergrenze. |
| Stärke | scrapbook_max_attribute_pct | 120 | Deckel auf die Gesamtattribute eines Ziels als Prozentsatz deiner eigenen. 100 wäre „nie stärker als ich“. |
| Sperrliste | arena_never_attack | leer | Namen, die nie angegriffen werden, egal was sie tragen. |
| Lebend | Namen, die der Server mit „Spieler nicht gefunden“ abgelehnt hat, werden gemerkt und übersprungen. |
Die beiden Stufengrenzen gibt es beide, weil sie in entgegengesetzte Richtungen scheitern. Weit über dir sind die Kämpfe verloren; weit unter dir sind sie trivial gewonnen, aber die Ausrüstung ist niedrigstufig, bei einem fast vollständigen Album kosten sie also einen kostenlosen Kampf und bringen nichts zurück.
Attribute sagen den Ausgang weit besser voraus als die Stufe, deshalb ist scrapbook_max_attribute_pct der Regler, der tatsächlich entscheidet. Der Standard von 120 lässt ein Ziel zu, das bis zu ein Fünftel stärker ist als du, und das ist ein Kampf, der oft genug verloren geht, um aufzufallen. Setz ihn auf 100, wenn du lieber nie einen verlieren willst.
Die Sperrliste wird gegen jede Quelle geprüft: die drei Vorschläge der Arena, die Ruhmeshalle und den Pool des Crawlers. Ein Name, zu dem du Nein gesagt hast, darf nicht durch eine andere Tür zurückkommen.
Das Suchband
scrapbook_search_band_enabled ist an, und es ändert, wie der Pool durchsucht wird, nicht, wer qualifiziert ist.
Auf einem eingespielten Konto erreicht der Pool sechsstellige Größen, und der bestbewertete Spieler darin steht häufig ganz am Rand des Stufenbereichs, was einen Kampf ergibt, der entweder nicht zu gewinnen oder nichts wert ist. Also beginnt die Suche in einem Band um deine eigene Stufe und weitet sich erst, wenn dieses Band nichts mehr hergibt.
| Einstellung | Standard | Bedeutung |
|---|---|---|
scrapbook_search_band_start | 10 | Halbe Breite des Bands, bei dem die Suche beginnt, in Stufen. |
scrapbook_search_band_step | 10 | Stufen, um die das Band wächst, jedes Mal wenn es leer läuft. |
scrapbook_search_band_max | 100 | Wie breit das Band höchstens wird, bevor es zurück auf den Anfang springt. |
Der Rücksprung räumt auch auf. Wenn jede Stufe bis zum Maximum durchgegangen wurde und sich kein Ziel fand, ist die wahrscheinliche Erklärung, dass das Gemerkte veraltet ist, und nicht, dass der Server leer ist.
Alterung
scrapbook_cache_max_age_hours steht standardmäßig auf 72. Gespeicherte Ausrüstung ist eine Momentaufnahme, und Spieler wechseln ständig ihr Zeug, ein vor einer Woche erfasster Eintrag sagt also mehr darüber, was jemand getragen hat, als darüber, was er jetzt trägt. Schlimmer noch: Eine Ausstattung, die du längst gesammelt hast, ist nicht von einer zu unterscheiden, die nie etwas wert war. Auf 0 gesetzt, schaltet das die Alterung ganz ab.
Tote Namen
Spieler werden umbenannt, gelöscht und auf andere Server verschoben. Der Server antwortet „Spieler nicht gefunden“, und ohne Gedächtnis würde ein veralteter Pooleintrag diesen Fehler weitertragen und das ganze Modul für eine Stunde stilllegen. Diese Namen werden je Konto gemerkt, das tote Ziel eines Kontos versteckt also nie einen völlig brauchbaren Spieler für ein anderes.
Die Menge ist auf zehntausend Namen begrenzt. Das zu erreichen heißt, dass der Pool weit mehr umgeschlagen hat als in einer echten Sitzung, also wird er geleert und die wenigen Namen, auf die es noch ankommt, werden für je eine verschwendete Abfrage neu gelernt.
Crawl-Rate
Zwei Einstellungen, und sie tun Verschiedenes.
| Einstellung | Standard | Was sie begrenzt |
|---|---|---|
scrapbook_max_hof_lookups | 20 | Abfragen pro Botdurchlauf. |
scrapbook_crawl_requests_per_min | 60 | Abfragen pro Minute, über das ganze Konto. 0 schaltet die Ratenbegrenzung ab. |
Sechzig pro Minute ist dauerhaft ungefähr eine Abfrage pro Sekunde: genug, um den Pool laufend wachsen zu lassen, ohne die Anfragestöße, die das Anheben des Budgets pro Durchlauf allein erzeugen würde. Genau dafür gibt es beide. Wenn der Crawl härter laufen soll, heb beide an.
Weitere Einstellungen

| Einstellung | Standard | Was sie tut |
|---|---|---|
auto_scrapbook | an | Das Modul selbst. |
scrapbook_crawler_enabled | an | Die Ruhmeshalle laufend durchkämmen, statt nur die Vorschläge der Arena zu lesen. |
scrapbook_after_xp_wins | an | Sammelalbum-Ziele erst jagen, wenn die Erfahrungskämpfe erledigt sind. |
scrapbook_scan_arena_opponents | an | Auch die Ausrüstung der drei von der Arena angebotenen Gegner erfassen, was kostenlose Information ist. |
scrapbook_early_game_priority | an | Sammelalbum-Kämpfe bevorzugen, solange der Charakter noch niedrigstufig ist, wenn sich das Album am schnellsten füllt. |
scrapbook_hof_rankup | an | Eine Kandidatenliste fürs Klettern in der Ruhmeshalle pflegen, nicht nur für Gegenstände. |
scrapbook_notify_at | 0 | Bescheid geben, sobald das Album so viele Gegenstände erreicht. 0 heißt nie. |
buy_scrapbook | an | Sammelalbum-Einträge kaufen, wo das Spiel sie zum Verkauf anbietet. |
Wo entschieden wird
Gut zu wissen, wenn du den Quelltext liest: Das Sammelalbum war früher ein eigenes Botmodul, und das war ein Fehler. Es und das Arenamodul glaubten beide, ihnen gehöre die Arena-Abklingzeit, spiegelten die Hürden des jeweils anderen und waren sich uneinig, ob eine Mindestsiegchance einen kostenlosen Kampf verbieten darf.
Die entscheidende Hälfte lebt jetzt im Kampfmodul. Was unter „Sammelalbum“ übrig ist, ist die Mechanik, die den Pool auswählenswert hält: der Crawler, die Alterung, die Stufengrenzen und die Kandidatenliste für den Rangaufstieg.