Another good thing to mention that you may not already know about is that Veil generates 32 bit EXE's. I was able to exploit a 64bit Windows 8.1 machine after failing with using msfpayload. It seems that msfpayload only generates a 16 bit EXE which is not going to work on a 64 bit machine. If a windows machine is a 32 bit, it can go down one architecture (16 bit). If its a 64 bit machine then this means it can run 32 bit as well. So going from a 64bit to a 16bit would be 2 steps down which will not work.
Check out https://www.veil-framework.com/
They have video and how to guides on using the framework along with how to install. They are using github and provide an easy setup file which will pull all the needed files (just do a git clone and run!)
Special thanks to Chris Truncer.