Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HsPreferNormal

A BepInEx 5 plugin for Hearthstone that makes the deckbuilder prefer normal card copies over Golden, Diamond, and Signature.

When you import a deck code (or fill a deck from a template, or click a card in your collection), Hearthstone auto-selects your highest-quality copy — Diamond first, then Signature, then Golden, then Normal. This mod flips that priority: if you own a normal copy, it's used. If you only own a premium copy, the game's original fallback applies, so imported decks are always complete and playable.

Purely cosmetic/UX — no gameplay advantage, no unlocked content, nothing you don't already own. Explicitly adding a golden/signature copy from its own page in the collection browser is unaffected and still works.

⚠️ Disclaimer: All client-side mods technically violate Blizzard's Terms of Service and carry a ban risk. Use at your own risk. This project is not affiliated with or endorsed by Blizzard Entertainment.

How it works

The game decides which quality to use via CollectionDeck.GetPreferredPremiumThatCanBeAdded(cardId), whose built-in priority is DIAMOND → SIGNATURE → GOLDEN → NORMAL. During deck-code imports, CollectionDeck.ReconcileOwnershipOnAdd calls it for every slot to swap in your owned copies — that's the exact code path that turns imports golden/signature.

This plugin installs a single Harmony prefix on that method: it checks CanCardBeAddedAsOwned(cardId, TAG_PREMIUM.NORMAL) first and returns NORMAL when possible; otherwise the original method runs unchanged. The same method also drives deck templates, sideboards, and collection-browser clicks, so the whole deckbuilder defaults to normal.

Installation

You need BepInEx 5 in your Hearthstone folder — via either route — then the mod DLL.

Option A — via Firestone (easiest if you already use it):

  1. With Hearthstone closed, open Firestone → Settings → General → Mods and enable mods. This installs Firestone's integrated BepInEx into the game folder.
  2. Launch Hearthstone once and quit, so <GameDir>\BepInEx\plugins\ gets created.

Option B — plain BepInEx:

  1. Download BepInEx 5.4.x x64 and extract the zip directly into your Hearthstone folder (next to Hearthstone.exe), so you end up with <GameDir>\winhttp.dll and <GameDir>\BepInEx\.
  2. Launch Hearthstone once and quit.

Then, for both routes:

  1. Download HsPreferNormal.dll from Releases and drop it into <GameDir>\BepInEx\plugins\.
  2. Launch Hearthstone. Verify by finding Prefer Normal Cards ... loaded. in <GameDir>\BepInEx\LogOutput.log or by importing deck codes. Firestone users: after one launch with the DLL in place, the mod also appears in Firestone's Mod Manager (if you are on the Firestone Beta).

Configuration (optional)

To turn off the mod or assign different priority for card qualities edit <GameDir>\BepInEx\config\HsPreferNormal.cfg:

[Features]
## Master toggle — set to false for vanilla behavior. No rebuild needed.
PreferNormalCopies = true

## Card qualities tried in order when filling decks; the first quality you own
## copies of is used. Valid values: NORMAL, GOLDEN, DIAMOND, SIGNATURE.
## Qualities not listed fall back to the game default order
## (Diamond > Signature > Golden > Normal), so decks always fill.
## Examples:
##   PremiumPriority = NORMAL              (default - normal copies first)
##   PremiumPriority = SIGNATURE,NORMAL    (prefer signatures, then normal)
##   PremiumPriority = GOLDEN              (golden if owned, otherwise game default)
PremiumPriority = NORMAL

Building from source

Requirements: a .NET SDK (8/9/10), BepInEx 5 installed in the game folder (the project references its DLLs from there).

  1. Clone the repo.
  2. Edit <GameDir> in HsPreferNormal.csproj to your Hearthstone install path.
  3. dotnet build -c Release — the post-build step copies the DLL into BepInEx\plugins automatically.

No game files are included in this repository; the project compiles against Assembly-CSharp.dll from your own installation.

Compatibility

  • Built and verified against the July 2026 Hearthstone build.
  • Hearthstone patches can rename or change the hooked methods. If the mod stops working after a game update, check LogOutput.log for Harmony errors and watch this repo for an updated release.
  • Coexists with other BepInEx/Firestone mods; conflicts are only possible with mods that patch the same deck premium-selection method (none known).

Uninstall

Delete HsPreferNormal.dll from BepInEx\plugins. To remove BepInEx entirely, delete winhttp.dll from the game folder.

License

MIT

About

Hearthstone BepInEx plugin — deck imports and the deckbuilder default to normal card copies instead of Golden, Diamond, or Signature.

Topics

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages