Events - AmyrAhmady/samp-node GitHub Wiki

First of all, you can already use all samp callback names while adding an event listener; so if you don't want to use our predefined definitions, you'll be fine.

Event functions:

  • on(eventName, function) // adds a new listener to the given event
  • addEventListener // acts like *on*
  • addListener // acts like *on*
  • fire(eventName, arg1, arg2, ...) // to trigger/call/fire a registered event programmatically
  • removeEventListener(eventName) // removes all listeners
  • removeEventListener(eventName, function) // removes specific listener
  • removeEventListener(eventName, functions[]) // removes array of specific listeners
  • removeListener // acts like *removeEventListener*
  • registerEvent(callback/eventName, paramTypes) // register a new event, e.g: from other plugins

SAMPNode_CallEvent

This is pawn native, made to be used for calling custom registered events in samp-node environment, and it calls and passes your args to your event according to specifiers you specified while registering it.

NOTE:

There's something you should know if you are going to use a or v, array of integers and array of floats, you have to specify the array size in the next parameter, don't worry it gets ignored so you don't need an i specifier on event registration, so without passing array size, you'll face a crash. (This doesn't happen with strings since we know the exact size, unlike arrays)

Example:

JS code:

// note that there's only 2 specifiers, that means this event takes two parameters
// an array of integers, and an integer
samp.registerEvent("MyTestEvent", "ai");
samp.on("MyTestEvent", (array, myint) => {
    console.log(array)
    console.log('My int' + myint);
    return 8;
});

Pawn code:

new array[8] = {0, 1, 4, 6, 7, 8, 9, 10};
new integer = 4;
new test = SAMPNode_CallEvent("MyTestEvent", array, sizeof(array), integer);

results:

Event definitions

List of pre-defined events:

EVENT_GAME_MODE_INIT
EVENT_GAME_MODE_EXIT
EVENT_FILTER_SCRIPT_INIT
EVENT_FILTER_SCRIPT_EXIT
EVENT_PLAYER_CONNECT
EVENT_PLAYER_DISCONNECT
EVENT_PLAYER_SPAWN
EVENT_PLAYER_DEATH
EVENT_VEHICLE_SPAWN
EVENT_VEHICLE_DEATH
EVENT_PLAYER_TEXT
EVENT_PLAYER_COMMAND_TEXT
EVENT_PLAYER_REQUEST_CLASS
EVENT_PLAYER_ENTER_VEHICLE
EVENT_PLAYER_EXIT_VEHICLE
EVENT_PLAYER_STATE_CHANGE
EVENT_PLAYER_ENTER_CHECKPOINT
EVENT_PLAYER_LEAVE_CHECKPOINT
EVENT_PLAYER_ENTER_RACE_CHECKPOINT
EVENT_PLAYER_LEAVE_RACE_CHECKPOINT
EVENT_RCON_COMMAND
EVENT_PLAYER_REQUEST_SPAWN
EVENT_OBJECT_MOVED
EVENT_PLAYER_OBJECT_MOVED
EVENT_PLAYER_PICK_UP_PICKUP
EVENT_VEHICLE_MOD
EVENT_ENTER_EXIT_MOD_SHOP
EVENT_VEHICLE_PAINTJOB
EVENT_VEHICLE_RESPRAY
EVENT_VEHICLE_DAMAGE_STATUS_UPDATE
EVENT_UNOCCUPIED_VEHICLE_UPDATE
EVENT_PLAYER_SELECTED_MENU_ROW
EVENT_PLAYER_EXITED_MENU
EVENT_PLAYER_INTERIOR_CHANGE
EVENT_PLAYER_KEY_STATE_CHANGE
EVENT_RCON_LOGIN_ATTEMPT
EVENT_PLAYER_UPDATE
EVENT_PLAYER_STREAM_IN
EVENT_PLAYER_STREAM_OUT
EVENT_VEHICLE_STREAM_IN
EVENT_VEHICLE_STREAM_OUT
EVENT_ACTOR_STREAM_IN
EVENT_ACTOR_STREAM_OUT
EVENT_DIALOG_RESPONSE
EVENT_PLAYER_TAKE_DAMAGE
EVENT_PLAYER_GIVE_DAMAGE
EVENT_PLAYER_GIVE_DAMAGE_ACTOR
EVENT_PLAYER_CLICK_MAP
EVENT_PLAYER_CLICK_TEXT_DRAW
EVENT_PLAYER_CLICK_PLAYER_TEXT_DRAW
EVENT_INCOMING_CONNECTION
EVENT_TRAILER_UPDATE
EVENT_VEHICLE_SIREN_STATE_CHANGE
EVENT_PLAYER_FINISHED_DOWNLOADING
EVENT_PLAYER_REQUEST_DOWNLOAD
EVENT_PLAYER_CLICK_PLAYER
EVENT_PLAYER_EDIT_OBJECT
EVENT_PLAYER_EDIT_ATTACHED_OBJECT
EVENT_PLAYER_SELECT_OBJECT
EVENT_PLAYER_WEAPON_SHOT
EVENT_CLIENT_CHECK_RESPONSE
EVENT_SCRIPT_CASH