Navigating Unreal Engine’s source code

Navigating the Unreal code base can be… fraught. Last I checked there were over two hundred thousand files to sort through, and you probably only care about one hundred thousand of those at any given time. Haha! After realizing that even Visual Studio’s 2022 Find in Files isn’t quite up to the task, Entrian and Entrian alternatives are the first places to look.

If you’re willing to part with the very reasonable cost, Entrian Source Search is a very solid option. Once you have it installed and pointed at your source directories, pressing Alt-= on any symbol instantly brings up everywhere it’s used.

If you’re on a tighter budget, a reasonable Entrian alternative is vsChromium, which has nearly the same effect, but for the low low price of free and with slightly more configuration required on your part. It was originally made to navigate the ponderous Chromium source, but luckily it plays nicely with Unreal as well. vsChromium uses Ctrl-Shift-: to pop up your search, a slight muscle memory adjustment from Entrian. The easiest way to get started is by taking an existing vs-chromium-project.txt file which is set up for Unreal and putting it next to your solution. Here’s mine:

It’s configured to include most relevant code files, and ignore a few directories which balloon the index (Experimental and ICU) which you could consider removing if those folders pique your interest.

Both of these greatly improve your time spent lost in the desert… but for traversing across large files, these solutions can still feel a bit cumbersome (800 KB MaterialExpressions.cpp?). For this I like to use the handy LiteSearch, which collapses the rest of the file except for lines containing the symbol you have selected with a quick toggle of Ctrl-M, Ctrl-K! Sometimes you just need to see all 52 instances of GetInputType at the same time:

Oh that’s what GetInputType does…

When you’re suitably disgusted, toggling it again puts things back to normal. Sweet relief.

Hopefully this can help you as you hack your way through the wilderness! Good luck out there!