Hey Neurosys, great post, thank you. One quick question:

How do you get your code to recognize that playermodel and player are the same entity? I tried (in the entity function)

v(player) = v(me);

but I get an error

Access violation writing location 0x00000000.

:p