Repository navigation
testing and debugging
The point of this plugin's design is that you don't have to restart the game between edits. This page covers the iteration loop and the most common things that go wrong.
While in-world (not in the main menu), press F8 to fully reload the language pack. The plugin will:
- Re-read
config.txt(language metadata,[FONTS],[POSITION_ADJUSTMENTS]). - Re-load every translation file (
translate.txt,translate_msc.txt,translate_mod.txt,translate_magazine.txt,translate_teletext.txt). - Reload
fonts.unity3d. - Reapply font mappings to every TextMesh.
- Reapply position adjustments to every matching path.
- Restart the per-frame monitor used by HUD and FSM hooks.
What it does not do:
- Reset the game's scene state (your save is untouched).
- Re-translate text that's locked behind a one-time event you've already passed (you may need to trigger it again to see your changes — e.g., open and close the magazine).
The recommended cycle: edit a file → save → alt-tab to game → press F8 → look at the affected screen. Usually under five seconds round-trip.
The plugin logs through MSCLoader's mod console. To see what it's doing:
- Open MSCLoader's mod settings in the main menu.
- Find MWC Localization Core in the mod list.
- Toggle the debug-log options. There are usually a few categories (general, font loading, translation hits/misses, etc.) — turn on whatever matches the problem you're chasing.
For very deep debugging (especially "what is the GameObject path of this text?"), having a BepInEx-style F12 console or a tool like Developer Toolkit running alongside is handy. Don't ship either of those with your language pack — they're development-only.
In order of likelihood:
-
Wrong file. Magazine ads belong in
translate_magazine.txt, nottranslate.txt. Teletext lines belong intranslate_teletext.txt. See the per-file pages for the cut-off rules. -
Key doesn't match the source. Both sides of the lookup are uppercased and trimmed, so casing and leading/trailing whitespace don't matter — but interior whitespace, punctuation, and trailing periods do.
THIRSTandTHIRST.are different keys. -
Source has placeholders. If the in-game text is something like
PRICE TOTAL: 149, the key isn'tPRICE TOTAL: 149— it'sPRICE TOTAL: {0}. See Translation Patterns. - File didn't reload. Press F8 again; check the console for any parse error on the last reload.
- The line is one of the few the game overwrites. A small set of teletext lines is documented as un-translatable on translate_teletext.txt.
- Check the
[FONTS]mapping inconfig.txt— the original font name on the left must match what the game actually uses, and the right-hand name must match a font asset inside yourfonts.unity3d. - Confirm
fonts.unity3dis inMods/Assets/MWC_Localization_Core/(not inMods/directly). - Watch the console after F8 — it logs
Loaded [font] for [original]on successful mappings. A missing log line means either the bundle didn't load or the name doesn't match. - See Creating font assetbundle for the asset-side workflow.
- Find the GameObject path of the affected TextMesh (see Text Adjustments for how).
- Add an entry to
[POSITION_ADJUSTMENTS]inconfig.txt. - F8 to reload, look at the result, repeat. Position tuning is iterative — expect three or four cycles per element.
Some text only exists in one scene. The plugin re-runs its initial translation pass when entering the GAME scene from MainMenu and prunes destroyed-object cache entries on scene change. If your translation appears in the menu but not in-world, F8 once you've loaded in.
If F8 doesn't fix it, the source string for that element may differ between scenes (the game sometimes reuses the same label with different wording). Check the console for any "no translation found" hints, or grep your translation files for partial matches.
That's the "drifting sheet" problem — the game's own Update is rewriting the TextMesh. The plugin auto-pins a few known-bad sheets (parts magazine, mainly); if you've hit a new one, file an issue with the GameObject path. See Text Adjustments.
Before publishing a language pack, walk through this at least once:
- Main menu reads cleanly in your language.
- Start a new game — the loading-year screen, intro, and HUD all read correctly.
- Open the inventory, pause menu, options menu — confirm no obvious overflow.
- Drive to Peräjärvi store and back; check the store UI and the magazine.
- Trigger the unemployment letter, a service payment receipt, and a post order.
- Turn on the TV, flip through teletext pages (news, weather, recipes, sports).
- Press F8 to confirm everything still reads correctly after a hot reload.
When something is wrong, fix it, F8, and re-check. That's the whole loop.
Getting Started
Translation Files
- Configuration
- translate.txt
- translate_magazine.txt
- translate_teletext.txt
- Optional Files
- Translation Patterns
Advanced
- Text Adjustments
- Testing & Debugging
- Creating font assetbundle
- Creating texture pack
- Setting up development environment
Community