Unlocking the Halo: Campaign Evolved Secret Debug Menu

daveidol1 pts0 comments

Unlocking The Halo: Campaign Evolved Secret Debug Menu | Den Delimarsky&darr;Skip to main content<br>Unlocking The Halo: Campaign Evolved Secret Debug Menu<br>https://den.dev/blog/halo-campaign-evolved-secret-menu/<br>Den DelimarskyJuly 25, 2026July 25, 2026<br>halo<br>halo-api<br>halo-campaign-evolved<br>games<br>reverse-engineering<br>tools

Table of Contents

This blog post is part of a series on exploring the Halo: Campaign Evolved game API.<br>I still vividly remember the day at the Halo World Championship 2025, when Halo Studios announced Halo: Campaign Evolved. New graphics, more missions, and a dive towards Unreal Engine instead of Slipspace. Lots to be excited about!<br>Naturally, when the game first became available, I just had to get it and start playing through the campaign. Now, despite the fact that some folks can complain about the fact that there is no multiplayer, this was not a major detractor for me - I&rsquo;ve always been a campaign-first kind of guy.<br>But if you know me, you also know that I love looking under the hood of the released Halo games - just think of how much time I spent on random Halo API explorations. When I got the build installed on my local machine, the first question I had was &ldquo;What can I tinker with in this game?&rdquo;<br>Halo: Campaign Evolved loading screen.You can watch the video if you want a more hands-on explanation:

Unreal Engine rules everything around me #<br>The first stop was, of course, the install folder. Halo: Campaign Evolved sits in your Steam library under steamapps/common/Halo Campaign Evolved, and the moment you open it you can tell what you&rsquo;re dealing with:<br>Halo Campaign Evolved/<br>├── Engine/<br>├── DigitalExtras/<br>└── Meteorite/<br>├── Binaries/Win64/HaloCampaignEvolved.exe<br>└── Content/Paks/<br>That Meteorite folder is the interesting part - it&rsquo;s clearly the codename for the game, and it shows up everywhere (including the REST APIs, where it&rsquo;s referred to as mtr). The build string baked into the executable spells the whole thing out, if you had any doubts:<br>5.5.4-2026.06.26.1097863.1-Rel-i343-Meteorite-2606-CU2<br>Unreal Engine 5.5.4 (I am pretty positive that&rsquo;s what this is, but it&rsquo;s conjecture), built on June 26, changelist 1097863, from a branch called Rel-i343-Meteorite. The i343 prefix is also unsurprisingly popping up everywhere - you&rsquo;ll see paths like Engine/Plugins/i343/BlamEngine scattered through the binary, which is a delightful detail if you are a diehard Halo fan. The classic Halo &ldquo;Blam&rdquo; engine (or, whatever pieces of it remain - I have no clue) now lives as an Unreal plugin.<br>With UE, all the game content lives in Meteorite/Content/Paks, and there&rsquo;s a lot to unpack (hah!) there. A keen eye will spot two file types:<br>.pak - the classic Unreal package format<br>.utoc and .ucas - the newer IoStore container format that UE5 uses for most cooked assets<br>For my exploration, I started with .pak files only - that was more than enough, as it turns out. To extract content from it, I used repak from Truman Kilen.

This is a third-party tool, right? Is it OK for me to use it on my machine?

While these tools do what they were designed to do and I have no reason to believe they are in any way, shape, or form malicious, I cannot vouch for their safety and reliability! As with any external project (mine included, by the way), always exercise caution and define the trust boundaries where you want to run them. When I was experimenting with extraction using repak, I ran everything through isolated containers with mounted data folders.

repak needs an Oodle decompressor to do anything useful, since that&rsquo;s what the containers are compressed with. You can often get the required decompressor library from Steam games that bundle it in the distribution themselves.<br>The file that I wanted to unpack first is pakchunk0-Windows.pak (roughly two and a half GB in size). Because I saw that quite a few settings in the game in %LOCALAPPDATA% and within its own folder uses *.ini, I decided to intentionally narrow down my search to those files.<br>One repak list later:<br>$ repak list pakchunk0-Windows.pak | grep -i '\.ini$' | wc -l<br>145

That means there are 145 configuration files, in plain text, inside the PAK. Including one that caught my attention right away:<br>Meteorite/Config/DefaultGame.ini

My hunch was that it contained some default game state that controls its general behavior. Because I have no intimate knowledge of how everything works here, this seemed like a reasonable starting point, so I extracted it.<br>$ repak get pakchunk0-Windows.pak "Meteorite/Config/DefaultGame.ini" > DefaultGame.ini

This resulted in 27 KB of internal settings. There&rsquo;s a lot there that I won&rsquo;t really list here, since it&rsquo;s mostly irrelevant to what I wanted to talk about in this blog post. However, about two thirds of the way down, this came up:<br>[/Script/Meteorite.DebugMenuSettings]<br>bEnableDebugMenuBetaNonShipping=True<br>bEnableDebugMenuReleaseNonShipping=True

I...

halo campaign rsquo evolved meteorite game

Related Articles