Typically when I did the 90% thing I would use JASS to do it so that I could use the existing triggers that spawn the Human/Orc/NE/Undead and change those triggers directly -- the ones built into the game -- to spawn the new units as fifth/six options instead based off of handicap.
Here's a
reply post I made to someone else's tutorial, where I gave
my own tutorial as a reply. Although this was written 12 years ago, I don't think the fundamentals have changed too much. On Reforged there are some internal things that can optionally make it easier now, such as adding your custom town halls to the
Gameplay Constants
section in
Categorization - Town Hall
for the "town hall type unit" equivalency. The patch 1.32 changed how that works so that by default it will cause those new towns to prevent "You will be revealed to your opponents," although I think you can also fix the reveal thing in my link above, and so either way works whether you use my thing or leverage the 1.32 fix.
But that's a little bit more advanced. If you just want NAG triggers, that's pretty easy.
-
Events
-

Player - Player 1 (Red) enters NAG as (an exact match)
-

Player - Player 2 (Blue) enters NAG as (an exact match)
-

Player - Player 3 (Teal) enters NAG as (an exact match)
-

Player - Player 4 (Purple) enters NAG as (an exact match)
-

Player - Player 5 (Yellow) enters NAG as (an exact match)
-

Player - Player 6 (Orange) enters NAG as (an exact match)
-

Player - Player 7 (Green) enters NAG as (an exact match)
-

Player - Player 8 (Pink) enters NAG as (an exact match)
-

Player - Player 9 (Gray) enters NAG as (an exact match)
-

Player - Player 10 (Light Blue) enters NAG as (an exact match)
-

Player - Player 11 (Dark Green) enters NAG as (an exact match)
-

Player - Player 12 (Brown) enters NAG as (an exact match)
-
Conditions
-
Actions
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Town Hall)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (Temple of Tides) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Peasant)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (Mur'gul Slave) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Great Hall)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (Temple of Tides) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Peon)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (Mur'gul Slave) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Necropolis)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (Temple of Tides) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Acolyte)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (Mur'gul Slave) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Hauntd Gold Mine)) and do (Multiple actions)
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Tree of Life)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (Temple of Tides) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Wisp)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (Mur'gul Slave) using (the new unit's relative) life and mana
But you probably want to add something to turn these functions off shortly after the game starts, so that they can't use this command 30 minutes into the game to do some weird interaction with replacing things multiple times, such as after capturing the enemy players workers with Charm
Edit:
Also, if I were you, I would take the basic example that I pasted above and upgrade it
so that it was easy to copy & paste to make more races like Fel Orcs. To do that, you would want to have
Mur'gul Slave
and
Temple of Tides
in the trigger only 1 time with a variable, so that you can change them in one place after copying the trigger. It's boring enough to have to edit the event to say FEL instead of NAG each of the 12 times for the twelve players.
So to make that copiable version, maybe I would do this:
Click on yellow X at top of trigger editor. Click to make new variable. "Name" should be WORKER_TYPE and "Type" of variable should be "Unit-type." Then make a second one with "Name" set to TOWNHALL_TYPE and "Type" of variable should be "Unit-type."
Then add 2 actions to
Set Variable
on these two to their value, and afterwards change all of the
Replace (whatever) with (whatever)
actions to use these new variables.
That way, when you copy this trigger you can just edit the WORKER_TYPE and TOWNHALL_TYPE parts, and change "NAG" to some other thing.
-
Events
-

Player - Player 1 (Red) enters NAG as (an exact match)
-

Player - Player 2 (Blue) enters NAG as (an exact match)
-

Player - Player 3 (Teal) enters NAG as (an exact match)
-

Player - Player 4 (Purple) enters NAG as (an exact match)
-

Player - Player 5 (Yellow) enters NAG as (an exact match)
-

Player - Player 6 (Orange) enters NAG as (an exact match)
-

Player - Player 7 (Green) enters NAG as (an exact match)
-

Player - Player 8 (Pink) enters NAG as (an exact match)
-

Player - Player 9 (Gray) enters NAG as (an exact match)
-

Player - Player 10 (Light Blue) enters NAG as (an exact match)
-

Player - Player 11 (Dark Green) enters NAG as (an exact match)
-

Player - Player 12 (Brown) enters NAG as (an exact match)
-
Conditions
-
Actions
-

Variable - Set VariableSet WORKER_TYPE equal to (Mur'gul Slave)
-

Variable - Set VariableSet TOWNHALL_TYPE equal to (Temple of Tides)
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Town Hall)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (TOWNHALL_TYPE) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Peasant)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (WORKER_TYPE) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Great Hall)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (TOWNHALL_TYPE) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Peon)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (WORKER_TYPE) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Necropolis)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (TOWNHALL_TYPE) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Acolyte)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (WORKER_TYPE) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Hauntd Gold Mine)) and do (Multiple actions)
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Tree of Life)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (TOWNHALL_TYPE) using (the new unit's relative) life and mana
-

Unit Group - Pick every unit in (Units owned by (Triggering Player) of type (Wisp)) and do (Multiple actions)
-


Actions
-



Replace (Picked unit) with a (WORKER_TYPE) using (the new unit's relative) life and mana