MagusDM

Custom DM Addon for MSOD

MagusDM


Quick start

Players

  1. Drop MagusDM into World of Warcraft/_retail_/Interface/AddOns/.
  2. Log in. A minimap button appears.
  3. Left-click the minimap to open the Roster.
  4. Click My Card on your own card (or type /dm mycard) and pick your Division, Academic Proficiency, Specialty, Survival Perk, and up to 4 Abilities. Hit Save.
  5. When the DM begins the scene, cards lock. /roll 20 in chat to resolve Combat, Environmental, or Perception checks — the Roll Feed shows the outcome and your target's HP / mana updates live.
  6. Hit Skills on your own card to find your active abilities (Use buttons), your survival perk, and the four universal Mana Abilities.

DMs

  1. Open the Roster (/dm or minimap left-click).
  2. Use the scene bar at the top:
    • Begin Scene — locks player card editing, resets per-round counters, marks Round 1.
    • Round N → — advances the round counter, drains per-round state (Intervene, used-this-round perks, Transmuter heal-accumulator, Prismatic tick).
    • End Scene — unlocks cards.
    • Reset All — restores every player to full HP/Mana, refills charges.
    • + NPC — spins up a new NPC card. Hostile by default; toggle to Friendly for ally-targeted perks.
    • Sync — push the full state to the group (run this if a new player joins).
  3. Click any card to retarget; right-click the minimap for the Roll Feed (live results, DC control, Combat / Env / Perception mode).

How rolls work

Players type /roll 20 in /party or /raid chat. MagusDM captures the system message, runs it through the active Roll Mode (Combat / Environmental / Perception), applies every pre- and post-roll modifier the player has earned, and writes a color-coded entry to the Roll Feed. HP and mana changes are applied automatically to the correct card; NPC damage goes to your current hostile target, healing goes to your current ally target.

Combat roll table

Roll Outcome
1–3 Critical fail — -6 HP to self
4–5 -4 HP to self
6–7 -3 HP to self
8–9 -2 HP to self
10 Draw — no effect
11–12 +1 damage or healing
13–15 +2 damage or healing
16–17 +3 damage or healing
18–19 +4 damage or healing
20 Critical hit — +6 damage or healing

Environmental roll table

Roll Outcome
1–3 -5 HP to self
4–5 -4 HP to self
6–7 -3 HP to self
8–9 -2 HP to self
10–20 Safe

Perception roll

Pass / fail against a DM-set Difficulty Class (1–20). Margins shown in the feed.


Divisions

Choose one Division at character creation. Each grants a signature perk.

Division Perk Type
Chancellery Coordinated Response — Twice per event, grant an ally +3 to their next Combat or Environmental roll. Must be declared before they roll. Active (2/event)
Collegium Studied Reversal — Twice per event, after seeing your D20 result, invert it (1 → 20, 2 → 19, etc.). Usable on Combat or Environmental rolls. Active (2/event)
Conservatory Restorative Arts — When you heal an ally (not yourself), they also recover 1 Mana. Once per round. Passive
Vanguard Combat Discipline — Select a second Specialty at character creation. Passive

Specialties

Every character picks one Specialty (Vanguard members pick two). All are passive.

Specialty Effect
Spellbreaker -1 damage from failed Combat rolls (can reduce to 0). Cannot be combined with Shimmer.
Abjurer +2 Maximum HP. Stacks with Triune Ward.
Invoker +1 damage on successful Combat rolls.
Conjurer +2 Maximum Mana.
Enchanter Pick one branch at creation: Survival (+1 Survival Perk charge, max 3) OR Two Abilities (+1 charge to two chosen non-passive ability slots).
Diviner +3 to Perception AND Environmental rolls.
Transmuter Every 2 HP of healing you receive in a round grants you +1 Mana.
Medic +1 healing when your roll heals an ally.

Academic Proficiency

Sets your Maximum Mana pool.

Rank Max Mana
Novice 5
Apprentice 6
Magus 7
Undermagus 8
Archmage 10

Survival Perks

Pick one. 2 charges per event (3 with Enchanter's Survival branch).

Perk Effect
Alter Time Activate, then re-roll. Take the higher of the two results. (Uses the re-roll pipeline — activate, /roll, see result, /roll again.)
Blink Activate to dodge the next incoming self-damage hit (Combat OR Environmental).
Spell Reflect Activate before a Combat roll. When you take self-damage, deal exactly 2 damage back to your hostile NPC target. Combat-only; on Environmental self-damage the buff stays primed for the next combat hit.

Abilities

Equip up to 4. Active abilities show a Use button in your Skills panel; passives fire automatically when their condition is met. Limited-charge abilities track per-event usage. A global once-per-round cap stops you from re-firing the same named ability in the same combat round (Mana Abilities are exempt).

Active abilities

Ability Charges Effect
Prismatic Barrier 2/event On self-damage of 3 or more, take 1 immediately and queue the rest to tick 1/round at every Round advance. Pierces all mitigation.
Blazing Barrier 2/event Activate before a Combat roll. When you take self-damage, reflect the full (unmitigated) amount to a hostile NPC target. Combat-only.
Ice Block 2/event Convert the next successful Combat hit's damage into self-healing at 2x. Gains both damage-side AND heal-side perks (Medic/Empower/Clearcasting heal twins are layered on before the doubling).
Guardian 2/event Enables a second Intervene on the same turn while one is already live on another ally. (Once-per-round gated.)
Displacement 2/event Queue a hostile NPC redirect target. The next Intervene you place routes the intervened damage to that NPC. Stacks with Guardian so both intervened allies' damage goes to the same NPC.
Evocation 2/event Pick a depleted ability or survival slot on an ally (player or friendly NPC). That slot recovers 1 charge, capped at the recipient's effective max (includes Enchanter's +1). 30-second timeout refunds the caster's charge if the target never picks.
Rune of Power 2/event Activate. On your next Combat roll, if you roll 10+, skip your attack and rally self or chosen ally with a +5 bonus to their next Combat roll. If you roll <10, the attempt fails and the charge is spent.
Clearcasting 2/event In addition to your next Combat roll, deal +3 damage or healing to your current target. Fires even on failed Combat rolls.
Arcane Echo 2/event On your next successful Combat hit (roll 11+), immediately /roll again. The second roll skips all mitigation — no dodges, reflects, reductions, survival perks, or Cauterize.
Amplification 2/event Double the base roll's damage or healing on your next Combat roll. Bonuses (Spell Focus, Invoker, Empower, Clearcasting) layer on top after the doubling.
Diviner's Mark 2/event Mark a hostile NPC target. +2 to all your attack rolls against the mark for the rest of the event. Buff persists through the mark — doesn't consume on first hit.
Cauterize 1/event Auto-trigger. When a self-damage hit would drop you to 0 HP, survive at 1 HP instead. Cannot fire during an Arcane Echo second roll.
Empower Unlimited Pay 2 self-HP at activation. +2 damage or healing on your next Combat roll. Applies to the chosen target even on failed rolls.

Passive abilities

Ability Effect
Spell Focus +1 damage on successful Combat rolls.
Triune Ward +3 Maximum HP. Stacks with Abjurer.
Arcane Intellect Roll 10 → deal/heal 5 (pick a target; applies when you do). Roll 20 → deal/heal 5 (not 6). Roll 1 → -8 self (not -6). Combat only.
Shimmer +2 to Environmental rolls. -1 damage from failed Environmental rolls (cannot reduce to 0). Cannot be combined with Spellbreaker.
Enlightened +5 to Perception rolls. Stacks with Diviner for +8 total.
Absorption -1 damage from failed Combat rolls. Cannot reduce damage to 0.
Spellsteal On Environmental rolls of 13 or higher, deal 3 damage to a hostile NPC target OR heal 3 to an ally target.
Incanter's Flow While at ≤50% HP: +2 base damage/healing on successful rolls, +1 self-damage taken on failures.
Ice Barrier While at ≤50% HP: -1 self-damage taken (floor 1), -1 base damage/healing on successful rolls.

Mana Abilities

Universal to every character — they don't occupy ability slots and they're the only abilities that consume mana. Gated by mana cost (and per-event limits where noted).

Ability Cost Limit Effect
Arcane Surge All remaining mana 1/event Pre-declare. Multiplies your next roll's damage or healing by the amount of mana spent. (Spend 5 mana → 5x roll output.)
Ward 2 mana Grant an ally (player or friendly NPC) +2 temporary HP. Self-cast allowed.
Mana Gem 3 mana Restore 1 charge to a depleted ability or survival slot on self or an ally. Respects Enchanter's +1 caps.
Mirror Image 5 mana Negate your next self-damage this round and deal 2x that amount to your hostile NPC target. Gain +2 temporary HP.

Intervene

Every roll of 10 or higher in Combat or Environmental mode opens a one-turn Intervene window. For each ally card (player or friendly NPC), a gold Intervene button appears on their card while your window is open. Clicking it:

  • Redirects half the ally's incoming self-damage to you (ceil(raw / 2)). A Critical Intervene (roll 19+) negates the damage entirely — you take nothing, the ally takes nothing.
  • Pairs with Guardian to let you Intervene on a second ally that same turn.
  • Pairs with Displacement so the redirected damage hits the queued hostile NPC instead of you.

Window closes the moment you roll again or the round advances.


NPC disposition

Every NPC card has a disposition flag: Hostile (default) or Friendly. A DM clicks the Friendly/Hostile toggle on the card (or flips the Friendly? checkbox in the Edit frame) to change it. The flag controls which pickers accept the NPC as a target:

  • Ally pickers (split-heal, Coordinated Response, Intervene, Guardian, Displacement receiver, Evocation, Rune of Power, Ward, Mana Gem, Clearcasting / Empower heal) accept friendly NPCs in addition to player characters.
  • Enemy pickers (Combat damage, Blazing Barrier reflect, Spell Reflect, Mirror Image, Spellsteal damage, Displacement redirect, Diviner's Mark) accept hostile NPCs only.

The disposition rides along on every sync message, so every client sees the same classification.


UI tour

Roster

Player cards show name, status (Active / Knocked Out / Dead), HP + temp HP, Mana, active buffs, Division and Specialty, Survival Perk, all 4 Abilities with remaining charges, and the current target. Clicking another card sets that character as your target; clicking your current target again clears it. The gold border marks the card you're targeting.

NPC cards are more compact: name, status, disposition label, HP, notes. The DM's button row adds ±HP, Friendly/Hostile toggle, Remove, and Edit.

Roll Feed

Three control buttons set the active Roll Mode: Combat, Environmental, Perception. A DC editor appears when Perception is active (DM only).

Every roll produces one line with:

  • A glyph and the displayed roll value (including raw>adjusted when a modifier moved it — Studious Reversal, Rune of Power, etc.).
  • Player name + mode tag.
  • Outcome label (+2 Damage, Intervened by X (CRIT, no dmg), PASS (DC 15 +4), etc.).
  • Any HP / mana applied (Goblin -3 HP (7), self -2 HP (8)).
  • A bracketed note list for every modifier that fired (Invoker +1, Medic +1, Clearcast +3, Arcane Surge x5, Intervened by Y, Cauterize! Survived at 1 HP…).

Skills panel

Per-player. Rows for Division perk, Survival perk, every equipped ability, and the four Mana Abilities. Active rows have Use / Activate buttons; charge counts display as N/M (red when empty, yellow when partial). You always see your own panel; the DM sees any player's.

Edit frame

Appears when you click Edit on a card (DMs) or My Card on your own (players). Build fields: Max HP / Current HP / Temp HP, Max Mana / Current Mana, Academic Proficiency (auto-fills mana), Division, Specialty, 2nd Specialty (Vanguard only), Enchanter branch picker (Survival or Two Abilities), Survival Perk, 4 Ability slots with per-slot charge spinners. Buff toggles for Rune of Power and Diviner's Mark. NPC-only: rename, Friendly? flag. Hidden rows collapse; no empty gaps.

Minimap button

  • Left-click: toggle the Roster.
  • Right-click: toggle the Roll Feed.
  • Drag: reposition around the minimap edge.

Slash commands

Command Description
/dm Toggle the roster panel
/dm feed Toggle the roll feed
/dm settings Open font and window settings
/dm mycard Edit your own card (before scene starts)
/dm promote Name Grant DM role to a player [DM]
/dm demote Name Remove DM role from a player [DM]
/dm npc Name HP Add an NPC with optional HP value [DM]
/dm remove Name Remove a player or NPC from the roster [DM]
/dm dc N Set the Perception DC (1–20) [DM]
/dm mode X Set roll mode: combat, env, perception [DM]
/dm note Name text Set a note on a card [DM]
/dm begin Lock cards and start the scene [DM]
/dm end End the scene and unlock cards [DM]
/dm round Advance the combat round counter [DM]
/dm sync DMs push full state; non-DMs request a refresh
/dm clear Wipe all scene data [DM]
/dm restore Re-apply your saved character build
/dm help List commands in chat

Names are first-name only — no realm suffix.


How sync works

  • Solo: all features work for testing. Messages are whispered to yourself to simulate the sync path.
  • Party / raid: hidden addon messages on the PARTY or RAID channel carry card updates, roll results, scene state, and the NPC roster. Every player in the group needs MagusDM installed.
  • DM assignment: the group leader is automatically the DM. A solo character is automatically the DM of their own session. Additional DMs can be promoted with /dm promote Name (leader only).
  • Canonical roll processor: when multiple players are flagged as DM, the alphabetically-first DM is the sole processor for any given roll. Exactly one HP application, one Roll Feed entry, one broadcast — no double-apply from stale co-DM flags.
  • Join-as-non-leader: on joining a group as a non-leader, local NPC / DM-list / target state is wiped and a sync is requested from the DM within 2 seconds. Prevents solo-era ghosts from leaking into the new group.

Data persistence

All state lives in WTF/Account/<account>/SavedVariables/MagusDM.lua and survives addon updates, /reload, and logout:

  • Every character card, NPC, roll history, scene notes, roll mode + DC, round counter, window positions, font scale, minimap position, and the DM list.
  • A durable per-character build profile is snapshotted every time you save your own card. It captures Division, Specialty, 2nd Specialty, Survival Perk, base Max HP / Mana, Ability slots, and Enchanter branch. The build is re-applied on every PLAYER_LOGIN, after any FULL_SYNC that overwrites your own entry, and after /dm clear, so your sheet survives:
    • Addon updates that change the player-record layout.
    • A DM broadcasting a stale or blank view of you.
    • /dm clear on any DM's machine.
    • Logging into an alt when a different character was the DM last session.

Use /dm restore at any time to manually re-apply the saved build.


Installation

  1. Download the zip from CurseForge.
  2. Extract to World of Warcraft/_retail_/Interface/AddOns/.
  3. The folder should be named MagusDM.
  4. Log in, enable in the AddOns menu if needed.
  5. /dm to open the roster, then /dm mycard to build your character.

Press Escape to close any open MagusDM window. All frames are movable, resizable, and remember their positions between sessions.


Troubleshooting

  • Rolls don't appear in the feed. Begin a scene first (/dm begin or the Begin Scene button). The feed ignores rolls outside an active scene by design.
  • The "+ NPC" / scene-bar buttons aren't visible. Only DMs see them. If you're solo and not flagged as DM, run /dm restore or re-log — a stale DM entry on an alt can block auto-promotion (fixed in 1.7.0).
  • Mixed-version groups. The addon is backward-compatible within the 1.x line — older clients ignore newer fields (e.g. NPC disposition, character profiles). For the cleanest experience, keep the whole group on the same version.
  • NPC appears on an alt that didn't create it. SavedVariables is per-account, so NPC rosters persist across your characters. /dm remove Name cleans up.

MagusDM is developed and maintained by the Magus Senate of Dalaran.

The MagusDM Team

profile avatar
  • 2
    Projects
  • 185
    Downloads

More from salazardemes