Dota 2 Workshop Tools/Scripting/Built-In Engine Events

Check out https://github.com/SteamDatabase/GameTracking-Dota2/blob/master/game/dota/pak01_dir/resource/game.gameevents 
and https://github.com/SteamDatabase/GameTracking-Dota2/blob/master/game/core/pak01_dir/resource/core.gameevents for an up-to-date list.
== Game event format ==
*No spaces in event names, max length 32
*All strings are case sensitive
*total game event byte length must be < 1024
*valid data key types are:
:*none : value is not networked
:*string : a zero terminated string
:*bool : unsigned int, 1 bit
:*byte : unsigned int, 8 bit
:*short : signed int, 16 bit
:*long : signed int, 32 bit
:*float : float, 32 bit
:*uint64 : unsigned int 64 bit
:*local : any data, but not networked to clients
*The following key names are reserved:
:*local : if set to 1, event is not networked to clients
:*unreliable : networked, but unreliable
:*suppress : never fire this event
:*time : firing server time
:*eventid : holds the event ID
== Core team events == 
*team_info: info about team
:*teamid ( byte ): unique team id
:*teamname ( string ): team name (e.g. Team Blue)
*team_score: team score changed
:*teamid ( byte ): team id
:*score ( short ): total team score
*teamplay_broadcast_audio: emits a sound to everyone on a team
:*team ( byte ): unique team id
:*sound ( string ): name of the sound to emit
== Player events ==
*player_team: player change his team
:*userid ( short ): user ID on server
:*team ( byte ): team id
:*oldteam( byte ): old team id
:*disconnect( bool ): team change because player disconnects
:*autoteam( bool ): true if the player was auto assigned to the team
:*silent( bool ): if true wont print the team join messages
*player_class: a player changed his class
:*userid ( short ): user ID on server
:*class ( string ): new player class / model
*player_death [broken]: a game event, name may be 32 characters long
:*userid ( short ): user ID who died			
:*attacker ( short	 ): user ID who killed
*player_hurt [broken]
:*userid ( short ): player index who was hurt			
:*attacker ( short	 ): player index who attacked
:*health ( byte ): remaining health points
*player_chat: a public player chat
:*teamonly ( bool ): true if team only chat
:*userid( short ): chatting player 
:*text( string ): chat text
*player_score: players scores changed
:*userid ( short ): user ID on server
:*kills ( short ): # of kills
:*deaths ( short ): # of deaths
:*score ( short ): total game score
*player_spawn: player spawned in game
:*userid ( short ): user ID on server
*player_shoot: player shoot his weapon
:*userid ( short ): user ID on server
:*weapon ( byte ): weapon ID
:*mode ( byte ): weapon mode
*player_use
:*userid ( short ): user ID on server
:*entity ( short ): entity used by player
*player_changename
:*userid ( short ): user ID on server
:*oldname ( string ): players old (current) name
:*newname ( string ): players new name
*player_hintmessage
:*hintmessage ( string ): localizable string of a hint
*player_reconnected : the player reconnet to the game
:*event(local):the data include the realitive infomation
== Game events ==
*game_init: sent when a new game is started
	
*game_newmap: send when new map is completely loaded
:*mapname ( string ): map name
*game_start: a new game starts
:*roundslimit ( long ): max round
:*timelimit ( long ): time limit
:*fraglimit ( long ): frag limit
:*objective ( string ): round objective
*game_end: a game ended
:*winner ( byte ): winner team/user id
*round_start
:*timelimit ( long ): round time limit in seconds
:*fraglimit ( long ): frag limit in seconds
:*objective ( string ): round objective
*round_end
:*winner ( byte ): winner team/user i
:*reason ( byte ): reason team won
:*message ( string ): end round message 
*round_start_pre_entity
*teamplay_round_start: round restart
:*full_reset ( bool ): is this a full reset of the map
*hostname_changed
:*hostname ( string )
*difficulty_changed
:*newDifficulty ( short )
:*oldDifficulty ( short )
:*strDifficulty( string ): new difficulty as string
*finale_start
:*rushes ( short )
*game_message: a message send by game logic to everyone
:*target ( byte ): 0 = console, 1 = HUD
:*text ( string ): the message text
*break_breakable
:*entindex ( long )
:*userid ( short )
:*material ( byte ): BREAK_GLASS, BREAK_WOOD, etc
*break_prop
:*entindex ( long )
:*userid ( short )
*npc_spawned
:*entindex ( long )
*npc_replaced
:*old_entindex ( long )
:*new_entindex ( long )
*entity_killed
:*entindex_killed( long )
:*entindex_attacker ( long )
:*entindex_inflictor ( long )
:*damagebits ( long )
*entity_hurt
:*entindex_killed( long )
:*entindex_attacker ( long )
:*entindex_inflictor ( long )
:*damagebits ( long )
*bonus_updated
:*numadvanced ( short )
:*numbronze ( short )
:*numsilver ( short )
:*numgold ( short )
*player_stats_updated
:*forceupload ( bool )
*achievement_event
:*achievement_name ( string ): non-localized name of achievement
:*cur_val ( short ): # of steps toward achievement
:*max_val ( short ): total # of steps in achievement
*achievement_earned
:*player ( byte ): entindex of the player
:*achievement ( short ): achievement ID
): Used for a notification message when an achievement fails to write
*achievement_write_failed
*physgun_pickup
:*entindex ( long ): entity picked up
*flare_ignite_npc
:*entindex ( long ): entity ignited
*helicopter_grenade_punt_miss
*user_data_downloaded: fired when achievements/stats are downloaded from Steam or XBox Live
*ragdoll_dissolved
:*entindex ( long )
*gameinstructor_draw
*gameinstructor_nodraw
*map_transition
*instructor_server_hint_create :create a hint using data supplied entirely by the server/map.
:*hint_name (	string ): what to name the hint. For referencing it again later (e.g. a kill command for the hint instead of a timeout)
:*hint_replace_key ( string ): type name so that messages of the same type will replace each other
:*hint_target ( long ): entity id that the hint should display at
:*hint_activator_userid ( short ): userid id of the activator
:*hint_timeout ( short	 ): how long in seconds until the hint automatically times out, 0 = never
:*hint_icon_onscreen ( string ): the hint icon to use when the hint is onscreen. (e.g. icon_alert_red)
:*hint_icon_offscreen ( string ): the hint icon to use when the hint is offscreen. (e.g. icon_alert)
:*hint_caption ( string ): the hint caption. (e.g. #ThisIsDangerous)
:*hint_activator_caption ( string ): the hint caption that only the activator sees (e.g. #YouPushedItGood)
:*hint_color ( string ): the hint color in (r,g,b( format where each component is 0-255))
:*hint_icon_offset ( float ): how far on the z axis to offset the hint from entity origin
:*hint_range ( float ): range before the hint is culled
:*hint_flags ( long ): hint flags
:*hint_binding ( string ): bindings to use when use_binding is the onscreen icon
:*hint_allow_nodraw_target ( bool ): if false, the hint will disappear if the target entity is invisible
:*hint_nooffscreen ( bool ): if true, the hint will not show when outside the player view
:*hint_forcecaption ( bool ): if true, the hint caption will show even if the hint is occluded
:*hint_local_player_only ( bool ): if true, only the local player will see the hint
*instructor_server_hint_stop :destroys a server/map created hint
:*hint_name (	string ): The hint to stop. Will stop ALL hints with this name
*chat_new_message: the specified channel contains new messages
:*channel ( byte )
*chat_members_changed: the specified channel has had players leave or join
:*channel ( byte )
*game_rules_state_change: the state of game changes
:*
== Economy events == 
*inventory_updated
:*itemdef ( short )
*cart_updated
*store_pricesheet_updated
*gc_connected
*item_schema_initialized
*drop_rate_modified
*event_ticket_modified
== ModEvents ==
*modifier_event
:*eventname ( string )
:*caster ( short )
:*ability ( short )
*dota_player_kill
:*victim_userid ( short )
:*killer1_userid ( short )
:*killer2_userid ( short )
:*killer3_userid ( short )
:*killer4_userid ( short )
:*killer5_userid ( short )
:*bounty ( short )
:*neutral ( short )
:*greevil ( short )
*dota_player_deny
:*killer_userid ( short )
:*victim_userid ( short )
*dota_barracks_kill
:*barracks_id ( short )
*dota_tower_kill
:*killer_userid ( short )
:*teamnumber ( short )
:*gold ( short )
*dota_roshan_kill
:*teamnumber ( short )
:*gold ( short )
*dota_courier_lost
:*teamnumber ( short )
*dota_courier_respawned
:*teamnumber ( short )
*dota_glyph_used
:*teamnumber ( short )
*dota_super_creeps
:*teamnumber ( short )
*dota_item_purchased( edit: not dota_item_purchase )
:*userid ( short )
:*itemid ( short )
*dota_item_gifted
:*userid ( short )
:*itemid ( short )
:*sourceid ( short )
*dota_rune_pickup
:*userid ( short )
:*type ( short )
:*rune ( short )
*dota_rune_spotted
:*userid ( short )
:*rune ( short )
*dota_item_spotted
:*userid ( short )
:*itemid ( short )
*dota_no_battle_points
:*userid ( short )
:*reason ( short )
*dota_chat_informational
:*userid ( short )
:*type ( short )
*dota_action_item
:*reason ( short )
:*itemdef ( short )
:*message ( short )
*dota_chat_ban_notification
:*userid( short )
*dota_chat_event
:*userid ( short )
:*gold ( short )
:*message ( short )
*dota_chat_timed_reward
:*userid ( short )
:*itmedef ( short )
:*message ( short )
*dota_pause_event
:*userid ( short )
:*value ( short )
:*message ( short )
*dota_chat_kill_streak
:*gold ( short )
:*killer_id ( short )
:*killer_streak ( short )
:*killer_multikill ( short )
:*victim_id ( short )
:*victim_streak ( short )
*dota_chat_first_blood
:*gold ( short )
:*killer_id ( short )
:*victim_id ( short )
*dota_player_update_hero_selection
:*tabcycle ( bool )
*dota_player_update_selected_unit
*dota_player_update_query_unit
*dota_player_update_killcam_unit
*dota_player_take_tower_damage
:*PlayerID ( short )
:*damage ( short )
*dota_hud_error_message
:*reason ( byte )
:*message ( string )
*dota_action_success
*dota_starting_position_changed
*dota_money_changed
*dota_enemy_money_changed
*dota_portrait_unit_stats_changed
*dota_portrait_unit_modifiers_changed
*dota_force_portrait_update
*dota_inventory_changed
*dota_item_picked_up
:*itemname ( string )
:*PlayerID ( short )
:*ItemEntityIndex( short )
:*HeroEntityIndex( short )
*dota_inventory_item_changed
:*entityIndex ( short )
*dota_ability_changed
*dota_portrait_ability_layout_changed
*dota_inventory_item_added
:*itemname ( string )
*dota_inventory_changed_query_unit
*dota_link_clicked
:*link ( string )
:*nav ( bool ): internal to item panel - preserve the nav stack
:*nav_back ( bool ): internal to item panel - preserve the nav stack
:*recipe ( short )
:*shop ( short ): show the item in a particular shop
*dota_set_quick_buy
:*item ( string )
:*recipe ( byte )
:*toggle ( bool )
*dota_quick_buy_changed
:*item ( string )
:*recipe ( byte )
*dota_player_shop_changed
:*prevshopmask ( byte )
:*shopmask ( byte )
*dota_player_show_killcam
:*nodes ( byte )
:*player ( short )
*dota_player_show_minikillcam
:*nodes ( byte )
:*player ( short )
*gc_user_session_created
*team_data_updated
*guild_data_updated
*guild_open_parties_updated
*fantasy_updated
*fantasy_league_changed
*fantasy_score_info_changed
*player_info_updated
*game_rules_state_change
*match_history_updated
:*SteamID ( uint64 )
*match_details_updated
:*matchID ( uint64 )
:*result ( byte )
*live_games_updated
*recent_matches_updated
:*Page ( short )
*news_updated
*persona_updated
:*SteamID ( uint64 )
*tournament_state_updated
*party_updated
*lobby_updated
*dashboard_caches_cleared
*last_hit
:*PlayerID ( short )'''
:*EntKilled ( short )
:*FirstBlood ( bool )
:*HeroKill ( bool )
:*TowerKill ( bool )
*player_completed_game
:*PlayerID ( short )
:*Winner ( byte )
*player_reconnected
:*PlayerID ( short )
*nommed_tree
:*PlayerID ( short )
*dota_rune_activated_server
:*PlayerID ( short )
:*rune ( short )
*dota_player_gained_level
:*player ( short )
:*level ( short )
*dota_player_pick_hero
:*player ( short )
:*heroindex ( short )
:*hero ( string )
*dota_player_learned_ability
:*player ( short )
:*abilityname ( string )
*dota_player_used_ability
:*PlayerID ( short )
:*abilityname ( string )
*dota_non_player_used_ability
:*abilityname ( string )
*dota_ability_channel_finished
:*abilityname ( string )
:*interrupted ( bool )
*dota_holdout_revive_complete
:*caster( short )
:*target( short )
*dota_player_killed
:*PlayerID ( short )
:*HeroKill ( bool )
:*TowerKill ( bool )
*bindpanel_open
*bindpanel_close
*keybind_changed
*dota_item_drag_begin
*dota_item_drag_end
*dota_shop_item_drag_begin
*dota_shop_item_drag_end
*dota_item_purchased
:*PlayerID ( short )
:*itemname ( string )
:*itemcost ( short )
*dota_item_used
:*PlayerID ( short )
:*itemname ( string )
*dota_item_auto_purchase
:*item_id ( short )
*dota_unit_event
:*victim ( short )
:*attacker ( short )
:*basepriority ( short )
:*priority ( short )
:*eventtype ( short ): EDOTAHeroChaseEventType
*dota_quest_started
:*questIndex ( long ): entity index
*dota_quest_completed
:*questIndex ( long ): entity index
*gameui_activated
*gameui_hidden
*player_fullyjoined
:*userid ( short ): user ID on server
:*name ( string ): player name
*dota_spectate_hero
:*entindex ( byte )
*dota_match_done
:*winningteam ( byte ): The ID of the winning team
*dota_match_done_client
*set_instructor_group_enabled
:*group ( string )
:*enabled ( short )
*joined_chat_channel
:*channelName ( string )
*left_chat_channel
:*channelName ( string )
*gc_chat_channel_list_updated
*today_messages_updated
:*num_messages ( short )
*file_downloaded
:*success ( bool )
:*local_filename ( string )
:*remote_url ( string )
*player_report_counts_updated
:*positive_remaining ( byte )
:*negative_remaining ( byte )
:*positive_total ( short )
:*negative_total ( short )
*scaleform_file_download_complete
:*success ( bool )
:*local_filename ( string )
:*remote_url ( string )
*item_purchased
:*itemid ( short )
*gc_mismatched_version
*demo_skip
:*local (1)
:*playback_tick ( long ): current playback tick
:*skipto_tick ( long ): tick we're going to
:*user_message_list ( local ): CSVCMsgList_UserMessages
:*dota_hero_chase_list ( local ): CSVCMsgList_GameEvents
*demo_start
:*local (1)
:*dota_combatlog_list ( local ): CSVCMsgList_GameEvents that are combat log events
:*dota_hero_chase_list ( local ): CSVCMsgList_GameEvents
:*dota_pick_hero_list ( local ): CSVCMsgList_GameEvents
*demo_stop
*map_shutdown
*dota_workshop_fileselected
:*filename ( string )
*dota_workshop_filecanceled
*rich_presence_updated
*dota_hero_random
:*userid ( short )
:*heroid ( short )
*dota_rd_chat_turn
:*userid ( short )
*dota_favorite_heroes_updated
*profile_closed
*item_preview_closed
*dashboard_switched_section
:*section ( short )
*dota_tournament_item_event
:*winner_count ( short )
:*event_type ( short )
*dota_hero_swap
:*playerid1 ( byte )
:*playerid2 ( byte )
*dota_reset_suggested_items : reset the purchased / checked off state of suggested items in the store
*halloween_high_score_received
:*round ( short )
*halloween_phase_end
:*phase ( byte )
:*team ( byte )
*halloween_high_score_request_failed
:*round ( short )
*dota_hud_skin_changed
:*skin ( string )
:*style ( byte )
*dota_inventory_player_got_item
:*itemname ( string )
*player_is_experienced
*player_is_notexperienced
*dota_tutorial_lesson_start
*map_location_updated
*richpresence_custom_updated
*game_end_visible
*antiaddiction_update
*highlight_hud_element
:*elementname ( string )
:*duration ( float )
*hide_highlight_hud_element
*intro_video_finished
*matchmaking_status_visibility_changed
*practice_lobby_visibility_changed
*dota_courier_transfer_item
*full_ui_unlocked
*client_connectionless_packet
:*local (1
:*buffer( (local
:*buffersize( long )
:*address( string )
*hero_selector_preview_set
:*setindex( short )
*antiaddiction_toast
:*message ( string )
:*duration ( float )
*hero_picker_shown
*hero_picker_hidden
*dota_local_quickbuy_changed
*show_center_message
:*message ( string )
:*duration ( float )
:*clear_message_queue ( bool )
*hud_flip_changed
:*flipped ( bool )
*frosty_points_updated
*defeated
:*entindex ( short )
*reset_defeated
*booster_state_updated
*event_points_updated
:*event_id ( short )
:*points ( short )
:*premium_points ( short )
*local_player_event_points
:*points ( short )
:*conversion_rate ( short )
*custom_game_difficulty
:*difficulty ( byte )
*tree_cut
:*tree_x ( float )
:*tree_y ( float )
*ugc_details_arrived
:*published_file_id ( uint64 )
*ugc_subscribed
:*published_file_id ( uint64 )
*ugc_unsubscribed
:*published_file_id ( uint64 )
*prizepool_received
:*success ( bool )
:*prizepool ( uint64 )
:*leagueid ( uint64 )
*microtransaction_success
:*txnid ( uint64 )
*dota_rubick_ability_steal
:*abilityIndex ( short )
:*abilityLevel ( byte )
*compendium_event_actions_loaded
:*account_id ( uint64 )
:*league_id ( uint64 )
:*local_test( bool )
:*original_points ( uint64 )
*compendium_selections_loaded
:*account_id ( uint64 )
:*league_id ( uint64 )
:*local_test( bool )
*compendium_set_selection_failed
:*account_id ( uint64 )
:*league_id ( uint64 )
:*local_test( bool )
*community_cached_names_updated
Category:Dota 2 Workshop Tools