You need to use dbMakeVector3() to create your vector3, then set the elements of them with values, then call the dbAddvector3 function, the params you pass are the IDs to the vectors you wish to pass(IDs used when creating them), the last 2 values are the vector IDs you wish to add, so if I want to add vector3 1 and 5 and I want to sotre the result in vector3 10 I'd pass the values ( 10, 1, 5 ). Of course these commands are pretty much pointless in C++ as you can just '#include "D3dx9math.h"' and use the D3DXVECTOR3 struct directly, which has all the basic operators such as add subtract etc. The only issue is that you can't pass these vectors to GDK fnctions directly, you still need to fill a GDK vector with these values then pass it.