(Steam/Bethesda) Rage 2 (Apex Engine) Hacking/Modding

Add topics here with methods, analysis, code snippets, mods etc. for a certain game that normally won't make it in the Tables or Requests sections.
Post Reply
What is cheating?
What is cheating?
Posts: 1
Joined: Tue Oct 05, 2021 8:19 am
Reputation: 0

(Steam/Bethesda) Rage 2 (Apex Engine) Hacking/Modding

Post by klnnurv »

Long story short, I'm trying to figure out some tricks that would enable modding Rage 2. The more I try, the more it looks like Avalanche and/or Bethesda really don't want anyone messing with it, so I try harder.

@Sunbeam's tables/efforts have been a great help in understanding some of this frustrating black box. Unfortunately, try as I might, I cant find any way to get outside the allowed map area. I did explore the whole map last year using the glitch posted in the table thread (viewtopic.php?p=167426#p167426), and there's evidence for some scrapped DLC or plot lines. It's like a tease. There's several places where its clear that more regions, roads and settlements/locations were planned.

I've tried to get free camera working, using SunBeam's table as a starting point. No luck. I have been able to decompress the game archives with Deca, which has given some insight into how things work.
The (complete) map itself is a grid of 64x64 tiles. Each tile is about 800Kb in size but I don't know how to parse them. The extension is .streampatch. There's also a single file named global_heightfield.rawc, which is 1024Kb. That's too small to be map data so Its likely some sort of schema for parsing the rest of the map. Parsing these would allow making an uncensored 2d map.
Playable regions are defined in global_regions.blo. Non playable regions ("Leaving Known World" and the deep canyons) are defined in global_rejection_zones.blo. These are each defined as a 12 element matrix. The function in the exe that handles these seems to be cSpawnSuppressor. This function also prevents random/roadside encounters from spawning outside the playable regions. This leads me to believe that if new regions and roads could be defined, random/roadside encounters would spawn near to the player without any extra work.
Deca can supposedly re-encode the text files/scripts and build mods, but I haven't been able to make it work. And even if I could build a mod file, without knowing the full list of command line options I don't know if/how it could be loaded.
Poking around with IDA, it looks very much like Rage 2 does parse console input from somewhere. That doesn't mean there's a console though. If nobody else has found one, my chances are low. However, the debug mode seems to be dependent on the account used to login to Bethesda.net. Meaning that the shipped binary has full debug functionality included, but it only gets enabled when an authorized developer logs in.

I would be grateful for any hints or pointers so that I can do the following:
- getting the absolute position of the camera anywhere in the world
- globally disabling 'instant kill' zones.
- re-encoding rtpc-encoded and adf-encoded .bl and .blo files
- telling the game to load uncompressed/loose files instead of .arc files
- parsing the regions and rejection zones into absolute coordinates
- parsing the terrain data into a more common 2D image or 3D elevation/surface format.

I can share samples of what I've found, just not so much that it gets on Bethesda's radar too quick.

Final thoughts:

Post Reply

Who is online

Users browsing this forum: No registered users