Actually I figured it out, and for everyone whos had this problem with netfilterqueue, python seemed to come with version 0.6 of it installed which was out of date and then there was a split and 2 versions of netfilterqueue 0.8.1 were released, one of the versions set_payload was not implemented and missing, so I uninstalled netfilterqueue using:
pip remove NetfilterQueue
if you run that it downgrades you to 0.6 but wont remove it completely, then I went to
Python bindings for libnetfilter_queue
and used the method:
git clone [email protected]:kti/python-netfilterqueue.git
python setup.py install
to install the latest version of it and it fixed everything.
Hope that helps the rest of you out there having the same issue as well.