Suggestion for the dice roller (apologies if this has been suggested before and I missed it):
Instead of the large graphical interface you have now (or in addition to it) allow users to type in a dice "equation". Many virtual tabletop programs work like this (OpenRPG and MapTool being two I've used... I think Invisible Castle also uses similar notation). These are all valid "d-notation" equations:
1d20+7
1d5-3
2d10+1d6+7
1+1+1+3d12
1d6/2
(1d20+7)/2
Some programs also provide functions like max, min, floor, ceiling, droplowest that you can use like this:
max(1d20, 1d20) = roll 1d20 twice and take the highest
droplowest(4d6) = roll four d6s, drop the lowest d6, add up the rest
floor(1d20/2) = roll a d20, divide the result by 2, round down to the nearest whole number
You might be able to find a pre-created engine somewhere that'll parse all of this for you so you don't have to create it from scratch.
You could combine this with your current die roller interface by adding a "Advanced roll" option at the bottom, and make the user choose between a "basic roll" and the "advanced roll".