CustomTextureReplacer

v1.7.0·Updated 2025-10-23

Runtime texture, sprite, and mesh override toolkit for TCG Card Shop Simulator with live watchers, card metadata editing, and debug dumps.

About this mod Author’s original text

Custom Texture Replacer

Runtime mod for TCG Card Shop Simulator that lets you swap textures, meshes, and card metadata while the game is running. Drop files in, press a key if you want, and the game refreshes itself without a restart.

Features

  • Live texture swapping - watches every CustomTextures folder under BepInEx/plugins/ (including sibling mods) and reloads PNGs automatically.
  • Persistent sprite overrides - icons dropped into CustomTextures stay applied across atlas reloads and UI updates (store thumbnails, card icons, etc.).
  • Mesh and material overrides - point MeshOverrides.json at Unity asset bundles to replace meshes, skinned meshes, colliders, and renderer materials at runtime.
  • Mesh-aware card metadata - define card blocks inside MeshOverrides.json to rename store signage, checkout bars, price panels, and in-world props with new display names/aliases.
  • Shelf population controls - optional shelfCount clamps how many instances of a mesh stay active per shelf root to stop overfilling figurine displays.
  • Hot reloads and watchers - edits to textures, mesh overrides, or card metadata JSON are picked up immediately.
  • Configurable diagnostics - optional debug logging, suppressed Unity spam, and manual dump triggers keep runtime overhead low but give you tools when you need them.

Key Config Options (BepInEx/config/com.duckieray.cardshop.customtextures.cfg)

  • EnableAutomaticDumps - when true, texture/sprite/mesh dumps regenerate on load; otherwise use the hotkeys.
  • EnableDebugLogFile - toggle detailed logging to CustomTextureReplacer.debug.log.
  • SuppressRectTransformParentWarning - hides Unity's noisy RectTransform parent warnings (enabled by default).
  • UseReplacementNames, LogNewTextureNames, LogAssetLoads, and the mesh/card settings continue to behave as in previous releases.

Installing or Updating

  • Copy build/CustomTextureReplacer.dll to BepInEx/plugins/CustomTextureReplacer/ (or the equivalent r2modman profile directory).
  • Launch the game. Reference dumps such as TexturesList.txt and MeshesList.txt are only generated when you press the hotkeys or enable EnableAutomaticDumps.
  • Optional: set config values to control logging, dumps, or replacement name behaviour before you start playing.

Tip: close the game before swapping DLLs; Windows otherwise keeps the previous binary locked in memory.

Replacing Textures

  • Inspect TexturesList.txt (generate via F8 if needed) to find the texture name and resolution.
  • Drop a PNG with the exact texture name (case-insensitive) into any watched CustomTextures folder. Default: BepInEx/plugins/CustomTextures.
  • The mod reloads the file automatically. A CustomTextures.refresh.now trigger or the F8 key remains available for bulk refreshes.

If UseReplacementNames=true, you can bake a new display name into the filename: OriginalName-New_Display_Name.png. Underscores become spaces when no other card metadata is present.

Replacing Meshes

Mesh swapping uses Unity asset bundles (matching the game's Unity version) plus a MeshOverrides.json descriptor. Place the descriptor next to your textures or under BepInEx/plugins/CustomTextureReplacer.

{

"overrides": [

{

"target": "PiggyA_Mesh",

"bundle": "dark_knight_armored.bundle",

"meshHint": "Armored",

"materialHints": ["Body", "Head", "Pack"],

"shelfCount": 3,

"card": {

"displayName": "Armored Batman Statue",

"aliases": ["Pigni Plushie", "Pigni Plushie (12)"]

}

}

]

}

  • meshHint narrows the auto-selected mesh name (case-insensitive).
  • materialHints prioritises materials whose names contain each hint.
  • shelfCount limits active duplicates under each shelf root; omit or set -1 to keep the original layout.
  • card is optional but recommended when you need UI labels to follow the new figurine name. Aliases cover in-game variations such as Foo (6).

Newly spawned MeshFilter, SkinnedMeshRenderer, and MeshCollider components trigger the override scan immediately, so custom stock shows up on first appearance.

Editing Card Me

Install & use Install: follow the bundled instructions

  1. Unzip the archive from playbuff and read the bundled readme / instructions first.
  2. Most mods rely on the game's mod loader — the usual route is a community mod manager (such as r2modman): pick this game, install, and it handles the loader and dependencies.
  3. For a manual install, put the mod files into the matching Mod / plugins folder inside the game directory.
  4. Launch the game to confirm it loaded; mods with listed dependencies need those installed as well.

Install locations vary a lot between mods — the bundled readme is the most reliable guide.

Dependencies

Install these first, or the mod will not work:

BepInEx-BepInExPack

File & checksum

Filename
CustomTextureReplacer-1.7.0.zip
File size
140.0 KiB