
Systematic Guild
Guild management for World of Warcraft: Forever — a roster with roles, raid teams and a raid builder, bounties on enemy players, the guild's excommunication list and your own blacklist, and a Call to Arms button that brings the guild to you — kept in sync between your guildmates' addons. No external server, no officer notes.
Any guild can use it. Forever's client won't let addons write to officer notes or the guild information text, so Systematic Guild keeps a copy of the guild's data on every member's client and keeps the copies in step over the guild's addon channel. Every change is checked against the guild roster before any client accepts it. Also loads on Classic Era, TBC Anniversary and Mists of Pandaria Classic.
Getting started
- Install it on every account in the guild — through the CurseForge app, or unzip the
SystematicGuildfolder intoInterface\AddOns. No dependencies. It works with one copy, but a change only reaches people who run the addon, and it's their copies that keep yours up to date. - The Guild Master opens Guild Manager (
/sguild manager) and ticks which ranks may set other members' roles, build raid groups, post bounties, manage bounties and excommunicate. Until then only the Guild Master can do those things. - Everyone sets their own role in Guild Roster (
/sguild). That's it.
Requirements
| Client | Interface |
|---|---|
| World of Warcraft: Forever (game 1.60.1) | 16001 |
| Classic Era | 11507 |
| TBC Anniversary | 20504 |
| Mists of Pandaria Classic | 50500 |
- No dependencies, no libraries.
- The bounty workflow assumes your guild has a Discord channel where kill screenshots get posted (
#bountiesunless the Guild Master renames it in Guild Manager). - No Retail version: the addon exists for clients with Forever's and Classic's restrictions, and the Systematic site reads Retail guild rosters from Battle.net instead.
What it does
Guild Roster
- Every member with a Tank, Healer or DPS icon beside their name. Set your own role in one click.
- Filter by role, show or hide offline members, search by name, and see how many tanks, healers and DPS the guild has.
- Sort by Name, Level, Rank or Zone (click again to reverse; remembered).
- Right-click a member to invite or whisper them; role editors set a member's role from the same menu.
Raid Groups
- The raid teams and who is on each, grouped by role, with counts against each team's size. The teams you're in are marked.
- Teams a builder is still working on are hidden from everyone but builders.
- Raid builders right-click a team to invite everyone on it who is online (you need to lead the group, or be an assistant). A party holds five counting you, so when more are online the first invites fill the party, it becomes a raid as soon as one of them joins — at once if you already lead a party — and the rest are invited then. Anyone still waiting after a minute is dropped and your chat frame says so. Guild chat is told that invites are going out.
Raid Builder (raid builders)
- Up to nine raid groups: name them (24 characters), set a size from 1 to 40, and choose whether members can see them. A new group starts hidden, sized 20.
- Pick members from the roster, with its own role filter, search and a "hide members already in this group" option.
- Every click edits a draft. Nothing is saved until Save; Revert drops the edits. Save refuses a group with more members than places.
- Two builders can work at once: Save writes only what you changed, so another builder's edits to a group you left alone are kept, and you're warned if someone saved underneath you.
- Invite online and Export to website act on the saved groups — save first. The export writes the raid groups and roles as text for systematic.gg; the site's import is still being built, and the format is fixed so it will read what the addon writes today.
Bounties (everyone)
- A price on an enemy player's head. Bounty posters — the ranks or members the Guild Master picks — set the target's name (Use target fills it from your current target), a reward in gold (1 to 999,999) and a note. Open bounties are listed biggest reward first.
- Right-click a bounty to claim it, then post a screenshot of the kill in the guild's bounty channel on Discord. While your claim waits the tab says so; you can withdraw it, and claim again after a rejection. Several members can claim the same bounty; the first approved claim wins. You can't claim your own.
- Under the open bounties sits the claimed history: who claimed each one and who approved it.
- Targeting an enemy player with an open bounty on them reminds you to take the screenshot, with the key it's bound to.
- A poster may have 25 live bounties at a time and can remove their own. Bounties, with their claims and verdicts, drop off automatically 180 days after they were posted.
Manage Bounties (bounty managers)
- The claims waiting for a verdict, longest waiting first. Check the screenshot in Discord, then Approve or Reject the claim, or withdraw it.
- Remove any bounty, and Clear claimed history once the rewards have been paid.
- Nobody approves their own claim except the Guild Master.
Call to Arms (everyone) — new in 1.2.0
- A small Call to Arms button on screen, under the minimap at first; drag it anywhere. It's red while ready, and dim with the time left while it cools down.
- Click it, type
/sguild cta, or bind a key (Key Bindings → AddOns → Systematic Guild → Call to Arms). It asks first, with room for a short note;/sguild cta <note>sends at once, note included. - Your call goes to guild chat with your zone, subzone and coordinates —
[Call to Arms] <you> needs aid at <zone> - <subzone> (x, y)!— so the whole guild sees it, addon or not. - Every guildmate online with the addon gets a raid warning, a sound, and a popup that can put a waypoint on their map where you are.
- Once every 15 minutes per character, kept over a /reload or a relog. Each guildmate's client also drops a second call from the same player within 14 minutes, so a modified addon can't spam the guild.
- Coordinates come from the map when the game gives them. In most instances it doesn't, and the call goes with the zone alone.
- A call from someone you hide is dropped: a player on your blacklist, or on the guild's excommunication list while you hide it.
Excommunication and your blacklist (everyone)
One tab, two lists. Type a name or press Use target, which also records the character so they're matched whatever name they show; pick Blacklisted or Excommunicated; add a reason; Add. Players need not be guild members.
Excommunication (the guild's) — everyone sees it; those the Guild Master allows keep it
- Players excommunicated for good, with a reason. The list holds 300 players.
- Every member can see it — who is on it, why, and who added them. Adding and lifting stay with those allowed to keep it; for anyone else the Excommunicated button is greyed.
- On every guildmate's client with the option on, their chat is hidden and their group invites are declined. Your own lines are never hidden, and nobody can put the Guild Master on the list.
- Your own call: right-click a listed player to show their messages anyway. Their chat and invites come through on your client alone; everyone else still has them hidden. Right-click again to hide them. If a player is lifted and listed again, they're hidden again until you choose again.
- Those who keep the list right-click an entry to lift it.
- Guild blacklistings made with 1.1.0 stay on the guild's list, hidden for the whole guild, until they end or are lifted. New ones can't be made.
Blacklist (yours) — anyone
- Blacklist anyone but yourself, for good or for 1, 7 or 30 days, with a reason. Works in a guild or out of one.
- Their chat and group invites are hidden for you alone, always — even with the guild's list turned off, and whatever you chose to see anyway.
- Never shared. It stays on your computer: nobody else sees it, not even the Guild Master, and nobody else's client hides anyone because of it. The Guild Master can be on it, like /ignore.
- Right-click a player on it to remove them at once. Ended blacklistings stay greyed as Expired for a week, then clear themselves. Up to 300 players.
The tab counts how many messages it hid this session, and how many of the guild's listed players you've chosen to see.
Guild Manager
- Everyone can read it — "why can't I set my role?" is answered there — but only the Guild Master can change it.
- Which ranks may set other members' roles, build raid groups, post bounties, manage bounties and excommunicate; whether members may set their own role; the Discord bounty channel's name. Edits are a draft until Save settings.
- Grant… gives any one member any of the five rights, whatever their rank; click a grant to take one right back, or all of them.
- Who last changed something, who else is online with the addon, and what the shared copy holds.
- Remove all SystematicGuild data, for a guild that's done with it: permissions go back to the defaults and the raid groups, roles, bounties and excommunication list are deleted from every member's copy. Your own client options and your blacklist stay on your computer.
- Under This client, for this computer only: the minimap button; Hide messages and invites from excommunicated players (on unless you turn it off; the guild's list only — your blacklist always hides); Show the Call to Arms button; and Call to Arms alerts (the raid warning, sound and popup — turn them off and you still get the line in chat).
Minimap button and addon compartment
- Left-click opens the window, right-click opens Guild Manager, drag moves it round the rim.
- The tooltip answers what people usually open the window for: your role, your raid groups, how many bounties are open and — for bounty managers — how many claims are waiting.
- On clients with an addon compartment, the addon is listed there too.
Notices in chat
- A new bounty (everyone), a new claim (bounty managers), and the verdict on your claim — even one given while you were offline. Bounty managers hear at login how many claims are waiting.
- A guildmate's Call to Arms, with where they are and their note.
- A declined group invite from a player you hide says who it was, and whether they're on your blacklist or the guild's list.
- When a guildmate runs a newer version, you're told in chat and Update available appears in the window and the tooltip. (The in-game notice points at systematic.gg's Connections tab; the same file is here on CurseForge.)
How it works
- Nothing is stored in the guild itself. Every member running the addon keeps a copy of everything it shares — the Guild Master's permissions and grants, the raid groups, every member's role, the bounties with their claims and verdicts, and the excommunication list — in their own saved variables. Your blacklist is the exception: it's yours alone, and never sent.
- Changes save instantly and reach everyone online at once. Nobody else has to be online for a change to count. When you log in, your copy is compared with everyone online running the addon and you're sent whatever you missed; the comparison repeats every quarter of an hour while another addon user is online, and on
/sguild refresh. With nobody else online, the addon works from the copy it saved last time. - Every change is checked by every client. Before taking a change into its copy, each addon checks who made it against its own read of the guild roster: settings only from the Guild Master; a raid group only from a builder; a role only from the member themselves (while the Guild Master allows that) or a role editor; a bounty only from a poster or manager; a claim only from the claimer, or a manager withdrawing it; a verdict only from a manager other than the claimer; the excommunication list only from those allowed to keep it.
- A Call to Arms is a message, not data. It's sent once to whoever is online and kept nowhere; nobody who logs in later is sent it.
- Only the guild channel is used. Nothing is whispered. Messages are queued and paced to the client's addon-message throttle, and long ones travel in chunks, so nothing is silently dropped.
Who may do what
| Action | Who |
|---|---|
| Set your own role | Everyone, unless the Guild Master turns it off — then role editors only |
| Set someone else's role | The Guild Master, ranks ticked Edit others' roles, and members granted it personally |
| Build raid groups | The Guild Master, ranks ticked Build raid groups, and members granted it personally |
| Claim a bounty | Every member, on anyone's bounty but their own |
| Post bounties | The Guild Master, ranks ticked Post bounties, members granted it personally, and every bounty manager. A poster can remove their own bounty while they still hold the right |
| Approve or reject claims, remove any bounty, clear history | The Guild Master, ranks ticked Manage bounties, and members granted it personally — never on their own claim (the Guild Master excepted) |
| Call to Arms | Every member, once every 15 minutes |
| See the excommunication list, and show a listed player's messages anyway (for yourself) | Every member |
| Keep the excommunication list (add, lift) | The Guild Master, ranks ticked Excommunicate, and members granted it personally. Nobody can list the Guild Master, or themselves |
| Keep your own blacklist | Everyone, in a guild or not, about anyone but themselves. Nobody else sees it |
Raid Builder and Manage Bounties only appear in the tab strip for players who hold the right; open one anyway with its slash command and it tells you why you can't use it. Excommunication is in everyone's tab strip: anyone can blacklist, and only those allowed to keep the guild's list can pick Excommunicated.
Commands
| Command | Opens / does |
|---|---|
/sguild |
Open or close the window |
/sguild roster |
Guild Roster |
/sguild groups |
Raid Groups |
/sguild builder |
Raid Builder (raid builders) |
/sguild bounties |
Bounties |
/sguild claims |
Manage Bounties (bounty managers) |
/sguild excom |
Excommunication: the guild's list (everyone sees it; those allowed keep it) and your own blacklist (anyone) |
/sguild cta note |
Call to Arms: asks first, or sends at once with a note (everyone, once every 15 minutes) |
/sguild manager |
Guild Manager |
/sguild export |
The raid groups as text for systematic.gg (anyone in the guild) |
/sguild invite N |
Invite raid group N's online members (raid builders; you must lead the group or be an assistant) |
/sguild refresh |
Re-read the roster and ask the guild for fresh data |
/sguild comms |
What the addon has sent and heard, anything it's holding back and why |
/sguild minimap |
Show or hide the minimap button |
/sguild help |
This list, with the version |
/systematicguild works too, and so do a few other words for the same things: raids, build, bounty, approve, blacklist, settings, calltoarms, arms.
Call to Arms also has a key binding: Key Bindings → AddOns → Systematic Guild.
Good to know
- Approvals don't pay anyone. An approval tells whoever pays out who earned the reward. The addon moves no gold — check the screenshot before paying.
- Screenshots, because there's no combat log. Forever gives addons no combat log, so a bounty kill is proven with a screenshot, not detected by the addon.
- Speech bubbles still show. The game draws them itself; no addon can hide them. Chat lines and invites from players you hide are. On a client without the chat-filter API only invites are declined, and the tab says so.
- The excommunication list is open to the guild. Every member sees it in the tab, names and reasons included.
- Your blacklist is private. It never leaves your computer, and nobody is told they're on it.
- Showing a listed player is only for you. It changes nothing on anyone else's client, and nobody else is told. It never lets a player on your own blacklist through.
- Call to Arms works best with everyone on 1.2.0. Guildmates on an older version still see the guild chat line, but get no raid warning, sound or waypoint.
- Keep the guild on the same version. Clients on an older sync protocol can't exchange data with newer ones; anyone on an older version is told, in chat and in the window, that an update is available. 1.2.0 speaks the same protocol as 1.1.0, so the two share data.
- Logging in during an encounter. While the game holds addon messages back, claiming and approving wait ("Still checking the guild's bounties") until the addon has compared its copy with the guild.
What it stores
What the guild shares: member names, roles and raid groups; bounties (target names, rewards, notes, claims and verdicts); the excommunication list (names, reasons, and the character when added by Use target); the Guild Master's settings; and this client's own options — including which listed players you chose to see anyway, when each of your characters last called to arms, and where you put the Call to Arms button. Each shared item carries who last changed it and when. It lives in SystematicGuildDB in your saved variables, per guild, and travels only over the guild's addon channel — addons can't make network requests, so nothing leaves the game. The Guild Master can clear all of it with Guild Manager → Remove all SystematicGuild data.
Your blacklist (names, reasons, durations, and the character when added by Use target) is also in SystematicGuildDB, for your whole account rather than per guild. It is never sent anywhere, and Remove all leaves it alone.
Latest release — 1.2.0
Call to Arms: a button (or /sguild cta, or a key binding) that posts your zone and coordinates in guild chat and gives every guildmate online with the addon a raid warning, a sound and a waypoint popup; once every 15 minutes. Excommunication (the guild's) is open to every member: everyone sees the list, only those allowed to keep it add or lift, and any member can choose to see a listed player's messages anyway, on their own client only. Blacklist (yours): anyone can blacklist a player, for good or for 1, 7 or 30 days, hidden for you alone; it stays on your computer and is never shared. Guild blacklistings made with 1.1.0 stay on the guild's list until they end or are lifted. Two new options under Guild Manager → This client. 1.2.0 speaks sync protocol 3, like 1.1.0. The full changelog is in the Changelog tab and ships with the addon.
Support
Bugs, error popups and questions: Malietho Solin — systematic.gg · Discord. If a change didn't reach someone, include the output of /sguild comms.
Made by Malietho Solin for the Systematic community.

