This is the first of a five part series I’m doing about my Star Citizen projects. The series will be covering a range of topics, primarily technical in nature.
- Part I: My early Star Citizen projects, HangarXPLOR and HoloXPLOR
- Part II: The CryTek model formats
- Part III: Cracking the CryXmlB and DataForge formats
- Part IV: Reversing the Spectrum social platform APIs
- Part V: Cracking the p4k archive format, and it’s embedded encryption
In late 2014, one of my friends got me to pledge for Star Citizen so we could try out the newly released racing game mode. I played it for a bit before putting the game down for a while.
I came back just over a year later, and this time focussed myself more on the combat game modes. I found them quite enjoyable, and it wasn’t long before I found myself spending more to upgrade my ship and try out the various ships available in the game. At the time, there was also a lucrative grey market where I was able to buy and sell in-game ships for real money, and make a small profit due to a currency-exchange loophole at the time. I dabbled in this grey market for a bit, and quickly amassed a collection of small ships known as “LTI tokens”, which were cheap, but in-demand.
This led to my first Star Citizen development effort, which was a small browser extension called HangarXPLOR which helped keep my purchases neatly organized, and it was immediately popular with the community. To this day, it has tens of thousands of installs across Chrome, Firefox and Opera, and requires minimal maintenance to keep it updated as new content is released for the game.
As a result of my efforts, I was invited by GrayHeadedGamer to appear on a live stream in early January 2016 called “Not So Sober Saturday”. There we discussed my extension, and eventually moved onto the topic of ideas for future projects that I might be interested in, and it was suggested that it would be nice to work on a tool to “fix” the in-game inventory management system, which many found difficult to use.
Initially, I didn’t think it would be a viable project, but after a little investigation, I found that the inventory was saved client-side at the time. I also found a reference design from Zane Bien, who would go on to become the Global UI Creative Director at CIG. I whipped up a quick prototype of what I was thinking of, and then shot a quick email off to Zane to check he was ok with me skinning the prototype with his designs. He replied and not only approved my use, but also mentioned he’d already seen my project and was excited to see where it went!
By the end of January, I’d launched a full version of the project under the name HoloXPLOR. I continued to add new features to it, such as the ability for it to automatically update itself, and dynamically compile serialization classes for the useful game data. It rapidly gained popularity, and served over 100,000 impressions within its first month.
As February drew to a close, CIG announced that they were bringing a new data format to Star Citizen in Around the Verse: Episode 2.19. Shortly afterwards, the new formats started appearing in the early-access environments. In my next post, I’ll go over some of the techniques I used to decipher these new formats, and keep HoloXPLOR operating for a few more months, before CIG released StarCitizen 2.4 and permanantly moved all user data server-side.