CS:GO game_text newline fixer
May 17, 2017
It’s been a little under 2 months since I rediscovered Valve had fixed game_text in CS:GO. At the time I mentioned how even newline would work with a little hex editing replacing a placeholder for newlines.
Of course while hex editing is easy, it is of course a very slow and manual process. When working with a very large binary file, there’s a high chance your placeholder character may appear at random inside the other BSP lump datas, so a replace all occurrence is NOT a very smart idea.
I finally got to a point where I was tired of manually hex editing my map each compile (91 replacements each time!), so I’ve written a small tool that can be integrated into Hammer as a compile step to automatically perform the replacements.
Available on github here
How does it work?
While you can’t add a newline to the vmf, you can add a placeholder character to replace later, and that is how this tool works. Say I want text to display:
Hello
World
In older source engine games, I could just specify Hello\nWorld
in a text editor and reload hammer. In CS:GO that will crash hammer, but with my tool, I could do the following: Hello+World
, and when used as a compile step, will produce the same Hello\nWorld
result in the resultant BSP.
How do I use it?
Its really simple, grab (or compile) the executable (vs2017 project included) and place the .exe wherever you want
- Create a build step inside Hammers compile configuration, immediately before the
Copy File
step. This build step you be anExecutable
; point it to this tool. - Set the Build Parameters to:
$path\$file.bsp +
(where+
is your placeholder character. - Compile!
Here is a sample of what the tool produces. The entire text is a single gametext entity: 