Member since September, 2018
Cyrus returned to Bthzark and rebuilt the mechanical giant for wiki editing purposes

This is CyrusBot, a bot operated by Dillonn241.


CyrusBot is written in Java using the MediaWiki API without any bot framework. Its capabilities are detailed below. Like most other bots, it will stop performing actions if its talk page is edited. The bot can be stopped by its creator at any time without any side effects.

At the moment, CyrusBot has a number of basic jobs already written, especially for simple template changes. Most other jobs involving objects with parameters are trivial to write. More advanced tasks like pulling data from esoLog can be implemented in the future.


This is what the bot can currently do, although it can easily be expanded if necessary. The list is not exhaustive.

CyrusBot abstracts templates (including other page transclusions), links, files (in the form [[File:]]), and categories (in the form [[Category:]]) into a structure called an Abstract Template. In practice, there is very little difference in how these are parsed and manipulated.


  • Preview — Editing jobs can be previewed with an HTML-based diff file generated by the wiki. This is always kept on unless a job needs to run.
  • Namespaces — By default, the following namespaces are ignored when editing: Main, File, Help, Media, MediaWiki, UESPWiki, Special, Template, User, and all talk pages. More namespaces can be added or some of these can be removed per job. This can also be flipped so only certain namespaces are edited.


  • Editing/Creating pages — This is by far the most common writing action the bot performs.
  • Moving pages — Move pages and optionally not leave a redirect. Usually paired with a job to update links.
  • Upload files — Locally stored files can be uploaded, which is useful as a substitute for MultiUpload.
  • Protect pages — Pages can be edit or move protected to autoconfirmed or sysop level and also have their protections removed.

Reading OnlyEdit

  • Excel Sheets — Create tables to show parameter values for an abstract template. Each row is one instance of the object and each column is a parameter name. The page name and object name (e.g., SR:Skyrim or Skyrim:Skyrim for a link) are also included.
  • Legends data — Most of the important data related to Legends cards, decks, and opponents is readily accessible to the bot.
  • Morrowind data — Basic support for reading data from Morrowind's .esp and .esm files. Could possibly be expanded to support Oblivion and Skyrim.


  • Magic Words — All of the important magic words related to namespaces and page names, including the ones added by UespCustomCode, are immediately accessible through a Title class. This should make many jobs specific to UESP simpler to write.