👀 Demo guild — made-up raiders, real pages, nothing here can be changed. Get it for your guild →

📖 Commands & API

Everything Vortex Raid Tool answers to. Member commands work anywhere — best in a DM with the bot; replies are private either way. Officer commands need the Officer Discord role (checked live, DMs included). Locked pages open with the Log in button in the menu: officer passphrase, or the guildmaster password which unlocks everything.

Discord — everyone

/helpThis list, inside Discord.
/wish importReplace your wishlist from a WoWSims or Sixty Upgrades Export → JSON (gems/enchants filtered out). Lands in sim order — rank it afterwards.
/wish add <item>Add one item — instant autocomplete from the local item database, Wowhead links and IDs work too. Non-unique rings (the BT trash bands) can be added twice; unique/unique-equipped stay single.
/wish remove · /wish clearTake one item off, or wipe the list.
/wish listYour ranked list (1 = want it most) with reorder menus. Won items show struck through — crossed off automatically from the loot history, never deleted.
/wish rank <item> <position>Jump an item straight to a rank.
/wish webA personal 1-hour link to the browser editor — drag & drop reorder, search-to-add, paste an export to build from scratch. The link is the login.
/request new [type] [amount] [what]Ask the guild bank: Marks of the Illidari (2 marks per raider per lockout (Wed–Tue), 10g each). Lockout systems: once per Wed–Tue; open systems: one pending request at a time, say how many and what for (the pattern; the gem from the list — the autocomplete offers it) and, with for:, what it goes into — item names are suggested as you type (the Heart of Darkness crafts for hearts, any item for gems), free text works too, and a known item becomes a Wowhead link. Needs a guild rank (Raider) — pickups can't. /mark request still works for the marks.
/request cancel [type]Withdraw your pending request.
/request list [type]The queue — who's waiting ⏳, who's been served ✅ (all systems, or one).
/request history [type] [name]Who got what, when — all-time totals, or one raider's full log.
/assign <boss> [date]Assignments for one boss, generated from the next Raid-Helper comp: tanks, healer pairings, positions, misdirects, kick rotations, curses, Bloodlust — with the room diagram. boss:tonight gives every boss of the night; date picks another event. Officer pins and history are respected. Until the comp is announced in Raid-Helper it is the officers' draft — raiders see it from the announce on (or a set time before the start). Full page: assign.html.
/recipe add <profession> <name> [character]Register a recipe one of your characters knows — Blacksmithing, Leatherworking, Tailoring, Enchanting, Jewelcrafting, Engineering, Alchemy or Cooking; the name autocompletes from the item database. /recipe remove takes it off again.
/recipe who <name>Who can craft this. /recipe list [profession] shows everything the guild can make.
/resist update <type> <amount>Record a resist set — fire / shadow / nature / arcane / frost, unbuffed amount from the character sheet (0 clears). Officers can add player to set someone else's. /resist list [type] shows holders best-first; /resist mine your own. Feeds resist-gated raid assignments.
/recipe remove <name> · /recipe list [profession]Take one of your recipes off the list · everything the guild can craft, by profession.
/mark request · cancel · list · historyThe Marks of the Illidari the old way — the same as /request with the marks type.

Discord — officers Officer role

/whowants <item>Everyone with the item still open on their wishlist, Priority order, with a debt preview per candidate ("if won (−30): 50.1 #9"). Tier tokens match set-piece listers; recipes match crafted-item listers.
/droplist <boss>The boss's whole loot table at once — wanted items first (most contested on top, top 3 claims each), unclaimed rest as a roll-or-shard footer.
/mrt [date] [everyone]The comp-selected roster as in-game character names (Discord nicks → roster mains, accents restored from the logs), laid out exactly like the comp tool's export — each row is a slot position, columns are groups 1→5 — for pasting into Method Raid Tools. Live from Raid-Helper; likely alts and unknown names flagged. everyone = all signups instead of the comp (alphabetical, one per line).
/assign <boss> post:truePost the pull card in this channel — embed with the assignments and the room diagram. boss:tonight posts one card per boss. Posted cards update themselves when the comp or an officer pin changes.
/assign announce:true|falseReveal the comp's assignments to raiders now, or hide them again — Raid-Helper's Announce button does it automatically; this is the by-hand switch.
/assign share:trueOfficers: a share link that opens the assignments page without a login — for pugs and stand-ins — valid until the weekly reset. Links are listed and revoked on the assignments page (officer mode → 🔗 share link).
/checkinWho is in tonight's Warcraft Logs upload vs the posted comp, right now — missing raiders, extras, and anyone not on the roster at all. The bot also posts this by itself 10 min after the raid start (reminder at 25).
/prio [name]The top of the board, or any raider's line.
/wish list member:@XAnyone's ranked list.
/wishadmin lock [phase] · unlock · statusPhase lock: freezes every wishlist completely; wins keep crossing off automatically. Unlock between phases.
/wishadmin review · repriceAwards flagged “didn't respond on time”: list them, then reprice one to what it really was — standings rebuild on the spot.
/wishadmin nudge [send]DM regular raiders (6+ raid nights in the last 8 weeks) who still have no wishlist. Preview by default; send:true sends. Runs by itself too — see below.
/wishadmin digest on|off [channel]Run on in a channel (or name one): it gets one post per day after the first build (normally 23:45, minutes after raid) — recorded loot, the night's top parses, weekly movers, top 5, new faces in the log, warnings. Which of those, and the channel, are on the Settings page too.
/attendance set <name> <date> <status>Overrule one raider's night (attended / bench / noshow / missed) — replaces any earlier override for that night, rebuilds instantly. /attendance list shows what's on file.
/attendance listThe overrides on file — who, which night, what it counts as, and why.
/resist update <type> <amount> player:<name>Record a resist set for someone else (a tank who never gets round to it).
/roster addAdd a recruit: character, class, role, Discord account, rank (default Trial). Attendance counts from today.
/roster link <character>File a character the logs saw that matches nobody: alt_of:<main> makes it their alt; member:@X puts it under that Discord account (their alt if they already have a main here, else a new main — class and role default to what the logs say); pickup:true keeps a pug out of the standings. The character field autocompletes from the unknown list.
/roster unknownCharacters seen in the logs or loot history with no roster entry — nights seen, class, and who they probably are (rostered that night but never in the log).
/request given <name> [type] [amount] [what] · /request undoTick a hand-out off (gold collected where the system charges) — walk-ups who never asked get recorded too, so once-per-lockout always holds and the ledger stays complete.
/delegate user:@name [remove:true]Server admin (Discord's Manage Server decides who may): hand the hub side — setting the guild up, the plan, the settings — to a member who isn't an admin; remove:true takes it back.

Runs by itself

23:45 nightly buildPulls Warcraft Logs (attendance · parses · consumables), Raid-Helper (signups · comps) and the RCLootCouncil history, recomputes every score from raw data, republishes the site. Officer edits (repricing, overrides, pins, links) rebuild and republish within a minute.
Raid check-in10 min after the posted start: who is in the log vs the comp, in the officer channel; a reminder at 25 min if people are still missing.
Pull cardsPosted /assign cards re-edit themselves when the Raid-Helper comp changes (the bot reads the comp posts) or an officer reworks a row on the assignments page.
Wishlist remindersA DM to anyone with 6+ raid nights in the last 8 weeks and no wishlist — with the browser link, so it takes a minute.
Nightly digestIf armed with /wishadmin digest on or on the Settings page: loot recorded, the night's top parses, movers, top 5, new characters in the log, warnings — each can be switched off in Settings.

Pages

Locked pages appear in the menu after Log in with Discord. Your roles in the guild's Discord server decide what opens: officers see the officer pages, the guild master also Settings (which roles count is set on the Settings page).

HomepublicThe landing page.
rules.htmlpublicThe loot system, in full.
logs.htmlmemberEvery Warcraft Logs report logged to the guild — newest first, sortable, filter by zone; raid nights that count for attendance are marked.
loot-history.htmlpublicEvery award ever — sortable, filterable. Officers logged in get council mode (award an item live, with the claims ranked) and the import panel for histories from other addons (Gargul, ThatsMyBIS, CEPGP, DKP, spreadsheets).
wishlist.htmlhiddenThe browser wishlist editor — open it via your /wish web link.
assign.htmlpublicTonight's assignments per boss, live from the next posted comp, with diagrams and the All-night tab (curses, Expose Armor, Demo Shout). Raiders see the sheet once the comp is announced in Raid-Helper; officers logged in see the draft before that, rework any row (class-coloured menus), add optional healers, browse past weeks, and can open the sheet to raiders by hand (/assign announce:true does the same).
api.htmlpublicThis page.
dashboard.htmlpublicLive standings with per-raider receipts, the signup cross-check, and the unknown characters panel for filing new log names.
officers.htmlpublicWishlists × Priority, T6 token demand, review queue, chase list.
recipes.htmlpublicRecipes — who can craft what, by profession. Logged-in raiders add the recipes their characters know (from the item database, with Wowhead links) and remove their own; officers can remove anyone's.
requests.htmlpublicRequests — Marks of the Illidari. Members: your own requests and hand-outs, a form to file a new one for any of your characters, and the waiting list where the guild shows it. Officers: the whole queue, tick-offs, walk-ups and the ledger of who got what, when, from whom. (marks.html is the old address.)
settings.htmlhiddenEvery setting: score weights, roster (with alts, inactive and pickup flags), resist sets, boss templates, feature switches, access rules, loot system. Rebuild and restart buttons.

HTTP API

Served by the guild's bot at https://vortexraidtool.com/demo. Wishlist calls authenticate with the 1-hour token from /wish web; officer and settings calls with a Discord login session as key (an officer's, or the guild master's for settings) — the acting name (by) is taken from Discord. Cross-origin is allowed for this site only.

GET /api/wishlist?token=…Your list: name, lock state, items with slot / won / stackable-ring flags.
POST /api/wishlist{ token, ids: [itemId…] } — replaces your order. Caps: 2 copies for non-unique rings, 1 for everything else; equippables only; 423 while phase-locked.
GET /api/search?token=…&q=…Item search over the local database (Rare+, equippables).
POST /api/import{ token, text } — a WoWSims / Sixty Upgrades export; replaces the whole list.
GET /api/assignments[?date=…]The next comp's assignments, every boss: sections, rows, alternatives, warnings, diagrams. Gated like the page (a raider's session as key, or share=… from an officer's share link). extra=slot,… fills optional slots (officer key needed).
GET/POST /api/assignments/shareOfficers: list share links, make one ({key, by, hours?} — default until the weekly reset) or revoke one ({key, revoke: token}).
GET /api/assignments/eventsServer-sent events: a version tick whenever the comp, a pin or the history changes — the page refreshes on it.
POST /api/assignments/pin{ key, by, date, boss, row, player | list } — an officer's rework of one row (swap semantics; blank = back to automatic). Posted pull cards re-edit.
GET /api/assignments/history?key=…Past weeks' assignments by date, read-only, for the officer date bar.
POST /api/attendance{ key, by, date, player, status | clear } — an officer's attendance override for one night (attended / bench / noshow / missed), what the standings page's signup cross-check saves; the standings rebuild before it answers.
GET /api/requests?key=…Every request type with its queue, recent hand-outs and all-time totals, plus the roster for walk-ups.
POST /api/requests{ key, by, action: "given"|"undo", system, main, amount?, what?, id? } — tick or un-tick a hand-out; 409 on double-grants.
GET /api/council/search · claims · recentCouncil mode: item search, the ranked open claims for one item (Priority, if-won preview), the latest awards.
POST /api/council/award · undo{ key, by, id, player, response } records an award into the loot history (standings rebuild); undo removes one by id.
POST /api/loot/preview · importLoot-history import: { key, text, system } reads a pasted export (CSV / TSV / JSON) and proposes the column mapping; import adds mapping, date order and default response and files the rows next to the addon data.
GET /api/loot/imports · POST /api/loot/undoImports on file (with the supported loot systems and the guild default), and removal of one import.
GET /api/roster/unknown?key=…Log characters with no roster entry, with class, nights, likely owner and any matching Raid-Helper signup.
POST /api/roster/link{ key, by, name, altOf | discord + discordId | pug, class?, role? } — file a character as an alt, a new main or a pickup; roster validated, backed up, audited; standings rebuild.
GET/POST /api/settingsGuildmaster password: read every config file with its schema, or write one field ({ file, path, value }) or a whole file ({ file, doc }). /rebuild and /restart do what they say; /unlock hands the officer passphrase to a guildmaster login.

Data flow: Warcraft Logs (attendance · parses · consumables) + Raid-Helper (signups · comps) + RCLootCouncil history (read straight from the game files, or imported) rebuild everything nightly at 23:45; officer edits publish within ~a minute. Alts always roll below mains, and the council always has the last word.

Made with Vortex Raid Tool · Get it for your guild