I thought that maybe it was not possible or something like that.

Here is the code that saves the handle of players (up to 8 players in theory), I let player 2 (client) wait for testing purposes:

Code:
ENTITY* pointer_player[9] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; 
var player_handle[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // stores the handle to the player
....
....

wait(-3); //wait till client has received player handles
if (connection == 2) while(1) { wait(1); }
   
   //create player
   var i;
   for(i = 1; i < 9; i++)
   {
    if (pointer_player[i] == NULL) { pointer_player[i] = ent_create("MDL_Player.mdl",vector(0,0,100),player_control);  	
    wait(-2); // wait until the handle is ready
    player_handle[i] = handle(pointer_player[i]);
    break;
    }
   }



And here is the code that sends the handle from the server to the client:

Code:
function on_server_event(void *pVarPtr, var id) // automatically assigned to on_server
{
    if (event_type == EVENT_JOIN) {
    var i;
    for(i = 1; i < 9; i++) { 
    if (player_handle[i] != 0) send_var_id(id,player_handle[i]); } // send init handles
    }	
...



I start the server+client (/connection = 3) first, that works fine. Than I join as client after >10 seconds and get an instant crash without an error message.

Thanks for watching.