Here's how to figure out how to find finesse weapons:
In the develop menu, make sure "Enable Data File Debugging" at the top of the menu is checked, then purchase many weapons for a character - you'll want weapons that aren't finesse weapons (like the longsword), light weapons (like the dagger), and weapons that are specifically allowed for weapon finesse (like the rapier). For each weapon, right-click on it, and select "Show Debug Tags for XXX" - look through the lists of tags for each weapon, and compare the lists to each other. You'll find that Finesse weapons either have wClass.Light or Helper.Finesse.
In Hero Lab, my policy for abilities that modify the equipped weapons/armor is that the user doesn't want to have to equip the weapon before they see the calculated bonus - they want to see that bonus whether they've equipped the weapon or not. So, I'd recommend altering the damage of all finesse weapons, with a little check first to make sure that the equipped weapons are all finesse weapons.
To figure out how to do that, go back to those lists of tags for the weapons, and look for a component tag that seems to be specific to all weapons, and wouldn't end up on anything else (you should compare the weapon tags to the tags on a piece of armor or gear to see how the component tags differ). component.BaseWep looks like a good choice.
Now, equip all those weapons you've added, and look at how the tags change when they're equipped or not equipped. Don't forget to add a 2-handed weapon, and see if it acts the same. You'll find that Hero.MainHand and Her

ffHand are the tags you're looking for.
Now, in the editor, look up another feat that has an on/off button, like Power Attack. You'll see that they have the "Show In Activated Abilities" option checked on their editor tab, and in the eval script, field[abilActive].value stores whether or not they're active (1 for on, 0 for off).
In terms of timing for your script, you'll need the final DEX mod, so you'll have to be in the Post-Attributes phase or later. I'd recommend Post-Attributes/5000.
Start with the usual check to make sure something else hasn't disabled the feat:
Code:
~ If we're disabled, do nothing
doneif (tagis[Helper.FtDisable] <> 0)
Next, we'll calculate the bonus. Start with the DEX mod (using the #attrbonus[] macro instead of the #attrmod[] macro because #attrbonus[] will return 0 if the DEX mod is negative).
Code:
field[abValue].value += round(#attrbonus[aDEX]/2,0,-1)
What that's doing is to take the DEX mod, and divide it by 2 ("#attrbonus[aDEX]/2"), then round that down, and store it in the abValue field on the feat.
And we'll alter the feat's name to include that info:
Code:
field[livename].text = "Deadly Finesse +" & field[abValue].value
Next, make sure the feat is active:
Code:
~get out now if we're not on
doneif (field[abilActive].value = 0)
Now, to search through all the equipped weapons to make sure they're all finesse weapons:
Code:
foreach pick in hero from BaseWep where "Hero.MainHand | Hero.OffHand"
doneif (eachpick.tagis[wClass.Light] + eachpick.tagis[Helper.Finesse] = 0)
nexteach
That will search through all the BaseWep picks on the hero, looking only at the ones that are equipped ("Hero.MainHand | Her

ffHand"). For each one it finds, it will verify that weapon finesse applies, and will exit the script ("doneif") if they aren't.
Now, we'll search through all the finesse weapons on the hero, and apply the bonus to each:
Code:
foreach pick in hero from BaseWep where "wClass.Light | Helper.Finesse"
eachpick.field[wDamBonus].value += field[abValue].value
nexteach
The wDamBonus field came from the "Reference Information" page in the editor manual (press help in the editor to get that) - near the bottom of that page is the weapons section, which lists fields and tags that apply to weapons.
Here's the collected script, for easier copying:
Code:
~ If we're disabled, do nothing
doneif (tagis[Helper.FtDisable] <> 0)
field[abValue].value += round(#attrbonus[aDEX]/2,0,-1)
field[livename].text = "Deadly Finesse +" & field[abValue].value
~get out now if we're not on
doneif (field[abilActive].value = 0)
~get out if any of our equipped weapons aren't finesse weapons
foreach pick in hero from BaseWep where "Hero.MainHand | Hero.OffHand"
doneif (eachpick.tagis[wClass.Light] + eachpick.tagis[Helper.Finesse] = 0)
nexteach
~apply the damage bonus to all our finesse weapons
foreach pick in hero from BaseWep where "wClass.Light | Helper.Finesse"
eachpick.field[wDamBonus].value += field[abValue].value
nexteach