Last about update: 2020-06-07 17:15
What is Hoboleaks?
Hoboleaks is a website designed to show new content and changes in EVE Online patches.
You can either look at everything new on the test server by comparing Tranquility to Singularity (the public test server), or you can see what changed in each incremental patch. This is done by navigating the menus at the top of the page, or by clicking the "Home" button in the top left corner.
How does Hoboleaks work?
Hoboleaks extracts data similar to that found in the SDE from the client game files, and uses this to compare each version. The website will automatically update itself when new EVE Online patches are published. It usually* takes anywhere from 5-10 minutes after a new patch is released for the changes to be visible on the website.
After changes to the website is made, you may have to do a cacheless refresh (CTRL+F5) to see the new version immediately.
* Unlike similar websites for other games, Hoboleaks is almost entirely automated. The nature of datamining a game in active development is that this process inevitably may break when internal data/file structures are changed. In these fairly rare cases, patches may not be immediately visible until I have investigated and rectified the issue. If a patch isn't on the website after ~10 minutes, feel free to message/ping @inomares in Tweetfleet Slack either via PM or through the #hoboleaks channel. Instructions on how to join Tweetfleet Slack can be found here.
To highlight one or more entries for sharing, hold ALT and click on the entry or entries you wish to highlight. Your address bar will be updated with an URL you can share with others.
Please note that highlights on pages which compare two different clients, such as the frontpage which compares Tranquility and Singularity, will not persist after the next patch to either of those clients. Therefor, it is preferrable to use highlights only on updates within the same client (such as Singularity_XXXX-Singularity_YYYY). Example.
The filter bar supports simple text searching, regex, and negation. Filters can be shared just like with highlights, with the same limitations described above. Filtering is case-insensitive. Examples:
You can use either regex or normal filtering, but not both at the same time. The 'without' keyword can be used with either, and you can use the 'without' keyword multiple times in the same search. For multi-word, encapsulate in quotations, such as: without:"Permanent Skin".
If the search bar turns red, it means the regex was invalid, there are multiple regexes, or you used both regex and normal search at the same time.
Search updates when the contents are changed and you hit enter or deselect the search bar.
- Test 123
(Shows all entries which contain the phrase "test 123")
- Test 123 without:4
(Shows all entries which contain "Test 123" but not "4". Examples: Shows "test 1235", but not "Test 1234", "4bla Test 123", nor "123 Test")
- without:SKIN without:Blueprint
(Shows all entries except those with the words "SKIN" or "blueprint" anywhere in them)
(Shows entries containing the words Marshal or Pacifier, if they do not contain the word "Skin")
- regex:"Name of item.*Shield" without:Thermal
(Shows entries matching this regex which do not contain the word Thermal. Example: "Basic EM Ward Amplifier - Name of item 1798 (Shield Resistance Amplifier)" but will not match for instance "Basic Thermal Dissipation Amplifier - Name of item 1800 (Shield Resistance Amplifier)")
How do I send in issues or suggestions?
This can be done via GitHub.
However, before reporting, please consider the following:
Search first! There probably won't be that many issues (I doubt more than 5 people are going to read this far down anyway), so it shouldn't take very long to make sure there isn't already an issue on what you wish to report.
Basic website functionality is only expected in modern browsers such as Chrome or Firefox. Please do not report issues with Internet Explorer/Edge or similar.
The website is meant to be kept simple. I am not a web dev, and I have no interest in trying to become one either. Yes, I know it's not the most aesthetically pleasing interface in the world. You're playing EVE Online. You should be used to it.
It is not possible to compare data not found in the client. Hoboleaks operates independently of the status of Tranquility and Singularity, and does not currently compare any data found in the API. This unfortunately excludes involving things like Loyalty Points store diffs, but allows the website to start building patch diffs before the EVE Online servers have even come back up (at CCP's leisure, as they still decide when a patch is put "live"). With a few exceptions, a good rule of thumb is that if something isn't in the SDE, then Hoboleaks can't access it. If there is a very good reason to include something from the API, this may change, but I would like to avoid it unless there are considerable benefits.
Is Hoboleaks open source?
No. Among other reasons, since reverse engineering relies on replicating the methods and code used by the official game client, some of the code is simply not mine to release.
There are however other open source libraries out there which may be of use depending on what you're looking to do.
What's up with resistances on Hoboleaks? They don't look the same as they do in-game!
The tl;dr is that resistances are actually resonances, or damage multipliers. If something has a 0.6 resistance on hoboleaks, it will have a 1-0.6 = 0.4 = 40% resistance in-game.
The attribute data, in its rawest form, consists of only a mapping of attribute IDs to values. For instance, the mapping "268: 0.9" on a certain item says that attributeID 268 has a value of 0.9 on this particular item. This information is not very useful to us humans however, so Hoboleaks does its best to find a translation for this attribute. In order, hoboleaks tries the following:
1) The name displayed by the client: "Armor Explosive Damage Resistance"
2) The attribute's internal displayName: "Armor Explosive Damage Resistance"
3) The attribute's internal name: "armorExplosiveDamageResonance"
4) A default: "Unnamed attribute 268"
The first valid name is used in this order, as it is usually the most human readable one. However, in the case of resistances, it is actually the internal name (#3) which best describes its purpose. The EVE client makes a special exception when displaying these resistance attributes by subtracting their value from 1, and then converting them to percentages, to make them simpler for us humans to interpret. Hoboleaks generally tries to avoid hardcoded exceptions or conversions when displaying the underlying data, so we do not currently replicate this behaviour.
Where can I find a list of older hoboleaks updates?
Almost all files hosted on Hoboleaks can be found here.
What happened to Chaos?
See this page for details.
Do you ever delay publishing patch diffs in order to benefit from market speculations before others can see them?
No. I am too lazy and impatient to dabble in industry and/or the market.
I do not see patches before they are published to the website. If there is a delay, it's most likely because the most recent patch changed the internal data structure used, and the Hoboleaks update generator had to be manually tweaked to account for this.
How do I compensate you?
This is a hobby project I enjoy working on. No further compensation is needed. Seeing people enjoy the service I created is enough for me. :)
I have some other question that isn't listed here. How do I reach you?
Message or ping @inomares in Tweetfleet Slack either via PM or through the #hoboleaks channel. Instructions on how to join Tweetfleet Slack can be found here.