OsancTools

OsancTools is a Java application containing various tools for making security work in the Oryx Sanctuary discord server much easier.

This webpage goes over the various aspects of the OsancTools program in detail. As the program is still in development, parts of the page may be changed/removed and new features may not be included.

A video that walks through some of the various features of this program, including the process of obtaining your WebApp token, is embedded below if you prefer:


Walkthrough of the program made by Qmo.


03/06/2024: The content on this page is outdated and had originated from https://waifu.github.io/osanctools.html.


Downloading OsancTools

You can download the program by going to the releases page of the Github repository.

To use the sniffer functionality, you must install:

  • Npcap

  • In addition, this program relies on two optional programs:

  • JDK
  • Tor Browser

  • If you get the prompt This application requires a Java Runtime Environment when running the executable, and you don't want to download ~130 mb for the Bundled Version, get this. To make requests through Realmeye with Tor, run Tor Browser and just have it connected. If the button to connect doesn't show up, keep opening Tor until it does. While Tor is open and connected, you don't need to do anything more.

    Configuration

    If using the WebApp integration, you need to provide your secret WebApp token. To do this, head over to the WebApp and open the developer console. On Google Chrome, this can be done by right clicking the page, selecting Inspect Element and then go to the Console tab. Next, type in localStorage.getItem('at') and hit the enter key. This is your token, do not share this to anybody.

    To input the token, go to the Options tab in OsancTools and paste the token in the text field below WebApp Token and click the Set Token button.

    If you intend on using the packet sniffer functionality, you also need to select the Set Resource Dir button and select the resources.assets file which is typically found in the Documents\RealmOfTheMadGod\Production\RotMG Exalt_Data directory. The purpose of this is to gather item ids for reading equipment data so that when new items are added to the game the sniffer can automatically interpet them and get their names rather than pushing an update everytime an item is added to the game.

    Furthermore, other configuration options include changing the theme, showing a Realmeye alert, and clearing your settings. The first allows you to switch between light and dark modes. The second controls whether a prompt will appear on launch if it is found that the Realmeye servers cannot connect to the RotMG servers, which provides the parser information to know if Realmeye will be accurate or not. The third lets you clear all settings stored by the program in case you stop using it. For reference, the options tab will look something like this:


    Example options panel.

    Finally, there is a Sheets tab that allows you to switch between requirement sheets. Currently, custom requirement sheets are not supported and you can only use the requirement sheets built into the program. If the requirement sheet uses a point system, there is a Modify Class Points button that allows you to change the points for individual classes. This tab looks something like this:


    Example sheets panel.


    How to Parse

    When it comes to parsing, there are two sources to getting data. One uses Realmeye, and another uses a packet sniffer.

    The method using Realmeye takes time in order to avoid abusing the site through quick and successive requests. Due to the ambiguity of Realmeye's stance on scraping, it is recommended to use the Tor Browser to avoid any chances of an IP ban. While efforts have been made to limit how many requests are made to Realmeye, I cannot guarantee that an IP ban won't happen. The program will display a prompt before making any Realmeye requests in the case that Tor is not being used. Furthermore, as some raiders have private profiles, Realmeye will fail to provide data for them. However, Realmeye guarantees that every raider can be checked.

    Furthermore, the method using the packet sniffer cannot guarantee that every raider is parsed as they must load into your location while you are present. However, the packet sniffer provides the most accurate information as Realmeye information can be wrong if the raider IP connects or a Realmeye bot is not in the nexus. In addition, the packet sniffer has the ability to parse the max stats of a raider even if their visibility is off. This seems to be an intentional decision by DECA and is a byproduct of the same method for collecting publically visible data in game.

    Disclaimer

    This program is hardcoded to an extent because most aspects of parsing are not standardized. This is where your parsing knowledge comes in! This program helps you, but it is not an end-all-be-all for parsing. Do not rely on it to be accurate every time. My aim is for this to be the case, but as the game and requirements change frequently, it is difficult to always stay up-to-date.

    If a reskin must be added, or changes have been made to a specific requirement sheet, the current requirement sheets can be found in the requirement sheet directory. You can make an issue, pull request, or contact me to get it fixed.

    Parse Sets

    To parse sets, click on the Parse Sets button and select which method to use. It is recommended to do this after the reacts if you are parsing with the WebApp. If you are parsing with Realmeye, wait for the progress bar to fill up and the table will display when the process is finished. If you are using the packet sniffer, you want to start the sniffer by selecting the option before everyone loads into the realm or dungeon. Once everyone has loaded in, you can click on the Stop Sniffer button and the table will display. This table will look like this:


    Example set parse table.

    There are four columns in the table. The first column indicates what type of problem there was with the raider. Example problems are where a swapout/banned item/empty slot was found, an under reqs item was found, the raider wasn't maxed in the required stats, the raider had a private profile, or the raider didn't meet the required points. If the raider meets requirements, the problem will be "None". The second column contains the username of the raider. Some usernames may be color coded in order to group alternate accounts of a specific raider. The third column displays the inventory of that raider. An item will be yellow if it is a swapout, where you should reach out and see if they have an item that meets requirements. An item will be marked red if it goes against the requirement sheet, examples are banned item, under reqs, etc. If a point requirement sheet is used, items that provide points will be marked cyan. In addition, you can ctrl+C a cell in the inventory column to copy the item names as well as a message. Sometimes an image for an item isn't present in the program and so copying the inventory will tell you what item it was. This message can include the maxed stats that were missing, for example. The last column stores checkboxes where you can mark rows that have been handled already.

    In addition, there are four checkboxes and a Parse Guild Leaks button. The first checkbox removes sets that meet requirements, while the second checkbox removes sets that don't meet requirements. The third checkbox removes rows that have private profiles on Realmeye, or where the items for a raider were not updated in the case of using the sniffer to parse. The final checkbox removes rows with a marked checkbox to remove clutter. The button at the bottom will be disabled if no crashers were obtained. In the case of the sniffer, if there are crashers, which are players not in the WebApp, you can click the button and a panel will appear that displays any leaks between guild members. A leak in that case is where a guild member in the WebApp provides the location, either through the guild tab or communication, to another guild member not in the WebApp. The resulting panel will show the guild name as well as the leaker's username on the left and the crasher on the right. An example of this is shown below:


    Example guild parse panel.

    When it comes to requirement sheets, currently the veteran sheet for Oryx Sanctuary doesn't take into account exalted skins. Therefore, do account for this when parsing if somebody seems to be one point off by locking them in game.

    Parse Reacts

    To parse reacts, you need to be connected to a WebApp raid. When parsing, it is recommended to press the Parse Reacts button once everyone has loaded into the realm. Once pressed, you must wait for the progress bar at the bottom to fill up. Once the process is finished, a table will display that looks like this:


    Example react parse panel.

    There are five columns in the table. The first column displays the image of the react that's on the WebApp. The second column displays the username of the raider who had reacted. The third column displays the raider's detected class and inventory. This will be a Wizard with empty slots if the raider's Realmeye was found to be private, or with no characters logged in. Items or classes that are marked green indicate that they satisfy the react. If any of them are marked red, that means the react was not satisfied by that class/item. For dps reacts, an exalted skin counts as a point. Therefore, if there isn't a whisper message and a point seems to be missing, this is why. The fourth column provided messages that can be copied using ctrl+C. Manual reacts, such as runes and inc, or new reacts that currently cannot be parsed will display a lock command. Other reacts will display a custom generated whisper command that can be copied and sent to the raider in game. The message will be "None" if there are no problems with the raider. The last column contains checkboxes that can be clicked to mark a raider.

    Furthermore, there are four checkboxes that help filter the results in the table. The first checkbox removes raiders who you don't need to deal with as they satisfy their react. The second checkbox only shows raiders who do satisfy their react. The third checkbox removes all raiders with a lock message. It is important that you make sure that no new reacts are removed by doing this, as you need to manually confirm these reacts when parsing. Finally, the last checkbox allows you to remove raiders who have been marked by their checkbox in order to remove clutter.

    Parse VC

    In order to parse the voice channel, you currently have to provide a /who screenshot as well as be connected to a WebApp raid. An example of a /who screenshot is shown below:


    Example /who screenshot.

    The recommended time to get this screenshot is when everyone loads into the Wine Cellar. Once the screenshot is taken, click on the Parse VC button. A panel should appear that looks like this:


    Example input panel for the /who screenshot.

    You can either select the image in a directory by using the Open From File button, paste the image using ctrl+V, or drag the file itself into the panel. When the image is inputted, it will display in the rectangular panel. Once you select the Choose button, a table will appear that looks similar to this:


    Example vc parse table.

    There are six columns in the table. The first column shows the avatar of the raider in the WebApp. Currently, GIF avatars do not show properly due to the behavior of smooth image scaling. In addition, you can select the cell that contains their avatar and ctrl+C to copy the discord id into your clipboard. The second column shows the server nickname of the raider. The server nickname is yellow if the raider has the celestial role. The third column stores the IGN of a player found in the /who screenshot. Therefore, if the IGN cell is blank, this means that the raider was not found in the /who. The fourth column indicates if a raider is in the group, or in other words in the /who screenshot. The fifth column indiciates the raider is in the current raiding voice channel, meaning that you should always run a find command to make sure the raider isn't in another voice channel. Finally, the sixth column stores checkboxes so that you can mark a raider once you've dealt with them.

    Furthermore, there are four checkboxes at the bottom to filter out rows. The first checkbox removes raiders that are not in group, which is helpful so you know what raiders are still in the run. The second checkbox removes raiders who are in the raiding voice channel as they don't need to be parsed. The third checkbox removes all raiders who have the celestial role, which is helpful as those with celestial don't have to be in the raiding voice channel. Finally, the fourth checkbox removes all rows that have a marked checkbox, which helps to remove clutter.


    Exalt Calculator

    OsancTools comes with an Exalts tab that calculates dungeon completions based on a player's Realmeye exaltations, which looks like this:


    Example exaltation calculator panel.

    Configuring the Calculator

    The following stats can be selected through a radio button:

  • Life - Oryx Sanctuary
  • Mana - The Void
  • Attack - The Shatters
  • Defense - Lost Halls
  • Speed - Cultist Hideout
  • Dexterity - The Nest
  • Vitality - Kogbold Steamworks
  • Wisdom - Fungal Cavern

  • To set the number of dungeon completes required, type a number in the text field below the text Set requirement, and then click on the Set button to confirm the change.

    To use the calculator, paste an IGN in the text field below the text Enter username and then click enter.

    Below the Result: text, text will be displayed that shows the number of completes, the boss for your selection, and the requirement used. This is so you know for sure that the calculation is done properly with the right requirement and dungeon.

    If the text is green, the raider meets the requirement for the number of completions. If the text is red, this means that the raider doesn't have enough completions through Realmeye exaltations for that dungeon. If the text is yellow, this means that there was some sort of error, which could be that the Realmeye profile was private.

    An example result is shown below:


    Example result with the calculator.