ZDKP

ZDKP is a web platform built in 2006 for managing loot assignment, event signups, and guild rosters for the popular World of Warcraft mega-guild <Goon Squad>. Changes made to the game over the years have required some creative solutions to allow such a large group of players together and organized.

Origins

ZDKP began life as a next generation web based guild management system for <Goon Squad>, the largest Horde faction World of Warcraft guild in the US. <Goon Squad>, having grown past 1000 active members, and several hundred weekly raiders, had outgrown the game's built in guild management software as well as other raid management systems such as EQDKP and nDKP, which were designed for much smaller groups. With the first expansion looming, as the guild sysadmin, I was tasked with coming up with a roster and raid management system designed specifically for very large guilds with multiple concurrent weekly raid groups.

Burning Crusade: From loot to events

Throughout the first two expansion sets 2,069 unique players signed up 46,847 times to attend 3,122 events

The Burning Crusade expansion pack introduced a series of features that made the heavy weight loot management / DKP systems of classic WoW increasingly unnecessary. In particular, smaller 10 and 25 player raids (rather than 40) required less central coordination and badges/loot tokens removed much of the randomness that DKP systems helped smooth out. As a result many of the core systems of ZDKP turned out to not be necessary post expansion. The primary features to remain relevant were the roster and raid signup / scheduling system.

10 and 25 player raids meant that Goon Squad would be running more events than ever so I doubled down on technology for making that smooth. For ease of use for new players I integrated the ZDKP signup system into a module for the Guild's forum software. The login systems are syncronized for single sign-on convenience.

A Cataclysm for Mega-Guilds

When the game launched, World of Warcraft guilds allowed unlimited members but the built in guild management GUI stopped functioning usefully after 500 characters. As such, Goon Squad, and other mega-guilds, had to develop out of game workarounds to manage and organize large player rosters.

The Cataclysm expansion brought new challenges to the mega-guilds of Warcraft. Starting early in November 2010, guild size was capped at 600 characters in preparation for an expansion of the role of guilds in the game beyond a shared chat channel and guild bank. Now guild members would be able to work to improve the guild itself, with cooperation between guild members producing additional resources and exclusive rewards not available to lower ranked guilds. After a few weeks of gathering feedback, Blizzard raised the cap to 1000 characters, still well below <Goon Squad>'s roster at the time of about 4000 characters.

<Goon Squad> has had many tough decisions to make as a part of this, the final conclusion being that it had to split into a network of smaller guilds. ZDKP was significantly reworked at this time in order to provide the administrative structure for a handful of guild leaders to organize and maintain a coherent community split across five networked guilds.

Character Management

The largest change to ZDKP was the expansion of the character management system. Previously, ZDKP kept track of all human players, but the only in-game characters it tracked were those who used the event signup system. It also only kept character information as a convenience cache so that players did not have to re-enter character information for every event. It was not a canonical source of truth for which characters were actually in the guild.

Starting in Cataclysm, the character management system began keeping track of the characters of all players in all guilds. This included basic character management (claim new character, release character, character name changes, transferring characters to another player) as well as some additional character metadata, including play frequency and what guild they are assigned to. Play frequency is used to filter and hide characters in lists in other areas of the system, for example, so players don't have to wade through all of their bank alts and characters they never play when signing up for an event.

In order to allow players to get new characters into their chosen network guild quickly, without waiting for admin approval, ZDKP allows admins to define sets of rules for each network guild (in particular, limiting the number of characters in a certain guild by player account group) that are shown to users and automatically considered when allowing users to assign their characters to guilds.

Guild Invites

The guild invite tool was enhanced to confirm not only that a character is cleared for an invite, but which specific guild the character should be invited to. Volunteer inviters need only enter the character's name into the invite confirmation tool to check if they are authorized for that guild. Compared to the old system of digging through forum posts, an invite takes a negligible amount of time away from the game. Finally, Kayakyakr, one of the Guild's Lua coders built an in-game invite authorization checker that uses a data feed from the central database. These changes have made it easier to recruit, train, and retain inviters and improved invite speed and timezone coverage greatly.

For player convenience, lists of potential inviters to look for are now automatically generated from the character database by looking up which characters have the volunteer inviter rank in the guild they want an invite to.

Event Signups

The signup system was the most well developed part of ZDKP prior to Cataclysm and only minor changes were made. The highlights:

Armory Integration

Cataclysm had some new opportunities mixed in with the challeneges. One of the most exciting new features added to ZDKP was a nightly import of guild data via the new Blizzard XML Armory API. This data was used to automatically update character race and level information for player convenience as well as confirm that characters ended up in the guild they are supposed to be in. Reports based on this data were generated daily for guild admins to clean up the guild after rogue inviters and players who quit without removing themselves from the guild, freeing up guild slots for new characters. Additionally, a new ZDKP API was introduced for writing stats modules that query combined ZDKP/armory data. This allowed us to write fun (live updated) guild demographic reports for members.

Cross Guild Chat

While not strictly a part of the ZDKP character manager, it is worth mentioning that <Goon Squad>'s network guild solution would not have been possible without the CrossGuildChat mod written for us by LemonKing. This mod transparently linked the guild chat channels of all network guilds into a single stream. This mod was critical to keeping the in game social/chat player experience as close as possible to that of pre-cataclysm.

Recent Expansions

As of 2020, 4,910 unique players have used ZDKP to manage 16,313 characters across 5 subguilds on 2 servers. They have collectively signed up 149,147 times for 9,953 events

After the major tech push for Cataclysm I have continued to serve as guild sysadmin and tech consultant but have shifted focus to other projects for new development. I passed the lead developer role on the guild management tools to fellow officer Vedini who has continued to develop the signup technology as guild needs have evolved. Since then, he has fleshed out the stats and guild admin toolbox and the event signup system has been majorly overhauled a few times to account for new game features like Heroic and Mythic difficulty levels and the shift to roles over classes. He also implemented a major (and much needed) visual overhaul of the system to bring it more in line with modern standards.

WoW Classic's release in 2019 involved another update to allow management of multiple guilds across multiple servers. The system now handles events for both games and allows players to use an integrated signup system to manage their events across the whole family of guilds in one place.