Okay, hold up, I happened to be reading this thread and I can't help but feel like this thread totally derailed with a lack of technical understanding combined with too much technical understanding of possibly the wrong topic.
First off: War3 Model Editor
The War3 Model Editor program cannot open Warcraft III game installation files since the 2017(ish) patches, and as of the 2020 patch 1.32 the War3 Model Editor program
cannot even open any models. In order to use that program, you have to go and download the legacy versions of the Warcraft III game because of how that program can't load anything at all on Patch 1.32 and beyond. The Warcraft III Patch 1.32 client includes files that look the same as the old ones and can be used to emulate the "Classic" game artwork, but these files are not the old legacy engine files. They are not the same format, and they will not open in the War3 Model Editor tool which has not been updated since 2006. We have the Reforged developers to blame for this (in my opinion) silly technicality -- the "classic legacy artwork" files included in the Reforged-era client, even if you do not buy Reforged and just download the bloated modern 1.32 installation in order to play classic -- even in that case all of your "classic" models are in the
Reforged format which the old tools that many Warcraft III modders know and love such as War3 Model Editor
cannot open. This is why you see
"got a Shad tag" as your error message. "Shad" in this case is a binary reading of "Shader", and the old 2002 models were made in a game engine that did not use shader programs and those old assets would not contain references to information about shaders. This issue is hidden by Retera Model Studio because I try hard to pretend that a "classic looking asset in the Reforged format" and the "classic asset from the historical legacy 2002 game" are the same. I like to pretend that they are the same because they encode the same information, so to me when I go to use them they are functionally equivalent and I can easily convert between them with a touch of a button on Retera Model Studio (via "Scripts -> Assign FormatVersion").
So now you learned something fun about how
@deepstrasz was trying to help you, and why it did not work for you, but let's go a step further and take a step back to look at what you're actually trying to achieve.
Second point: Reforged skins
You did not specify in any extensive depth but I assume you are referring to the "Units\UnitSkins.txt" file which was added in the Reforged 1.32 client. So it is possible that you quite literally mean that you edited the unit skins, but keep in mind at the same time that some user who is sitting on War3 Model Studio and living in the "good old days" version of Warcraft III is a user who plays a fundamentally simpler game engine where changing unit skins means something totally different. It would pretty much have to refer to modifying the characters in the World Editor, which I assume you are not doing.
So, given that you are not creating a custom map, and that it would desync you from other players to
change game behaviors, I assume that creating a an invisible, dying destructable AND firing a custom trigger into the script environment are
both totally off the table and not an option for you because you do not want to get disconnected from other players during a melee game in which you want to play your locally modified client to see the world a different way.
So, my heart goes out to
@deepstrasz because he's talking about doing the sorts of things that I personally enjoy and that are the reason I was ever here to begin with but after rereading this thread a second time I firmly believe his suggestions are misguided given the goal you are trying to achieve.
Third point: how to actually do what you want
Let's talk about what you
can do. You
can locally modify unit soundsets OR models using the skin system without desyncing in a melee game. That's basically the entire point of a "skin". As a possible but simple experiment I would prescribe you to attempt changing the soundset of the undead dreadlord using the "Unit\UnitSkins.txt" file to instead be the "Tichondrius" soundset. Then when you play a melee map versus an opponent (who has
no idea that you are using a modded client like this and cannot see your locally modded skins) you would find that your Dreadlord no longer says "The night beckons" when he is trained. And you are correct that this is because the "Tichondrius" soundset has no data regarding a Ready sound. So, assuming for example that you may have locally modded the dreadlord to use the Tichondrius 3D asset as his model file, you have two choices. As deepstrasz was hinting at, there is a system in place that allows you to embed a sound into a model file. However, without even looking I'm going to take a guess that both Tichondrius.mdx and HeroDreadLord.mdx both have
no animation sequence named "Birth" in their model file because heroes usually spawn into the game by playing their Ready sound and doing their Stand animation or whatever, so they did not need a "Birth" animation.
However, if you did actually put in the effort and learn how to create a custom modified 3D model file for your character, give that model its own "Birth" sequence included in that model, and then during that sequence spawn a sound using the EventObject system that deepstrasz pictured, you would
still have a problem. And this problem is, just for the sake of example, if you wanted to play "THe night beckons!" from a dreadlord in that model data, you would need a special 4-letter identifier added to the local Warcraft III client installation that would refer back to this "The night beckons" sound file. Because the other units in the game do not play their Ready sounds using this system, there is not already an identifier in the game data that you can use. So, you would have to go and modify "UI\SoundInfo\AnimLookups.slk" table to add an animation lookup for the sound file located at "Units\Undead\HeroDreadLord\HeroDreadLordReady1.flac" or whatever, but of course even though you want to use that virtual path in the table when you look for this file on your Reforged install it's actually going to be in a location such as "war3.w3mod/_locales/enus.w3mod/units/undead/herodreadlord/herodreadlordready1.flac" or whatever. I am not on a computer where I can look these paths up at the moment so I am mostly just trying to type these from memory.
So let's assume everything that I just said sounds stupid and complicated. In my opinion, doing all of that is going to end up being equal or more work to what it would take you to just actually add the ready sound to the Tichondrius soundset. Skip all that other stuff -- at least prior to Reforged it was possible to literally edit any soundset you want. And Reforged mucked up a lot of this stuff and made it more complicated in an effort to support the computer generated character mouth movements, but the basic premise of how I would have done this pre-Reforged, I assume, would still work on Refoged. So, what you're going to want to do is to learn the layout and location of the soundset information on your installation. In Reforged these started moving around and getting more complicated but they are all still located in "UI\SoundInfo\blabla.slk". Historically it was "UI\SoundInfo\UnitAckSounds.slk" but Reforged may have moved this into the separate SLK files per-race that are named "undeaddialogues.slk" or something like this.
Regardless, you're going to want to find a table where you find a reference to HeroDreadLordReady as a key in the first left-most column, and then as a value it will have "Units\Undead\HeroDreadLord\HeroDreadLordReady1.flac" or whatever. Basically, you want to copy that row, and add a new row for Tichondrious. In the old system the ready sounds were stored in the same place as the other soundset sounds so if you're lucky that might still be true, although I'm not sure if that might have changed because of the ready sounds not needing to move the character lips with the Reforged computer generated lip movements (purchased in a license by Blizzard from
FaceFX | OC3 Entertainment)
The premise of how these soundsets
used to work is that it was very simple. The unit data (which you now see in your UnitSkins.txt) defines a "soundset" field which is a string name, such as "Tichondrius" or "HeroDreadLord". Oddly, historically this same string never appeared directly as a key in the UnitAckSounds.slk table. Instead, that string had a suffix added for each lookup such as "HeroDreadLordYes" and "HeroDreadLordWhat" and "HeroDreadLordYesAttack" and this was even though the unit skins would just have "soundset=HeroDreadLord". That's where the lookup key "HeroDreadLordReady" becomes important -- it really honestly is just automatically generated by the game engine via appending the string "Ready" on the end of the setting in your unit data (UnitSkins.txt).
So, all you really need to do, and I apologize for taking so many words to explain this, is to copy the "HeroDreadLordReady" row from whatever table you find it in (inside of "UI\SoundInfo\" in a file named "undeaddialogue.slk" or whatever Reforged calls it now, or maybe it will be in "UnitAckSounds.slk" if a file with that name still exists), and paste a new row where the leftmost key name now will be "TichondriusReady". And you can leave the file path column or columns the same, so that it still refers to "Units\Undead\HeroDreadLord\HeroDreadLordReady1.flac" or whatever, and that way any unit who has the voice of Tichondrius will play that "The night beckons!!" sound when the unit or hero is trained.
Looking back this was a lot more words than you needed for a relatively simple problem with a relatively simple solution. But by explaining what I know on these topics I hope that I lead you to a better future through better understanding. Good luck!