About Localization
From ThunderstoreRuntime translation/localization helper for Valheim mods.
Localization
Localization is a runtime translation helper for Valheim mods. It intercepts text right before it is displayed and replaces it with values from JSON rule files.
This mod is meant to help translate hardcoded mod UI text. It does not generate translations by itself; you provide the translation rules.
What this mod does
- Intercepts final UI text assignments for
TMPro.TMP_Text.text,TMPro.TMP_Text.SetText(string, bool), andUnityEngine.UI.Text.text. - Applies
exactrules for full-string matches andtemplatesrules for placeholder-based matches. - Re-runs rewritten text through the rule engine so an English baseline alias can normalize non-English hardcoded text before the active language translation is applied.
- Strips supported rich-text tags from intercepted input before matching and compares exact rules with
OrdinalIgnoreCase. - Loads rule files from
BepInEx/config/com.paxton0505.localization/<LanguageCode>/*.json. - Uses
English/*.jsonas an optional shared baseline. - Reloads rules when the active game language changes.
- Supports a top-level
translation_enabledruntime toggle in the localconfig.yaml. - Includes an in-game devtools overlay for live trace, browser, performance, and playground workflows on clients, enabled by default with
Ctrl + F1. - Supports session-only ServerSync overlays when both server and client run the mod.
- Keeps server-synced rules in memory only and does not write them into the client's local JSON files.
What this mod does not do
- It does not machine-translate text for you.
- It does not modify the source files of other mods.
- It does not save server overlays to disk after the session ends.
- On a dedicated server it does not run local UI translation patches, because there is no local UI to patch.
Before / After
Install
- Install the mod from Thunderstore. The declared dependencies are installed automatically:
BepInExPack_Valheim,Jotunn, andJsonDotNET. - If you install manually, place
Localization.dllinBepInEx/plugins. - Launch the game once so
config.yaml, the plugin-localization files, and the language folders are created. - Create one or more rule files under
BepInEx/config/com.paxton0505.localization/<LanguageCode>/. - If you want server-provided overlays, install the mod on both server and clients.
Localization.dll already bundles the ServerSync implementation used by this mod. You do not need to add a separate ServerSync DLL for this plugin.
Folder layout
Example structure:
BepInEx/
config/
com.paxton0505.localization/
config.yaml
Localization-English.json
Localization-Chinese_Trad.json
English/
Common.json
Chinese_Trad/
MyMod.json
Englishis optional and can be used as a shared baseline.- The active language folder should match the game's language name, for example
Chinese_Trad. - Files inside each language folder are loaded in alphabetical order by file name.
Localization-*.jsonfiles are for the plugin's own overlay, status text, and fallback log strings.
Optional runtime settings
The plugin creates BepInEx/config/com.paxton0505.localization/config.yaml on startup if it is missing.
translation_enabled: true
debug: false
whole_string_longest_match_mode: per_word
whole_string_longest_match_min_length: 5
trace_feed_max_entries: 1024
devtools_enabled: true
devtools_toggle_shortcut: LeftControl + F1
Set translation_enabled: false to bypass the entire translation pipeline. While it is false, intercepted UI text is left unchanged and the runtime skips rule reloads until translation is enabled again.
Set debug: true to enable runtime debug mode.
whole_string_longest_match_mode controls whole-string longest-match exact replacement:
per_word: only replace spans that start and end on word boundaries.min_length: only replace spans whose visible letter/digit count is at leastwhole_string_longest_match_min_length.off: keeps the legacy unrestricted greedy behavior.
When enabled, the log includes intercepted UI strings before translation, cache hits and miss-cache hits, the winning match stage, placeholder-resolution details, and per-file rule-load diagnostics.
trace_feed_max_entries controls how many unique entries the Trace page keeps before it evicts the oldest ones.
devtools_enabled turns the in-game overlay on or off.
devtools_toggle_shortcut controls the overlay hotkey. The config file uses raw key names such as LeftControl + F1, while the in-game UI shows the same shortcut as Ctrl + F1.
translation_enabled, debug, whole_string_longest_match_*, trace_feed_max_entries, and devtools_* all come from the local config.yaml. ServerSync does not override runtime settings.
Built-in devtools overlay
On client builds, Localization includes an in-game devtools overlay that is enabled by default and opens with Ctrl + F1 in the UI (LeftControl + F1 in config.yaml).
Pluginexposes live toggles for translation, debug mode, whole-string longest-match settings, trace-feed capacity, and the overlay shortcut.Performanceshows loaded-rule counts, cache sizes, hit rates, timings, and lets you reset metrics.Tracecaptures unique intercepted strings, lets you pause/search the feed, and shows per-stage translation analysis for the selected entry.Browsergroups loaded local and server rules by source, language, and file name.Playgroundlets you draft exact/template rules, preview them against saved and loaded rules, and copy bare JSON.
Highlights
From source dataLoaders
Runs on BepInEx.
Footprint
Rated a light load on a server.
Last update
Its author last shipped an update 6 mo ago.
Localization on Nxeon
From our catalogue- One-click install
- Supported on Nxeon Valheim servers, for BepInEx servers. We download it from Thunderstore, place it, and restart the server.
- Server type needed
- BepInEx
- Server load
- light
- Smallest plan we suggest
- Valheim — 4 GB (4 GB RAM). This follows our own load rating above, not a benchmark.
- Latest build
- 2.0.1, released 2026-05-16
Game versions by loader
| Loader | Game versions | Newest |
|---|---|---|
| BepInEx |
From 15 recorded builds of Localization.
Recent builds
| Build | Released | Game versions | Loaders |
|---|---|---|---|
| 2.0.1 | 2026-05-16 | n/a | BepInEx |
| 2.0.0 | 2026-05-16 | n/a | BepInEx |
| 1.3.0 | 2026-05-14 | n/a | BepInEx |
| 1.2.4 | 2026-05-13 | n/a | BepInEx |
| 1.2.3 | 2026-05-13 | n/a | BepInEx |
| 1.2.2 | 2026-05-13 | n/a | BepInEx |
Dependencies
- Required: JsonDotNET
- Required: BepInExPack Valheim
- Required: Jotunn
Declared by the newest build that lists any. Required ones are installed with it on one-click installs.
Run Localization on a Valheim server
Pick a server or deploy a new one above; it is installed in one click.
What kind of mod it is
From the catalogGameplay & overhauls
New mechanics, content and overhauls that change how the game plays.
Compatibility
- Game
- Valheim
- Loaders
- BepInEx
- Requires
- One-click install needs a BepInEx server.
Verified at the source
- ✓ThunderstoreOfficial listing, checked 2026-10-02Open ↗
- ✓AuthorPaxton0505, as published on Thunderstore
- ✓LicenseNot published by the sourceFree






