I've seen the question posted several times so figured i'd give it a shot. Here you go:
Here’s what you need: A working hero with inventories ready. A working item you could normally pick up and equip.
You'll need to create a region in which your hero is going to be created at for EACH Hero type. If more than 1 player can be the same hero you’re going to run into an issue unless the added trigger I placed on for players works right. Since I can’t multibox, I can’t test it, so I'll use what worked for just the Hero and add player so you can try that to. I'll use Terran units as an example
So I made 2 regions on top of each other where I know the heroes spawn. You'll need multiple regions because once the trigger goes off you'll want to move that region away so it can't be reactivated.
Region -Hero marine start
Region -Hero ghost start
If the player triggers work correctly it would be much easier to name them player start 1, 2, and so forth, you’ll see why.
Create a "new point" on the map, I named mine Safe Zone, and place it on the map that is inaccessible to any units either by path blocking or whatever. You will have to set up the game so that after the unit sets off the trigger in the region, it moves the region to that point so that the unit does not continue to activate this trigger several times as stated above.
Create a new trigger:
Event: Unit - Any unit enters region - rename the region to say "Marine Start" or whatever you named your regions.
Actions: General - If then Else
Under “If” create a new condition, select Comparison and hit ok
(now it should default to owner of triggering unit is ==1) you could use this if more than 1 person could pick the same hero, but lets go back to that later.
Select your new comparison and click on the” ( “ before "owner". search for your new comparison:
Unit - type of unit.
Click on the red Value 2, and under the bullet Value at the top, change it to whatever unit your hero is, in this case I chose Marine Hero.
This extra part here has not been tested yet
(if more than 1 person can be marine hero you may want to copy/paste the above comparison under the same "IF" , double click the new comparison and change it's type to “AND”, That will create a sub condition. Under that new condition, add a new comparison and hit ok, it should default to select player, and change the == value to your player value.
If you followed the extra step we just did something like: "IF" the unit that entered the region was a Marine hero, "AND" belonged to player 1... :
The IF statement is done, now onto Then:
create new action: Unit - Create inventory item. Select your item and keep it to triggering unit.
Copy/Paste that for as many items as you want your hero to start with.
create new action: Region - Move Region. Select the region the trigger targeted "marine start for me", and move it to the safe point you created. This will keep the player from leaving and reentering the region over and over to get infinite items.
Now.... Test it out!!
Now that was just for if the region was for a Marine hero, and controlled possibly by player 1. You’ll need to copy/paste that entire trigger for each unit and or player, or however you see fit, maybe even use an If Then Else IF to keep the chain going to make it all 1 trigger.
It would be easier to only make regions for each player if multiple players could pick the same hero of course. If only 1 of each hero can be picked then just make a region for each hero type.