Player Group: Add a custom list of players that you want to refer to later. Example add player 1/4/7/12 to player group(cool players) later on you could pick every player in (cool Players) and do functions.
Unit group: custom list of units you want to refer to later. Add peon/blademaster/shaman to unit group(myunits) later you could pick every unit in unit group(myunits) and do funtion.
Unit: Refer to a specific unit later. This is helpful if you want to refer to a specific unit that was created during the game. Normally you would have to use event response (example: triggering unit-entering unit-dying unit) -select unit (unit placed on the map in the WE) or random unit in unit group.
For say a dialog variable you must have one to build a dialog. and a dialog button array (amount of the array would be the amount of buttons you want in your dialog). heres an example.
Create dialog button for (Mydialog) named Start
set variable (diablogButton(1)) = last created dialog button
Create dialog button for (Mydialog) named Stop
set variable (diablogButton(2)) = last created dialog button
Later build a trigger like:
event:dialog button pressed for (MyDialog)
condition
ialog button = (dialogButton(1))
Action:Whatever
Special effect variables: Set special effect you created to a variable so maybe 10 minutes later or whatever you could destroy that special effect.
I'm not gonna list them all but I hope this helps.