here a way around that bug.
var
plflag: array[1..2] of integer;
procedure OnFlagGrab(ID: integer;TeamFlag: byte;GrabbedInBase: boolean);
begin
plflag[TeamFlag]:=ID;
end;
procedure OnFlagScore(ID: integer;TeamFlag: byte);
begin
//now the plflag[TeamFlag] = ID of the scoring player.
command('/say scoring player id: ' + inttostr(plflag[TeamFlag]));
end;