# Events

If you do not need one of these functions, you should not add it to your Python script.

## finished

This function gets called when Python is being unloaded and the bot is exiting. You should close any open files here.

## connected

This function gets called when the bot connects to the game server.

## disconnected

This function is called when the bot disconnects from the server. It can be called several times on a disconnect.

## handle\_joymax(opcode, data)

All packets received from the server are passed to this function.

## handle\_silkroad(opcode, data)

All packets received from the game client are passed to this function.

## joined\_game()

Called when the user successfully selects a character. No character data has been loaded yet.

## teleported()

Called when the character teleports and right after `joined_game()`

## event\_loop()

Called every 500ms.

## character\_listing(args)

Called when the character listing is received. `args` is a string list of character names. Character name will include `*` at the beginning of its name if it is being deleted.

## handle\_chat(t, player, msg)

Called when a chat message is received. `t` is the type sent by the server.

All chat messages received are sent to this function. `player` can be `None` if it's not a private message.

## handle\_event(t, data)

Called for specific events. `data` field will always be a string. Cast it to an `int` if needed.

Current event list (`t`):

```
EVENT_UNIQUE_SPAWN = 0 # data = monster name
EVENT_HUNTER_SPAWN = 1 # data = player name (includes traders)
EVENT_THIEF_SPAWN = 2 # data = player name
EVENT_TRANSPORT_DIED = 3 # data = transport id (includes horses)
EVENT_PLAYER_ATTACKING = 4 # data = player name
EVENT_RARE_DROP = 5 # data = item model (equippable only)
EVENT_ITEM_DROP = 6 # data = item model (equippable only)
EVENT_DIED = 7 # data = empty string
EVENT_ALCHEMY_FINISHED = 8 # data = empty string
EVENT_GM_SPAWNED = 9 # data = player name
EVENT_LEVEL_UP = 10 # data = new level
```
