str_cpy((our_players[i]).playername,current_player); IS correct, but it can only be use after
the our_players[i].playername has been "str_create"ed at least once.
EG.
Code:
var i = 0;
typedef struct
{
   int score;
   STRING* score_str;
   STRING* playername;
} our_player;

our_player our_players[10]; 

STRING* current_player = "Me";

function main()
{
   //initialising,  run once only, before any other struct usage
   for(i=0; i<10; i++)   
   {
      our_players[i].score = 0;
      our_players[i].score_str  = str_create("000");
      our_players[i].playername = str_create("Empty");  //or str_create(""); is OK too
   }
   ...
   ...
   //using,  this eg is setting up player at element 0 to be current_player
   our_players[i].score = 0;
   str_cpy((our_players[i]).score_str,"000");
   str_cpy((our_players[i]).playername, current_player);
   ...
   ...
   ...
   while(1)   wait(1);
}



"There is no fate but what WE make." - CEO Cyberdyne Systems Corp.
A8.30.5 Commercial