Repository navigation
config txt
config.txt is the language pack's control file. It declares what language you are and (optionally) how to map game fonts to your custom ones, plus per-element position tweaks.
The file uses an INI-style layout: a few top-level KEY = value lines, followed by [SECTION] blocks. Comments start with #.
LANGUAGE_NAME = Korean
LANGUAGE_CODE = ko-KR| Setting | Purpose | Examples |
|---|---|---|
LANGUAGE_NAME |
Display name shown to end users. Write it in the language's own script. |
Korean, Español, 日本語, Português
|
LANGUAGE_CODE |
ISO language code (xx-XX). |
ko-KR, es-ES, ja-JP, pt-BR
|
Both fields are free-text — the plugin doesn't validate them, but other tools and the in-game logs use them.
Older configs included a UNICODE_RANGES = … line. The plugin no longer reads it. You can leave it in place (it's ignored) or delete it.
If you ship a fonts.unity3d bundle (see Creating font assetbundle), this section tells the plugin which custom font to substitute for each game font:
[FONTS]
FugazOne-Regular = NanumSquareRoundEB
Heebo-Black = PaperlogyExtraBold
AlfaSlabOne-Regular = ROKAFSlabSerifBold
ArchivoBlack-Regular = PaperlogyExtraBold
Cour10Bd = D2Coding
RAGE = KyoboHandwriting2019
Dosis-SemiBold = TmoneyRoundWindExtraBold
Dosis-SemiBold LowCase = NanumSquareRoundEB
VT323-Regular = GalmuriMono11
DroidSerif-Bold = MaruBuri-Bold
PlayfairDisplay-Bold = MaruBuri-Bold
WalterTurncoat-Regular = MaruBuri-Bold
BLUEHIGD = D2Coding- Left side — the original game font's name. The shipping Korean pack covers most of the fonts the game actually uses; you can take the same list as a starting point.
-
Right side — the name of a font asset inside your
fonts.unity3d. Bundle and config must agree exactly.
If the [FONTS] section is missing, empty, or fonts.unity3d doesn't load, the plugin falls back to the default in-game fonts. That's fine for Latin-script languages.
For some screens that are heavy on the original font even when no translation matches (teletext display, the computer POS, the unemployment letter, rally/service sheets, classifieds magazine, TV graphics), the plugin force-applies the mapped font anyway so the layout stays consistent. You don't have to configure anything for that — it just happens for paths the plugin knows about internally.
This section tweaks the position, font size, line spacing, and width of individual TextMesh elements when a translation doesn't fit cleanly. Each line targets one or more UI paths and applies an offset:
[POSITION_ADJUSTMENTS]
Contains(GUI/HUD/) & EndsWith(/HUDLabel) = 0,-0.05,0
Contains(PERAPORTTI/ATMs/MoneyATM/Screen) & !Contains(/Row) & EndsWith(/Text) = 0,0.25,0
GameObjectEquals(Sheets/Magazine/List) = 0,-0.002,0This is a large topic with its own page — see Text Adjustments for the condition syntax, parameter format, and worked examples.
Save the file and press F8 in-world. The plugin re-reads config.txt, re-maps fonts, and re-applies position adjustments without restarting the game. See Testing & Debugging.
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