Thanks for testing it, I had time to look up on a debugger and see why my compressor doesn't work with ulz0 and I just found out why!
The formats ulz0 and ulz1 are nearly identical in terms of compression ratio and file structure.
The difference is how the ulz0 is decompressed, the game decompress data until gets a flag with just zero bytes (r11 has to be 0x00000000), that's why it uses 31 bits for the flags, the last one is always 1 until we finish the process.
Ulz2 looks for file size instead, it decompress until the output is big enough. Both formats stores the decompressed file size into the header, I used that information when I decompress in my script. That's why I was able to decompress both formats.
I'll publish the fix soon, I don't know why they adopted two formats, maybe they came from different internal teams.
What method should you use? It's up to you, I consider ulz2 better, it uses all the flags and should produce a smaller ulz file.
Meanwhile if you used ulz2 instead of ulz0 and it's working, it's perfectly fine, you don't have to change anything.