GreenWall — Bridged Guild Chat for WoW Confederations
Stop juggling whispers and Discord channels just because Blizzard's 1,000-member guild cap forced your community into multiple guilds. GreenWall transparently bridges guild chat — and optionally officer chat — across every co-guild on a single realm or a connected-realm cluster, so a single conversation flows between all of them as if they were one guild.
The Problem
Blizzard caps guild membership at 1,000 characters. Active communities outgrow that fast, and the workaround — splitting into multiple guilds — fragments guild chat. Officers end up running parallel Discord channels, members lose track of who is in which sister guild, and join/leave events stop being visible across the whole community.
Existing bridge addons typically rely on a designated "gateway" member whose client relays the traffic. When that member logs out, the bridge dies. Configuration is done by every member individually, so newcomers can't see the bridged conversation until they set the addon up themselves.
The Solution
GreenWall uses a hidden custom chat channel as the transport. Every member of every co-guild joins the same channel automatically, and chat sent in any one co-guild's guild chat is replicated into the chat windows of every member of every other co-guild — routed through the channel, not through any one player.
There is no gateway member for chat you type: with N online members the bridge has N independent senders. The bridge survives anyone logging out, and the only way to break it is for every member of every co-guild to be offline simultaneously.
Lines that nobody typed (roster announcements, and messages from other add-ons) are the one exception: the game won't send those on a chat channel, so one GreenWall member in each co-guild passes them on. Nobody is chosen or configured for this. Whoever is online does it, and someone else takes over the moment they log off.
Configuration lives in the in-game Guild Information page (J key). Officers set it up once for each co-guild; ordinary members install the addon and the bridge just works — zero per-member configuration required.
Core Features
Transparent Guild-Chat Bridging
- Messages typed in
/gin any co-guild appear in every other co-guild's guild-chat window in real time, attributed to the original sender - Optional co-guild tag prefix (e.g.
<DMC>) so you can tell at a glance which sister guild a speaker is in - Bridged messages preserve player linking, item links, and chat-window class colors — they go through the standard
CHAT_MSG_GUILDhandler, not a fake channel - The bridge channel is removed from every chat window as soon as it is joined, so it never spams your chat — it occupies one custom-channel slot in the Social window's Chat tab, and nothing more
Officer-Chat Bridging
- Optional second hidden channel for officer chat; configured via the GM's officer note (
GW:a:channel:password) - Each officer opts in individually with
/gw ochat on— non-officers never see officer traffic, and the addon detects officer-note read access before activating the bridge - Same replication semantics as guild chat: every co-guild's officer chat appears in every other co-guild's officer chat window
Relay Mode for Guildmates Without GreenWall
- An officer switches it on for the whole confederation with
/gw relay onor the checkbox in the options window - One GreenWall user per guild then reposts every sister guild's chat into your own guild chat as
[Name-Realm]: text, and passes your guildmates' lines on, so members without GreenWall can follow and join the conversation - GreenWall users still see each line once, under the real speaker's name; the reposts are hidden from them
- Who reposts is worked out automatically, preferring whoever has been online longest; if that player logs off, someone else takes over.
/gw bridgeshows who it is - Guild chat only; officer chat stays on its own hidden channel
Roster Announcements
- Cross-confederation join, leave, kick, online, and offline notifications — you see the same notifications you'd expect from your own guild for every member of every co-guild
- Toggle with
/gw roster on|off - A comember-cache hold-down suppresses the duplicate notification storm that would otherwise fire when a peer crosses the bridge channel boundary
Per-Character or Account-Wide Settings
modesetting picks between a sharedGreenWallAccountstore and per-characterGreenWallsettings — switch any character to whichever mode you prefer- Existing pre-1.9.0 installs default to character mode so nothing changes underneath you on upgrade
- Settable via the standard Blizzard Interface Options canvas (
ESC→ Options → AddOns → GreenWall) or the slash-command CLI
Guild-Wide Version Checking
- GreenWall registers with VersionCheck-1.0 when it loads. If a guildmate is running a newer GreenWall than you, you get a one-time note telling you where to update — at most once per session, never during combat
/vcopens the version roster: one tab per participating add-on, showing who in the guild is on which version. Right-click a member to whisper them an update reminder; guild leadership also gets a button to ask the whole guild to check now- VersionCheck sends its version request through GreenWall as well as guild chat, so the check reaches every co-guild in the confederation, not just yours
- Nothing to configure; VersionCheck is installed automatically as a dependency
Third-Party Addon API
Other addons can piggyback on the confederation bridge through GreenWallAPI:
GreenWallAPI.SendChat(addon, text, chatType)— show a line in every co-guild's guild or officer chat, even when sent from an event with no key press (1.14.0)GreenWallAPI.SendMessage(addon, message)— send data to the same add-on in every co-guild; since 1.14.0 it works from an event with no key press and returns a result saying who was reachedGreenWallAPI.AddMessageHandler(handler, addon, priority)— register a callback for inbound messages;RemoveMessageHandler(id)andClearMessageHandlers(addon)undo itGreenWallAPI.GetChannelNumbers()— query the hidden channel numbers in use- Messages are framed with the source addon name so multiple subscribers coexist cleanly
Consumers include VersionCheck-1.0, which uses the bridge to reach every co-guild with its version check, and GWSonar. Full reference in API.md.
Compatibility With Popular Chat Addons
- ElvUI — bridged messages are routed through ElvUI's floating chat-frame event handler
- Prat-3.0 — bridged messages flow through Prat's chat dispatcher
- Identity-2 / Name2Chat / Incognito — outbound message rewriting is detected and accommodated rather than triggering the corruption guard
- Compatibility shims activate automatically; no extra setup required
How It Works
Hidden Custom Chat Channel
Chat you type is sent as ordinary chat-channel messages on a custom channel that every member silently joins via JoinTemporaryChannel. The channel is removed from every chat-window subscription after joining, so it never appears in your chat. Each segment is structured as:
opcode#guild_id##payload
The opcode (C chat, B broadcast, N notice, R request, M addon, E external API) tells the receiver which adaptation-layer decoder to apply. Maximum segment length is 255 bytes; longer messages are truncated. Since 1.14.1, broadcasts (B) and external API data (E) are no longer sent on this channel; they go as hidden add-on messages, described below.
Hidden Add-on Messages for Lines Nobody Typed
The game only lets a chat-channel message leave when a key press or click is behind it. Roster announcements and add-on messages have none, so since 1.14.1 they travel only as hidden add-on messages: a whisper to one GreenWall user in each co-guild, who passes it on to their own guild. Members running 1.14.0 or later work out among themselves who passes messages on; there is nothing to set up.
Loopback & Corruption Detection
Every transmitted segment is hashed with CRC-16-CCITT and counted in a per-channel transmit table. When a peer's own broadcast loops back through the channel, the hash count is decremented. If a self-sent segment arrives with a hash that doesn't match anything in the table, the addon raises a corruption warning — that's how GreenWall detects a third-party addon mutating outbound chat (Identity-2, Name2Chat, Incognito are the known offenders, hence the dedicated compatibility shims).
In-Game Configuration
The addon reads its confederation configuration from the Guild Information panel (J) at login time and on GUILD_ROSTER_UPDATE. The directive grammar is line-oriented:
GW:c:channel_name:password # required common channel
GW:p:Darkmoon Clan:DMC # peer co-guild + tag
GW:p:Baseball Dandies:BBD
GW:p:Nightlife:NL
GW:v:1.11.0 # optional minimum addon version
GW:s:value:k # substitution variable, $k expands later
The optional officer-chat directive lives in the GM's officer note: GW:a:officer_channel:password. Reload the configuration after editing with /gw reload. Full grammar in CONFIGURATION_FORMAT.md; officer-oriented setup walkthrough in GUILD_QUICKSTART.md.
Reconnection & Backoff
Channel joins are debounced by a configurable joindelay (default 30s) so the General channel grabs slot 1 first. Per-channel join failures use exponential backoff (10s → 900s). Configuration reloads are gated by a 5-minute hold-down to prevent reload storms on guild-roster churn.
Slash Commands
/gw,/greenwall— root command (use/gw helpfor the full list)/gw status— channel and connection statistics/gw dump— full settings and configuration dump (channel names and passwords redacted)/gw reload(or/gw refresh) — re-parse Guild Information on your own client after an officer edits it/gw reset— disruptive: clear all channels and reload from scratch/gw mode account|character— switch between shared account-wide settings and per-character settings/gw tag on|off— toggle co-guild prefix tags on bridged messages/gw roster on|off— toggle cross-confederation join/leave/online/offline announcements/gw ochat on|off— enable officer-chat bridging (officers only)/gw joindelay N— seconds to wait before joining the bridge channel/gw debug 0..5,/gw verbose on|off,/gw log on|off,/gw logsize N— diagnostics/gw redact on|off— obfuscate channel names and passwords in debug output (default on)/gw version— print addon and WoW build versions/gw relay [on|off]— show relay mode, or (officers) switch it for the whole confederation/gw bridge— show who reposts sister-guild chat in each guild/gw trace,/gw debugtab,/gw debugtabremove,/gw debuglog [clear]— relay-mode diagnostics
Requirements
- Other add-ons must be installed and enabled: Ace3, AceCommQueue-1.0, DeltaSync, GuildRoster, LibAceGUIWidgets and VersionCheck-1.0. The CurseForge app installs all of them for you; a manual install must add them by hand or GreenWall will not load.
- WoW client — supports Classic Era 1.15.x, Burning Crusade Classic 2.5.x, Wrath Classic 3.4.x, Cataclysm Classic 4.4.x, Mists Classic 5.5.x. Retail is not yet tested on the current 12.x client, so there GreenWall shows as out of date until it is. A single CurseForge project ships a per-flavor build of the same source.
- Fewer than 10 active custom chat channels — you can verify in the Social window (
O→ Chat tab). The bridge channel needs a free slot. - For officer-chat bridging: officer-note read access on at least one character per co-guild. This conflicts with EPGP-style addons that store data in the officer note.
- For initial configuration: Guild Information edit access in the guild management panel (
J).
Recent Updates
v1.15.3 (Latest — 2026-10-17) — Relay mode: one reposting player per guild.
Changed
- When a guild needs a new reposting player, the job goes to whoever has been online longest, not to whoever's name comes first. Logging in no longer takes the job from someone already doing it.
- Nobody is picked at login any more. If nobody online is reposting, the first sister-guild line that needs it picks someone, and that line is still reposted.
- Version numbers in the form
1.15.3-betanow count as the release they lead up to.
Fixed
- Logging in could make you a second reposting player while your guild already had one, so lines could show up twice or come back reposted again.
- Your guild's own line could come back to it inside a sister guild's repost, such as
[Name]: [Name]: [Name]: text. - GreenWall could not read the version of any GreenWall installed from CurseForge. As a result, the minimum version set in Guild Information never warned anyone who was out of date, and relay mode could send messages through players on versions too old to pass them on.
- For add-on authors:
GreenWallAPI.AddMessageHandlernow runs handlers in the priority order it documents, defaults a missing priority to 0, and never gives two handlers the same id.
v1.15.2 (2026-10-13) — Relay mode: no more lines reposted twice.
Changed
- Reposts always show the speaker's full name with their realm, such as
[Appleface-Azuresong]: text, even when the speaker is on your own realm. - A line a guildmate types in the
[Name]: textshape, naming a player from a sister guild, is no longer passed on to the other guilds, since it looks exactly like a repost. Tags such as[WTS]: textare still passed on.
Fixed
- A sister-guild line could come back into your guild chat a second time, wrapped in another reposting player's name, such as
[Name]: [Name]: [Name]: text. - Two players in one guild could both do the reposting at once, so every sister-guild line showed up twice. They now settle on one between themselves, and everyone in the guild follows the one that stays.
- GreenWall users could see a sister-guild line as a raw repost,
[Guildmate]: [Name]: text, when it was posted by a guildmate their game did not know was doing the reposting. Reposts from any guildmate are now hidden, and the line shows once under the real speaker's name. - While a guild was still reposting with an older GreenWall, GreenWall users could see the same line twice. It now shows once.
v1.15.1 (2026-10-11) — Relay mode fixes.
Changed
/gw helpnow lists the two forms of/gw traceseparately.- This page no longer claims support for the current Retail client, where GreenWall is not yet tested.
- While your guilds update from 1.15.0, the player doing the reposting may switch once or twice before it settles, and 1.15.0 users on a connected realm may still see some lines twice until they update.
Fixed
- A Lua error could pop up when GreenWall showed a relayed line in your chat.
- With Guild Roster Manager installed, GreenWall users could see every sister-guild line twice: once normally and once as the repost.
- When another guild's reposting player logged off, your guild kept sending them its lines and nothing reached that guild. GreenWall now notices, including for players who logged in after they left, tells the rest of your guild, and sends through someone online instead.
- On connected realms, relayed lines could show twice, and the player doing the reposting could keep switching back and forth.
- On connected realms, clicking the name on a relayed line could pick the wrong player.
- On realms whose name contains a hyphen or a period, GreenWall did not recognise its own players' names.
- Lines that other add-ons post to guild chat through GreenWall are now reposted for guildmates without GreenWall.
- Changing guilds without reloading kept the old guild's relay mode settings; relay mode now starts fresh in the new guild.
- A reposting player with a guildmate on their ignore list now hands the job to someone who sees every line.
- Sister guilds could keep the wrong player as your guild's reposter after a brief mix-up at login.
- GreenWall could be missing from the
/vcversion window. It now tries again once you are logged in, and if it still cannot take part, it says so in chat.
v1.15.0 (2026-10-09) — Relay mode: guildmates without GreenWall can follow sister-guild chat.
New
- Relay mode. An officer can switch it on for the whole confederation with
/gw relay onor the new checkbox in the options window. One GreenWall user per guild then reposts every sister guild's chat into your own guild chat as[Name]: text, so members without GreenWall can follow the conversation and be heard by the other guilds. GreenWall users on 1.15.0 or later see each line once, under the real speaker's name, exactly as before; older versions see it twice until they update. - Who does the reposting is worked out automatically. If that player logs off or stops reposting, someone else takes over.
/gw bridgeshows who is reposting for each guild./gw trace,/gw debugtaband/gw debugloghelp track down problems.
Changed
- GreenWall now also requires DeltaSync and AceCommQueue-1.0. The CurseForge app installs them for you; a manual install must add them or GreenWall will not load.
v1.14.2 (2026-10-08) — The options window saves your changes.
Changed
- Ticking "Use these settings for all characters on this account" now switches straight away and shows that set of settings.
Fixed
- Changes made in the GreenWall options window were not saved: an unticked option came back as soon as the window closed. Every option now saves the moment you change it.
- The Defaults button now also updates the window to show the restored settings.
Older release notes are in the add-on's full changelog.
Community
For bug reports or feature requests, visit the GreenWall Revived project page on CurseForge.
Dedication
GreenWall is dedicated in memoriam to Roger Keith White (1962-2017), known to the members of Alea Iacta Est as Ralff. He was instrumental in the creation and refinement of GreenWall, and the soul of our community writ in flesh and blood.
Never again shall we meet such a formidable mountain of intelligence, curiosity, hospitality, and non-stop innuendo.

