I found this state machine framework on CodeProject.com and I am experimenting with it. This example uses the single-threaded approach with all actions occurring inside the OnFrame event. That is, reportedly, the most stable way to use ISXEVE with .NET. I've attached the source code so others can play with this. It does crash from time to time when changing skills. I don't know why yet. This is example code only. Do not ask for support on this!