please add GSTNet_Debug(100); to your main function and start your game with -diag cmdline parameter. post acklog.txt here or per pm

my interpretation of your code
action player_action()
is executed on all clients >> _Track.. only watches the values on the creating client and send them to all others !ok

function control_player()
runs only on the player client
you morph this entity only on the player client >> so the new entity is used for tracking. !not so good

i would do it like this:
all clients: GSTNet_ent_createlocal() a weapon entity attached to the playerentity
player client: set the player entity invisible


Andreas
GSTools - Home of
GSTScript 0.9.8: lua scripting for A6/7/8
GSTNet 0.7.9.20: network plugin for A6/7/8
GSTsqlite 1.3.7: sql database plugin for A6/7/8
3DGS Codebase: 57 snippets || 3DGS Downloads: 248 files