Current Guild Map
The legacy guild system is string-driven and unevenly wired. A fully live guild
usually has a name in GUILD_NAMES, a restriction row in guildd.c, a soul
object that adds command paths, in-game help under /doc/guild, and a soul path
in GUILD_D->query_guild_soul_path() so missing guild objects can be repaired.
The current implementation should be treated as evidence, not a clean spec. Some names are fully playable systems, some are old prototypes, and some are registry placeholders.
Live GuildD Soul Paths
These guilds have explicit repair paths in setup_guild_soul_paths() and are the
most reliable picture of what the game currently expects to keep alive.
| Guild | Code root | Soul | Commands | Help |
|---|---|---|---|---|
| Bard | /guilds/bard | /guilds/bard/obj/bardsoul | /cmds/guilds/bard | /doc/guild/bard |
| Cleric_Mitra | /guilds/mitra | /guilds/mitra/mitra_soul | /cmds/guilds/mitra | /doc/guild/clericmitra |
| Dragon | /guilds/dragon | /guilds/dragon/obj/dragon_so | /cmds/guilds/dragon | /doc/guild/dragon |
| Druid | /guilds/druid | /guilds/druid/objects/druid_soul | /cmds/guilds/druid | /doc/guild/druid |
| Fighter | /guilds/fighter | /guilds/fighter/fighter_soul | /cmds/guilds/fighter | /doc/guild/fighter |
| Garou | /guilds/were | /guilds/were/guild_ob | /cmds/guilds/garou | /doc/guild/garou |
| Lunar | /guilds/lunar | /guilds/lunar/objects/lunar_soul | /cmds/guilds/lunar | /doc/guild/lunar |
| Mage | /guilds/mage | /guilds/mage/magesoul | /cmds/guilds/mage | /doc/guild/mage |
| Monk | /guilds/monk | /guilds/monk/monk_soul | /cmds/guilds/monk | /doc/guild/monks |
| Necro | /guilds/necro | /guilds/necro/guild_soul | /cmds/guilds/necro | /doc/guild/necro |
| Ninja | /guilds/ninja | /guilds/ninja/guild_soul | /cmds/guilds/ninja | /doc/guild/ninja |
| Paladin | /guilds/paladin | /guilds/paladin/obj/paladin_soul | /cmds/guilds/paladin | /doc/guild/paladin |
| Priest | /guilds/priest | /guilds/priest/guild_soul | /cmds/guilds/priest | /doc/guild/priest |
| Psionicist | /guilds/psion | /guilds/psion/objects/p_soul | /cmds/guilds/psion | /doc/guild/psionicist |
| Ranger | /guilds/ranger | /guilds/ranger/ranger_soul | /cmds/guilds/ranger | /doc/guild/ranger |
| Swashbuckler | /guilds/swashbuckler | /guilds/swashbuckler/guild_soul | /cmds/guilds/swashbuckler | /doc/guild/swashbuckler |
| Thief | /guilds/thief | /guilds/thief/thief_so | /cmds/guilds/thief | /doc/guild/thief |
Registry Shape
GUILD_NAMES currently includes the standard guilds plus mythic or later-era
guilds:
- Standard/old alignment guilds: Bard, Berserker, Cleric_Mitra, Fighter, Garou, Lunar, Mage, Ninja, Paladin, Priest, Psionicist, Swashbuckler, Thief.
- Mythic/later-era guilds: Ubergarou, BattleMage, BloodMage, Deathknight, Dragon, Druid, Glyph, Monk, Morpher, Necro, Ranger, Samurai, Vampire.
The alignment model is still visible in dual-guild rules:
- Neutral: Bard, Berserker, Fighter, Psionicist, Swashbuckler.
- Gaea: Druid, Garou, Lunar, Ninja.
- Mitra: Cleric_Mitra, Mage, Paladin.
- Set: Priest, Thief.
Several later guilds opt out of dualing entirely. Dragon, Monk, Morpher, Necro, and Vampire all have empty dual-allow lists.
Implementation Patterns
Guild souls are wearable or inventory objects. They call CMD_D->add_path() for
guild command directories, connect the player to channels, provide login/logout
messages, and often hold persistent guild state.
Guild identity is stored by string name on the player. That makes name drift
important: Ubergarou and UberGarou both appear, Cleric_Mitra uses a code
root named mitra, and the current Set guild is Priest while older Set code
still exists under /guilds/set.
GUILD_D is the shared enforcement point for equipment restrictions, guild
entrances, combat modifiers, HP/SP formulas, and the soul repair map. A guild
can have a large code tree and still be effectively disconnected if it is not
present in the soul path or entrance maps.
The old in-game help files are often more complete than the implementation
headers. Treat them as player-facing intent, then verify against souls, commands,
and GUILD_D before relying on a detail.
Known Inconsistencies
CHARLATANcurrently aliasesBARDinguildd.h, but a separate Charlatan tree, command set, help tree, and entrance still exist.Samuraiappears inGUILD_NAMES, but it is missing from theGUILD_FIELDSmapping used elsewhere and has no GuildD soul repair path.Morpherhas substantial code and commands, but no GuildD soul repair path or default entrance route.Druidhelp lists powers beyond the max level declared inguildd.h.Deathknighthas entrance references for Souvrael and Kerei, but no matching top-level guild tree in this checkout.Vampire,BloodMage,UberGarou, andBerserkerhave registry traces but no complete current guild tree wired like the live guilds.