Risk of Rain 2 Language File Editor

Simplifies editing files like Items.txt and Equipment.txt for custom item names and descriptions.

What do I do? How does this work? Why?

What to do, the quick version

(To get detailed descriptions in game, and make any other changes you want)
  1. Browse for and select all the files in steamapps/common/Risk of Rain 2/Risk of Rain 2_Data/StreamingAssets/Language/en
  2. Make sure Tooltip/Pick-up text is still set to Only use description
  3. (Optional) Load a pre-exisiting .patch.json file with changes
  4. (Optional) Merge pre-modified language .txt files to import their changes
  5. (Optional) Make any changes you want in the text boxes below each preview

    You can use the filter boxes to narrow down what you are looking for, or search the page with Ctrl+F

  6. Click Save standard patch, and place the file in the /en folder, and [re-]open your game

Contact and support

You can @Xuerian on the Risk of Rain 2 Modding discord, or open an issue on GitHub

Questions and Answers

How does this work?
Risk of Rain 2's language files are json files. This compiles your modifications into a single json file that you use to override the text in game.
Why not just edit the text files directly?
If the game patches, those changes are lost. If you try to just copy the modified files over the new ones, you'll probably be missing new text.
Creating a patch preserves changes through game updates, and doesn't clobber the game's language updates.
Also, editing the language files in something like Notepad++ works, but is far more laborious than using the editing section in this tool.
I thought you had to save individual modified text files?
You can save your modifications in a single file. So long as it is alphabetically after any other .txt or .json files, it will apply over them
How do language files work? Isn't their name important?
Risk of Rain 2's language files are really json files with tokens and values, like "ITEM_BEAR_NAME": "Teddy Bear".
Each language file (Equipment.txt, Items.txt, etc) only contains one set of tokens (EQUIPMENT_*, ITEM_*) by default, and that's to make them easier to manage for the developers
However, since all the files are really a json table of {"Strings": {"ITEM_BEAR_NAME": "Teddy Bear", [etc]}, you can override lines from any file want in a separate, single file
Why zz_*.patch.json?
zz_ makes sure the game loads the file last. I prefer to use .json for the files, since they are json files. .patch is there to make it easy for this tool to suggest what files to open (It can only suggest extensions)
Any .txt or .json file name will work, so long as it is alphabetically last
What if I want to make it a separate in-game language?
(This is a good idea)
  1. Make a new language folder next to /en
  2. Copy language.json into it from English, and change "English" as desired
  3. Save patch file into new language folder
  4. Select new language in game
  5. Switch to English and back to see changes in-game
I've already modified the language files, how do I use this?
  1. Copy your modified files to another folder
  2. Repair your game so the base language files are replaced (so the tool can tell what has been changed)
  3. Open the base language files on the left
  4. Open your modified language files on the right
  5. Follow the instructions as normal. (I suggest making a separate language)
What if I want to make it a mod for the Thunderstore?
Make a new mod, depend on R2API, then include include a copy of the patch with the .language extension
See the mod RiskOfBrain as an example
Will this page make any changes in my computer, or to my language files?
No. You have to save the file yourself.
What if I want to edit someone else's mod for myself?
Open the base language files, then merge their .language file
Load language files to edit
Base game language

Start here!

Browse for and select all the files in steamapps/common/Risk of Rain 2/Risk of Rain 2_Data/StreamingAssets/Language/en

Tooltip/Pick-up text:
(Optional) Pre-existing patch

Base languages must be loaded before applying a patch

A *.patch.json file generated by this tool

(Optional) Merge files

Base languages must be loaded before merging

You can merge manually-modified language files after opening the base language.

Standard language patch

Save to steamapps/common/Risk of Rain 2/Risk of Rain 2_Data/StreamingAssets/Language/en

(Optional) R2API Language file

To load with R2API as a plugin, place .language file in BepInEx/Plugins/{SomeFolder}/

(This is just the patch file with a .language extension, which R2API will load)


Filter
In-game styles: cIsHealth cIsDamage cIsHealing cIsUtility cIsVoid cHumanObjective cLunarObjective cStack cWorldEvent cArtifact cUserSetting cDeath cSub cMono cShrine cEvent

For example: <style=cIsHealth>Health-red text<style> <color=#FF00FF>Purple text</color> <i>Italic</i> <u>Underline</u> <s>Strikethrough</s>

More styling options are usable in game, refer to the documentation. (Additional styling may not be visible in previews. See documentation for other supported HTML-like tags)