You'll have to use a couple of integer variables combined with an event similar to what Ender Wiggins suggested in order to help you know how much gold a player has actually gathered/collected from mines.
Since you don't really want your trigger to be interfered by any other gold interaction, use "Total gold gathered becomes Greater than 0.00" instead. That means the event won't fire even if a player sells items, earns gold by killing neutral hostile units, buys stuff, etc.
Example:
-
Gold Gather Detection
-

Events
-


Player - Player 1 (Red)'s Total gold gathered becomes Greater than 0.00
-


Player - Player 2 (Blue)'s Total gold gathered becomes Greater than 0.00
-


Player - Player 3 (Teal)'s Total gold gathered becomes Greater than 0.00
-


Player - Player X's Total gold gathered becomes Greater than 0.00
-


-------- etc --------
-

Conditions
-

Actions
-


Set tmp_player = (Triggering player)
-


Set tmp_integer = (Player number of tmp_player)
-


-------- Compare triggering player's total gold gathered with a variable responsible for tracking their gold collected. --------
-


Set Gold_Difference = ((tmp_player Total gold gathered) - Gold_PlayerGoldGathered[tmp_integer])
-


-------- The variable below should be updated after doing the comparison above. Then: --------
-


Set Gold_PlayerGoldGathered[tmp_integer] = (tmp_player Total gold gathered)
-


-------- ---- --------
-


Game - Display to (All players) the text: (((Name of tmp_player) + has just gathered +) + ((String(Gold_Difference)) + gold.))
Do note that the trigger also takes gold tax rate into account too (no upkeep, low upkeep and high upkeep).
HOWEVER, there's only one issue remaining now which is when you give gold to a player via trigger actions in GUI. It unfortunately affects that event. There's a small work-around for it. You'll need to declare a new boolean variable and use a second trigger.
-
Gold Trigger Modifier
-

Events
-


Player - Player 1 (Red)'s Current gold becomes Greater than or equal to 0.00
-


Player - Player 2 (Blue)'s Current gold becomes Greater than or equal to 0.00
-


Player - Player 3 (Teal)'s Current gold becomes Greater than or equal to 0.00
-


Player - Player X's Current gold becomes Greater than or equal to 0.00
-


-------- etc --------
-

Conditions
-


Gold_TriggerModifier Equal to True
-

Actions
-


-------- Adding gold to a player via triggers will also affect their "Total Gold Gathered" property. Keep track of it --------
-


Set Gold_PlayerGoldGathered[(Player number of (Triggering player))] = ((Triggering player) Total gold gathered)
-


Set Gold_TriggerModifier = False
and add a boolean comparison condition to the first trigger based on the new variable
-
Gold Gather Detection
-

Events
-


Player - Player 1 (Red)'s Total gold gathered becomes Greater than 0.00
-


Player - Player 2 (Blue)'s Total gold gathered becomes Greater than 0.00
-


Player - Player 3 (Teal)'s Total gold gathered becomes Greater than 0.00
-


Player - Player X's Total gold gathered becomes Greater than 0.00
-


-------- etc --------
-

Conditions
-


Gold_TriggerModifier Equal to False
-

Actions
-


Set tmp_player = (Triggering player)
-


Set tmp_integer = (Player number of tmp_player)
-


-------- Compare triggering player's total gold gathered with a variable responsible for tracking their gold collected. --------
-


Set Gold_Difference = ((tmp_player Total gold gathered) - Gold_PlayerGoldGathered[tmp_integer])
-


-------- The variable below should be updated after doing the comparison above. Then: --------
-


Set Gold_PlayerGoldGathered[tmp_integer] = (tmp_player Total gold gathered)
-


-------- ---- --------
-


Game - Display to (All players) the text: (((Name of tmp_player) + has just gathered +) + ((String(Gold_Difference)) + gold.))
Then, every time you use any action which sets, adds or decreases player gold, you'll need to add that variable on top of it.
-
Initial gold
-

Events
-

Conditions
-

Actions
-


Set Gold_TriggerModifier = True
-


Player - Set Player 1 (Red) Current gold to 100
-
Press ESC to add gold
-

Events
-


Player - Player 1 (Red) skips a cinematic sequence
-

Conditions
-

Actions
-


Set Gold_TriggerModifier = True
-


Player - Add 250 to Player 1 (Red) Current gold
Modifying player gold amount with SetPlayerState native + PLAYER_STATE_RESOURCE_GOLD property won't fire "Total gold gathered" events.
-
-------- Adds 100 gold to player 1 (red) --------
-
Custom script: call SetPlayerState(Player(0), PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(Player(0), PLAYER_STATE_RESOURCE_GOLD) + 100)
Neither "Gold Trigger Modifier" trigger, nor "Gold_TriggerModifier" variable are needed anymore in case you use the custom script above.
Mega bullshit...