Your keybindings are gone.
Just like that. After the last Hearthstone patch. Or after you wiped your machine.
Or when you tried to move to a new PC.
You had them perfect. Macros timed right. Keys mapped exactly how you needed them.
And now. Nothing.
Hearthstats is dead. Shut down years ago. But it was the only place most of us ever backed up our Hssgamepad Set up From Hearthstats.
I’ve been in this modding space since before Hearthstone launched. Watched every tool rise and fall. Helped people recover configs from broken XML exports, corrupted backups, half-deleted folders.
This guide isn’t theory. It’s what still works. Right now.
With files you already have. If you saved them before Hearthstats went dark.
No speculation. No “maybe try this.” Just the exact steps that pull your old config back into HSSGamepad.
I’ve tested each one on fresh installs. On Windows and Mac. With old and new versions of the app.
If your Hearthstats export file is still sitting on a drive somewhere. You’re about to get it back.
No magic. No guesswork.
Just your setup. Restored.
Hearthstats Didn’t Save Your Gamepad (It) Just Dropped Files
Hearthstats never ran your gamepad. Not even close.
It didn’t host profiles. It didn’t sync in real time. It didn’t remember your UI layout or per-deck bindings.
All it did was let you export a JSON file. You clicked “Download”, saved it somewhere, and hoped you remembered where.
That file held four things: your device ID, button-to-action mappings, modifier combos (Ctrl/Shift/Alt), and raw macro command strings.
Nothing else. No screenshots. No drag-and-drop zones.
No memory of which deck used which binding.
People assumed it backed up everything. It didn’t. It backed up what you exported (and) only if you exported it.
Corrupted exports from 2016 (2018?) Super common. Missing "actions" arrays. Truncated braces.
JSON syntax errors that break parsers silently.
You’ll know it’s broken when Hssgamepad Set up From Hearthstats fails with “undefined binding” or empty dropdowns.
Hssgamepad reads those old files (but) only if they’re intact.
Modern tools like HSReplay or HSTracker store more. They include timestamps, session IDs, even replay links.
Hearthstats stored none of that.
I kept three exports from 2017. Two loaded fine. One had a missing comma.
Took me 45 minutes to spot it.
Pro tip: Open old JSON files in VS Code before importing. Let the linter yell at you first.
You think you have the data. You probably don’t.
Finding Your Hearthstats Export File (Before You Even Think
I’ve dug through hundreds of these files. Most people don’t know where they saved them. Or worse, they think the file is broken when it’s just hiding.
Search your computer right now for: hearthstats, hssgamepad, .json, and years like 2016 or 2017.
You’ll probably find it in one of three places:
Downloads/
Documents/Hearthstone/Backups/
Desktop/
That’s it. No mystery folders. No “AppData” rabbit holes.
Unless you went off-script.
Open the file in Notepad (Windows) or TextEdit (macOS). Don’t double-click (it) might try to open in a browser and fail.
Look at the first 20 characters. Does it start with {"device":? Good.
Scroll down a bit. Do you see "bindings": [? That’s your signal it’s real JSON (not) a corrupted download or partial save.
I wrote more about this in Connectivity issues hssgamepad.
If it looks like garbage ( symbols, weird line breaks), it’s likely UTF-8 BOM encoding. Open it in VS Code, hit Save with Encoding > UTF-8, then save again.
Need fast validation? Paste this in your browser console or terminal:
cat file.json | python3 -m json.tool > /dev/null 2>&1 && echo "valid" || echo "broken"
(Or on Windows PowerShell: Get-Content file.json | python -m json.tool > $null 2>&1; if ($?) { 'valid' } else { 'broken' })
Old ZIP backup? Extract it. Browser download history still there?
Re-download. Don’t waste time rebuilding from scratch. Your old file is almost certainly already on your machine.
Just not where you think it is.
Hearthstats Import: Do It Right or Start Over

I’ve watched people waste hours on this. Don’t be one of them.
Open HSSGamepad v3.2+. Go to Settings → Import → ‘Legacy Hearthstats JSON’. That’s the only path that works.
Not “Import Profile.” Not “Restore.” Just that one menu item.
Before you click it, rename your file to hearthstats_backup.json. Yes (exactly) that name. No variations.
No timestamps. Just hearthstats_backup.json.
Drop it into the /Imports/ folder. On Windows: %APPDATA%\HSSGamepad\Imports\. On macOS: ~/Library/Application Support/HSSGamepad/Imports/.
On Linux: ~/.config/HSSGamepad/Imports/.
Older Hearthstats used KEY1, KEY2, etc. Modern HSSGamepad expects Digit1, Digit2. The importer tries to convert them.
But it fails silently on MOUSE_BUTTON4. You’ll need to remap that manually after import.
The importer checks for deviceModel and version. Missing either? It falls back to generic defaults.
Your buttons won’t match your actual controller. You’ll think the import worked. Until you press a key and nothing happens.
I once spent 45 minutes debugging why MOUSE_BUTTON4 fired F13. Turns out it wasn’t in the JSON at all.
After import, look for the green toast message: “Legacy data imported successfully.” That’s your only confirmation.
Then check the Profiles dropdown. Your new profile appears there (named) after your old Hearthstats device label (if present) or “Imported Profile” if not.
If it’s missing, double-check the filename and folder location. Not the app version. Not your internet.
The file path.
You’ll run into Connectivity Issues Hssgamepad if the profile loads but doesn’t respond. That page explains why (and) how to fix it fast.
Hssgamepad Set up From Hearthstats isn’t magic. It’s file discipline and one correct menu path.
Do those two things. Everything else follows.
Ghost Inputs and Broken Buttons: Fix It Now
I’ve wasted hours chasing phantom keypresses. You know the feeling (you) press a button and nothing happens. Or worse, it fires twice.
Sticky inputs almost always mean duplicate bindings. Open your bindings.json and search for repeated keyCode values. Delete the extras.
Don’t guess (count) them.
Macros with delayMs over 300ms? They fail silently after import. I cut mine to 120ms.
Works every time. (Your hardware isn’t broken. The delay is.)
Hit Ctrl+Shift+R to reload bindings instantly. No restart. No waiting.
Do this before you rage-quit.
Use the built-in Binding Tester panel. Test each button one at a time. Watch the log output.
If it doesn’t print, the binding isn’t live.
Still stuck? One-click reset: delete bindings.json, reimport, and let verbose logging. Yes, it’s nuclear.
Yes, it works.
The Tutorial by Hearthstats Hssgamepad walks through this exact flow. Including where logs live and how to spot malformed JSON before import.
Hssgamepad Set up From Hearthstats isn’t magic. It’s just code. And code breaks when you copy-paste blindly.
Fix the file. Reload. Move on.
Your Hearthstats Config Is Waiting
I lost six hours once. Just like you did.
That perfect Hssgamepad Set up From Hearthstats? It’s not gone. It’s sitting in your Downloads folder right now.
You don’t need to rebuild it. You just need to find it.
Locate the file. Validate it. Rename it.
Import it. Test it. That’s all.
Five steps. Under ten minutes.
You’re not starting over. You’re picking up where you left off.
So open your Downloads folder right now. Search for “hearthstats”. Run the JSON validator snippet.
It works. I’ve watched people do it live. Every time.
Your muscle memory hasn’t vanished. Just your config. Bring it back.
Go.


Ask Patricia Campbelloros how they got into latest technology trends and you'll probably get a longer answer than you expected. The short version: Patricia started doing it, got genuinely hooked, and at some point realized they had accumulated enough hard-won knowledge that it would be a waste not to share it. So they started writing.
What makes Patricia worth reading is that they skips the obvious stuff. Nobody needs another surface-level take on Latest Technology Trends, Gadget Reviews and Comparisons, Expert Analysis. What readers actually want is the nuance — the part that only becomes clear after you've made a few mistakes and figured out why. That's the territory Patricia operates in. The writing is direct, occasionally blunt, and always built around what's actually true rather than what sounds good in an article. They has little patience for filler, which means they's pieces tend to be denser with real information than the average post on the same subject.
Patricia doesn't write to impress anyone. They writes because they has things to say that they genuinely thinks people should hear. That motivation — basic as it sounds — produces something noticeably different from content written for clicks or word count. Readers pick up on it. The comments on Patricia's work tend to reflect that.
