OK, so it's a little bit rough round the edges but here's a simple mod that let's you see it in action. Once you get it, you will see where I am going with this;-
https://drive.google.com/file/d/0B5w_m-h6MlfvV0V1M25vSVV3R0k/view?usp=sharingInstructions for useUnpack the mod then open it in GUTS. Set your character to Embermage, don't have a pet, and go into game mode (I've only done the UI for Embermage so far). In the skills menu, you will see a new tab for perks (4th one along) - click this and you will see the perks menu. I have configured this with 5 available perks but only the 'Filthy Lucre' one will actually do anything right now as it's the only one I have configured a reward for.
Perks in blue are available perks - you can choose from any or all of these to be active at any time. Perks in red are your active perks - the ones you have chosen to be active, i.e. you will get the benefits from them provided you have completed the task it needs. The way the system works is that you have to toggle perks between available and active.
Click one to select it (it will go brighter to indicate it is selected) then click the red button at the bottom. The chosen perk will now show in the upper part of the menu in red to indicate it is now active. Any currently chosen perks - whether in the available list or the active list - will always be displayed brighter and only one perk can be selected in this way at any time. To remove an active perk, select it (it will go brighter) then click the red button and it will be removed from your active perks and return to available perks - hope this makes sense, but as I said it is a little rough. Put simply, it has no text label but the red button is the 'toggle this perk' button

Now to the good bit - make sure you have no perks in your active list. Spawn a Warbeast then kill it. In the available perks list, you will now see that you have completed the task for the Filthy Lucre perk. Before you make it active, spawn any champion and kill it. You will see that you get the fame a usual. Now make the Filthy Lucre perk active and spawn another champion and kill that - you will get the fame again, but you will now also get 10% of that fame added to your gold
How it all worksIt's a bit complicated so I'll do my best to explain as it's took me ages to figure all this out! It's mainly all down to the UI handling. The perks UI (my 4th tab here) requires a number of elements to function. First, it needs two list windows - one contains the active perks and must have the widget name ACTIVEPERKLIST to function. The second contains the available perks and must have the widget name PERKLIST to function. You will notice that these lists use the game system PERKS to handle their contents, and are also filtered to contain the unit type PERK only. Finally, it also needs the PerkMenuController which handles the toggling of the perks between those two lists. In turn, the PerkMenuController needs two further UI elements - one UI for an active perk (my red ones) and one UI for an available perk (my blue ones). Those UIs also need another element that handles their tooltips. These are all in the UI folder in this mod.
To function correctly, the available and active perk UI layouts must be toggle buttons. Inside these, several elements must be present in order for them to display the info from your perk .dat files. To display the icon, you must use an image with the widget name PERKICON. To display the name of the perk, you must use a text element with the widget name PERKNAME. To display the perk description you must use a text element with the widget name PERKDETAILS. Finally, to display any effects you assign through REWARD0 (see below) you must again use a text element with the widget name PERKEFFECTS.
To make your own perks, you need a .dat file in the MEDIA\PERKS folder. You can look at the ones in this mod to see their structure. The way the system works is that all of these .dat files are read by the game and the perks defined in this folder will all be listed in the UI list above that has the widget name PERKLIST. In other words, all defined perks in .dat files in the MEDIA\PERKS folder are automatically assigned as available perks (unless there's a conditional on the perk - see below).
The .dat files also need certain elements;-
<TRANSLATE>NAME: the name of the perk, read and displayed with the UI widget PERKNAME
<TRANSLATE>DETAILS: the perk description, read and displayed with the UI widget PERKDETAILS
<STRING>ICON: the icon used for the perk, read and displayed with the UI widget PERKICON
<INTEGER64>GUID: each perk is technically a unit type, so each one needs it's own unique ID
Perk .dat files must then define a task (TASK0), a reward (REWARD0) and can also have a condition. Task types can be one of the following but there's only really 3 types - kill something (or a number of somethings), complete a quest or meet a stat value;-
PLAYERSTAT - a stat condition must be met
PETKILLS - the players pets must kill a number of enemies
MAINPETKILLS - the players main pet must kill a number of enemies
PLAYERKILLS - the player must kill a number of enemies unaided by any pets
QUESTCOMPLETE (to be tested) - the player must complete a quest
Reward types can be one of the following but there are really only 3 types - get an affix, get an effect or do something with gold and fame;-
GOLDTOFAME - convert gold collected into fame as well
FAMETOGOLD - convert fame gained into gold as well
MAINPETEFFECT - apply an effect to the players main pet
PETSEFFECT - apply an effect to all of the players pets
PLAYERARMOREFFECT - apply an effect to the players armor
PLAYERWEAPONEFFECT - apply an effect to the players weapon
PLAYEREFFECT - apply an effect to the player
MAINPETAFFIX - apply an affix to the players main pet
PETSAFFIX - apply an affix to all of the players pets
PLAYERARMORAFFIX - apply an affix to the players armor
PLAYERWEAPONAFFIX - apply an affix to the players weapon
PLAYERAFFIX - apply an affix to the player
* by convention, affixes applied by perks should be in the MEDIA\AFFIXES\PERKS folder.
I have not yet figured out the conditional block, but there are two types - CONDITIONAL and ACTIVATIONCONDITIONAL which are used to make the perk available (or not) based on another perk being active (or not) or a stat being met (which I am presuming to be the stat PLAYER PERK PTS TO SPEND). I've also still got to figure out how to make proper use of the other reward types but this shouldn't be too difficult with a bit more trial and error.
So what this very small and simple mod does it enable the whole perks system so you can see how it works and links it to a kind of achievement system too without any of that overly complex mess that I've seen elsewhere. Completing a task earns you an achievement in the form of a perk - a very nice feature for the endgame and beyond, not entirely dissimilar to a Paragon points system or whatever but a lot more engaging.
Let me know what you think so far, and please feel free to play about with the .dat files and let me know how you get on trying to get other tasks, rewards and hopefully conditionals working