I use FSUIPC. The only drawback I noticed is it cannot handle events with more than 1 argument. Still, it has a function to execute “calculator code”, so until now I was able to do everything I wanted.
I also have SPAD but use FSUIPC because I really enjoy the possibility to script it in LUA. That’s really powerful.