Back in the day, there was a NEED to figure out various things like UO packets, encryption, file-formats, etc - and tools and utilities to make use of what was discovered were created at the same time, often by the same people who figured out the stuff in the first place. Basically, they created the tools because they needed them.
Now, instead of new tools being the results of challenges overcome by developers, they're now for the most part just user-requested utilities that someone may or may not actually create, depending on how consistent the requests come in and how much free time the developer has to spare. Often these tools aren't even used by their developers, so they never see the "typical user"-side of it's usage, only test the various implemented functions as a developer would, and call it v1.0 when no obvious bugs are found
Much of the file-formats are known these days, the encryption is for most people just something obscure that UOGateway/Razor/UORice removes, the UO packets are documented (for the most part) - and any new ones are usually caught as soon as they arrive (or ignored until a certain feature is implemented).
Most tools have already been made in one form or another, and to recreate tools already made by others in the past, only better/different, isn't quite the same incentive as creating something new and "revolutionary" is. The lack of "challenges" for would-be developers of UO-related programs seems to me to be one of the major obstacles for the recruitation (is that a word?
) of fresh developer blood to the community.
At least, that's what my thoughts on the subject are
Others may disagree.