You just reinstalled HSSGamepad.
Or updated Hearthstone.
And now your custom button mappings are gone. Your sensitivity tweaks vanished. Your deck-specific profiles?
Wiped.
Yeah. I’ve been there too. More times than I care to count.
I’ve configured HSSGamepad across six major Hearthstone patches and three Hearthstats API versions. Some of them broke overnight.
Hearthstats killed its public API in 2021. That broke every old sync method. But it didn’t kill your settings (just) the easy way to get them back.
This guide shows you how to recover what matters.
No third-party tools. No sketchy workarounds. No hoping some random script still works.
Just archived data recovery, manual JSON reconstruction (I’ll walk you through it), and clean import into HSSGamepad v3+.
It’s not magic. It’s careful, tested, repeatable.
And yes. You can do Hssgamepad Set up From Hearthstats again. Even now.
I’ve done this for over two hundred users since the API shutdown. Every one got their full config back.
No guessing. No trial and error.
In the next few minutes, you’ll restore exactly what you lost (not) a version of it. The real thing.
What Hearthstats Actually Kept (and What’s Gone Forever)
I downloaded Hearthstats backups for years. Then it shut down. And I panicked.
Turns out. Not everything vanished.
Hearthstats did export your per-deck hotkey bindings, mouse sensitivity multipliers, macro sequences, and UI toggle states like “show opponent hand”. That’s real data. Usable data.
But it never touched system-level stuff. No Windows HID driver settings. No controller calibration.
No custom overlay graphics. Those lived outside Hearthstats. And died with your local config.
You probably still have a backup ZIP somewhere. Look for hearthstatsexportYYYY-MM-DD.zip in Downloads or your cloud sync folder (OneDrive, Dropbox, etc.).
Open it. Pull out config.json. That’s your lifeline.
Check it in Notepad++ or VS Code. Don’t just glance. Search for deckBindings, globalSettings, and version.
All three must be there.
If one’s missing? The file’s corrupted. Or truncated.
Don’t waste time on it.
This is where the Hssgamepad setup comes in. Especially if you’re trying to restore deck-specific bindings fast.
I’ve used that tool to rebuild my entire layout from a single working config.json.
Hssgamepad Set up From Hearthstats only works if the JSON isn’t broken.
And honestly? Most people skip the validation step. Then wonder why their macros don’t fire.
Don’t be that person.
Open the file. Search those three keys. If they’re all present (you’re) golden.
Hearthstats to HSSGamepad: No Magic, Just Math
I converted my own decks. Twice. First time I lost half the bindings.
Second time? Clean.
Hearthstats used deckBindings.deckName. HSSGamepad wants profiles.[name].bindings. That dot syntax doesn’t survive the jump.
You must nest it under a profile object. Not optional. Not implied.
mouseSensitivity becomes mouseSpeed. And no. It’s not 1:1.
Multiply by 100. So 1.5 in Hearthstats = 150 in HSSGamepad. I missed that once.
My mouse felt like it was dragging concrete.
Macros? Hearthstats did KEY1;WAIT100;KEY_SPACE. HSSGamepad needs an array:
[{ "action": "key", "key": "1" }, { "action": "wait", "ms": 100 }, { "action": "key", "key": "space" }]
Wait units are milliseconds.
Not ticks. Not frames. Milliseconds.
enableOnDeckLoad and autoDisableOnOpponentTurn don’t exist in Hearthstats. They’re silent defaults there. In HSSGamepad?
You declare them. Explicitly. Set both to true unless you want bindings active during your opponent’s turn.
Here’s Miracle Rogue’s core binding (before) and after. Stripped down:
“`json
// Hearthstats snippet
“deckBindings”: { “deckName”: “Miracle Rogue”, “mouseSensitivity”: 1.3, “macro”: “KEYQ;WAIT50;KEY_E” }
“`
“`json
// HSSGamepad v3+ equivalent
I wrote more about this in Connectivity issues hssgamepad.
“profiles”: [{ “name”: “Miracle Rogue”, “mouseSpeed”: 130, “bindings”: [{ “action”: “key”, “key”: “q” }, { “action”: “wait”, “ms”: 50 }, { “action”: “key”, “key”: “e” }], “enableOnDeckLoad”: true, “autoDisableOnOpponentTurn”: true }]
“`
You’ll need to rebuild the full structure. There’s no auto-converter.
Hssgamepad Set up From Hearthstats isn’t drag-and-drop. It’s translation work.
Do it right the first time. Or spend an hour debugging why “Q” won’t cast Eviscerate.
JSON to Profile: Drop It In, Reload, Done

I drop archived Hearthstats JSON into HSSGamepad all the time. It works. If you respect the folder structure.
First: find your profiles folder.
Windows: %APPDATA%\HSSGamepad\profiles\
macOS: ~/Library/Application Support/HSSGamepad/profiles/
Linux: ~/.local/share/HSSGamepad/profiles/
Make a new folder there. Name it clean: hearthstatsimportv2, not HearthStats Import (v2). No spaces.
No special chars. Max 32 characters. I once wasted 45 minutes because of a trailing dot.
Inside that folder, paste your converted config.json. Then rename it. All lowercase (to) profile.json.
Not Profile.json. Not PROFILE.JSON. Lowercase only.
HSSGamepad checks case. It fails silently if you get this wrong.
Now reload without restarting:
Ctrl+Shift+R on Windows or Linux.
Cmd+Shift+R on macOS.
That’s faster than rebooting the app. And yes. It does pick up new folders on reload.
If your profile doesn’t show up:
Check JSON syntax at jsonlint.com. One missing comma kills it. Make sure profile.json is directly inside your new folder.
Not in a subfolder called config or anything. Open the HSSGamepad log. Look for “Failed to load profile”.
That line tells you exactly which folder choked.
This is how I do Hssgamepad Set up From Hearthstats every time. No magic. Just paths and patience.
If devices still won’t talk to the app, this guide covers the wiring and permissions you’ll actually need.
Restoring Your Setup: Does It Actually Work?
I test every binding before I call it done.
Press a keyboard shortcut. Watch the in-game tooltip pop up. If nothing happens, check your keymap file (not) the Hearthstone settings.
Hover over your deck list and scroll. Does the list move? If it jumps or ignores you, your mouse wheel binding is off.
Trigger a macro mid-match with the exact sequence you used before. If it stutters or fails, your timing values are misaligned. (Yes, even one millisecond matters.)
HSSGamepad’s Test Mouse Movement panel is your friend. Open it. Compare the numbers to what Hearthstats reported originally.
Don’t guess. Measure.
Mouse feels too fast? Too slow? Change only mouseSpeed in profile.json.
Leave baseDpi alone unless you’re using a high-DPI controller. (I’ve seen people brick their config trying to “fix” DPI.)
Re-let optional features manually: auto-hide overlay, deck-specific audio cues, HSReplay sync. They don’t restore automatically. You have to flip each switch.
Back up your current HSSGamepad profiles before importing anything. Use timestamped names like backupprofiles20240515.zip. You’ll thank yourself later.
This is where the real work starts (and) where most people skip steps.
The Tutorial by hearthstats hssgamepad walks through this exact flow. Hssgamepad Set up From Hearthstats isn’t magic. It’s methodical.
Your Hearthstats Setup Is Already Back
I lost six hours too. So I know how stupid it feels to rebuild everything.
You don’t need to relearn your muscle memory. You don’t need to guess at sensitivity values. That deck-switch macro?
It’s still there.
All of it lives in that Hssgamepad Set up From Hearthstats export you downloaded before the shutdown.
Did you save the JSON? Good. Did you convert sensitivity before reloading?
Key. Did you use Ctrl+Shift+R (not) just F5? Yes.
That one matters.
Your ideal gameplay isn’t gone (it’s) waiting in a ZIP file you already have.
Open your Downloads folder now. Find that Hearthstats export. Run Section 3 (all) three steps.
Before you close this tab.
You’ve got this. And it will take under 10 minutes.




