String Modding

Information for people who are looking to create mods that affect Text.

Extracting Strings

See Extracting Resources before proceeding. You must have gameresources.resources extracted.

A string is a sequence of characters (text) that appears literally.

Extracting Tools

BlangJsonGeneratorUI by PowerBall253 - Download
Modifies BLANG files and exports the changes as JSON.

BlangJsonGenerator by PowerBall253 - Download
Exports BLANG files into JSON, a format that can be edited with raw text editor, such as Notepad++.

BlangParser by proteh - Download
Directly modifies BLANG files with a simple GUI.

Currently, there are no released packages for BlangParser.
You will either need to find a compiled version in the 2016+ Modding Discord server
or compile it with a C# compiler.

Each BLANG file usually range from 1.5 MB to 2 MB of storage.

Finding BLANG files

Extraction Instructions ( BlangJsonGenerator )

The output folder must end with .json

List of Resources

Resource Name Information
english.blang Contains strings for the English language
french.blang Contains strings for the French language
german.blang Contains strings for the German language
italian.blang Contains strings for the Italian language
japanese.blang Contains strings for the Japanese language
latin_spanish.blang Contains strings for the Latin American Spanish language
polish.blang Contains strings for the Polish language
portuguese.blang Contains strings for the Portuguese language
russian.blang Contains strings for the Russian language
simplified_chinese.blang Contains strings for the Simplified Chinese language
spanish.blang Contains strings for the European Spanish language
traditional_chinese.blang Contains strings for the Traditional Chinese language

 

Creating String Mods

See Extracting Strings before proceeding.

Make sure to backup the unmodified BLANG file.

Strings can be added to BLANG files, but you must reference them with decls files.

String Editing ( BlangJsonGeneratorUI )

screenshot.png

gameresources_patch1\EternalMod\strings

String Editing ( BlangJsonGenerator )

Any unused string can be deleted, so it can be compatible with other mods that affect other strings.

image-1631218573399.png

1) image-1631217604007.PNG
"identifier":
"name":

The "Replace with : " box is empty for screenshot 2.

2) image-1631217614687.PNG
"modified": 0

The "Replace with : " box is empty for screenshot 3.

3) image-1631217622425.PNG
^(?:[\t ]*(?:\r?\n|\r))+

image-1631218052834.png

gameresources_patch1\EternalMod\strings

The commas "," at the end of each string name and text are unnecessary and can be deleted.
However, they do not impact the syntax in any way.

Since JSON files can be edited with raw text editors,
you can execute scripts or regular expressions to edit strings more efficiently.

String Editing ( BlangParser )

The entire BLANG file will be modified, which means it will be incompatible with other string mods.

image-1631220049230.PNG

gameresources_patch1\strings

It is not recommended to delete existing string lines because DOOM Eternal will fail to recognize them.

String Customization

Strings can be customized to help specific characters stand out.

String customization applies to both BLANG files and idGuiEntity_Text entities.

Available Colors

Start with ^ then a character from the list below, then end with ^7
Ex: "^5sample text^7" (without quotations) This will make the text teal.

^a  -  Gold
^b  -  Light Blue
^c  -  Green Yellow
^d  -  Orange
^z  -  White
^0  -  Black
^1  -  Red
^2  -  Green
^3  -  Yellow
^4  -  Blue
^5  -  Teal
^6  -  Purple
^7  -  White
^8  -  Gray
^9  -  Black

In general, helpful tips are colored teal, dangerous threats are colored red.

Spacing

\n  -  New Line
\t   -  Tab

Examples

^2Green Yellow^7  ->  Green Yellow
^1Red^7 ^aGold^7  ->  Red Gold
^1R^7^da^7^3i^7^2n^7^5b^7^bo^7^6w^7  ->  Rainbow
This is a ^5sample^7 tip  ->  This is a sample tip
First line\nSecond line  ->  First line
                                               Second line
Sample\tText  ->  Sample     Text

Up to 9 separate color identifiers can be present in one string line.
Any additional colorization will cause some to be ignored.

See Also

String File Extensions

These are the string file types you will be interacting with.

.blang

String files that CANNOT be read by a raw text editor.
BLANG files CAN be re-injected into DOOM Eternal.
Example:
english.blang

.json

Extracted string files that CAN be read by a raw text editor.
JSON files CANNOT be re-injected into DOOM Eternal.
Example:
english.json