Here is the source of an quick'n'dirty parser for the baddons.wcf file:

#include <stdint.h>
#include <stdio.h>

struct wcf
	uint32_t id;
	uint8_t  name_hash[16];
	uint8_t  version_hash[16];
	uint32_t extra;
	uint32_t islast;

static void print_wcf(struct wcf *wcf)
	printf("ID:      %d\n", wcf->id);
	printf("Name:    ");
	int i=0;
	for (; i < 16; ++i) {
		printf("%02x", wcf->name_hash[i]);
	printf("\nVersion: ");
	for (i=0; i < 16; ++i) {
		printf("%02x", wcf->version_hash[i]);
	printf("\nExtra:   %x\n", wcf->extra);
	printf("Last:    %s\n", wcf->islast ? "yes": "no");

int main(int argc, char **argv)
	FILE *baddons = fopen("baddons.wcf", "rb");

	while (!feof(baddons)) {
		struct wcf data;
		size_t len = fread(&data, sizeof(data), 1, baddons);
		if (!len) {


	return 0;

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.