ShopDuplicateFix

v1.0.0·Updated 2026-08-02

Buying two of the same shop item now delivers two instead of charging for both and delivering one.

About this mod Author’s original text

ShopDuplicateFix

Buy two of the same item, get two of the same item.

Built and compiled against game build v0.4.4 (runs on v0.4.4.x).

The bug

Put two copies of the same shop item in the cart and check out: you're

charged for both, but only one exists afterwards.

The purchase ledger is StatsManager.itemsPurchased, a dictionary keyed by

item name. A name-keyed dictionary can't represent "two of these" unless

something counts — and evidently something doesn't. The money side charges

per physical object; the delivery side collapses to one per name.

The fix

Each purchased physical item produces one ItemPurchase(itemName) call.

This mod tallies those calls per item name per shop visit, and after the

game's own bookkeeping runs, raises the ledger to the tally if it's short.

Two properties worth knowing:

  • It's a no-op where the bug isn't. If the game counted correctly, the

ledger already matches or exceeds the tally and nothing is written. So it

can't over-deliver, and it coexists with shop mods (More Shop Items etc.)

regardless of which layer loses the count.

  • The tally resets on level change, so one visit's purchases can never

inflate the next visit's.

Host only

Purchases and the stats ledger are authoritative on the master client. Only

the host needs this.

First run

Verbose is ON by default for this release. Buy two of the same item, then

check BepInEx/LogOutput.log:

  • paid for 2, game recorded 1 - corrected to 2 → the bug existed, now fixed
  • vanilla counted correctly, no fix needed → the game (or one of your other

shop mods) already handles it; the fix stood down

Either way the log tells you exactly what happened underneath. Turn Verbose

off afterwards.

If instead you see only ONE ItemPurchase line after buying two, the loss

happens before the ledger (the second item is never charged as a purchase at

all) — report that log and the fix needs to move a layer up.

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.

Dependencies

Install these first, or the mod will not work:

BepInEx-BepInExPack

File & checksum

Filename
ShopDuplicateFix-1.0.0.zip
File size
19.0 KiB