Yes. ExecuteFunc uses the string-name of the function. As far as I know, you can't detect the function that is being triggered, but if the function is called "YahYah" then you save string YahYah as x o y in Hash and then ExecuteFunc(LoadString(udg_Hash, y, x))