This callback was added in SA-MP 0.3e and will not work in earlier versions!


This callback is called when a player clicks on a player-textdraw. It is not called when player cancels the select mode (ESC) - however, OnPlayerClickTextDraw is.

playeridThe ID of the player that selected a textdraw
playertextidThe ID of the player-textdraw that the player selected.


It is always called first in filterscripts so returning 1 there also blocks other scripts from seeing it.


new PlayerText:gPlayerTextDraw[MAX_PLAYERS];
public OnPlayerConnect(playerid)
// Create the textdraw
gPlayerTextDraw[playerid] = CreatePlayerTextDraw(playerid, 10.000000, 141.000000, "MyTextDraw");
PlayerTextDrawTextSize(playerid, gPlayerTextDraw[playerid], 60.000000, 20.000000);
PlayerTextDrawAlignment(playerid, gPlayerTextDraw[playerid],0);
PlayerTextDrawBackgroundColor(playerid, gPlayerTextDraw[playerid],0x000000ff);
PlayerTextDrawFont(playerid, gPlayerTextDraw[playerid], 1);
PlayerTextDrawLetterSize(playerid, gPlayerTextDraw[playerid], 0.250000, 1.000000);
PlayerTextDrawColor(playerid, gPlayerTextDraw[playerid], 0xffffffff);
PlayerTextDrawSetProportional(playerid, gPlayerTextDraw[playerid], 1);
PlayerTextDrawSetShadow(playerid, gPlayerTextDraw[playerid], 1);
// Make it selectable
PlayerTextDrawSetSelectable(playerid, gPlayerTextDraw[playerid], 1);
// Show it to the player
PlayerTextDrawShow(playerid, gPlayerTextDraw[playerid]);
return 1;
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
if (newkeys == KEY_SUBMISSION)
SelectTextDraw(playerid, 0xFF4040AA);
return 1;
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
if (playertextid == gPlayerTextDraw[playerid])
SendClientMessage(playerid, 0xFFFFFFAA, "You clicked on a textdraw.");
return 1;
return 0;



When a player presses ESC to cancel selecting a textdraw, OnPlayerClickTextDraw is called with a textdraw ID of 'INVALID_TEXT_DRAW'. OnPlayerClickPlayerTextDraw won't be called also.

Related Functions