HearthSim / Hearthstone-Deck-Tracker

A deck tracker and deck manager for Hearthstone on Windows
https://hsreplay.net/downloads/
4.61k stars 1.11k forks source link

Please explain the point about Reconnector plugin #4509

Closed n-valverde closed 8 months ago

n-valverde commented 8 months ago

Expected Behavior

Hello, I would like to hear a clear statement about what was kindly asked by Blizzard, and why HDT developers decided to take discrete actions against that plugin.

Offending commits are https://github.com/HearthSim/Hearthstone-Deck-Tracker/commit/157187be463827ce4d64e5630c7096faebc4d0e2 and https://github.com/HearthSim/Hearthstone-Deck-Tracker/commit/3c76f4962e39967df12332772960153043975897

The way these commits were introduced looks suspicious on its own. Is Reconnector plugin considered a cheat? Now that it targets the dll name, HDT forbids any plugin using this dll. With the only reason being Blizzard kindly asked us....

Actual Behavior

What's happening now: people just stop updating HDT to be able to use the plugin, or fork it to rebuild it without the nasty hack, which at the end is the same, since people will likely not stay up-to-date with upstream, is this really what you want?

This is now creating a real ingame advantage for people with enough knowledge to fork/build HDT and/or the plugin, while it can't be considered an advantage if everyone can access it.

On the other hand, if it is now considered a cheat, a clear statement would be benefical for everyone, to be aware that using this technique - with or without HDT - may lead to a sanction.

See https://github.com/haoruan/HDT-Reconnector/issues/23

Steps to reproduce behavior

No response

Log/Screenshots

No response

sgkoishi commented 8 months ago

By the definition of Blizzard EULA,

Cheating: Create, use, offer, promote, advertise, make available and/or distribute the following or assist therein:

  • cheats; i.e. methods not expressly authorized by Blizzard (whether accomplished using hardware, software, a combination thereof, or otherwise), influencing and/or facilitating gameplay, including exploits of any in-game bugs, and thereby granting you and/or any other user an advantage over other players not using such methods;
  • bots; i.e. any code and/or software, not expressly authorized by Blizzard, that allows the automated control of a Game, or any other feature of the Platform, e.g. the automated control of a character in a Game;
  • hacks; i.e. accessing or modifying the software of the Platform in any manner not expressly authorized by Blizzard; and/or
    • any code and/or software, not expressly authorized by Blizzard, that can be used in connection with the Platform and/or any component or feature thereof which changes and/or facilitates the gameplay or other functionality;

I believe reconnecting does match the rule granting you and/or any other user an advantage over other players not using such methods - which Blizzard may suspend or revoke your license to use the Platform, or parts, components and/or single features.


What's happening now: people just stop updating HDT to be able to use the plugin, or fork it to rebuild it without the nasty hack, which at the end is the same, since people will likely not stay up-to-date with upstream, is this really what you want?

HDT is not licensed under an open-source license: it is just making the source available to you while All Rights Reserved. So theoretically you are not allowed to do so - violation of copyright?


HDT has taken many actions to prevent unfair advantages. For example, info leaks like Baku and Genn can be revealed when drawn by opponents. People with enough knowledge can do much more than reconnecting...

n-valverde commented 8 months ago

Thanks for the fast answer 👍. I now have more questions 😄. Before going further tho, let me just say that I'm not affiliated in any way with this plugin, I'm just an HDT user and casual HS player, trying to understand the situation.

I believe reconnecting does match the rule granting you and/or any other user an advantage over other players not using such methods - which Blizzard may suspend or revoke your license to use the Platform, or parts, components and/or single features.

I believe HDT alone matches this definition, doesn't it? Is HDT expressly authorized by Blizzard? (Real question, I have no idea). Or does the EULA actually means not expressly unauthorized?

HDT is not licensed under an open-source license: it is just making the source available to you while All Rights Reserved. So theoretically you are not allowed to do so - violation of copyright?

I don't think not updating HDT violates any copyright. Furthermore it is all rights reserved but published on a public GitHub repository, which means Github TOS apply, that is granting the right to view and fork the repository.

HDT has taken many actions to prevent unfair advantages. For example, info leaks like Baku and Genn can be revealed when drawn by opponents. People with enough knowledge can do much more than reconnecting...

I completely understand that, my point is that :

Anyway I guess the point is clear enough 👍

sgkoishi commented 8 months ago

(I'm not the developer of HDT either, tho I do maintain a pack tracking plugin - which does reads some info (the historical count of packs obtained) from the game. I assume that's safe :thinking:)

Most features of HDT probably do not grant you more advantage: Ben Brode's tweet, Jun 2014, Sep 2014

In general if it duplicates things that you can already do with pen and paper it's fine. Any app that duplicates what you can do with a pencil and paper already is fine.

Everything I can remember is duplicating pen and paper or does not mutate the game state (they might technically mutate some parts underneath but just to read data, not change them). The deckstrings and the BobsBuddy are beyond human capabilities, but it does not affect the game directly either.


Using an outdated version is of course allowed, but modification or redistribution (including creating derivative works) is not.


I would assume it is done based on say cost-efficient way. Players can also revert the info leak patch from HDT, which is also just a few lines each (for most types of leaks); players can just rename the library and the plugin; so my guess is HDT is just doing something rather than nothing to show the stance of not mutating the game.


Perhaps it might be better to ask those questions via Blizzard's support, rather than asking HDT's team?

n-valverde commented 8 months ago

I assume that's safe 🤔

Yeah that's the thing, because HDT alone is against Blizzard EULA words (maybe not intent, but definitely against words), everyone just has to assume that it is safe as long as Blizzard does not say anything, and so did this plugin developer. Now taking a personal direct&discrete move against this particular plugin feels really bad, and completely opiniated (could be as well HDT developers own opinion, who knows). Of course Blizzard has all rights to take any decision based on any judgement in the scope of their products, but here we don't have any decision shown, just a little comment in source code pretending that Blizzard requested this hack. I have to assume it's true, but on the other hand, having looked into the source code, Blizzard could also block this from the game (ar at least, the current implementation which relies on parsing game log).

The sole fact that HDT has taken many actions to prevent unfair advantages clearly shows that HDT alone is against Blizzard EULA words. HDT can give unfair advantage if it has to take actions to prevent those. So the question remains complete, why is HDT allowed? Is it because it was never expressly unauthorized, so it assumes an implicit authorization, or was it expressly authorized at some point? (A tweet trying to clarify the intent is not a legal base, it just shows again that HDT is indeed against EULA words)

Everything I can remember is duplicating pen and paper or does not mutate the game state (they might technically mutate some parts underneath but just to read data, not change them). The deckstrings and the BobsBuddy are beyond human capabilities, but it does not affect the game directly either.

That plugin is not mutating anything within the game, it's not even interacting with the game, the only game information it uses is the game server IP. I've heard that pen&paper argument before as well, and well it's ridiculous, considering that Hearthstone is a timer based game, having a software that does "what you can do with a pen a paper", but faster and better, is clearly an advantage over "pen&paper".

Using an outdated version is of course allowed, but modification or redistribution (including creating derivative works) is not.

Well, we're in the grey area here, if this was true by the words, no contribution could be made, since signing the CLA comes after producing the modification. The Contributing.md is basically instructing to violate copyright (clone, make the changes, then open a PR and sign the CLA). Putting "All rights reserved", without giving a proper license on a public repository is not enough to argue that private modifications are not allowed. There is the notion of faire use when it comes to private use, modification or reverse engineering. There is a reason why softwares use licenses.

Players can also revert the info leak patch from HDT, which is also just a few lines each (for most types of leaks);

Ok I wasn't aware, sorry if I'm late to the party 😄 . So yeah that just prove that HDT can indeed give unfair advantage.

players can just rename the library and the plugin

Not anymore. Or at least, not as simple as renaming the plugin. HDT now basically forbids the use of the [DllImport("iphlpapi.dll")], which is a windows dll used by the current implementation.

so my guess is HDT is just doing something rather than nothing to show the stance of not mutating the game.

That's my guess as well, but I would prefer a clear statement from maintainers than having to guess anything. My guess is that HDT is playing the "good boy" way to remain in the grey area where it is allowed by not being disallowed. And because I'm also paying a subscription, I feel concerned by the situation of paying a product that is operating in a grey area. And because I'm also a developer, I feel concerned by the situation of a product deliberately pushing discrete breaking changes in a patch version.

Perhaps it might be better to ask those questions via Blizzard's support, rather than asking HDT's team?

Fair point. I will consider that. But reaching out to Blizzard support because I found a comment in some third party source code also feels weird, which is why I think a clarification from HDT is also required.


Anyway I guess that's an interesting topic that goes beyond the point of that specific plugin, since a move like this clearly indicates that any developer who might be interested in making HDT plugins now has to be aware that his work can be taken down at the sole discretion of someone. Unfortunately, that's not giving much hope for the future of HDT, and that's where a word on the situation from HDT would help.

sgkoishi commented 8 months ago

Theoretically, not quite: you can open the Hearthstone log and read the content, which reveals more info than what you can see inside the game - this means you can get some unfair advantages even when the game is not running, which is kinda weird. It's Hearthstone who leaked it, so blaming HDT for reading that info is kinda weird (and they are taking actions to stop the leaked info from showing to players)


I'm pretty sure there are definitely unauthorized (relatively big) modifications and publically redistributions, but I don't care.


They can make the plugin work by renaming (changing less than 5 characters for each restriction, so no more than 10 for two patches). It's kinda impossible to restrict similar plugins (and counter the bypasses) without hundreds or thousands of lines of code. Players with knowledge can easily bypass most of the restrictions (if they add more) with like ten lines of code.

You can read Microsoft's official document about DllImport - "Native library loading" to learn more.


Same, I saw quite a lot of inquiries on the Blizzard support/forums but none of them come with a clear answer (except the pen and paper tweet).

From the eSports rule,

  • Players may make handwritten notes on a blank piece of paper while competing in live and online Tournament matches. Players may not bring outside notes to the match. Tournament organizers reserve the right to impose additional requirements on note taking at their sole discretion. Additional restrictions may include, but are not limited to, requiring that all player notes be taken using materials provided by the Tournament organizer. All players must allow any Tournament official to inspect their note-taking materials and written notes upon request.
  • Players may, at their sole risk and responsibility, use deck tracking software applications during online Tournament matches subject to the requirements described in this Handbook (“Deck Tracker(s)”). A Deck Tracker may be used by a player during an online Tournament match so long as all of the following requirements are met:
    • The Tournament’s specific rules do not prohibit Deck Trackers.
    • Use of the Deck Tracker complies with all of the terms of this Handbook.
    • Use of the Deck Tracker complies with all of Blizzard’s Website Terms, which include but are not limited to the Blizzard End User License Agreement. 20
    • The Deck Tracker only provides information to the player that could otherwise be obtained from the player’s perspective via observation of the unaugmented Hearthstone game interface.
  • Failure to adhere to all of the Deck Tracking requirements outlined in Section 5.10(b)may result in disciplinary action.

Basically, "only provides information to the player that could otherwise be obtained from the player’s perspective via observation of the unaugmented Hearthstone game interface".


I wouldn't be surprised if HDT decides to ban a random plugin for some average or bad reason - it's a company product, not community-maintained 😞 The reconnecting is imbalanced actually sounds quite reasonable to me

beheh commented 8 months ago

Hi all, the matter is simple: The reconnector plugins provide an unfair advantage in our eyes, and that's something we can't support. This is no different than us working around a Hearthstone bug where a certain card accidentally revealed the cards it generated or similar (which we've done countless times over many years).

As Blizzard asked us to remove the plugin, I think you can assume that Blizzard also considers this an unfair advantage. I'm not sure what else there is to discuss.

n-valverde commented 8 months ago

Sure, let's turn hundreds or thousands of casual players into presumed cheaters without saying a word, nothing to discuss here obviously.

sgkoishi commented 8 months ago

Speedhack is typically considered cross-the-line, and there's no difference in results between intentional reconnecting and speedhack, we all know that. People don't want to talk about where is the line, since trying to make it clear and accurate will only result in exploiting the loophole.