The new languages
- 简体中文 (Simplified Chinese)
- 日本語 (Japanese)
- 한국어 (Korean)
- Русский (Russian)
- Deutsch (German)
- Français (French)
- Español de España (Spanish, Spain)
- Português do Brasil (Portuguese, Brazil)
Everything you read in the game is translated: menus, machines, research, transmissions, achievements, DOCS and the Code Lab lessons. Your code stays the same in every language. Python keywords, function names and the game's API don't change, so a script you write or share works for everyone.
To switch, open Settings > Language and pick one. The game doesn't follow your Steam language on its own. The change takes effect straight away: on the main menu the game reloads in the new language, and during a game it saves and reopens your colony in it.
How these were translated
I want to be upfront: these translations were made with the help of AI. The game has more than 15,000 pieces of text, far more than I could translate by hand on my own, so instead of pasting text into a translator I built a translation pipeline around the game itself:
- Every piece of text is translated with its context: where it appears, what the mechanic behind it does, and the numbers or names that get filled into it.
- Every translation is then checked independently, in a separate pass that did not write it. Anything flagged is fixed and checked again.
- Text that belongs together, like transmissions and Code Lab lessons, is read as a whole so it flows and doesn't contradict itself.
- Game terms and machine names stay the same across every screen, and each language follows its own grammar, plurals and punctuation.
- Code, function names and anything you type in the editor are never translated.
Help me get them right
These translations are brand new, and a sentence can be correct and still sound wrong to someone who grew up speaking the language. If a line reads awkwardly, sounds too stiff, uses the wrong word for a game term, or doesn't fit on screen, please tell me.
Post it on the Discord.
How to join the experimental branch
You need the full game on Steam. This is an optional test version and may still contain bugs.
Back up your save first.
- On the main menu, open Load Game and use Export Save on your colony. Keep the file somewhere safe.
- Close the game. In your Steam Library, right-click Code: Terraform → Properties → Game Versions & Betas.
- Enter the password terra2exp367, select experimental, and wait for the download.
- Launch the game, open Settings > Language and pick your language. Your existing save continues normally.
To go back, choose the default version in the same Game Versions & Betas menu. If anything looks wrong afterwards, Import Backup on the Load Game screen brings back the copy you exported.
Also in 0.1.29
The experimental build carries the rest of the next update too:
- New research, Automations (50,000 TP), adds a Computer tab for scripts that belong to no machine: they keep running whatever the power, and any Unassigned script can be copied into one.
- The Data Archive now holds 2,048 entries and the Signal Bus 512 channels, and both pages stay quick at those sizes.
- Control Room boards with many busy cards now answer a click in well under a second instead of several seconds.
- Scripts can now import the collections module.
- isinstance and issubclass accept game classes such as Smelter and Component after from __builtins__ import ..., and a machine's class can no longer be changed by writing its type_id.
- The editor now understands type tests: after isinstance, type(x) == "Name", a type_id test, hasattr or match site.kind():, it offers the right methods and stops flagging code that is only valid for that type.
- Calling a method that only one kind of site has now tells you which kind has it and how to check for it first.
- Tooltips now show the return type on the signature line, and class hovers show the class docstring.
- VS Code, PyCharm and Zed can now Apply Library and Apply All Libraries, like the Computer's Library tab.
- Pioneer, Rover and drone cargo loads now report slots_full when every cargo slot holds another item, instead of target_full.
- Playground tabs can be reordered by dragging or with Alt+Arrow, the Playground output has an auto-scroll toggle, and F5 runs or continues the script.
- Settings and Bio Orders can now be searched, Find can be limited to a selection, and fleet rosters can be grouped.
- Notifications now show the icon of the tech, contract, achievement or item they are about.
- Send Error Report now includes the game's log files and console history, and the "simulation stopped" notice has its own Send Error Report button.
- Error reports now record what the simulation was doing when it stops, to help find the cause of a stop during autosave.
- Exotic deposit peak rates and Thermal Cap cycle timing now appear only after the matching survey reveals them.
- Planet Map biomes have more contrast.
- Saves with hundreds of open editor tabs load again: tabs you cannot see stay asleep until you open them.
- A Control Room card that calls any() or all() before its main loop no longer stops updating.
- Editor tab switching and debugger step keys now work from every tab and panel of a script window, and the Playground and Code Lab take Run, Stop and document keys anywhere on their screen.
- From inside the code you can now dock the editor, show or hide the console and switch windows with the keyboard.
- Fixed completion documentation shrinking to one line when the list opens near the bottom of the editor.
- Separate windows: a minimized window no longer sits on screen as a blank grey bar, a window that fails to open no longer stays listed, and Clear in a popped-out console now sticks.
- Holding a movement key in the editor no longer makes the cursor keep moving after you let go.
- The error for ~ on an unsupported value now reads as it does in Python, and the end screen console now scrolls instead of cutting off.
Thank you for playing, and for helping the game feel at home in your language.