well, its using our first idea, way back before the whole point and click fiasco, of using absolute world coordinates, and absolute world angles to relay to the other clients where to place me.
Using UP/DOWN arrow keys:
When I move forward or back I use Move Object +/- command locally to update my position and send my new world coordinates from Object Position X,Y,Z values (int()'d) to the server for distrubution to the other clients.
Using L/R Arrow keys:
When I pivot Left or right I use Turn Object +/- Object Angle Y (with wrapvalue()) to pivot my client locally, and send my Object Angle X,Y,Z to the server for distribution.
also I incorporated a msg type, 0 being Move, 1 being rotate. On the recieving side of things, I parse the message, determine the type and then move or rotate the correct client (based on remote client array index value) with either Position Object xyz, or rotate object x,y,z.
Also there are some pivot warp buttons on the GUI that allow a single click to pivot Left or right 45,90,135 and a 180 button as well. These moves use one message in the type 1 format but instead of the speed variable being sent, the total value of pivot is sent (+/- 45,90,135,180) depending on which button was clicked.
Edit: Altho the speed var is constant, its being sent (or a form of it) incase we need to start accounting for machine fps() issues. Since we are on a timer based throttle it may not be necessary - this type of stuff starts to leave the scope of my current skillset