# Guild & Raid Information

General information about the guild and raid.

# Guild Information

### <span class="c13">Guild History</span>

<span class="c13"><span style="color: rgb(241, 196, 15);">&lt;Trash Mob Death Machine&gt;</span> has been a guild on Illidan since The Burning Crusade, initially formed by </span><span style="color: rgb(63, 199, 235);">**<span class="c14">Nethrus</span>**</span><span class="c13">. It raided as a one-day-a-week casual guild until Cataclysm when the raid's goals were changed to be closer to semi-hardcore. During the Firelands tier, **<span style="color: rgb(63, 199, 235);">Nethrus</span>** needed to step away from the game. Leadership of the guild was passed to </span><span style="color: rgb(135, 136, 238);">**<span class="c14">Zarillion</span>**</span><span class="c13">, who is the current guild and raid leader.</span>

<span class="c0">The guild continues to maintain a semi-hardcore environment and has raided in some capacity during every tier. We have casual members and raid-oriented members, some of whom have been around since the start. The guild has *numerous* Cutting Edge achievements and is the longest standing raiding guild on Illidan.</span>

### <span class="c0">Guild Officers</span>

- <span class="c0">**<span style="color: rgb(135, 136, 238);">Zarillion</span>** - Guild/Raid Leader</span>
- <span class="c0"><span style="color: rgb(170, 211, 114);">**Keyona**</span> - Recruitment Officer</span>
- <span class="c0"><span style="color: rgb(196, 30, 58);">**Jokeboss**</span> - Raid Strategy &amp; Review Officer</span>
- <span class="c0">**<span style="color: rgb(244, 140, 186);">Rolanor</span>** - Raid Traffic Control Officer</span>
- <span class="c0"><span style="color: rgb(244, 140, 186);">**Promise**</span> - Attendance, Bank &amp; Healing Officer</span>
- <span class="c0"><span style="color: rgb(255, 244, 104);">**Siknd**</span> - Loot Master</span>

### <span class="c4 c12">General Rules</span>

- <span class="c0">We maintain a strict no-elitist environment in our guild. We play the game primarily to down bosses and have fun, not to put other people down or create drama.</span>
- <span class="c0">Do not say racist or offensive things in guild chat or Discord; know your boundaries.</span>
- <span class="c0">Help others when you can. There are no stupid questions and everyone plays the game at their own level.</span>
- <span class="c0">Bring any and all issues to the officers *first* -- that’s what we’re here for.</span>

# Raid Information

### About the Raid

Our main goal in the core raid is to clear each raid on Mythic difficulty and earn everyone who helped with progression their Cutting Edge achievement and final boss rewards. This means finishing progression with enough time left in the tier to farm the rewards out for everyone.

We do not have a specific World, US or Realm rank goal. Setting one in a semi-hardcore guild would put additional strain on progression, and downplay our success if we finish a tier ranked lower than the previous tier. We will always strive to clear the content as fast as possible with the players we have available.

We will always complete the `[Glory of the …]` meta achievement for the current tier for those that are interested. This usually occurs after Cutting Edge is achieved.

### Raid Rules

- <span class="c0">Players are swapped in/out based on loot needs during farm content.</span>
- <span class="c0">Players are invited based on performance during progression.</span>
- <span class="c0">Consumables provided by the bank!</span>
- <span class="c0">Come to raid prepared and show up on time.</span>
    - <span class="c0">Invites begin 15 minutes before raid starts.</span>
- <span class="c0">Attendance is taken for core raid nights.</span>
    - <span class="c0">Showing up on time gives full credit, even when sitting out.</span>
    - <span class="c0">Logging in after the hour gives half-credit (even by 1 minute!).</span>
- <span class="c0">Final boss rewards (i.e. mounts) are handed out based on attendance.</span>
    - <span class="c0">Mounts that drop three at a time will be split 1 officer 2 raiders until each officer has a mount.</span>

### Raid Schedule

- `TUE` - Mount sales and normal/heroic farm for core. Attendance optional but encouraged.
- `WED` - Mythic farm/progression.
- `THU` - Mythic farm/progression.
- `SAT` - Alt raid (normal or heroic).
- `SUN` - Mythic farm/progression.

All raids are 3 hours, 9pm to 12am server time (central).

### Required Addons

- [**TMDM Encounter Client**](https://www.curseforge.com/wow/addons/tmdm-encounter-client) - This addon presents boss assignments on your screen and provides other general features useful to our raid. We use this client to minimize the number of external (and often buggy) auras we use. See this [page](https://wiki.tmdmguild.com/books/guild-raid-information/page/tmdm-encounter-client) for more information.
- **[BigWigs](https://www.curseforge.com/wow/addons/big-wigs)** - You are *strongly* encouraged to use BigWigs over DBM. When the entire raid uses the same boss mod, it makes the lifes of the officers easier. We do not need to worry about compatibility issues, and we do not have to explain how to change boss-specific settings twice.
- **[Method Raid Tools](https://www.curseforge.com/wow/addons/method-raid-tools)** - We use MRT notes for our healing assignments and some aura configurations.
- **[WeakAuras](https://www.curseforge.com/wow/addons/weakauras-2)** - While the TMDM Encounter Client reduces the number of auras we need, some are still required.
- **[RCLootCouncil](https://www.curseforge.com/wow/addons/rclootcouncil)** - We use this addon to distribute loot.

### Required WeakAuras

- **[Interrupt Anchor](https://wago.io/InterruptAnchor)** - An aura that places interrupt assignments above enemy nameplates.
- **[LiquidAnchors](https://wago.io/LiquidAnchors)** - An aura that provides generic movable anchors for the raid-specific Liquid WA packs.
- [**LiquidWeakAuras**](https://wago.io/LiquidWeakAuras) - An aura containing utility functions required by Liquid assignment auras.
- The Liquid WA pack for the current raid tier (ex: **[LiquidAmirdrassil](https://wago.io/LiquidAmirdrassil)**).

Additional required auras may be listed on the strategy page for specific bosses.

### Loot Rules

The RCLootCouncil addon is mandatory and will be used to determine who needs what item and their level of need. Everyone will be able to see what people have put for their response. If you do not have the addon you will not be considered for loot. The loot master will take level of need, progression impacts and rolls into account when deciding loot recipients.

- *Do* message the loot master if you have questions about how a decision was made.
- *Do not* message the loot master to bitch about how you didn't get loot. They are not your parents.
- *Do not* lie about the value of an item. [The officers always find out.](https://tenor.com/view/baskin-robbins-always-finds-out-dale-ant-man-gregg-turkington-gif-26290481)

Bind-on-equip items are handled different based on whether they dropped from trash or a boss.

- Boss-drop BoE items *may* be sold if their current sell value far exceeds their immediate usage value to the raid.
- Trash-drop BoE items are kept by whoever looted them! Go sell that shit!

#### Special Cases

- <span class="c4">**Trial members** </span><span class="c0">are 2nd lowest priority for loot.  
    *Nothing against trials but they do tend to leave and core raiders deserve priority for progging the tier.*</span>
- **<span class="c4">Alts</span>**<span class="c0"> are the lowest priority for loot.  
    *Alts may have their priority raised in special cases where we need them for progression.*  
    </span>

### Trial Period

The trial period typically lasts for three weeks after Mythic raiding has begun. Trials are extended at the beginning of a tier before we get into Mythic. We are looking for players with a balance of ability, attendance and attitude. Doing poorly in any category is enough to fail your trial with us.

### Raid Links

- **[Raid Roster](https://docs.google.com/spreadsheets/d/18_mAd6UeeI53KM7f8a4_9IXr9Dy8wGOgUupjS0z_DxM)** - Roster spreadsheet tracking current level, gear, Mythic+ vault and reputations.
- **[Raid Attendance](https://docs.google.com/spreadsheets/d/1AwM6dqb4v9x5MP663QCpvqhE8gm0igQRLgDeAyiQGdo)** - Attendance tracking for the raid roster.
- **[Raid Audit](https://wowaudit.com/us/illidan/trash-mob-death-machine/main/wishlists/personal)** - Upload your sims here before raid to help with loot distribution.
- **[Raid Cooldowns](https://wowutils.com/viserio-cooldowns/raid/overview)** - We use Viserio's CD Planner website for planning our defensive &amp; healing CDs.
- [**Raid Memes**](https://www.canva.com/design/DAGeS9wzB94/YIzADI-IziJrRMBEOE62tA/edit) - An ever-growing collection of our memes. We have a *lot* of memes.

### External Links

- **[Warcraft Logs](https://www.warcraftlogs.com/guild/calendar/11499)**
- **[Raider.io](https://raider.io/guilds/us/illidan/Trash%20Mob%20Death%20Machine)**
- **[GuildsOfWoW](https://guildsofwow.com/tmdm)**
- **[WoWProgress](https://www.wowprogress.com/guild/us/illidan/Trash+Mob+Death+Machine)**
- **[Youtube](https://www.youtube.com/channel/UCtf0hiMlvV4OaXEXb6XvwAw)**

# TMDM Encounter Client

A guide to the TMDM Encounter Client by <span style="color: rgb(135, 136, 238);">**Zarillion**</span>.

### What is it?

The [**TMDM Encounter Client**](https://www.curseforge.com/wow/addons/tmdm-encounter-client) is an addon developed specifically for use in our raids. It is a display addon that allows text, sounds, chat messages, emotes, frame glows and more to be triggered via addon messages sent by the raid leader.

### Motivation

Before discussing how the client works, you should think about the current state of complex assignment auras and their downsides. Think about the following:

- **How many times** have you wiped to assignment auras not working or producing wrong results?  
    *Example: Two players assigned to jump into the same hole on Jailer.*
- **How many times** have you wiped to players not having the same updated version of an assignment aura?  
    *Example: One player still has assignment aura v1.2.2 and the rest of the raid has updated to v1.2.3.*
- **How many times** have you wiped to players not having the correct utility auras to make the assignment aura work?  
    *Example: A player's assignments are not working in the Liquid pack because they do not have the LiquidWeakAuras utility aura or it is out of date.*
- **How many times** have you wiped to an assignment aura not updating automatically as people die on progression?  
    *Example: An assigned player dies and instead of automatically assigning another player, the raid has to coordinate a backup at the last second in voice (if they even notice).
- **How much time** has your raid wasted setting up the complex assignments that make these auras work?  
    *Example: A player joins in the middle of the raid and all of the assignments need to be updated to ensure the auras keep working as expected.
- **How much time** has your raid wasted waiting for a new player to get all of these auras installed correctly?  
    *Example: Someone has to leave and you now spend 20 minutes setting up a bench player's auras.*
- **How much time** has your raid wasted figuring out who was assigned what after a wipe is called?  
    *Example: An egg is not popped on Ovi'nax. Which two players were assigned to that egg by the assigment aura?*

These auras are *brittle*. The auras are *inflexible*. They auras are *buggy*. These auras are *inconsistent*. These auras can be hard to work with and they often provide little information about what they did during each pull. Think about the total amount of *time* and *wipes* caused by some of the assignment auras. We should be progging the boss, not the weakaura.

> I think about 20% of our wipes on the last three bosses of the last few tiers can be attributed to the Liquid or Nothern Sky assignment auras.
> 
> <span style="color: rgb(244, 140, 186);">**Rolanor**</span> - Raid Traffic Control Officer

### Design

The client does not *do* anything by itself. It is simply a listener that allows addon messages triggered by the raid leader to display information on your screen. Any complex assignment logic is handled by code running on the raid leader's computer (typically done through custom auras written by me).

<div drawio-diagram="135"><img src="https://wiki.tmdmguild.com/uploads/images/drawio/2025-02/drawing-1-1739856963.png" alt=""/></div>

  
This eliminates *entire classes of problems* from the list in the previous section:

- **Assignments cannot conflict**. The assignments are run *one time* on the raid leader's computer.
- **Assignments do not rely on auras.** Simply keep the client addon updated in the CurseForge app.
- **Time is not wasted installing auras for each boss.** New &amp; bench players install the client one time.

It is not currently possible for the client to replace *all* auras we may want to use on a fight. As I add more features we are able to replace more fight-specific auras over time. However, the most important "go here now" or "do this now" type of assignments are what this client excels at and are the most critical pieces of any complex fight.

### Assignments

The client eliminates some of the headaches of common assignment auras. The *way* in which our assignment code is written helps alleviate some more. When writing our custom assignment code I strive for the following:

- *Dynamically a*ssign as much as I can without relying on static lists of player names in notes.
- *Automatically* reassign mechanics to new players as existing assigned players die.
- *Report* what the assignments are in raid chat to help diagnose wipes.

We have freedom to customize how we assign things. We can prioritize players, classes and specs in ways that suit us, which is not something that could easily be baked into the standard assignment auras. Approaching assignments this way saves potential wipes and reduces the setup time needed when the roster changes week-to-week.

### Example

Here is a portion of the assignment code written as an aura for the *Broodtwister Ovi'nax* encounter:

```lua
function (event, ...)
    local aura_env = aura_env

    local function Emit (message, target)
        C_ChatInfo.SendAddonMessage('TMDM_ECWAv1', message, 'WHISPER', target)
    end

    local function AssignDosages ()
        if #aura_env.dosages == 0 then return end

        local unassigned = {}

        local function AssignLocked (player)
            for marker, locks in pairs(aura_env.locked) do
                for i, lock in ipairs(locks) do
                    if lock == player then
                        table.insert(aura_env.assignments[marker], player)
                        return
                    end
                end
            end
            table.insert(unassigned, player)
        end

        local function AssignUnlocked (player)
            for marker, assignments in pairs(aura_env.assignments) do
                if #assignments < 2 then
                    table.insert(assignments, player)
                    return
                end
            end
        end

        -- Assign locked players
        for i, player in ipairs(aura_env.dosages) do
            AssignLocked(player)
        end

        -- Assign left-over players
        for i, player in ipairs(unassigned) do
            AssignUnlocked(player)
        end

        -- Send out assignment messages
        for marker, assigns in pairs(aura_env.assignments) do
            local rt = "{rt"..marker.."}"
            SendChatMessage(rt..": "..(assigns[1] or "(none)").." "..(assigns[2] or "(none)"), "RAID")
            for i, player in ipairs(assigns) do
                Emit("c=SAY "..rt..";m="..rt.." DOSAGE "..rt..";d=8", player)
                C_Timer.After(4, function () Emit("c=SAY {rt"..marker.."}", player) end)
            end
        end

        -- Reset for next set
        aura_env.dosages = {}
        aura_env.assignments = { [6] = {}, [4] = {}, [3] = {}, [7] = {} }
    end

    if event == "ENCOUNTER_START" then
        aura_env.MRT()
        aura_env.dosages = {}
        aura_env.assignments = { [6] = {}, [4] = {}, [3] = {}, [7] = {} }
    elseif event == "COMBAT_LOG_EVENT_UNFILTERED" then
        local _, message, _, _, _, _, _, _, destName, _, _, spellID = ...
        if message == "SPELL_AURA_APPLIED" and spellID == 440421 then -- Experimental Dosage
            table.insert(aura_env.dosages, destName)
            if #aura_env.dosages == 1 then
                C_Timer.After(0.5, AssignDosages)
            elseif #aura_env.dosages == 8 then
                AssignDosages()
            end
        end
    end
end
```

This aura allowed 8 players to be "fixed" to an egg in the MRT note, and dynamically assigned any other players to eggs as they received the *Experimental Dosage* debuff. Most importantly, it sent out a message to the `RAID` channel for each egg marker indicating who the assigned players where.

The #1 aura-related complaint we heard from raid applicants after the Nerub-ar Palace raid were the Ovi'nax auras used by their guilds. Our guild didn't have to worry about that, it just worked.

### Summary

With all of the above in mind, remember that there is a *cost* to using the client. Namely, I am writing the custom assignments as we get to each boss during progression. It is unlikely that I will get them working exactly right on pull #1, so sometimes we have to spend a few pulls debugging any initial issues. *However*, keep in mind that once they are sorted out and it is working, we don't have to think about it for the *rest of the tier* even as players come and go.

Ultimately, I am personally taking on all of the aura headaches mentioned in the motivations at the top so that the raider's experience is simply "install the client". This saves time and reduces wipes considerably in the long run, so be patient when we are working through issues.