{"id":13467496,"url":"https://github.com/0xf4b1/hearthstone-linux","last_synced_at":"2025-04-04T14:04:02.266Z","repository":{"id":38302704,"uuid":"259739762","full_name":"0xf4b1/hearthstone-linux","owner":"0xf4b1","description":"Play Hearthstone from Blizzard Entertainment natively on Linux without the Battle.net Desktop App and Wine","archived":false,"fork":false,"pushed_at":"2025-03-19T16:33:19.000Z","size":59,"stargazers_count":157,"open_issues_count":14,"forks_count":24,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T13:04:40.955Z","etag":null,"topics":["blizzard","entertainment","hearthstone","linux","native","unity"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0xf4b1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-28T20:05:39.000Z","updated_at":"2025-03-22T02:06:51.000Z","dependencies_parsed_at":"2025-01-05T09:09:53.530Z","dependency_job_id":"e38a64b1-dd23-4ac6-b47a-fb4dc73a8826","html_url":"https://github.com/0xf4b1/hearthstone-linux","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xf4b1%2Fhearthstone-linux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xf4b1%2Fhearthstone-linux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xf4b1%2Fhearthstone-linux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xf4b1%2Fhearthstone-linux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xf4b1","download_url":"https://codeload.github.com/0xf4b1/hearthstone-linux/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247184940,"owners_count":20897860,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blizzard","entertainment","hearthstone","linux","native","unity"],"created_at":"2024-07-31T15:00:57.237Z","updated_at":"2025-04-04T14:04:02.238Z","avatar_url":"https://github.com/0xf4b1.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# hearthstone-linux\n\nThe files in this repository give you the power to craft a Linux-native Hearthstone client. The core game runs perfectly, but the in-game shop remains closed.\n\nHearthstone is based on the Unity engine, which allows the game to run on multiple platforms, including Linux.\nThe platform-specific engine files are mostly generic, so we take the official game files and run them with Unity's Linux binaries.\nThe macOS version of the game uses the OpenGLCore renderer, which we can use perfectly on Linux!\n\nEven though we don't have to modify any of the game internals, please note that this is unofficial and you might risk a ban when using this method.\n\nNone of the proprietary files are distributed here, you can retrieve them from the official locations for free.\n\nHearthstone is ©2014 Blizzard Entertainment, Inc. All rights reserved. Heroes of Warcraft is a trademark, and Hearthstone is a registered trademark of Blizzard Entertainment, Inc. in the U.S. and/or other countries.\n\n## Installation\n\n### 1) Preparation\n\nInstall the required packages:\n\n- Debian/Ubuntu\n\n  ```\n  sudo apt install build-essential libcrypto++-dev libwebkit2gtk-4.1-dev git curl python3 python3-venv python-is-python3\n  ```\n\n  If you are running a distro that does not have `libwebkit2gtk-4.1-dev`, use `libwebkit2gtk-4.0-dev` instead.\n\n- Arch Linux/Manjaro\n\n  ```\n  sudo pacman -S base-devel crypto++ webkit2gtk git curl python python-virtualenv\n  ```\n- Fedora Silverblue\n  ```\n  rpm-ostree install webkit2gtk3-devel cryptopp-devel gtk3-devel gcc-c++\n  ```\n\nThen clone the repository:\n\n```\ngit clone --recursive https://github.com/0xf4b1/hearthstone-linux.git \u0026\u0026 cd hearthstone-linux\n```\n\n### 2) Hearthstone installation\n\nJust execute the crafting script.\n\n```\n./craft.sh\n```\n\u003cdetails\u003e\n  \u003csummary\u003eHave a Hearthstone installation from macOS handy?\u003c/summary\u003e\n\nIf you have an up-to-date Hearthstone installation folder from your Mac `/Applications/Hearthstone` somewhere in place, you can specify the path as the first argument and skip the download. If you also have the needed Unity files, but not at the default location `~/Unity`, you can specify the path as second argument.\n\n```\n./craft.sh [\u003cpath of the MacOS installation\u003e] [\u003cUnity path\u003e]\n```\n\u003c/details\u003e\n\nThe script will download the game in the `hearthstone` directory, so change to this directory after the script succeeds.\n\n```\ncd hearthstone\n```\n\n### 3) Login\n\nUse the login app inside the `hearthstone` directory to retrieve the authentication token for your account.\n\n```\n./login\n```\n\nIf the login was successful, the app will create a `token` file in the current directory.\n\n### 4) Launch the game!\n\nSimply launch the game via the desktop entry :)\n\nYou can also run it from terminal directly via the executable from within the `hearthstone` directory. It is important that your current working directory is the `hearthstone` directory in which the `token` and `client.config` files are present, otherwise the login will not work!\n\n```\nBin/Hearthstone.x86_64\n```\n\nNotice: There is an [issue](https://github.com/0xf4b1/hearthstone-linux/issues/7) if you have not completed the introductions for the different game modes with your account.\nThe animations/videos can't be played, but since newer game versions you don't get stuck anymore and can proceed into the game modes.\n\n## Updating\n\nWhen you start the game, you get a message that a newer version is available?\n\nJust execute the crafting script again.\n\n```\n./craft.sh\n```\n\n## FAQ\n\n\u003e Closed\n\u003e\n\u003e The game was unable to log you in through the Blizzard services. Please wait a few minutes and try again.\n\n\u003e Closed\n\u003e\n\u003e Oops! Playful sprites have disrupted Hearthstone as it was connecting to our servers. Please wait a few minutes for them to disperse and try again later.\n\nThese two messages usually appear when something is wrong with your login token or the way you start the game.\n\n- Did you forget to log in?\n\nPlease make sure the file `token` is present inside the `hearthstone` directory.\n\n- Running from terminal?\n\nPlease make sure you are in the `hearthstone` directory in which the `token` and `client.config` files are present.\n\n- Did you created the token with a different user?\n\nThe `token` is associated with the username that created it, so you will need to log in again with your new user.\n\n\u003e Updating to a newer version takes more time and bandwidth\n\nTo download the game files we use `keg`. It is not a full-fledged client and does not support actual patching of the game. Instead, it downloads each changed file again to bring the game up to date.\n\n\u003e The hearthstone directory consumes a lot of disk space\n\nTo download the game files, we use `keg`. It downloads all files in the `hearthstone/.ngdp` directory from which it creates the Hearthstone installation.\nWhen updating, it downloads all changed files and reuses old files to bring the game to the latest state.\nSince old files are never removed, it can consume a lot of space. However, if we would clean up the directory entirely, we would have to re-download the full game with every update.\n\nIf you have other issues, have a look through the [existing issues](https://github.com/0xf4b1/hearthstone-linux/issues?q=) and if that does not help create a [new issue](https://github.com/0xf4b1/hearthstone-linux/issues/new).\nDon't forget to add logs from `Bin/Logs/` that might be helpful for troubleshooting.\n\n## How does it work?\n\nThe `craft.sh` script copies and rearranges the needed files for your Linux client and additionally does the following tasks:\n\nA file named `client.config` is used by the client for configuration. It will be added with some predefined values, including the option `Aurora.ClientCheck=false` to be able to run the client without the official launcher.\n\nThe macOS version has some platform-specific dependencies that we don't have on Linux and prevent the game from launching. The script builds some very simple stubs for the missing libraries, namely `CoreFoundation` and `OSXWindowManagement`.\n\nWhen the game client is started without the launcher, the game hangs on the title screen and offers no login. This happens even on macOS with the normal installation. But since it tries to read an existing login token from the macOS registry, the `CoreFoundation` stub is used to provide our manually requested token.\n\nThe game tries to read the authentication token from the registry AES encrypted with some static parameters. Based on that logic, a small login tool will be built that encrypts and stores it in a file named `token` from which the `CoreFoundation` stub reads it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xf4b1%2Fhearthstone-linux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xf4b1%2Fhearthstone-linux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xf4b1%2Fhearthstone-linux/lists"}