I swapped your createPoly function for a basic sprite creation function and it didnt roll like your example
When working in psuedo 2D you might also want to get into the habbit of using x and z as your primary plain with y as your depth, this will make entityRoll() your tertiary rotation field thus resolve many Eular issues without having to think about them.,
Function createPoly(xpos#,zpos#,x#,z#) sprite=CreateSprite() ScaleSprite sprite,x,z PositionEntity sprite,xpos,0,zpos Return sprite End Function
When working in psuedo 2D you might also want to get into the habbit of using x and z as your primary plain with y as your depth, this will make entityRoll() your tertiary rotation field thus resolve many Eular issues without having to think about them.,