Small thing that is weired:

if(connection == 2)
{
my.skill = 50;
}

while(my.skill1 == 50)
{

once its my.skill then my.skill1, can you check that.

-----
anyhow:
according to the manual:

client_id:
# On a server, this variable is automatically set on all entites created by a client.
# A7.70 On a client, this variable is set to a negative value until the server confirmed the creation of a global entity and the handle becomes valid. Then client_id is set to dplay_id.

so the first task for you should be to confirm this behavior.

log on the client the id value of the entity created by the
client.

It should first be a "negative" value, then a "dplay_id" value.

Compare this to the id-number the server assigns to the entity. They should be equal as I assume.


also:
while(!my.client_id) wait(1);

could only keep in an enfless loop if client:id is 0
But it should be a "negative" number, as I understand it


If its 0, there must be a general connection / entity creation problem.
That has to be solved first.


------

look in the manual on the on_client / EVENT_JOIN event,
there you should receive the client_id on the client
directly.