Skip to content

Creating texture pack

Jinwoo Lee edited this page Sep 28, 2026 · 1 revision

Creating texture pack

Before Starting

Texture replacement is optional. MWC_Localization_Core works fine without any texture pack.

Some text in the game isn't a TextMesh at all — it's painted directly into an image (driver's licence, rally registration card, signs, screen overlays, etc.). Translation files can't reach that text, so the plugin lets you swap those images for localized PNGs instead.

A texture pack is simply one or more .zip files full of .png images, placed in the plugin's texture/ folder:

Mods/Assets/MWC_Localization_Core/
├── config.txt
├── translate.txt
├── ...
└── texture/
    ├── licence_and_cards.zip
    └── signs.zip

What you need

  • AssetStudio — to extract the original textures from the game.
  • An image editor that can save PNG with transparency (GIMP, Krita, Photoshop, Paint.NET, ...).
  • Any ZIP tool (Windows Explorer's Send to → Compressed (zipped) folder is fine).

Tip

It's highly recommended to use .png textures extracted from the game using AssetStudio when creating new texture packs.

Starting from the extracted image guarantees you have the exact texture name the plugin matches against, the original resolution and layout (the model's UV mapping expects things to be in the same place), and the original alpha channel. Drawing a replacement from scratch or from a screenshot almost always ends up misaligned.

1. Extract the original texture

  1. Download and launch AssetStudio.
  2. Go to Options → Export options and set the Texture2D export format to Png.
  3. File → Load folder, and select the game's data folder: ...\steamapps\common\My Winter Car\mywintercar_Data (Loading the whole folder takes a while — that's normal.)
  4. Open the Asset List tab, and use Filter Type → Texture2D to show only textures.
  5. Search for the texture you want. Clicking an entry shows a preview on the right, so you can confirm it's the right image.
  6. Select it, then Export → Selected assets (or right-click → Export selected assets) and choose an output folder.

The exported file name is the texture name. Keep it exactly as it is — including the game's own typos (e.g. drivers_lincence).

Note

If AssetStudio exports several textures with the same name, it may add a suffix to the file name to avoid overwriting. Remove any such suffix so the file name matches the texture name shown in the Name column.

2. Edit the texture

Open the exported PNG in your image editor and replace the text with your translation.

  • Keep the same image size, or at least the same aspect ratio. The game maps the texture onto the model proportionally, so a different aspect ratio will stretch or shift your artwork.
  • Keep the alpha channel. Many cards and overlays rely on transparent areas.
  • Only edit the parts that contain text. Everything else should stay pixel-identical to the original so the texture blends in with the model.
  • Save as .png. Other formats (.jpg, .dds, .tga, ...) are ignored.
  • Don't rename the file. Matching is case-insensitive, but otherwise the name must be identical to the original texture name.

3. Package into a ZIP

  1. Put your edited PNGs into a .zip file. You can use any file name for the ZIP itself.
    • Folders inside the ZIP are fine — only the PNG's file name matters, so you can organize the ZIP however you like.
    • You can split your textures across several ZIPs. Every .zip directly inside texture/ is loaded.
  2. Copy the ZIP into the plugin's texture/ folder (create it if it doesn't exist): My Winter Car\Mods\Assets\MWC_Localization_Core\texture\

Warning

  • ZIPs in subfolders of texture/ (e.g. texture/old/pack.zip) are not loaded.
  • Don't put the same texture name in two different ZIPs — only one of them will be used, and which one is not guaranteed.

4. Test in-game

  1. Turn on the plugin's debug logs in MSCLoader mod settings (see Testing & Debugging).
  2. Load the game (or press F8 if you're already in-game).
  3. Check the console:
Message Meaning
Loaded texture ZIP 'signs.zip' with N PNG texture replacement(s) The ZIP was found and read.
Replaced _MainTex 'some_texture' in material 'some_material' Your PNG was matched and applied.
PNG did not match any loaded texture in GAME: some_texture.png No texture with that name was found in the scene — check the file name.
Failed to decode PNG: ... The file isn't a valid PNG (e.g. a JPG renamed to .png).

After editing a PNG, re-zip it, replace the ZIP in texture/, and press F8 — the plugin restores the original textures and applies your new ones without restarting the game.

How matching works

  • A replacement is applied to every material in the scene that uses a texture with the same name (and to camera screen overlays). You can't target one specific object — if the same texture is shared by several objects, all of them change.
  • The original texture's wrap / filter settings are copied onto your replacement, so it renders the same way.
  • Replacements are applied once when the scene loads, and again on every F8.

Special cases

  • Driver's licence (drivers_lincence.png) is only applied in the Main Menu. Every other texture is only applied in-game.
  • Rally registration card: the game swaps textures onto the card at runtime. For renderers under RallyRegistration, the plugin looks for <texture name>card.png instead of <texture name>.png — e.g. rally_registercard.png. This lets you localize the card without affecting other objects that share the same texture. rally_registercard.png is also applied to the material named cover 1.

Distributing your texture pack

Ship your ZIP(s) inside the texture/ folder of your language pack. Players can turn texture replacement off with Enable texture replacement in the plugin's mod settings — the change takes effect on F8 or the next scene load.

Troubleshooting

"PNG did not match any loaded texture"

  • The file name doesn't match the texture name. Re-check it against AssetStudio's Name column.
  • The texture belongs to the other scene — e.g. drivers_lincence only matches in the Main Menu, so it will always show up as unmatched in GAME, and vice versa.

Nothing is logged at all

  • The ZIP isn't directly inside texture/, or debug logs are off.
  • Enable texture replacement is turned off in mod settings.

The texture appears stretched or offset

  • The image's size or aspect ratio differs from the original. Start again from the AssetStudio export and keep its dimensions.

Transparent areas are now black / white

  • The alpha channel was lost when saving. Make sure your editor exports PNG with transparency.

Clone this wiki locally