Net Worthless
Translate the game
Net Worthless ships in eleven languages. If yours is not one of them, or you would word ours differently, you can fix that yourself: the game reads translation files from a folder on your computer. No tools, no mods, no coding. A text editor is enough, and an AI chat makes it a weekend job instead of a month.
Quick start
Five steps.
- Export the templateIn the game, open Settings → Language and press Export English template. The complete English text lands in the translations folder as
_template_en.json. - Open the folderPress Open translations folder in the same place. Copy
_template_en.jsonand rename the copy to your language code, for exampleja.jsonfor Japanese (how to name it). - TranslateOpen your copy in any text editor and translate the text after each colon. Do it by hand, or feed it to an AI with the prompt below. You do not have to finish: anything you leave out shows in English.
- ReloadBack in the game, press Reload translations. No restart needed, so you can edit and reload as often as you like.
- Pick your languageOpen the language list. Your file appears under Community translations. Pick it, and the game switches on the spot.
Files and names
Name the file after the language.
The file name is the language code, then .json. The code is two or three lowercase letters, optionally followed by an underscore and a region (two capital letters or three digits) or a script (four letters, first one capital). Anything else is ignored, and so is every file whose name starts with an underscore, which is why the template does not show up as a language.
ja.jsonJapaneseko.jsonKoreanit.jsonItaliannl.jsonDutchcs.jsonCzechhu.jsonHungarianvi.jsonVietnameseid.jsonIndonesianpt_PT.jsonPortuguese (Portugal)zh_TW.jsonTraditional Chinesesr_Latn.jsonSerbian (Latin)fil.jsonFilipinoWrong: Japanese.json, JA.json, ja-JP.json (a hyphen instead of an underscore), ja.json.txt (Windows hides the real extension; turn on File name extensions in Explorer's View menu to check).
Give your language its name
The language list shows whatever your file says for the key ui.settings.language.<code>. Add it, written the way speakers of the language write it, or the list shows the bare code:
{
"ui.settings.language.ja": "日本語",
"ui.button.quit": "終了",
"ui.button.start_run": "ゲーム開始"
}
Fix an existing translation
Name the file after a language the game already has, and your lines replace ours, one by one. Include only the lines you want to change: every line you leave out keeps the official text. The language list then shows that language as (modified), so you always know which version you are playing. Delete the file (and press Reload) to go back.
enEnglishruRussiandeGermanesSpanish (Spain)es_419Spanish (Latin America)pt_BRPortuguese (Brazil)frFrenchtrTurkishukUkrainianplPolishzh_CNSimplified ChineseTo find the line you want to change, search the template for the English wording you see in the game, then look up the same key in the shipped language. A fix file for Russian can be this small:
{
"_comment": "My tweaks to the Russian text. Keys starting with _ are ignored.",
"ui.button.quit": "Выйти из игры"
}
Where the folder is
The Open translations folder button takes you there and creates the folder if it is missing. If you would rather find it yourself:
- Windows
%APPDATA%\Godot\app_userdata\Net Worthless\locale- macOS
~/Library/Application Support/Godot/app_userdata/Net Worthless/locale- Linux / Steam Deck
~/.local/share/godot/app_userdata/Net Worthless/locale- The demo
- The same paths with
Net Worthless Demoin place ofNet Worthless. The demo and the full game keep separate folders, so copy your file to both if you play both.
Paste the Windows path into the Explorer address bar as is; %APPDATA% expands on its own.
The format
Translate the text, not the machinery.
The file is JSON: one line per piece of text, "key": "text",. The key on the left is how the game finds the line, so it never changes. Only the text on the right is yours. A few things inside the text are machinery too:
- Curly-brace placeholders like
{amount},{name},{count}are filled in by the game. Keep every one, spelled exactly the same. You can move it anywhere in the sentence. - Square-bracket tags like
[color=#46c98a]…[/color],[b]…[/b],[url=island]…[/url],[img=18 …]res://…[/img]and[lb]style the text or draw an icon. Translate the words between an opening and a closing tag; never the tag itself or ares://path. - Escapes:
\nis a line break and\"is a quotation mark inside the text. Keep them. A plain"inside the text breaks the file; use your language's own quotation marks instead (« », „ “, 「 」). - Names stay as they are: Net Worthless, Iron Will, nullary games, the people in the credits, and the game's made-up brands. They are all fictional on purpose; do not swap one for a real brand, film or celebrity.
- The number separator: set
ui.number.group_separatorto the character your language puts between thousands:","gives 1,000,000,"."gives 1.000.000," "gives 1 000 000. - Other language names (
ui.settings.language.ruand friends) are already written in their own language. Leave them. - Do not blank a line to skip it. An empty string is treated as missing and shows the English text, which is also what happens if you delete the line. Deleting is tidier.
How the game sounds
Dry, satirical, a little mean about money. It talks to the player informally, the way a friend would. Jokes and idioms should be re-created, not translated word for word: a line that sounds natural and a bit loose beats one that sounds translated. Button labels are short, because buttons are small.
Fonts
The game's fonts cover the Latin and Cyrillic alphabets and Simplified Chinese. For anything else (Japanese kana, Korean, Thai, Greek, Georgian, Hindi and so on) the letters show up as empty boxes until you add a font. Put a .ttf or .otf file next to your translation, with the same name: ko.json and ko.ttf. The game uses it while your language is on. The free Noto family covers almost every script; one regular-weight file is enough.
Translate with an AI
A prompt that knows the rules.
Any capable AI chat can do a solid first pass. The template holds about 5,800 lines, far more than a chat reply fits, so you send it in parts: paste the prompt once, then one part per message. The tools below split the template, check each translated part against the rules above, and glue the parts back into one file. Everything runs in your browser; nothing is uploaded.
1. The prompt
2. Split the template
Pick _template_en.json from the translations folder. 300 lines per part suits most chats; lower it if replies get cut off.
3. Check and combine
Paste each reply from the AI and press Add part (or pick saved part files). Every part is checked against the template: lost placeholders, broken tags and invented keys are listed so you can send those lines back for another try.
After a game update
Updates add new lines; until you translate them they show in English. Export the template again, load it in step 2, then add your current language file in step 3: Untranslated lines as a part gives you exactly the new lines to send to the AI.
When something is off
Troubleshooting.
My language does not show up
Press Reload translations: the message says how many files the game found. If yours is not counted, check the file name against the naming rules and make sure the file is valid JSON. Paste it into step 3 above: a syntax error is reported with its position. A file with a mistake is skipped as a whole, never half-loaded.
Letters show as empty boxes
The game's fonts do not cover your alphabet. Add a font file with the same name as your translation (Fonts).
I see {something} in curly braces in the game
A placeholder was renamed or translated. Compare that line with the template and restore the placeholder exactly. Step 3 above lists every such line.
Some lines are still in English
Those lines are missing from your file, or were left empty. That is by design: a partial translation still works. Use Untranslated lines as a part to collect them.
Text runs out of its button
Find a shorter word. Buttons do not grow, and a clipped label is worse than a plainer one.
I made a translation. Now what?
Share it with other players in the game's Steam discussions: they drop your file into the same folder and reload. We would love to see it too: [email protected].