HUDGEN
A tool for seamless HUD updating and generation written in NodeJS
Github
Years ago I was a maintainer of GIVHUD (Gamemaster's Improved Vanilla HUD). GIVHUD was a fork of IVHUD, meant to accommodate a nicer looking and easier to read stock HUD. The HUD had not been touched in about 3 years time. I recently have released a version 2.0.0 to try and accommodate up to Halloween 2018 (A few bugs are expected).
I originally considered doing so by hand, but found so tedious, especially with my disconnect from the game and various, poorly documented, HUD changes.
As such, I have written a utility to handle HUD comparisons. The utility is known as HUDGEN.
I have written a comprehensive release of it at https://huds.tf/forum/showthread.php?tid=1322&pid=5357#pid5357 along with source code. The tool is written in NodeJS.
In short, what the tool does is takes a custom HUD (any HUD will do, find one at huds.tf). It will take that HUD from VDF and convert it into JSON (JavaScript Object Notation). The user also provides the latest copy of the stock TF2 HUD, this too, is converted into JSON. The two are then deep compared and all output is put back out in VDF (the standard format for HUDs)
Once the utility has two JSON forms of the custom HUD and the stock HUD, two things generated. The first is a diff (additions and edits that occurred in the custom HUD only). This is a fantastic view to see what the HUD creator has done to change this HUD.
Once the above diff is generated, the diff is then compared against the stock HUD. A HUD is outputted as a result. This output is a comprehensive comparison of the diff and the stock HUD.
A deep comparison is done to generate a brand new custom HUD. All values that exist in both custom and stock are added to output, prioritizing the custom HUD values. Any values that do not exist in the custom HUD that do exist in stock, are added to the output. This ensures that any new content not previously existent in a custom HUD will get output--This is powerful, ensuring that no HUD can be outdated.
For a tl;dr perspective:
* This tool extrapolates out changes made in a custom HUD
* This tool can be used to seamlessly update dated HUDs to be compliant with the most recent stock HUD in TF2.
* This tool is great for HUD devs to quickly make releases and iterations on their own HUDs