Description
Guild Armory — Forever Edition
Everything your guild knows about itself, in one window — and an honest answer whenever it does not know something.
Available in English and German. English is the default; the language can be switched in the settings or follow your client.
A guild accumulates facts. Who is wearing what. Who joined in March. Who already got a weapon from Ragnaros. Who is carrying a spare blue they will never use. Who, right now, standing in the same zone as you, could put an anvil on that campfire.
Most of that lives in somebody's memory, and memory is where it goes wrong.
Guild Armory collects those facts and — this is the part that matters — keeps track of how well it knows each one. An item level from an inspect two minutes ago and one from three weeks ago are not the same claim. An award the game reported and one a tired raid leader typed at 1 a.m. are not the same fact. Both pairs look identical the moment you show them as a bare number, so this addon never does.
And where it cannot measure something, it leaves the space empty and says so. "Don't know" is never displayed as "no". That single rule runs through every corner of the addon, and it is the reason to trust the corners you cannot check yourself.
The armory
The part the addon is named after. It turns "who is wearing what" from a question you have to ask into something you can look up.
A gear database for the whole guild, not just for you. Pick any character
from the list on the left and its equipment appears on the right: all 19 slots
as a paper doll, item icons in quality colour, and the game's own tooltip on
hover. Nobody has to be talked into standing still for an /inspect again.
Your own gear records itself. Every time you change a piece, the addon
takes a snapshot. Equip and unequip and you get exactly two entries, not
twenty; a /reload with nothing changed gets you none. Over weeks that
becomes an item level history you can read as a chart — one bar per captured
snapshot, and nothing invented in between.
Other characters come from inspect, in range and out of combat, and the result is stored with its source and its age. The armory labels it and says plainly when the data is old: "Last update 3 days ago, this is NOT live data." A bare number would hide exactly the thing you need to know.
Item level is computed per item, not taken from a single API call that may or may not be filled on this client, and the number carries how many slots it was computed from. Fifteen slots and nineteen slots give different averages, and pretending otherwise flatters whoever has empty slots.
The people behind the characters
Characters are grouped into players. Mains and alts belong together, so a twink's gear, loot and history are not a separate person. How solid each link is travels with it: proven when the same WoW account saw both characters (a fact, not an entry), entered when an officer set it, claimed when somebody said so. Roles follow the player, so nobody has to grant council rights four times to the same human being.
The guild roster is kept as history, not only as a snapshot. Joins, departures, promotions and demotions are recorded as they happen, which answers the question that actually gets asked: "how long has he been with us?"
The very first scan deliberately records nothing. On day one everybody looks new, but nobody joined — an addon that writes eighty joins with today's date is inventing history.
What is in everybody's bags
Tradable items. Rare bind-on-equip drops are hard to pass around: you loot something you cannot use, somebody in the guild can, and neither of you finds out. Alt-click a piece in your bags to offer it, and it appears in a list the whole guild can see, with the full tooltip and random suffix intact — "Nomad Tunic of the Boar" arrives as exactly that, with its stats, not as a bare "Nomad Tunic".
An Ask button whispers the owner for that item, with the item link rather than its name, so there is no doubt which of the three Nomad Tunics dropped tonight is meant. Once per minute per item and person: a button that fires another line every time it is pressed turns impatience into pestering.
A soulbound piece is never offered. Bind type belongs to the item, not to the copy in your bag — the game will happily say "binds when equipped" for something that was equipped long ago and is bound for good. Two independent checks are asked, and if either says bound, it is bound. A piece whose state cannot be verified stays choosable by hand but never travels on its own.
Building a camp
Forever lets a guild build a camp together: somebody lights a campfire, everybody else puts their profession's upgrade on it, and the camp gives a buff for an hour. The hard part is not the building. It is finding out, while you are standing in the Barrens, who near you happens to be carrying an anvil.
A small bar on your screen answers that — one line per guild member in your zone, with the campfire they carry and four profession slots: your two primaries, First Aid, Fishing. A bright icon means they carry an upgrade they may actually place; a dim one means they have the profession but nothing to put down. Hovering says which pieces exactly, and whether their skill is high enough for each.
A question mark is not a no. Somebody without the addon shows as unknown, never as somebody carrying nothing. An empty slot would send you walking past the one person who has the anvil.
When a guild member lights a campfire in your zone, a notice names them, says which campfire and where, and offers a map pin and Share for party or raid chat. Both buttons say in advance whether they can do anything on this client, rather than admitting it after you press.
What that tells the guild about you: your zone, your professions, and which camp upgrades are in your bags. Your position goes out only in the moment you place a campfire — the one moment it is public anyway, because there is now a campfire standing there. Nothing of it reaches the database; other people's states live in memory and are gone when you log out. The first time this client sends, it says once in chat what goes out and how to stop it. Off means it neither sends nor receives.
Loot
Four ways to hand loot out, and one session that runs all of them:
- Council — people bid, the council votes, the loot master awards.
- Soft reserve — a reservation decides; anything nobody reserved is rolled for.
- Roll — everything is rolled for: 100 main-spec, 50 off-spec, 25 transmog.
- DKP — people bid points, the highest bid wins, and only the winner pays.
That is one procedure, not four. A roll is a bid with a number; a DKP bid is a bid with a number. The same candidate list and the same award path serve all of them.
The rules belong to the session, not to your settings. They are fixed when it opens and travel with the announcement, so a raid member whose own page says something else still sees what the loot master actually chose.
Bidding can run on a clock — 60, 120 or 180 seconds, or until you close it yourself. When time is up, no bid can be placed, changed or withdrawn. That last one is what makes the clock worth anything.
DKP balances are sums, not numbers. Every posting stands in the ledger on its own — when, how much, what for, by whom — and the balance is computed from it on every read. It cannot contradict the ledger, because it is nothing but the ledger added up. Somebody asking "why do I only have 40 points" gets a list, not a claim. Bids are sealed: no message and no chat line ever carries an amount.
Rolling need not flood the chat. By default the loot master's client draws
the number — no chat lines at all, and a bidder cannot influence a number
their own client does not draw. The trade is stated plainly in the settings:
the raid cannot check that number either. The alternative is everybody using
/roll, where the server draws and the whole raid reads it.
Alongside: council rotation with temporary seats that expire on the clock and are never written into permanent roles, soft reserves for a single raid night kept distinct from wishlists, plus one computed from the loot history on every read rather than kept as a counter that can drift, and wishlists with item search by link, Wowhead URL, ID or name.
The loot history
Loot is followed through a state machine — detected → bidding → awarded →
transfer pending → received → equipped — and nothing skips a step.
An award only becomes received with a confirmation, and every stored award carries how it was confirmed:
| Confirmation | Strength | Where it comes from |
|---|---|---|
| Master looter | strong | The game reported the assignment |
| Trade | strong | The game reported the trade |
| Chat line | weak | Read from a loot message |
| By hand | an assertion | Somebody typed it in |
Statistics count hand-entered awards separately, because a number that mixes measurements with claims looks more precise than the data really is.
Corrections never delete anything. The old record stays, marked as corrected and linked to its replacement. A history that changes quietly is not a history.
And handover reminders: what is still sitting in your bags that belongs to somebody else, with bag and slot. Open a trade with the person who won it and the addon puts the item into the window for you — both sides still have to accept, so every step remains reversible.
Achievements
Guild achievements for things the addon can actually observe: professions,
gold, bag space, boss kills, guild firsts, attendance, leveling. /ga probe
reports what this client's API really returns, which achievements that
unlocks, and which stay unmeasurable — answering yes, empty or no, because
empty is not no.
Between clients in the guild
- Characters, wishlists and confirmed awards sync over addon messages, throttled and chunked, with a running digest so clients that fell behind catch up without anybody flooding the guild.
- A client can only ever publish the character it is logged in as. The sender name comes from the server and cannot be forged. That is the one real security property an addon has, and it is used everywhere it applies.
- Addon messages are accepted only from members of your own guild. A loot session can optionally be widened to everyone in your raid, for guilds that pug — and that applies to the session only. Characters, wishlists and confirmed awards stay between guild members either way.
- Conflicting records are journalled, never silently overwritten.
- A version overview shows who is running what. "No reply" is reported as exactly that, not as "doesn't have the addon" — offline, out of range and a lost message look identical from here.
Outside the game
- A versioned export contract for your own web app, documented field by field, so the site never has to guess at the addon's internals.
- Backup and restore that merges instead of overwriting. Your own measurements are never replaced by a file, and conflicts are recorded.
- Optional combat logging in raid instances, which only ever turns off what it turned on.
Trying it without a raid
/ga sim plays a raid evening through on one client: made-up raid members with
roles and points, items dropping, bids, votes. Awarding is left to you — that
is the part worth testing.
Two promises hold it together. Nothing leaves the client while it runs:
chat and addon messages are both blocked, at one place each. And every
made-up record is marked, so /ga sim clear removes exactly those, and the
guild sync refuses to pass them on even after you switch the test mode off.
Requirements and limits
This addon targets WoW: Forever (Interface 16001). It will not load on
Retail or Classic Era without the "load out of date addons" option, and parts
of it depend on API behaviour measured specifically on Forever.
AtlasLootClassic is optional. If it is installed, Guild Armory can read its tables at runtime to widen item search and show where an item drops. Nothing is copied. AtlasLoot is GPL v2, and its data stays its own.
The camp feature is built on copied observation, not measurement. The item
numbers behind it belong to a server feature that exists nowhere else, so
there is no documentation to check them against. /ga camp why prints what
this client actually makes of every one of them — which names loaded, which
use spells resolved, whether map pins work at all, what was rejected and why.
A wrong number shows up there as a line, instead of disguising itself as
"doesn't work".
Known beta client issue. On current Forever beta builds the client writes SavedVariables correctly but never loads them back. Every login starts with an empty database, for every addon and not just this one. Guild Armory says so in one line when it happens, instead of letting you fill a raid night's history into something that will be gone tomorrow. The export still works, so the data survives outside the game until it is fixed.
Getting started
/ga open the window
/ga status version, language and what this client can actually do
/ga camp the camp bar for your zone
/ga trade what you are offering, and what would qualify
/ga council the loot session
/ga sr open open a soft reserve round for tonight
/ga sim play a raid evening through, without a raid
/ga version who is running the addon, and which version
Everything else is discoverable from the window itself. There are no hidden settings that change results, and the ones that exist say what they do.
The one thing it will not do
It does not decide for you. Reserves, wishlists, plus one and roll results are shown next to each candidate, never folded into a score or a ranking. An addon that sorts the council's decision for it is making a judgement without knowing the circumstances: who was on time, who swapped to their off-spec, who stepped aside last week.
The addon's job is to make sure that whoever does decide has the facts — and knows how solid each one is.







