<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alliedmods.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Micapat</id>
	<title>AlliedModders Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alliedmods.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Micapat"/>
	<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/Special:Contributions/Micapat"/>
	<updated>2026-05-28T23:18:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.6</generator>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11140</id>
		<title>Counter-Strike: Global Offensive UserMessages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11140"/>
		<updated>2020-12-20T12:06:26Z</updated>

		<summary type="html">&lt;p&gt;Micapat: Add stock UnsignedFixed16ToFloat()&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Counter-Strike: Global Offensive uses Google's [[Protobuf|Protocol Buffers]] instead of Valve's traditional UserMessages.&lt;br /&gt;
&lt;br /&gt;
The data on this page was read from [https://github.com/SteamDatabase/GameTracking-CSGO/blob/master/Protobufs/cstrike15_usermessages.proto].&lt;br /&gt;
The initial versions of these files were provided by Valve and updated by the AlliedModders staff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;//====== Copyright (c) 2013, Valve Corporation, All rights reserved. ========//&lt;br /&gt;
//&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without &lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
//&lt;br /&gt;
// Redistributions of source code must retain the above copyright notice, this&lt;br /&gt;
// list of conditions and the following disclaimer.&lt;br /&gt;
// Redistributions in binary form must reproduce the above copyright notice, &lt;br /&gt;
// this list of conditions and the following disclaimer in the documentation &lt;br /&gt;
// and/or other materials provided with the distribution.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot;&lt;br /&gt;
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE &lt;br /&gt;
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE &lt;br /&gt;
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE &lt;br /&gt;
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR &lt;br /&gt;
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF &lt;br /&gt;
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS &lt;br /&gt;
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN &lt;br /&gt;
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) &lt;br /&gt;
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;br /&gt;
// THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//===========================================================================//&lt;br /&gt;
//&lt;br /&gt;
// Purpose: The file defines our Google Protocol Buffers which are used in over &lt;br /&gt;
// the wire messages for the Source engine.&lt;br /&gt;
//&lt;br /&gt;
//=============================================================================&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VGUIMenu ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu.SubKey|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|string|str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|repeated VGUIMenu.SubKey|subkeys|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Geiger ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Geiger|string}}&lt;br /&gt;
{{hl2msg|int32|range|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Train ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Train|string}}&lt;br /&gt;
{{hl2msg|int32|train|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SayText|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText2 ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|As of this writing, params requires four empty strings or it will crash the client}}&lt;br /&gt;
{{begin-hl2msg|SayText2|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== TextMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|TextMsg|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudMsg|string}}&lt;br /&gt;
{{hl2msg|int32|channel|}}&lt;br /&gt;
{{hl2msg|CMsgVector2D|pos|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr1|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr2|}}&lt;br /&gt;
{{hl2msg|int32|effect|}}&lt;br /&gt;
{{hl2msg|float|fade_in_time|}}&lt;br /&gt;
{{hl2msg|float|fade_out_time|}}&lt;br /&gt;
{{hl2msg|float|hold_time|}}&lt;br /&gt;
{{hl2msg|float|fx_time|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Shake ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Shake|string}}&lt;br /&gt;
{{hl2msg|int32|command|}}&lt;br /&gt;
{{hl2msg|float|local_amplitude|}}&lt;br /&gt;
{{hl2msg|float|frequency|}}&lt;br /&gt;
{{hl2msg|float|duration|Time to shake (In seconds)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Shake.Command:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define SHAKE_START            (0) // Starts the screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_STOP             (1) // Stops the screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_AMPLITUDE        (2) // Modifies the amplitude of an active screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_FREQUENCY        (3) // Modifies the frequency of an active screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_START_RUMBLEONLY (4) // Starts a shake effect that only rumbles the controller, no screen effect&lt;br /&gt;
#define SHAKE_START_NORUMBLE   (5) // Starts a shake that does NOT rumble the controller&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fade ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Fade|string}}&lt;br /&gt;
{{hl2msg|int32|duration|Time to fade in/out (In seconds)}}&lt;br /&gt;
{{hl2msg|int32|hold_time|Time to hold the faded in/out state (In seconds)}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Fade.Duration:'''&lt;br /&gt;
&lt;br /&gt;
Even if a 32 bits integer is requested, the value must be in [https://en.wikipedia.org/wiki/Q_(number_format) Q7.9 format] !&lt;br /&gt;
&lt;br /&gt;
'''Fade.HoldTime:'''&lt;br /&gt;
&lt;br /&gt;
Even if a 32 bits integer is requested, the value must be in [https://en.wikipedia.org/wiki/Q_(number_format) Q7.9 format] !&lt;br /&gt;
&lt;br /&gt;
'''Fade.Flags:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define FFADE_IN       (0x0001) // Fade in&lt;br /&gt;
#define FFADE_OUT      (0x0002) // Fade out&lt;br /&gt;
#define FFADE_MODULATE (0x0004) // Modulate (Don't blend)&lt;br /&gt;
#define FFADE_STAYOUT  (0x0008) // Ignores the duration, stays faded out until a new fade message is received&lt;br /&gt;
#define FFADE_PURGE    (0x0010) // Purges all other fades, replacing them with this one&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Stocks:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define CSGO_SCREENFADE_FRACTIONAL_BITS (9)&lt;br /&gt;
&lt;br /&gt;
// ----------------------------------------------------------------&lt;br /&gt;
// Convert a float to an unsigned fixed 16 bits&lt;br /&gt;
// ----------------------------------------------------------------&lt;br /&gt;
stock int FloatToUnsignedFixed16(float input, int nb_fractional_bits)&lt;br /&gt;
{&lt;br /&gt;
    int output = RoundFloat(input * (1 &amp;lt;&amp;lt; nb_fractional_bits));&lt;br /&gt;
&lt;br /&gt;
    if (output &amp;lt; 0)     output = 0;&lt;br /&gt;
    if (output &amp;gt; 65535) output = 65535;&lt;br /&gt;
&lt;br /&gt;
    return output;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ----------------------------------------------------------------&lt;br /&gt;
// Convert an unsigned fixed 16 bits to a float&lt;br /&gt;
// ----------------------------------------------------------------&lt;br /&gt;
stock float UnsignedFixed16ToFloat(int input, int nb_fractional_bits)&lt;br /&gt;
{&lt;br /&gt;
    if (input &amp;lt; 0)     input = 0;&lt;br /&gt;
    if (input &amp;gt; 65535) input = 65535;&lt;br /&gt;
&lt;br /&gt;
    return (float(input) / (1 &amp;lt;&amp;lt; nb_fractional_bits));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ----------------------------------------------------------------&lt;br /&gt;
// Fade the screen of a client&lt;br /&gt;
// ----------------------------------------------------------------&lt;br /&gt;
stock void CSGO_ScreenFadeClient(int clientIndex, float duration, float holdTime, int flags, int color[4])&lt;br /&gt;
{&lt;br /&gt;
    Protobuf message = UserMessageToProtobuf(StartMessageOne(&amp;quot;Fade&amp;quot;, clientIndex, USERMSG_RELIABLE));&lt;br /&gt;
&lt;br /&gt;
    message.SetInt  (&amp;quot;duration&amp;quot;,  FloatToUnsignedFixed16(duration, CSGO_SCREENFADE_FRACTIONAL_BITS));&lt;br /&gt;
    message.SetInt  (&amp;quot;hold_time&amp;quot;, FloatToUnsignedFixed16(holdTime, CSGO_SCREENFADE_FRACTIONAL_BITS));&lt;br /&gt;
    message.SetInt  (&amp;quot;flags&amp;quot;,     flags);&lt;br /&gt;
    message.SetColor(&amp;quot;clr&amp;quot;,       color);&lt;br /&gt;
&lt;br /&gt;
    EndMessage();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rumble ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Rumble|string}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|int32|data|}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Rumble.Index:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define RUMBLE_INVALID                  (-1)&lt;br /&gt;
#define RUMBLE_STOP_ALL                 (0) // Cease all current rumbling effects.&lt;br /&gt;
#define RUMBLE_PISTOL                   (1)&lt;br /&gt;
#define RUMBLE_357                      (2)&lt;br /&gt;
#define RUMBLE_SMG1                     (3)&lt;br /&gt;
#define RUMBLE_AR2                      (4)&lt;br /&gt;
#define RUMBLE_SHOTGUN_SINGLE           (5)&lt;br /&gt;
#define RUMBLE_SHOTGUN_DOUBLE           (6)&lt;br /&gt;
#define RUMBLE_AR2_ALT_FIRE             (7)&lt;br /&gt;
#define RUMBLE_RPG_MISSILE              (8)&lt;br /&gt;
#define RUMBLE_CROWBAR_SWING            (9)&lt;br /&gt;
#define RUMBLE_AIRBOAT_GUN              (10)&lt;br /&gt;
#define RUMBLE_JEEP_ENGINE_LOOP         (11)&lt;br /&gt;
#define RUMBLE_FLAT_LEFT                (12)&lt;br /&gt;
#define RUMBLE_FLAT_RIGHT               (13)&lt;br /&gt;
#define RUMBLE_FLAT_BOTH                (14)&lt;br /&gt;
#define RUMBLE_DMG_LOW                  (15)&lt;br /&gt;
#define RUMBLE_DMG_MED                  (16)&lt;br /&gt;
#define RUMBLE_DMG_HIGH                 (17)&lt;br /&gt;
#define RUMBLE_FALL_LONG                (18)&lt;br /&gt;
#define RUMBLE_FALL_SHORT               (19)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_OPEN          (20)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_PUNT          (21)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_LOW           (22)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_MEDIUM        (23)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_HIGH          (24)&lt;br /&gt;
#define RUMBLE_PORTALGUN_LEFT           (25)&lt;br /&gt;
#define RUMBLE_PORTALGUN_RIGHT          (26)&lt;br /&gt;
#define RUMBLE_PORTAL_PLACEMENT_FAILURE (27)&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rumble.Flags:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define RUMBLE_FLAGS_NONE            (0x0000)&lt;br /&gt;
#define RUMBLE_FLAG_STOP             (0x0001) // Stop any instance of this type of effect that's already playing&lt;br /&gt;
#define RUMBLE_FLAG_LOOP             (0x0002) // Make this effect loop&lt;br /&gt;
#define RUMBLE_FLAG_RESTART          (0x0004) // If this effect is already playing, restart it&lt;br /&gt;
#define RUMBLE_FLAG_UPDATE_SCALE     (0x0008) // Apply DATA to this effect if already playing, but don't restart&lt;br /&gt;
#define RUMBLE_FLAG_ONLYONE          (0x0010) // Don't play this effect if it is already playing&lt;br /&gt;
#define RUMBLE_FLAG_RANDOM_AMPLITUDE (0x0020) // Amplitude scale will be randomly chosen (Between 10% and 100%)&lt;br /&gt;
#define RUMBLE_FLAG_INITIAL_SCALE    (0x0040) // Data is the initial scale to start this effect (* 100)&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloseCaption ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaption|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{hl2msg|string|cctoken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaptionDirect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaptionDirect|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendAudio|string}}&lt;br /&gt;
{{hl2msg|string|radio_sound|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RawAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RawAudio|string}}&lt;br /&gt;
{{hl2msg|int32|pitch|}}&lt;br /&gt;
{{hl2msg|int32|ent_index|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{hl2msg|string|voice_filename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoiceMask ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask.PlayerMask|string}}&lt;br /&gt;
{{hl2msg|int32|game_rules_mask|}}&lt;br /&gt;
{{hl2msg|int32|ban_masks|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask|string}}&lt;br /&gt;
{{hl2msg|repeated VoiceMask.PlayerMask|player_masks|}}&lt;br /&gt;
{{hl2msg|bool|player_mod_enable|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Damage ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Damage|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{hl2msg|CMsgVector|inflictor_world_pos|}}&lt;br /&gt;
{{hl2msg|int32|victim_entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RadioText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RadioText|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|int32|client|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HintText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KeyHintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KeyHintText|string}}&lt;br /&gt;
{{hl2msg|string|hints|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ProcessSpottedEntityUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|gurjeets - Message below is slightly bigger in size than the non-protobuf version, by around 8 bits. }}&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate.SpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|entity_idx|}}&lt;br /&gt;
{{hl2msg|int32|class_id|}}&lt;br /&gt;
{{hl2msg|int32|origin_x|}}&lt;br /&gt;
{{hl2msg|int32|origin_y|}}&lt;br /&gt;
{{hl2msg|int32|origin_z|}}&lt;br /&gt;
{{hl2msg|int32|angle_y|}}&lt;br /&gt;
{{hl2msg|bool|defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_c4|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|bool|new_update|}}&lt;br /&gt;
{{hl2msg|repeated ProcessSpottedEntityUpdate.SpottedEntityUpdate|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemDrops ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemDrops|string}}&lt;br /&gt;
{{hl2msg|repeated ?|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemFound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemFound|string}}&lt;br /&gt;
{{hl2msg|?|iteminfo|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardList ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardList|string}}&lt;br /&gt;
{{hl2msg|bool|defuse_kit|}}&lt;br /&gt;
{{hl2msg|repeated int32|round_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|card_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|type_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_round_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_card_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_extra_utility|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardSelection ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardSelection|string}}&lt;br /&gt;
{{hl2msg|int32|round_idx|}}&lt;br /&gt;
{{hl2msg|int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|card_idx|}}&lt;br /&gt;
{{hl2msg|int32|type_idx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReloadEffect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReloadEffect|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|int32|actanim|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WeaponSound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WeaponSound|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{hl2msg|string|sound|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== UpdateScreenHealthBar ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|UpdateScreenHealthBar|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|healthratio_old|}}&lt;br /&gt;
{{hl2msg|float|healthratio_new|}}&lt;br /&gt;
{{hl2msg|int32|style|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EntityOutlineHighlight ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EntityOutlineHighlight|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|bool|removehighlight|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AdjustMoney ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AdjustMoney|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReportHit ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReportHit|string}}&lt;br /&gt;
{{hl2msg|float|pos_x|}}&lt;br /&gt;
{{hl2msg|float|pos_y|}}&lt;br /&gt;
{{hl2msg|float|pos_z|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KillCam ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KillCam|string}}&lt;br /&gt;
{{hl2msg|int32|obs_mode|}}&lt;br /&gt;
{{hl2msg|int32|first_target|}}&lt;br /&gt;
{{hl2msg|int32|second_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DesiredTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DesiredTimescale|string}}&lt;br /&gt;
{{hl2msg|float|desired_timescale|}}&lt;br /&gt;
{{hl2msg|float|duration_realtime_sec|}}&lt;br /&gt;
{{hl2msg|int32|interpolator_type|}}&lt;br /&gt;
{{hl2msg|float|start_blend_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentTimescale|string}}&lt;br /&gt;
{{hl2msg|float|cur_timescale|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AchievementEvent ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AchievementEvent|string}}&lt;br /&gt;
{{hl2msg|int32|achievement|}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchEndConditions ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchEndConditions|string}}&lt;br /&gt;
{{hl2msg|int32|fraglimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_maxrounds|}}&lt;br /&gt;
{{hl2msg|int32|mp_winlimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_timelimit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate.Stat|string}}&lt;br /&gt;
{{hl2msg|int32|idx|}}&lt;br /&gt;
{{hl2msg|int32|delta|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|version|}}&lt;br /&gt;
{{hl2msg|repeated PlayerStatsUpdate.Stat|stats|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{hl2msg|int32|crc|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisplayInventory ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisplayInventory|string}}&lt;br /&gt;
{{hl2msg|bool|display|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== QuestProgress ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|QuestProgress|string}}&lt;br /&gt;
{{hl2msg|uint32|quest_id|}}&lt;br /&gt;
{{hl2msg|uint32|normal_points|}}&lt;br /&gt;
{{hl2msg|uint32|bonus_points|}}&lt;br /&gt;
{{hl2msg|bool|is_event_quest|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ScoreLeaderboardData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ScoreLeaderboardData|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerDecalDigitalSignature ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerDecalDigitalSignature|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankGet ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Get ELO Rank Value from Client}}&lt;br /&gt;
{{begin-hl2msg|XRankGet|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankUpd ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Update ELO Rank Value on Client}}&lt;br /&gt;
{{begin-hl2msg|XRankUpd|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{hl2msg|int32|ranking|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CallVoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CallVoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{hl2msg|int32|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteStart ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteStart|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{hl2msg|string|other_team_str|}}&lt;br /&gt;
{{hl2msg|bool|is_yes_no_vote|}}&lt;br /&gt;
{{hl2msg|int32|entidx_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VotePass ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VotePass|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteSetup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteSetup|string}}&lt;br /&gt;
{{hl2msg|repeated string|potential_issues|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendLastKillerDamageToClient ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendLastKillerDamageToClient|string}}&lt;br /&gt;
{{hl2msg|int32|num_hits_given|}}&lt;br /&gt;
{{hl2msg|int32|damage_given|}}&lt;br /&gt;
{{hl2msg|int32|num_hits_taken|}}&lt;br /&gt;
{{hl2msg|int32|damage_taken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate.RankUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|account_id|}}&lt;br /&gt;
{{hl2msg|int32|rank_old|}}&lt;br /&gt;
{{hl2msg|int32|rank_new|}}&lt;br /&gt;
{{hl2msg|int32|num_wins|}}&lt;br /&gt;
{{hl2msg|float|rank_change|}}&lt;br /&gt;
{{hl2msg|int32|rank_type_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate|string}}&lt;br /&gt;
{{hl2msg|repeated ServerRankUpdate.RankUpdate|rank_update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XpUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|XpUpdate|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemPickup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemPickup|string}}&lt;br /&gt;
{{hl2msg|string|item|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ShowMenu ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|show hud menu}}&lt;br /&gt;
{{begin-hl2msg|ShowMenu|string}}&lt;br /&gt;
{{hl2msg|int32|bits_valid_slots|}}&lt;br /&gt;
{{hl2msg|int32|display_time|}}&lt;br /&gt;
{{hl2msg|string|menu_string|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== BarTime ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|For the C4 progress bar}}&lt;br /&gt;
{{begin-hl2msg|BarTime|string}}&lt;br /&gt;
{{hl2msg|string|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AmmoDenied ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AmmoDenied|string}}&lt;br /&gt;
{{hl2msg|int32|ammoIdx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MarkAchievement ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MarkAchievement|string}}&lt;br /&gt;
{{hl2msg|string|achievement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|string|update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemDrop ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemDrop|string}}&lt;br /&gt;
{{hl2msg|int64|itemid|}}&lt;br /&gt;
{{hl2msg|bool|death|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GlowPropTurnOff ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GlowPropTurnOff|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundBackupFilenames ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundBackupFilenames|string}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|string|filename|}}&lt;br /&gt;
{{hl2msg|string|nicename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SSUI ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SSUI|string}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|float|start_time|}}&lt;br /&gt;
{{hl2msg|float|end_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SurvivalStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Fact|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{hl2msg|int32|display|}}&lt;br /&gt;
{{hl2msg|int32|value|}}&lt;br /&gt;
{{hl2msg|float|interestingness|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Placement|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|int32|placement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Damage|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|to|}}&lt;br /&gt;
{{hl2msg|int32|to_hits|}}&lt;br /&gt;
{{hl2msg|int32|from|}}&lt;br /&gt;
{{hl2msg|int32|from_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Fact|facts|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Placement|users|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Damage|damages|}}&lt;br /&gt;
{{hl2msg|int32|ticknumber|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EndOfMatchAllPlayersData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.Accolade|string}}&lt;br /&gt;
{{hl2msg|int32|eaccolade|}}&lt;br /&gt;
{{hl2msg|float|value|}}&lt;br /&gt;
{{hl2msg|int32|position|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.PlayerData|string}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|EndOfMatchAllPlayersData.Accolade|nomination|}}&lt;br /&gt;
{{hl2msg|repeated ?|items|}}&lt;br /&gt;
{{hl2msg|int32|playercolor|}}&lt;br /&gt;
{{hl2msg|bool|isbot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData|string}}&lt;br /&gt;
{{hl2msg|repeated EndOfMatchAllPlayersData.PlayerData|allplayerdata|}}&lt;br /&gt;
{{hl2msg|int32|scene|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundImpactScoreData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Victim|string}}&lt;br /&gt;
{{hl2msg|int32|team_number|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|color|}}&lt;br /&gt;
{{hl2msg|bool|is_bot|}}&lt;br /&gt;
{{hl2msg|bool|is_dead|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Objective|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Damage|string}}&lt;br /&gt;
{{hl2msg|int32|target_entindex|}}&lt;br /&gt;
{{hl2msg|uint64|target_xuid|}}&lt;br /&gt;
{{hl2msg|int32|health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_hits|}}&lt;br /&gt;
{{hl2msg|int32|return_health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_return_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent|string}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{hl2msg|int32|ct_alive|}}&lt;br /&gt;
{{hl2msg|int32|t_alive|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Victim|victim_data|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Objective|objective_data|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent.Damage|all_damage_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.InitialConditions|string}}&lt;br /&gt;
{{hl2msg|int32|ct_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|t_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData|string}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.InitialConditions|init_conditions|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent|all_ris_event_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentRoundOdds ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentRoundOdds|string}}&lt;br /&gt;
{{hl2msg|int32|odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DeepStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DeepStats|string}}&lt;br /&gt;
{{hl2msg|?|stats|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ResetHud ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ResetHud|string}}&lt;br /&gt;
{{hl2msg|bool|reset|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GameTitle ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GameTitle|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RequestState ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RequestState|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== StopSpectatorMode ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|StopSpectatorMode|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisconnectToLobby ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisconnectToLobby|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WarmupHasEnded ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WarmupHasEnded|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ClientInfo ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ClientInfo|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankRevealAll ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankRevealAll|string}}&lt;br /&gt;
{{hl2msg|int32|seconds_till_shutdown|}}&lt;br /&gt;
{{hl2msg|?|reservation|}}&lt;br /&gt;
{{end-hl2msg}}&lt;/div&gt;</summary>
		<author><name>Micapat</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11139</id>
		<title>Counter-Strike: Global Offensive UserMessages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11139"/>
		<updated>2020-12-20T11:50:56Z</updated>

		<summary type="html">&lt;p&gt;Micapat: Fade - Add link for Q format + Fix example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Counter-Strike: Global Offensive uses Google's [[Protobuf|Protocol Buffers]] instead of Valve's traditional UserMessages.&lt;br /&gt;
&lt;br /&gt;
The data on this page was read from [https://github.com/SteamDatabase/GameTracking-CSGO/blob/master/Protobufs/cstrike15_usermessages.proto].&lt;br /&gt;
The initial versions of these files were provided by Valve and updated by the AlliedModders staff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;//====== Copyright (c) 2013, Valve Corporation, All rights reserved. ========//&lt;br /&gt;
//&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without &lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
//&lt;br /&gt;
// Redistributions of source code must retain the above copyright notice, this&lt;br /&gt;
// list of conditions and the following disclaimer.&lt;br /&gt;
// Redistributions in binary form must reproduce the above copyright notice, &lt;br /&gt;
// this list of conditions and the following disclaimer in the documentation &lt;br /&gt;
// and/or other materials provided with the distribution.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot;&lt;br /&gt;
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE &lt;br /&gt;
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE &lt;br /&gt;
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE &lt;br /&gt;
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR &lt;br /&gt;
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF &lt;br /&gt;
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS &lt;br /&gt;
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN &lt;br /&gt;
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) &lt;br /&gt;
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;br /&gt;
// THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//===========================================================================//&lt;br /&gt;
//&lt;br /&gt;
// Purpose: The file defines our Google Protocol Buffers which are used in over &lt;br /&gt;
// the wire messages for the Source engine.&lt;br /&gt;
//&lt;br /&gt;
//=============================================================================&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VGUIMenu ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu.SubKey|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|string|str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|repeated VGUIMenu.SubKey|subkeys|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Geiger ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Geiger|string}}&lt;br /&gt;
{{hl2msg|int32|range|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Train ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Train|string}}&lt;br /&gt;
{{hl2msg|int32|train|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SayText|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText2 ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|As of this writing, params requires four empty strings or it will crash the client}}&lt;br /&gt;
{{begin-hl2msg|SayText2|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== TextMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|TextMsg|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudMsg|string}}&lt;br /&gt;
{{hl2msg|int32|channel|}}&lt;br /&gt;
{{hl2msg|CMsgVector2D|pos|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr1|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr2|}}&lt;br /&gt;
{{hl2msg|int32|effect|}}&lt;br /&gt;
{{hl2msg|float|fade_in_time|}}&lt;br /&gt;
{{hl2msg|float|fade_out_time|}}&lt;br /&gt;
{{hl2msg|float|hold_time|}}&lt;br /&gt;
{{hl2msg|float|fx_time|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Shake ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Shake|string}}&lt;br /&gt;
{{hl2msg|int32|command|}}&lt;br /&gt;
{{hl2msg|float|local_amplitude|}}&lt;br /&gt;
{{hl2msg|float|frequency|}}&lt;br /&gt;
{{hl2msg|float|duration|Time to shake (In seconds)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Shake.Command:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define SHAKE_START            (0) // Starts the screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_STOP             (1) // Stops the screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_AMPLITUDE        (2) // Modifies the amplitude of an active screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_FREQUENCY        (3) // Modifies the frequency of an active screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_START_RUMBLEONLY (4) // Starts a shake effect that only rumbles the controller, no screen effect&lt;br /&gt;
#define SHAKE_START_NORUMBLE   (5) // Starts a shake that does NOT rumble the controller&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fade ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Fade|string}}&lt;br /&gt;
{{hl2msg|int32|duration|Time to fade in/out (In seconds)}}&lt;br /&gt;
{{hl2msg|int32|hold_time|Time to hold the faded in/out state (In seconds)}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Fade.Duration:'''&lt;br /&gt;
&lt;br /&gt;
Even if a 32 bits integer is requested, the value must be in [https://en.wikipedia.org/wiki/Q_(number_format) Q7.9 format] !&lt;br /&gt;
&lt;br /&gt;
'''Fade.HoldTime:'''&lt;br /&gt;
&lt;br /&gt;
Even if a 32 bits integer is requested, the value must be in [https://en.wikipedia.org/wiki/Q_(number_format) Q7.9 format] !&lt;br /&gt;
&lt;br /&gt;
'''Fade.Flags:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define FFADE_IN       (0x0001) // Fade in&lt;br /&gt;
#define FFADE_OUT      (0x0002) // Fade out&lt;br /&gt;
#define FFADE_MODULATE (0x0004) // Modulate (Don't blend)&lt;br /&gt;
#define FFADE_STAYOUT  (0x0008) // Ignores the duration, stays faded out until a new fade message is received&lt;br /&gt;
#define FFADE_PURGE    (0x0010) // Purges all other fades, replacing them with this one&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Stocks:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define CSGO_SCREENFADE_FRACTIONAL_BITS (9)&lt;br /&gt;
&lt;br /&gt;
// ----------------------------------------------------------------&lt;br /&gt;
// Convert a float to a fixed 16 bits&lt;br /&gt;
// ----------------------------------------------------------------&lt;br /&gt;
stock int FloatToFixed16(float input, int nb_fractional_bits)&lt;br /&gt;
{&lt;br /&gt;
    int output = RoundFloat(input * (1 &amp;lt;&amp;lt; nb_fractional_bits));&lt;br /&gt;
&lt;br /&gt;
    if (output &amp;lt; 0)     output = 0;&lt;br /&gt;
    if (output &amp;gt; 65535) output = 65535;&lt;br /&gt;
&lt;br /&gt;
    return output;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ----------------------------------------------------------------&lt;br /&gt;
// Fade the screen of a client&lt;br /&gt;
// ----------------------------------------------------------------&lt;br /&gt;
stock void CSGO_ScreenFadeClient(int clientIndex, float duration, float holdTime, int flags, int color[4])&lt;br /&gt;
{&lt;br /&gt;
    Protobuf message = UserMessageToProtobuf(StartMessageOne(&amp;quot;Fade&amp;quot;, clientIndex, USERMSG_RELIABLE));&lt;br /&gt;
&lt;br /&gt;
    message.SetInt  (&amp;quot;duration&amp;quot;,  FloatToFixed16(duration, CSGO_SCREENFADE_FRACTIONAL_BITS));&lt;br /&gt;
    message.SetInt  (&amp;quot;hold_time&amp;quot;, FloatToFixed16(holdTime, CSGO_SCREENFADE_FRACTIONAL_BITS));&lt;br /&gt;
    message.SetInt  (&amp;quot;flags&amp;quot;,     flags);&lt;br /&gt;
    message.SetColor(&amp;quot;clr&amp;quot;,       color);&lt;br /&gt;
&lt;br /&gt;
    EndMessage();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rumble ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Rumble|string}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|int32|data|}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Rumble.Index:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define RUMBLE_INVALID                  (-1)&lt;br /&gt;
#define RUMBLE_STOP_ALL                 (0) // Cease all current rumbling effects.&lt;br /&gt;
#define RUMBLE_PISTOL                   (1)&lt;br /&gt;
#define RUMBLE_357                      (2)&lt;br /&gt;
#define RUMBLE_SMG1                     (3)&lt;br /&gt;
#define RUMBLE_AR2                      (4)&lt;br /&gt;
#define RUMBLE_SHOTGUN_SINGLE           (5)&lt;br /&gt;
#define RUMBLE_SHOTGUN_DOUBLE           (6)&lt;br /&gt;
#define RUMBLE_AR2_ALT_FIRE             (7)&lt;br /&gt;
#define RUMBLE_RPG_MISSILE              (8)&lt;br /&gt;
#define RUMBLE_CROWBAR_SWING            (9)&lt;br /&gt;
#define RUMBLE_AIRBOAT_GUN              (10)&lt;br /&gt;
#define RUMBLE_JEEP_ENGINE_LOOP         (11)&lt;br /&gt;
#define RUMBLE_FLAT_LEFT                (12)&lt;br /&gt;
#define RUMBLE_FLAT_RIGHT               (13)&lt;br /&gt;
#define RUMBLE_FLAT_BOTH                (14)&lt;br /&gt;
#define RUMBLE_DMG_LOW                  (15)&lt;br /&gt;
#define RUMBLE_DMG_MED                  (16)&lt;br /&gt;
#define RUMBLE_DMG_HIGH                 (17)&lt;br /&gt;
#define RUMBLE_FALL_LONG                (18)&lt;br /&gt;
#define RUMBLE_FALL_SHORT               (19)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_OPEN          (20)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_PUNT          (21)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_LOW           (22)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_MEDIUM        (23)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_HIGH          (24)&lt;br /&gt;
#define RUMBLE_PORTALGUN_LEFT           (25)&lt;br /&gt;
#define RUMBLE_PORTALGUN_RIGHT          (26)&lt;br /&gt;
#define RUMBLE_PORTAL_PLACEMENT_FAILURE (27)&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rumble.Flags:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define RUMBLE_FLAGS_NONE            (0x0000)&lt;br /&gt;
#define RUMBLE_FLAG_STOP             (0x0001) // Stop any instance of this type of effect that's already playing&lt;br /&gt;
#define RUMBLE_FLAG_LOOP             (0x0002) // Make this effect loop&lt;br /&gt;
#define RUMBLE_FLAG_RESTART          (0x0004) // If this effect is already playing, restart it&lt;br /&gt;
#define RUMBLE_FLAG_UPDATE_SCALE     (0x0008) // Apply DATA to this effect if already playing, but don't restart&lt;br /&gt;
#define RUMBLE_FLAG_ONLYONE          (0x0010) // Don't play this effect if it is already playing&lt;br /&gt;
#define RUMBLE_FLAG_RANDOM_AMPLITUDE (0x0020) // Amplitude scale will be randomly chosen (Between 10% and 100%)&lt;br /&gt;
#define RUMBLE_FLAG_INITIAL_SCALE    (0x0040) // Data is the initial scale to start this effect (* 100)&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloseCaption ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaption|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{hl2msg|string|cctoken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaptionDirect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaptionDirect|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendAudio|string}}&lt;br /&gt;
{{hl2msg|string|radio_sound|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RawAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RawAudio|string}}&lt;br /&gt;
{{hl2msg|int32|pitch|}}&lt;br /&gt;
{{hl2msg|int32|ent_index|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{hl2msg|string|voice_filename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoiceMask ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask.PlayerMask|string}}&lt;br /&gt;
{{hl2msg|int32|game_rules_mask|}}&lt;br /&gt;
{{hl2msg|int32|ban_masks|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask|string}}&lt;br /&gt;
{{hl2msg|repeated VoiceMask.PlayerMask|player_masks|}}&lt;br /&gt;
{{hl2msg|bool|player_mod_enable|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Damage ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Damage|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{hl2msg|CMsgVector|inflictor_world_pos|}}&lt;br /&gt;
{{hl2msg|int32|victim_entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RadioText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RadioText|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|int32|client|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HintText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KeyHintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KeyHintText|string}}&lt;br /&gt;
{{hl2msg|string|hints|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ProcessSpottedEntityUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|gurjeets - Message below is slightly bigger in size than the non-protobuf version, by around 8 bits. }}&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate.SpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|entity_idx|}}&lt;br /&gt;
{{hl2msg|int32|class_id|}}&lt;br /&gt;
{{hl2msg|int32|origin_x|}}&lt;br /&gt;
{{hl2msg|int32|origin_y|}}&lt;br /&gt;
{{hl2msg|int32|origin_z|}}&lt;br /&gt;
{{hl2msg|int32|angle_y|}}&lt;br /&gt;
{{hl2msg|bool|defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_c4|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|bool|new_update|}}&lt;br /&gt;
{{hl2msg|repeated ProcessSpottedEntityUpdate.SpottedEntityUpdate|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemDrops ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemDrops|string}}&lt;br /&gt;
{{hl2msg|repeated ?|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemFound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemFound|string}}&lt;br /&gt;
{{hl2msg|?|iteminfo|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardList ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardList|string}}&lt;br /&gt;
{{hl2msg|bool|defuse_kit|}}&lt;br /&gt;
{{hl2msg|repeated int32|round_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|card_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|type_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_round_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_card_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_extra_utility|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardSelection ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardSelection|string}}&lt;br /&gt;
{{hl2msg|int32|round_idx|}}&lt;br /&gt;
{{hl2msg|int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|card_idx|}}&lt;br /&gt;
{{hl2msg|int32|type_idx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReloadEffect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReloadEffect|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|int32|actanim|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WeaponSound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WeaponSound|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{hl2msg|string|sound|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== UpdateScreenHealthBar ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|UpdateScreenHealthBar|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|healthratio_old|}}&lt;br /&gt;
{{hl2msg|float|healthratio_new|}}&lt;br /&gt;
{{hl2msg|int32|style|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EntityOutlineHighlight ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EntityOutlineHighlight|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|bool|removehighlight|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AdjustMoney ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AdjustMoney|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReportHit ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReportHit|string}}&lt;br /&gt;
{{hl2msg|float|pos_x|}}&lt;br /&gt;
{{hl2msg|float|pos_y|}}&lt;br /&gt;
{{hl2msg|float|pos_z|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KillCam ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KillCam|string}}&lt;br /&gt;
{{hl2msg|int32|obs_mode|}}&lt;br /&gt;
{{hl2msg|int32|first_target|}}&lt;br /&gt;
{{hl2msg|int32|second_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DesiredTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DesiredTimescale|string}}&lt;br /&gt;
{{hl2msg|float|desired_timescale|}}&lt;br /&gt;
{{hl2msg|float|duration_realtime_sec|}}&lt;br /&gt;
{{hl2msg|int32|interpolator_type|}}&lt;br /&gt;
{{hl2msg|float|start_blend_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentTimescale|string}}&lt;br /&gt;
{{hl2msg|float|cur_timescale|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AchievementEvent ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AchievementEvent|string}}&lt;br /&gt;
{{hl2msg|int32|achievement|}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchEndConditions ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchEndConditions|string}}&lt;br /&gt;
{{hl2msg|int32|fraglimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_maxrounds|}}&lt;br /&gt;
{{hl2msg|int32|mp_winlimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_timelimit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate.Stat|string}}&lt;br /&gt;
{{hl2msg|int32|idx|}}&lt;br /&gt;
{{hl2msg|int32|delta|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|version|}}&lt;br /&gt;
{{hl2msg|repeated PlayerStatsUpdate.Stat|stats|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{hl2msg|int32|crc|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisplayInventory ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisplayInventory|string}}&lt;br /&gt;
{{hl2msg|bool|display|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== QuestProgress ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|QuestProgress|string}}&lt;br /&gt;
{{hl2msg|uint32|quest_id|}}&lt;br /&gt;
{{hl2msg|uint32|normal_points|}}&lt;br /&gt;
{{hl2msg|uint32|bonus_points|}}&lt;br /&gt;
{{hl2msg|bool|is_event_quest|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ScoreLeaderboardData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ScoreLeaderboardData|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerDecalDigitalSignature ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerDecalDigitalSignature|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankGet ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Get ELO Rank Value from Client}}&lt;br /&gt;
{{begin-hl2msg|XRankGet|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankUpd ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Update ELO Rank Value on Client}}&lt;br /&gt;
{{begin-hl2msg|XRankUpd|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{hl2msg|int32|ranking|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CallVoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CallVoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{hl2msg|int32|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteStart ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteStart|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{hl2msg|string|other_team_str|}}&lt;br /&gt;
{{hl2msg|bool|is_yes_no_vote|}}&lt;br /&gt;
{{hl2msg|int32|entidx_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VotePass ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VotePass|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteSetup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteSetup|string}}&lt;br /&gt;
{{hl2msg|repeated string|potential_issues|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendLastKillerDamageToClient ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendLastKillerDamageToClient|string}}&lt;br /&gt;
{{hl2msg|int32|num_hits_given|}}&lt;br /&gt;
{{hl2msg|int32|damage_given|}}&lt;br /&gt;
{{hl2msg|int32|num_hits_taken|}}&lt;br /&gt;
{{hl2msg|int32|damage_taken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate.RankUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|account_id|}}&lt;br /&gt;
{{hl2msg|int32|rank_old|}}&lt;br /&gt;
{{hl2msg|int32|rank_new|}}&lt;br /&gt;
{{hl2msg|int32|num_wins|}}&lt;br /&gt;
{{hl2msg|float|rank_change|}}&lt;br /&gt;
{{hl2msg|int32|rank_type_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate|string}}&lt;br /&gt;
{{hl2msg|repeated ServerRankUpdate.RankUpdate|rank_update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XpUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|XpUpdate|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemPickup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemPickup|string}}&lt;br /&gt;
{{hl2msg|string|item|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ShowMenu ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|show hud menu}}&lt;br /&gt;
{{begin-hl2msg|ShowMenu|string}}&lt;br /&gt;
{{hl2msg|int32|bits_valid_slots|}}&lt;br /&gt;
{{hl2msg|int32|display_time|}}&lt;br /&gt;
{{hl2msg|string|menu_string|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== BarTime ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|For the C4 progress bar}}&lt;br /&gt;
{{begin-hl2msg|BarTime|string}}&lt;br /&gt;
{{hl2msg|string|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AmmoDenied ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AmmoDenied|string}}&lt;br /&gt;
{{hl2msg|int32|ammoIdx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MarkAchievement ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MarkAchievement|string}}&lt;br /&gt;
{{hl2msg|string|achievement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|string|update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemDrop ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemDrop|string}}&lt;br /&gt;
{{hl2msg|int64|itemid|}}&lt;br /&gt;
{{hl2msg|bool|death|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GlowPropTurnOff ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GlowPropTurnOff|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundBackupFilenames ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundBackupFilenames|string}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|string|filename|}}&lt;br /&gt;
{{hl2msg|string|nicename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SSUI ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SSUI|string}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|float|start_time|}}&lt;br /&gt;
{{hl2msg|float|end_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SurvivalStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Fact|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{hl2msg|int32|display|}}&lt;br /&gt;
{{hl2msg|int32|value|}}&lt;br /&gt;
{{hl2msg|float|interestingness|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Placement|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|int32|placement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Damage|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|to|}}&lt;br /&gt;
{{hl2msg|int32|to_hits|}}&lt;br /&gt;
{{hl2msg|int32|from|}}&lt;br /&gt;
{{hl2msg|int32|from_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Fact|facts|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Placement|users|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Damage|damages|}}&lt;br /&gt;
{{hl2msg|int32|ticknumber|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EndOfMatchAllPlayersData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.Accolade|string}}&lt;br /&gt;
{{hl2msg|int32|eaccolade|}}&lt;br /&gt;
{{hl2msg|float|value|}}&lt;br /&gt;
{{hl2msg|int32|position|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.PlayerData|string}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|EndOfMatchAllPlayersData.Accolade|nomination|}}&lt;br /&gt;
{{hl2msg|repeated ?|items|}}&lt;br /&gt;
{{hl2msg|int32|playercolor|}}&lt;br /&gt;
{{hl2msg|bool|isbot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData|string}}&lt;br /&gt;
{{hl2msg|repeated EndOfMatchAllPlayersData.PlayerData|allplayerdata|}}&lt;br /&gt;
{{hl2msg|int32|scene|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundImpactScoreData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Victim|string}}&lt;br /&gt;
{{hl2msg|int32|team_number|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|color|}}&lt;br /&gt;
{{hl2msg|bool|is_bot|}}&lt;br /&gt;
{{hl2msg|bool|is_dead|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Objective|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Damage|string}}&lt;br /&gt;
{{hl2msg|int32|target_entindex|}}&lt;br /&gt;
{{hl2msg|uint64|target_xuid|}}&lt;br /&gt;
{{hl2msg|int32|health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_hits|}}&lt;br /&gt;
{{hl2msg|int32|return_health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_return_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent|string}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{hl2msg|int32|ct_alive|}}&lt;br /&gt;
{{hl2msg|int32|t_alive|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Victim|victim_data|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Objective|objective_data|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent.Damage|all_damage_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.InitialConditions|string}}&lt;br /&gt;
{{hl2msg|int32|ct_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|t_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData|string}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.InitialConditions|init_conditions|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent|all_ris_event_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentRoundOdds ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentRoundOdds|string}}&lt;br /&gt;
{{hl2msg|int32|odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DeepStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DeepStats|string}}&lt;br /&gt;
{{hl2msg|?|stats|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ResetHud ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ResetHud|string}}&lt;br /&gt;
{{hl2msg|bool|reset|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GameTitle ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GameTitle|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RequestState ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RequestState|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== StopSpectatorMode ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|StopSpectatorMode|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisconnectToLobby ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisconnectToLobby|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WarmupHasEnded ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WarmupHasEnded|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ClientInfo ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ClientInfo|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankRevealAll ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankRevealAll|string}}&lt;br /&gt;
{{hl2msg|int32|seconds_till_shutdown|}}&lt;br /&gt;
{{hl2msg|?|reservation|}}&lt;br /&gt;
{{end-hl2msg}}&lt;/div&gt;</summary>
		<author><name>Micapat</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11138</id>
		<title>Counter-Strike: Global Offensive UserMessages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11138"/>
		<updated>2020-12-20T00:52:03Z</updated>

		<summary type="html">&lt;p&gt;Micapat: Provide an example for the fade user message&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Counter-Strike: Global Offensive uses Google's [[Protobuf|Protocol Buffers]] instead of Valve's traditional UserMessages.&lt;br /&gt;
&lt;br /&gt;
The data on this page was read from [https://github.com/SteamDatabase/GameTracking-CSGO/blob/master/Protobufs/cstrike15_usermessages.proto].&lt;br /&gt;
The initial versions of these files were provided by Valve and updated by the AlliedModders staff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;//====== Copyright (c) 2013, Valve Corporation, All rights reserved. ========//&lt;br /&gt;
//&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without &lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
//&lt;br /&gt;
// Redistributions of source code must retain the above copyright notice, this&lt;br /&gt;
// list of conditions and the following disclaimer.&lt;br /&gt;
// Redistributions in binary form must reproduce the above copyright notice, &lt;br /&gt;
// this list of conditions and the following disclaimer in the documentation &lt;br /&gt;
// and/or other materials provided with the distribution.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot;&lt;br /&gt;
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE &lt;br /&gt;
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE &lt;br /&gt;
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE &lt;br /&gt;
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR &lt;br /&gt;
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF &lt;br /&gt;
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS &lt;br /&gt;
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN &lt;br /&gt;
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) &lt;br /&gt;
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;br /&gt;
// THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//===========================================================================//&lt;br /&gt;
//&lt;br /&gt;
// Purpose: The file defines our Google Protocol Buffers which are used in over &lt;br /&gt;
// the wire messages for the Source engine.&lt;br /&gt;
//&lt;br /&gt;
//=============================================================================&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VGUIMenu ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu.SubKey|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|string|str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|repeated VGUIMenu.SubKey|subkeys|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Geiger ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Geiger|string}}&lt;br /&gt;
{{hl2msg|int32|range|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Train ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Train|string}}&lt;br /&gt;
{{hl2msg|int32|train|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SayText|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText2 ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|As of this writing, params requires four empty strings or it will crash the client}}&lt;br /&gt;
{{begin-hl2msg|SayText2|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== TextMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|TextMsg|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudMsg|string}}&lt;br /&gt;
{{hl2msg|int32|channel|}}&lt;br /&gt;
{{hl2msg|CMsgVector2D|pos|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr1|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr2|}}&lt;br /&gt;
{{hl2msg|int32|effect|}}&lt;br /&gt;
{{hl2msg|float|fade_in_time|}}&lt;br /&gt;
{{hl2msg|float|fade_out_time|}}&lt;br /&gt;
{{hl2msg|float|hold_time|}}&lt;br /&gt;
{{hl2msg|float|fx_time|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Shake ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Shake|string}}&lt;br /&gt;
{{hl2msg|int32|command|}}&lt;br /&gt;
{{hl2msg|float|local_amplitude|}}&lt;br /&gt;
{{hl2msg|float|frequency|}}&lt;br /&gt;
{{hl2msg|float|duration|Time to shake (In seconds)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Command:'''&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define SHAKE_START            (0) // Starts the screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_STOP             (1) // Stops the screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_AMPLITUDE        (2) // Modifies the amplitude of an active screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_FREQUENCY        (3) // Modifies the frequency of an active screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_START_RUMBLEONLY (4) // Starts a shake effect that only rumbles the controller, no screen effect&lt;br /&gt;
#define SHAKE_START_NORUMBLE   (5) // Starts a shake that does NOT rumble the controller&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fade ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Fade|string}}&lt;br /&gt;
{{hl2msg|int32|duration|Time to fade in/out (In seconds)}}&lt;br /&gt;
{{hl2msg|int32|hold_time|Time to hold the faded in/out state (In seconds)}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Duration:'''&lt;br /&gt;
&lt;br /&gt;
Even if an int32 is requested, the value must be between 0 and 65535 included (-&amp;gt; like an uint16) ! &amp;lt;br&amp;gt;&lt;br /&gt;
Furthermore, the value is divided into two parts: a fractional one (b0...b8) and an integer one (b9...b15) !&lt;br /&gt;
&lt;br /&gt;
'''Hold Time:'''&lt;br /&gt;
&lt;br /&gt;
Even if an int32 is requested, the value must be between 0 and 65535 included (-&amp;gt; like an uint16) ! &amp;lt;br&amp;gt;&lt;br /&gt;
Furthermore, the value is divided into two parts: a fractional one (b0...b8) and an integer one (b9...b15) !&lt;br /&gt;
&lt;br /&gt;
'''Flags:'''&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define FFADE_IN       (0x0001) // Fade in&lt;br /&gt;
#define FFADE_OUT      (0x0002) // Fade out&lt;br /&gt;
#define FFADE_MODULATE (0x0004) // Modulate (Don't blend)&lt;br /&gt;
#define FFADE_STAYOUT  (0x0008) // Ignores the duration, stays faded out until a new fade message is received&lt;br /&gt;
#define FFADE_PURGE    (0x0010) // Purges all other fades, replacing them with this one&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Example:'''&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define CSGO_SCREENFADE_FRACTIONAL_BITS (9)&lt;br /&gt;
&lt;br /&gt;
stock int FixedUnsigned16(float input, int scale)&lt;br /&gt;
{&lt;br /&gt;
    int output = RoundFloat(input * scale);&lt;br /&gt;
&lt;br /&gt;
    if (output &amp;lt; 0)&lt;br /&gt;
    {&lt;br /&gt;
        output = 0;&lt;br /&gt;
    }&lt;br /&gt;
    else if (output &amp;gt; 0xFFFF)&lt;br /&gt;
    {&lt;br /&gt;
        output = 0xFFFF;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return output;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
stock void CSGO_ScreenFadeClient(int clientIndex, float duration, float holdTime, int flags, int color[4])&lt;br /&gt;
{&lt;br /&gt;
    Protobuf message = UserMessageToProtobuf(StartMessageOne(&amp;quot;Fade&amp;quot;, clientIndex, USERMSG_RELIABLE));&lt;br /&gt;
    &lt;br /&gt;
    message.SetInt  (&amp;quot;duration&amp;quot;,  FixedUnsigned16(duration, 1 &amp;lt;&amp;lt; CSGO_FADE_FRACTIONAL_BITS));&lt;br /&gt;
    message.SetInt  (&amp;quot;hold_time&amp;quot;, FixedUnsigned16(holdTime, 1 &amp;lt;&amp;lt; CSGO_FADE_FRACTIONAL_BITS));&lt;br /&gt;
    message.SetInt  (&amp;quot;flags&amp;quot;,     flags);&lt;br /&gt;
    message.SetColor(&amp;quot;clr&amp;quot;,       color);&lt;br /&gt;
&lt;br /&gt;
    EndMessage();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rumble ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Rumble|string}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|int32|data|}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Index:'''&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define RUMBLE_INVALID                  (-1)&lt;br /&gt;
#define RUMBLE_STOP_ALL                 (0) // Cease all current rumbling effects.&lt;br /&gt;
#define RUMBLE_PISTOL                   (1)&lt;br /&gt;
#define RUMBLE_357                      (2)&lt;br /&gt;
#define RUMBLE_SMG1                     (3)&lt;br /&gt;
#define RUMBLE_AR2                      (4)&lt;br /&gt;
#define RUMBLE_SHOTGUN_SINGLE           (5)&lt;br /&gt;
#define RUMBLE_SHOTGUN_DOUBLE           (6)&lt;br /&gt;
#define RUMBLE_AR2_ALT_FIRE             (7)&lt;br /&gt;
#define RUMBLE_RPG_MISSILE              (8)&lt;br /&gt;
#define RUMBLE_CROWBAR_SWING            (9)&lt;br /&gt;
#define RUMBLE_AIRBOAT_GUN              (10)&lt;br /&gt;
#define RUMBLE_JEEP_ENGINE_LOOP         (11)&lt;br /&gt;
#define RUMBLE_FLAT_LEFT                (12)&lt;br /&gt;
#define RUMBLE_FLAT_RIGHT               (13)&lt;br /&gt;
#define RUMBLE_FLAT_BOTH                (14)&lt;br /&gt;
#define RUMBLE_DMG_LOW                  (15)&lt;br /&gt;
#define RUMBLE_DMG_MED                  (16)&lt;br /&gt;
#define RUMBLE_DMG_HIGH                 (17)&lt;br /&gt;
#define RUMBLE_FALL_LONG                (18)&lt;br /&gt;
#define RUMBLE_FALL_SHORT               (19)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_OPEN          (20)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_PUNT          (21)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_LOW           (22)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_MEDIUM        (23)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_HIGH          (24)&lt;br /&gt;
#define RUMBLE_PORTALGUN_LEFT           (25)&lt;br /&gt;
#define RUMBLE_PORTALGUN_RIGHT          (26)&lt;br /&gt;
#define RUMBLE_PORTAL_PLACEMENT_FAILURE (27)&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Flags:'''&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define RUMBLE_FLAGS_NONE            (0x0000)&lt;br /&gt;
#define RUMBLE_FLAG_STOP             (0x0001) // Stop any instance of this type of effect that's already playing&lt;br /&gt;
#define RUMBLE_FLAG_LOOP             (0x0002) // Make this effect loop&lt;br /&gt;
#define RUMBLE_FLAG_RESTART          (0x0004) // If this effect is already playing, restart it&lt;br /&gt;
#define RUMBLE_FLAG_UPDATE_SCALE     (0x0008) // Apply DATA to this effect if already playing, but don't restart&lt;br /&gt;
#define RUMBLE_FLAG_ONLYONE          (0x0010) // Don't play this effect if it is already playing&lt;br /&gt;
#define RUMBLE_FLAG_RANDOM_AMPLITUDE (0x0020) // Amplitude scale will be randomly chosen (Between 10% and 100%)&lt;br /&gt;
#define RUMBLE_FLAG_INITIAL_SCALE    (0x0040) // Data is the initial scale to start this effect (* 100)&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloseCaption ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaption|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{hl2msg|string|cctoken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaptionDirect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaptionDirect|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendAudio|string}}&lt;br /&gt;
{{hl2msg|string|radio_sound|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RawAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RawAudio|string}}&lt;br /&gt;
{{hl2msg|int32|pitch|}}&lt;br /&gt;
{{hl2msg|int32|ent_index|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{hl2msg|string|voice_filename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoiceMask ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask.PlayerMask|string}}&lt;br /&gt;
{{hl2msg|int32|game_rules_mask|}}&lt;br /&gt;
{{hl2msg|int32|ban_masks|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask|string}}&lt;br /&gt;
{{hl2msg|repeated VoiceMask.PlayerMask|player_masks|}}&lt;br /&gt;
{{hl2msg|bool|player_mod_enable|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Damage ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Damage|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{hl2msg|CMsgVector|inflictor_world_pos|}}&lt;br /&gt;
{{hl2msg|int32|victim_entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RadioText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RadioText|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|int32|client|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HintText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KeyHintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KeyHintText|string}}&lt;br /&gt;
{{hl2msg|string|hints|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ProcessSpottedEntityUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|gurjeets - Message below is slightly bigger in size than the non-protobuf version, by around 8 bits. }}&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate.SpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|entity_idx|}}&lt;br /&gt;
{{hl2msg|int32|class_id|}}&lt;br /&gt;
{{hl2msg|int32|origin_x|}}&lt;br /&gt;
{{hl2msg|int32|origin_y|}}&lt;br /&gt;
{{hl2msg|int32|origin_z|}}&lt;br /&gt;
{{hl2msg|int32|angle_y|}}&lt;br /&gt;
{{hl2msg|bool|defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_c4|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|bool|new_update|}}&lt;br /&gt;
{{hl2msg|repeated ProcessSpottedEntityUpdate.SpottedEntityUpdate|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemDrops ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemDrops|string}}&lt;br /&gt;
{{hl2msg|repeated ?|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemFound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemFound|string}}&lt;br /&gt;
{{hl2msg|?|iteminfo|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardList ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardList|string}}&lt;br /&gt;
{{hl2msg|bool|defuse_kit|}}&lt;br /&gt;
{{hl2msg|repeated int32|round_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|card_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|type_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_round_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_card_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_extra_utility|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardSelection ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardSelection|string}}&lt;br /&gt;
{{hl2msg|int32|round_idx|}}&lt;br /&gt;
{{hl2msg|int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|card_idx|}}&lt;br /&gt;
{{hl2msg|int32|type_idx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReloadEffect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReloadEffect|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|int32|actanim|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WeaponSound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WeaponSound|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{hl2msg|string|sound|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== UpdateScreenHealthBar ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|UpdateScreenHealthBar|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|healthratio_old|}}&lt;br /&gt;
{{hl2msg|float|healthratio_new|}}&lt;br /&gt;
{{hl2msg|int32|style|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EntityOutlineHighlight ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EntityOutlineHighlight|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|bool|removehighlight|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AdjustMoney ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AdjustMoney|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReportHit ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReportHit|string}}&lt;br /&gt;
{{hl2msg|float|pos_x|}}&lt;br /&gt;
{{hl2msg|float|pos_y|}}&lt;br /&gt;
{{hl2msg|float|pos_z|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KillCam ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KillCam|string}}&lt;br /&gt;
{{hl2msg|int32|obs_mode|}}&lt;br /&gt;
{{hl2msg|int32|first_target|}}&lt;br /&gt;
{{hl2msg|int32|second_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DesiredTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DesiredTimescale|string}}&lt;br /&gt;
{{hl2msg|float|desired_timescale|}}&lt;br /&gt;
{{hl2msg|float|duration_realtime_sec|}}&lt;br /&gt;
{{hl2msg|int32|interpolator_type|}}&lt;br /&gt;
{{hl2msg|float|start_blend_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentTimescale|string}}&lt;br /&gt;
{{hl2msg|float|cur_timescale|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AchievementEvent ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AchievementEvent|string}}&lt;br /&gt;
{{hl2msg|int32|achievement|}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchEndConditions ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchEndConditions|string}}&lt;br /&gt;
{{hl2msg|int32|fraglimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_maxrounds|}}&lt;br /&gt;
{{hl2msg|int32|mp_winlimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_timelimit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate.Stat|string}}&lt;br /&gt;
{{hl2msg|int32|idx|}}&lt;br /&gt;
{{hl2msg|int32|delta|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|version|}}&lt;br /&gt;
{{hl2msg|repeated PlayerStatsUpdate.Stat|stats|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{hl2msg|int32|crc|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisplayInventory ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisplayInventory|string}}&lt;br /&gt;
{{hl2msg|bool|display|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== QuestProgress ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|QuestProgress|string}}&lt;br /&gt;
{{hl2msg|uint32|quest_id|}}&lt;br /&gt;
{{hl2msg|uint32|normal_points|}}&lt;br /&gt;
{{hl2msg|uint32|bonus_points|}}&lt;br /&gt;
{{hl2msg|bool|is_event_quest|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ScoreLeaderboardData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ScoreLeaderboardData|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerDecalDigitalSignature ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerDecalDigitalSignature|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankGet ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Get ELO Rank Value from Client}}&lt;br /&gt;
{{begin-hl2msg|XRankGet|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankUpd ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Update ELO Rank Value on Client}}&lt;br /&gt;
{{begin-hl2msg|XRankUpd|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{hl2msg|int32|ranking|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CallVoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CallVoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{hl2msg|int32|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteStart ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteStart|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{hl2msg|string|other_team_str|}}&lt;br /&gt;
{{hl2msg|bool|is_yes_no_vote|}}&lt;br /&gt;
{{hl2msg|int32|entidx_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VotePass ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VotePass|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteSetup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteSetup|string}}&lt;br /&gt;
{{hl2msg|repeated string|potential_issues|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendLastKillerDamageToClient ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendLastKillerDamageToClient|string}}&lt;br /&gt;
{{hl2msg|int32|num_hits_given|}}&lt;br /&gt;
{{hl2msg|int32|damage_given|}}&lt;br /&gt;
{{hl2msg|int32|num_hits_taken|}}&lt;br /&gt;
{{hl2msg|int32|damage_taken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate.RankUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|account_id|}}&lt;br /&gt;
{{hl2msg|int32|rank_old|}}&lt;br /&gt;
{{hl2msg|int32|rank_new|}}&lt;br /&gt;
{{hl2msg|int32|num_wins|}}&lt;br /&gt;
{{hl2msg|float|rank_change|}}&lt;br /&gt;
{{hl2msg|int32|rank_type_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate|string}}&lt;br /&gt;
{{hl2msg|repeated ServerRankUpdate.RankUpdate|rank_update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XpUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|XpUpdate|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemPickup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemPickup|string}}&lt;br /&gt;
{{hl2msg|string|item|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ShowMenu ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|show hud menu}}&lt;br /&gt;
{{begin-hl2msg|ShowMenu|string}}&lt;br /&gt;
{{hl2msg|int32|bits_valid_slots|}}&lt;br /&gt;
{{hl2msg|int32|display_time|}}&lt;br /&gt;
{{hl2msg|string|menu_string|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== BarTime ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|For the C4 progress bar}}&lt;br /&gt;
{{begin-hl2msg|BarTime|string}}&lt;br /&gt;
{{hl2msg|string|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AmmoDenied ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AmmoDenied|string}}&lt;br /&gt;
{{hl2msg|int32|ammoIdx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MarkAchievement ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MarkAchievement|string}}&lt;br /&gt;
{{hl2msg|string|achievement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|string|update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemDrop ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemDrop|string}}&lt;br /&gt;
{{hl2msg|int64|itemid|}}&lt;br /&gt;
{{hl2msg|bool|death|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GlowPropTurnOff ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GlowPropTurnOff|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundBackupFilenames ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundBackupFilenames|string}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|string|filename|}}&lt;br /&gt;
{{hl2msg|string|nicename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SSUI ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SSUI|string}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|float|start_time|}}&lt;br /&gt;
{{hl2msg|float|end_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SurvivalStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Fact|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{hl2msg|int32|display|}}&lt;br /&gt;
{{hl2msg|int32|value|}}&lt;br /&gt;
{{hl2msg|float|interestingness|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Placement|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|int32|placement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Damage|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|to|}}&lt;br /&gt;
{{hl2msg|int32|to_hits|}}&lt;br /&gt;
{{hl2msg|int32|from|}}&lt;br /&gt;
{{hl2msg|int32|from_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Fact|facts|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Placement|users|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Damage|damages|}}&lt;br /&gt;
{{hl2msg|int32|ticknumber|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EndOfMatchAllPlayersData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.Accolade|string}}&lt;br /&gt;
{{hl2msg|int32|eaccolade|}}&lt;br /&gt;
{{hl2msg|float|value|}}&lt;br /&gt;
{{hl2msg|int32|position|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.PlayerData|string}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|EndOfMatchAllPlayersData.Accolade|nomination|}}&lt;br /&gt;
{{hl2msg|repeated ?|items|}}&lt;br /&gt;
{{hl2msg|int32|playercolor|}}&lt;br /&gt;
{{hl2msg|bool|isbot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData|string}}&lt;br /&gt;
{{hl2msg|repeated EndOfMatchAllPlayersData.PlayerData|allplayerdata|}}&lt;br /&gt;
{{hl2msg|int32|scene|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundImpactScoreData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Victim|string}}&lt;br /&gt;
{{hl2msg|int32|team_number|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|color|}}&lt;br /&gt;
{{hl2msg|bool|is_bot|}}&lt;br /&gt;
{{hl2msg|bool|is_dead|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Objective|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Damage|string}}&lt;br /&gt;
{{hl2msg|int32|target_entindex|}}&lt;br /&gt;
{{hl2msg|uint64|target_xuid|}}&lt;br /&gt;
{{hl2msg|int32|health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_hits|}}&lt;br /&gt;
{{hl2msg|int32|return_health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_return_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent|string}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{hl2msg|int32|ct_alive|}}&lt;br /&gt;
{{hl2msg|int32|t_alive|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Victim|victim_data|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Objective|objective_data|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent.Damage|all_damage_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.InitialConditions|string}}&lt;br /&gt;
{{hl2msg|int32|ct_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|t_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData|string}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.InitialConditions|init_conditions|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent|all_ris_event_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentRoundOdds ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentRoundOdds|string}}&lt;br /&gt;
{{hl2msg|int32|odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DeepStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DeepStats|string}}&lt;br /&gt;
{{hl2msg|?|stats|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ResetHud ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ResetHud|string}}&lt;br /&gt;
{{hl2msg|bool|reset|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GameTitle ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GameTitle|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RequestState ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RequestState|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== StopSpectatorMode ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|StopSpectatorMode|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisconnectToLobby ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisconnectToLobby|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WarmupHasEnded ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WarmupHasEnded|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ClientInfo ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ClientInfo|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankRevealAll ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankRevealAll|string}}&lt;br /&gt;
{{hl2msg|int32|seconds_till_shutdown|}}&lt;br /&gt;
{{hl2msg|?|reservation|}}&lt;br /&gt;
{{end-hl2msg}}&lt;/div&gt;</summary>
		<author><name>Micapat</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11137</id>
		<title>Counter-Strike: Global Offensive UserMessages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11137"/>
		<updated>2020-12-19T21:03:22Z</updated>

		<summary type="html">&lt;p&gt;Micapat: Put constants in sourcepawn style&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Counter-Strike: Global Offensive uses Google's [[Protobuf|Protocol Buffers]] instead of Valve's traditional UserMessages.&lt;br /&gt;
&lt;br /&gt;
The data on this page was read from [https://github.com/SteamDatabase/GameTracking-CSGO/blob/master/Protobufs/cstrike15_usermessages.proto].&lt;br /&gt;
The initial versions of these files were provided by Valve and updated by the AlliedModders staff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;//====== Copyright (c) 2013, Valve Corporation, All rights reserved. ========//&lt;br /&gt;
//&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without &lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
//&lt;br /&gt;
// Redistributions of source code must retain the above copyright notice, this&lt;br /&gt;
// list of conditions and the following disclaimer.&lt;br /&gt;
// Redistributions in binary form must reproduce the above copyright notice, &lt;br /&gt;
// this list of conditions and the following disclaimer in the documentation &lt;br /&gt;
// and/or other materials provided with the distribution.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot;&lt;br /&gt;
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE &lt;br /&gt;
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE &lt;br /&gt;
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE &lt;br /&gt;
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR &lt;br /&gt;
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF &lt;br /&gt;
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS &lt;br /&gt;
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN &lt;br /&gt;
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) &lt;br /&gt;
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;br /&gt;
// THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//===========================================================================//&lt;br /&gt;
//&lt;br /&gt;
// Purpose: The file defines our Google Protocol Buffers which are used in over &lt;br /&gt;
// the wire messages for the Source engine.&lt;br /&gt;
//&lt;br /&gt;
//=============================================================================&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VGUIMenu ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu.SubKey|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|string|str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|repeated VGUIMenu.SubKey|subkeys|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Geiger ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Geiger|string}}&lt;br /&gt;
{{hl2msg|int32|range|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Train ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Train|string}}&lt;br /&gt;
{{hl2msg|int32|train|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SayText|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText2 ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|As of this writing, params requires four empty strings or it will crash the client}}&lt;br /&gt;
{{begin-hl2msg|SayText2|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== TextMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|TextMsg|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudMsg|string}}&lt;br /&gt;
{{hl2msg|int32|channel|}}&lt;br /&gt;
{{hl2msg|CMsgVector2D|pos|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr1|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr2|}}&lt;br /&gt;
{{hl2msg|int32|effect|}}&lt;br /&gt;
{{hl2msg|float|fade_in_time|}}&lt;br /&gt;
{{hl2msg|float|fade_out_time|}}&lt;br /&gt;
{{hl2msg|float|hold_time|}}&lt;br /&gt;
{{hl2msg|float|fx_time|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Shake ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Shake|string}}&lt;br /&gt;
{{hl2msg|int32|command|}}&lt;br /&gt;
{{hl2msg|float|local_amplitude|}}&lt;br /&gt;
{{hl2msg|float|frequency|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Command:'''&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define SHAKE_START            (0) // Starts the screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_STOP             (1) // Stops the screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_AMPLITUDE        (2) // Modifies the amplitude of an active screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_FREQUENCY        (3) // Modifies the frequency of an active screen shake for all players within the radius&lt;br /&gt;
#define SHAKE_START_RUMBLEONLY (4) // Starts a shake effect that only rumbles the controller, no screen effect&lt;br /&gt;
#define SHAKE_START_NORUMBLE   (5) // Starts a shake that does NOT rumble the controller&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fade ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Fade|string}}&lt;br /&gt;
{{hl2msg|int32|duration|Time that it will take to fade the screen in or out}}&lt;br /&gt;
{{hl2msg|int32|hold_time|Time to hold the faded in/out state}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Duration:'''&lt;br /&gt;
&lt;br /&gt;
Even if an int32 is requested, the value must NOT be superior to 65535 and inferior to 0 (-&amp;gt; like an uint16) ! &amp;lt;br&amp;gt;&lt;br /&gt;
The value is in seconds and divided into two parts: a fractional one (b0...b8) and an integer one (b9...b15). &amp;lt;br&amp;gt;&lt;br /&gt;
-&amp;gt; If for example you want to set '''3.5''' seconds, use &amp;quot;RoundFloat('''3.5''' * (1 &amp;lt;&amp;lt; 9))&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Hold Time:'''&lt;br /&gt;
&lt;br /&gt;
Even if an int32 is requested, the value must NOT be superior to 65535 and inferior to 0 (-&amp;gt; like an uint16) ! &amp;lt;br&amp;gt;&lt;br /&gt;
The value is in seconds and divided into two parts: a fractional one (b0...b8) and an integer one (b9...b15). &amp;lt;br&amp;gt;&lt;br /&gt;
-&amp;gt; If for example you want to set '''3.5''' seconds, use &amp;quot;RoundFloat('''3.5''' * (1 &amp;lt;&amp;lt; 9))&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Flags:'''&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define FFADE_IN       (0x0001) // Fade in&lt;br /&gt;
#define FFADE_OUT      (0x0002) // Fade out&lt;br /&gt;
#define FFADE_MODULATE (0x0004) // Modulate (Don't blend)&lt;br /&gt;
#define FFADE_STAYOUT  (0x0008) // Ignores the duration, stays faded out until a new fade message is received&lt;br /&gt;
#define FFADE_PURGE    (0x0010) // Purges all other fades, replacing them with this one&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rumble ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Rumble|string}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|int32|data|}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Index:'''&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define RUMBLE_INVALID                  (-1)&lt;br /&gt;
#define RUMBLE_STOP_ALL                 (0) // Cease all current rumbling effects.&lt;br /&gt;
#define RUMBLE_PISTOL                   (1)&lt;br /&gt;
#define RUMBLE_357                      (2)&lt;br /&gt;
#define RUMBLE_SMG1                     (3)&lt;br /&gt;
#define RUMBLE_AR2                      (4)&lt;br /&gt;
#define RUMBLE_SHOTGUN_SINGLE           (5)&lt;br /&gt;
#define RUMBLE_SHOTGUN_DOUBLE           (6)&lt;br /&gt;
#define RUMBLE_AR2_ALT_FIRE             (7)&lt;br /&gt;
#define RUMBLE_RPG_MISSILE              (8)&lt;br /&gt;
#define RUMBLE_CROWBAR_SWING            (9)&lt;br /&gt;
#define RUMBLE_AIRBOAT_GUN              (10)&lt;br /&gt;
#define RUMBLE_JEEP_ENGINE_LOOP         (11)&lt;br /&gt;
#define RUMBLE_FLAT_LEFT                (12)&lt;br /&gt;
#define RUMBLE_FLAT_RIGHT               (13)&lt;br /&gt;
#define RUMBLE_FLAT_BOTH                (14)&lt;br /&gt;
#define RUMBLE_DMG_LOW                  (15)&lt;br /&gt;
#define RUMBLE_DMG_MED                  (16)&lt;br /&gt;
#define RUMBLE_DMG_HIGH                 (17)&lt;br /&gt;
#define RUMBLE_FALL_LONG                (18)&lt;br /&gt;
#define RUMBLE_FALL_SHORT               (19)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_OPEN          (20)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_PUNT          (21)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_LOW           (22)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_MEDIUM        (23)&lt;br /&gt;
#define RUMBLE_PHYSCANNON_HIGH          (24)&lt;br /&gt;
#define RUMBLE_PORTALGUN_LEFT           (25)&lt;br /&gt;
#define RUMBLE_PORTALGUN_RIGHT          (26)&lt;br /&gt;
#define RUMBLE_PORTAL_PLACEMENT_FAILURE (27)&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Flags:'''&lt;br /&gt;
&amp;lt;sourcepawn&amp;gt;&lt;br /&gt;
#define RUMBLE_FLAGS_NONE            (0x0000)&lt;br /&gt;
#define RUMBLE_FLAG_STOP             (0x0001) // Stop any instance of this type of effect that's already playing&lt;br /&gt;
#define RUMBLE_FLAG_LOOP             (0x0002) // Make this effect loop&lt;br /&gt;
#define RUMBLE_FLAG_RESTART          (0x0004) // If this effect is already playing, restart it&lt;br /&gt;
#define RUMBLE_FLAG_UPDATE_SCALE     (0x0008) // Apply DATA to this effect if already playing, but don't restart&lt;br /&gt;
#define RUMBLE_FLAG_ONLYONE          (0x0010) // Don't play this effect if it is already playing&lt;br /&gt;
#define RUMBLE_FLAG_RANDOM_AMPLITUDE (0x0020) // Amplitude scale will be randomly chosen (Between 10% and 100%)&lt;br /&gt;
#define RUMBLE_FLAG_INITIAL_SCALE    (0x0040) // Data is the initial scale to start this effect (* 100)&lt;br /&gt;
&amp;lt;/sourcepawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CloseCaption ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaption|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{hl2msg|string|cctoken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaptionDirect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaptionDirect|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendAudio|string}}&lt;br /&gt;
{{hl2msg|string|radio_sound|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RawAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RawAudio|string}}&lt;br /&gt;
{{hl2msg|int32|pitch|}}&lt;br /&gt;
{{hl2msg|int32|ent_index|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{hl2msg|string|voice_filename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoiceMask ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask.PlayerMask|string}}&lt;br /&gt;
{{hl2msg|int32|game_rules_mask|}}&lt;br /&gt;
{{hl2msg|int32|ban_masks|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask|string}}&lt;br /&gt;
{{hl2msg|repeated VoiceMask.PlayerMask|player_masks|}}&lt;br /&gt;
{{hl2msg|bool|player_mod_enable|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Damage ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Damage|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{hl2msg|CMsgVector|inflictor_world_pos|}}&lt;br /&gt;
{{hl2msg|int32|victim_entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RadioText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RadioText|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|int32|client|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HintText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KeyHintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KeyHintText|string}}&lt;br /&gt;
{{hl2msg|string|hints|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ProcessSpottedEntityUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|gurjeets - Message below is slightly bigger in size than the non-protobuf version, by around 8 bits. }}&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate.SpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|entity_idx|}}&lt;br /&gt;
{{hl2msg|int32|class_id|}}&lt;br /&gt;
{{hl2msg|int32|origin_x|}}&lt;br /&gt;
{{hl2msg|int32|origin_y|}}&lt;br /&gt;
{{hl2msg|int32|origin_z|}}&lt;br /&gt;
{{hl2msg|int32|angle_y|}}&lt;br /&gt;
{{hl2msg|bool|defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_c4|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|bool|new_update|}}&lt;br /&gt;
{{hl2msg|repeated ProcessSpottedEntityUpdate.SpottedEntityUpdate|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemDrops ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemDrops|string}}&lt;br /&gt;
{{hl2msg|repeated ?|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemFound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemFound|string}}&lt;br /&gt;
{{hl2msg|?|iteminfo|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardList ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardList|string}}&lt;br /&gt;
{{hl2msg|bool|defuse_kit|}}&lt;br /&gt;
{{hl2msg|repeated int32|round_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|card_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|type_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_round_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_card_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_extra_utility|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardSelection ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardSelection|string}}&lt;br /&gt;
{{hl2msg|int32|round_idx|}}&lt;br /&gt;
{{hl2msg|int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|card_idx|}}&lt;br /&gt;
{{hl2msg|int32|type_idx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReloadEffect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReloadEffect|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|int32|actanim|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WeaponSound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WeaponSound|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{hl2msg|string|sound|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== UpdateScreenHealthBar ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|UpdateScreenHealthBar|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|healthratio_old|}}&lt;br /&gt;
{{hl2msg|float|healthratio_new|}}&lt;br /&gt;
{{hl2msg|int32|style|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EntityOutlineHighlight ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EntityOutlineHighlight|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|bool|removehighlight|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AdjustMoney ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AdjustMoney|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReportHit ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReportHit|string}}&lt;br /&gt;
{{hl2msg|float|pos_x|}}&lt;br /&gt;
{{hl2msg|float|pos_y|}}&lt;br /&gt;
{{hl2msg|float|pos_z|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KillCam ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KillCam|string}}&lt;br /&gt;
{{hl2msg|int32|obs_mode|}}&lt;br /&gt;
{{hl2msg|int32|first_target|}}&lt;br /&gt;
{{hl2msg|int32|second_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DesiredTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DesiredTimescale|string}}&lt;br /&gt;
{{hl2msg|float|desired_timescale|}}&lt;br /&gt;
{{hl2msg|float|duration_realtime_sec|}}&lt;br /&gt;
{{hl2msg|int32|interpolator_type|}}&lt;br /&gt;
{{hl2msg|float|start_blend_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentTimescale|string}}&lt;br /&gt;
{{hl2msg|float|cur_timescale|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AchievementEvent ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AchievementEvent|string}}&lt;br /&gt;
{{hl2msg|int32|achievement|}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchEndConditions ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchEndConditions|string}}&lt;br /&gt;
{{hl2msg|int32|fraglimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_maxrounds|}}&lt;br /&gt;
{{hl2msg|int32|mp_winlimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_timelimit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate.Stat|string}}&lt;br /&gt;
{{hl2msg|int32|idx|}}&lt;br /&gt;
{{hl2msg|int32|delta|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|version|}}&lt;br /&gt;
{{hl2msg|repeated PlayerStatsUpdate.Stat|stats|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{hl2msg|int32|crc|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisplayInventory ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisplayInventory|string}}&lt;br /&gt;
{{hl2msg|bool|display|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== QuestProgress ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|QuestProgress|string}}&lt;br /&gt;
{{hl2msg|uint32|quest_id|}}&lt;br /&gt;
{{hl2msg|uint32|normal_points|}}&lt;br /&gt;
{{hl2msg|uint32|bonus_points|}}&lt;br /&gt;
{{hl2msg|bool|is_event_quest|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ScoreLeaderboardData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ScoreLeaderboardData|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerDecalDigitalSignature ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerDecalDigitalSignature|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankGet ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Get ELO Rank Value from Client}}&lt;br /&gt;
{{begin-hl2msg|XRankGet|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankUpd ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Update ELO Rank Value on Client}}&lt;br /&gt;
{{begin-hl2msg|XRankUpd|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{hl2msg|int32|ranking|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CallVoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CallVoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{hl2msg|int32|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteStart ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteStart|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{hl2msg|string|other_team_str|}}&lt;br /&gt;
{{hl2msg|bool|is_yes_no_vote|}}&lt;br /&gt;
{{hl2msg|int32|entidx_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VotePass ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VotePass|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteSetup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteSetup|string}}&lt;br /&gt;
{{hl2msg|repeated string|potential_issues|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendLastKillerDamageToClient ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendLastKillerDamageToClient|string}}&lt;br /&gt;
{{hl2msg|int32|num_hits_given|}}&lt;br /&gt;
{{hl2msg|int32|damage_given|}}&lt;br /&gt;
{{hl2msg|int32|num_hits_taken|}}&lt;br /&gt;
{{hl2msg|int32|damage_taken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate.RankUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|account_id|}}&lt;br /&gt;
{{hl2msg|int32|rank_old|}}&lt;br /&gt;
{{hl2msg|int32|rank_new|}}&lt;br /&gt;
{{hl2msg|int32|num_wins|}}&lt;br /&gt;
{{hl2msg|float|rank_change|}}&lt;br /&gt;
{{hl2msg|int32|rank_type_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate|string}}&lt;br /&gt;
{{hl2msg|repeated ServerRankUpdate.RankUpdate|rank_update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XpUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|XpUpdate|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemPickup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemPickup|string}}&lt;br /&gt;
{{hl2msg|string|item|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ShowMenu ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|show hud menu}}&lt;br /&gt;
{{begin-hl2msg|ShowMenu|string}}&lt;br /&gt;
{{hl2msg|int32|bits_valid_slots|}}&lt;br /&gt;
{{hl2msg|int32|display_time|}}&lt;br /&gt;
{{hl2msg|string|menu_string|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== BarTime ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|For the C4 progress bar}}&lt;br /&gt;
{{begin-hl2msg|BarTime|string}}&lt;br /&gt;
{{hl2msg|string|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AmmoDenied ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AmmoDenied|string}}&lt;br /&gt;
{{hl2msg|int32|ammoIdx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MarkAchievement ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MarkAchievement|string}}&lt;br /&gt;
{{hl2msg|string|achievement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|string|update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemDrop ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemDrop|string}}&lt;br /&gt;
{{hl2msg|int64|itemid|}}&lt;br /&gt;
{{hl2msg|bool|death|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GlowPropTurnOff ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GlowPropTurnOff|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundBackupFilenames ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundBackupFilenames|string}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|string|filename|}}&lt;br /&gt;
{{hl2msg|string|nicename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SSUI ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SSUI|string}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|float|start_time|}}&lt;br /&gt;
{{hl2msg|float|end_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SurvivalStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Fact|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{hl2msg|int32|display|}}&lt;br /&gt;
{{hl2msg|int32|value|}}&lt;br /&gt;
{{hl2msg|float|interestingness|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Placement|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|int32|placement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Damage|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|to|}}&lt;br /&gt;
{{hl2msg|int32|to_hits|}}&lt;br /&gt;
{{hl2msg|int32|from|}}&lt;br /&gt;
{{hl2msg|int32|from_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Fact|facts|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Placement|users|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Damage|damages|}}&lt;br /&gt;
{{hl2msg|int32|ticknumber|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EndOfMatchAllPlayersData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.Accolade|string}}&lt;br /&gt;
{{hl2msg|int32|eaccolade|}}&lt;br /&gt;
{{hl2msg|float|value|}}&lt;br /&gt;
{{hl2msg|int32|position|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.PlayerData|string}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|EndOfMatchAllPlayersData.Accolade|nomination|}}&lt;br /&gt;
{{hl2msg|repeated ?|items|}}&lt;br /&gt;
{{hl2msg|int32|playercolor|}}&lt;br /&gt;
{{hl2msg|bool|isbot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData|string}}&lt;br /&gt;
{{hl2msg|repeated EndOfMatchAllPlayersData.PlayerData|allplayerdata|}}&lt;br /&gt;
{{hl2msg|int32|scene|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundImpactScoreData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Victim|string}}&lt;br /&gt;
{{hl2msg|int32|team_number|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|color|}}&lt;br /&gt;
{{hl2msg|bool|is_bot|}}&lt;br /&gt;
{{hl2msg|bool|is_dead|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Objective|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Damage|string}}&lt;br /&gt;
{{hl2msg|int32|target_entindex|}}&lt;br /&gt;
{{hl2msg|uint64|target_xuid|}}&lt;br /&gt;
{{hl2msg|int32|health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_hits|}}&lt;br /&gt;
{{hl2msg|int32|return_health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_return_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent|string}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{hl2msg|int32|ct_alive|}}&lt;br /&gt;
{{hl2msg|int32|t_alive|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Victim|victim_data|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Objective|objective_data|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent.Damage|all_damage_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.InitialConditions|string}}&lt;br /&gt;
{{hl2msg|int32|ct_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|t_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData|string}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.InitialConditions|init_conditions|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent|all_ris_event_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentRoundOdds ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentRoundOdds|string}}&lt;br /&gt;
{{hl2msg|int32|odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DeepStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DeepStats|string}}&lt;br /&gt;
{{hl2msg|?|stats|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ResetHud ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ResetHud|string}}&lt;br /&gt;
{{hl2msg|bool|reset|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GameTitle ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GameTitle|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RequestState ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RequestState|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== StopSpectatorMode ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|StopSpectatorMode|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisconnectToLobby ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisconnectToLobby|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WarmupHasEnded ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WarmupHasEnded|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ClientInfo ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ClientInfo|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankRevealAll ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankRevealAll|string}}&lt;br /&gt;
{{hl2msg|int32|seconds_till_shutdown|}}&lt;br /&gt;
{{hl2msg|?|reservation|}}&lt;br /&gt;
{{end-hl2msg}}&lt;/div&gt;</summary>
		<author><name>Micapat</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11136</id>
		<title>Counter-Strike: Global Offensive UserMessages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11136"/>
		<updated>2020-12-19T20:26:10Z</updated>

		<summary type="html">&lt;p&gt;Micapat: Add rumble index and flags&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Counter-Strike: Global Offensive uses Google's [[Protobuf|Protocol Buffers]] instead of Valve's traditional UserMessages.&lt;br /&gt;
&lt;br /&gt;
The data on this page was read from [https://github.com/SteamDatabase/GameTracking-CSGO/blob/master/Protobufs/cstrike15_usermessages.proto].&lt;br /&gt;
The initial versions of these files were provided by Valve and updated by the AlliedModders staff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;//====== Copyright (c) 2013, Valve Corporation, All rights reserved. ========//&lt;br /&gt;
//&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without &lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
//&lt;br /&gt;
// Redistributions of source code must retain the above copyright notice, this&lt;br /&gt;
// list of conditions and the following disclaimer.&lt;br /&gt;
// Redistributions in binary form must reproduce the above copyright notice, &lt;br /&gt;
// this list of conditions and the following disclaimer in the documentation &lt;br /&gt;
// and/or other materials provided with the distribution.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot;&lt;br /&gt;
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE &lt;br /&gt;
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE &lt;br /&gt;
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE &lt;br /&gt;
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR &lt;br /&gt;
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF &lt;br /&gt;
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS &lt;br /&gt;
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN &lt;br /&gt;
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) &lt;br /&gt;
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;br /&gt;
// THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//===========================================================================//&lt;br /&gt;
//&lt;br /&gt;
// Purpose: The file defines our Google Protocol Buffers which are used in over &lt;br /&gt;
// the wire messages for the Source engine.&lt;br /&gt;
//&lt;br /&gt;
//=============================================================================&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VGUIMenu ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu.SubKey|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|string|str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|repeated VGUIMenu.SubKey|subkeys|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Geiger ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Geiger|string}}&lt;br /&gt;
{{hl2msg|int32|range|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Train ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Train|string}}&lt;br /&gt;
{{hl2msg|int32|train|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SayText|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText2 ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|As of this writing, params requires four empty strings or it will crash the client}}&lt;br /&gt;
{{begin-hl2msg|SayText2|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== TextMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|TextMsg|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudMsg|string}}&lt;br /&gt;
{{hl2msg|int32|channel|}}&lt;br /&gt;
{{hl2msg|CMsgVector2D|pos|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr1|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr2|}}&lt;br /&gt;
{{hl2msg|int32|effect|}}&lt;br /&gt;
{{hl2msg|float|fade_in_time|}}&lt;br /&gt;
{{hl2msg|float|fade_out_time|}}&lt;br /&gt;
{{hl2msg|float|hold_time|}}&lt;br /&gt;
{{hl2msg|float|fx_time|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Shake ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Shake|string}}&lt;br /&gt;
{{hl2msg|int32|command|}}&lt;br /&gt;
{{hl2msg|float|local_amplitude|}}&lt;br /&gt;
{{hl2msg|float|frequency|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Command:'''&lt;br /&gt;
&lt;br /&gt;
* SHAKE_START            = 0 // Starts the screen shake for all players within the radius&lt;br /&gt;
* SHAKE_STOP             = 1 // Stops the screen shake for all players within the radius&lt;br /&gt;
* SHAKE_AMPLITUDE        = 2 // Modifies the amplitude of an active screen shake for all players within the radius&lt;br /&gt;
* SHAKE_FREQUENCY        = 3 // Modifies the frequency of an active screen shake for all players within the radius&lt;br /&gt;
* SHAKE_START_RUMBLEONLY = 4 // Starts a shake effect that only rumbles the controller, no screen effect&lt;br /&gt;
* SHAKE_START_NORUMBLE   = 5 // Starts a shake that does NOT rumble the controller&lt;br /&gt;
&lt;br /&gt;
== Fade ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Fade|string}}&lt;br /&gt;
{{hl2msg|int32|duration|Time that it will take to fade the screen in or out}}&lt;br /&gt;
{{hl2msg|int32|hold_time|Time to hold the faded in/out state}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Duration:'''&lt;br /&gt;
&lt;br /&gt;
Even if an int32 is requested, the value must NOT be superior to 65535 and inferior to 0 (-&amp;gt; like an uint16) ! &amp;lt;br&amp;gt;&lt;br /&gt;
The value is in seconds and divided into two parts: a fractional one (b0...b8) and an integer one (b9...b15). &amp;lt;br&amp;gt;&lt;br /&gt;
-&amp;gt; If for example you want to set '''3.5''' seconds, use &amp;quot;RoundFloat('''3.5''' * (1 &amp;lt;&amp;lt; 9))&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Hold Time:'''&lt;br /&gt;
&lt;br /&gt;
Even if an int32 is requested, the value must NOT be superior to 65535 and inferior to 0 (-&amp;gt; like an uint16) ! &amp;lt;br&amp;gt;&lt;br /&gt;
The value is in seconds and divided into two parts: a fractional one (b0...b8) and an integer one (b9...b15). &amp;lt;br&amp;gt;&lt;br /&gt;
-&amp;gt; If for example you want to set '''3.5''' seconds, use &amp;quot;RoundFloat('''3.5''' * (1 &amp;lt;&amp;lt; 9))&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Flags:'''&lt;br /&gt;
&lt;br /&gt;
* FFADE_IN       = 0x0001 // Fade in&lt;br /&gt;
* FFADE_OUT      = 0x0002 // Fade out&lt;br /&gt;
* FFADE_MODULATE = 0x0004 // Modulate (Don't blend)&lt;br /&gt;
* FFADE_STAYOUT  = 0x0008 // Ignores the duration, stays faded out until a new fade message is received&lt;br /&gt;
* FFADE_PURGE    = 0x0010 // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
== Rumble ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Rumble|string}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|int32|data|}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Index:'''&lt;br /&gt;
&lt;br /&gt;
* RUMBLE_INVALID                  = -1&lt;br /&gt;
* RUMBLE_STOP_ALL                 = 0 // Cease all current rumbling effects.&lt;br /&gt;
* RUMBLE_PISTOL                   = 1&lt;br /&gt;
* RUMBLE_357                      = 2&lt;br /&gt;
* RUMBLE_SMG1                     = 3&lt;br /&gt;
* RUMBLE_AR2                      = 4&lt;br /&gt;
* RUMBLE_SHOTGUN_SINGLE           = 5&lt;br /&gt;
* RUMBLE_SHOTGUN_DOUBLE           = 6&lt;br /&gt;
* RUMBLE_AR2_ALT_FIRE             = 7&lt;br /&gt;
* RUMBLE_RPG_MISSILE              = 8&lt;br /&gt;
* RUMBLE_CROWBAR_SWING            = 9&lt;br /&gt;
* RUMBLE_AIRBOAT_GUN              = 10&lt;br /&gt;
* RUMBLE_JEEP_ENGINE_LOOP         = 11&lt;br /&gt;
* RUMBLE_FLAT_LEFT                = 12&lt;br /&gt;
* RUMBLE_FLAT_RIGHT               = 13&lt;br /&gt;
* RUMBLE_FLAT_BOTH                = 14&lt;br /&gt;
* RUMBLE_DMG_LOW                  = 15&lt;br /&gt;
* RUMBLE_DMG_MED                  = 16&lt;br /&gt;
* RUMBLE_DMG_HIGH                 = 17&lt;br /&gt;
* RUMBLE_FALL_LONG                = 18&lt;br /&gt;
* RUMBLE_FALL_SHORT               = 19&lt;br /&gt;
* RUMBLE_PHYSCANNON_OPEN          = 20&lt;br /&gt;
* RUMBLE_PHYSCANNON_PUNT          = 21&lt;br /&gt;
* RUMBLE_PHYSCANNON_LOW           = 22&lt;br /&gt;
* RUMBLE_PHYSCANNON_MEDIUM        = 23&lt;br /&gt;
* RUMBLE_PHYSCANNON_HIGH          = 24&lt;br /&gt;
* RUMBLE_PORTALGUN_LEFT           = 25&lt;br /&gt;
* RUMBLE_PORTALGUN_RIGHT          = 26&lt;br /&gt;
* RUMBLE_PORTAL_PLACEMENT_FAILURE = 27&lt;br /&gt;
&lt;br /&gt;
'''Flags:'''&lt;br /&gt;
&lt;br /&gt;
* RUMBLE_FLAGS_NONE            = 0x0000&lt;br /&gt;
* RUMBLE_FLAG_STOP             = 0x0001 // Stop any instance of this type of effect that's already playing&lt;br /&gt;
* RUMBLE_FLAG_LOOP             = 0x0002 // Make this effect loop&lt;br /&gt;
* RUMBLE_FLAG_RESTART          = 0x0004 // If this effect is already playing, restart it&lt;br /&gt;
* RUMBLE_FLAG_UPDATE_SCALE     = 0x0008 // Apply DATA to this effect if already playing, but don't restart&lt;br /&gt;
* RUMBLE_FLAG_ONLYONE          = 0x0010 // Don't play this effect if it is already playing&lt;br /&gt;
* RUMBLE_FLAG_RANDOM_AMPLITUDE = 0x0020 // Amplitude scale will be randomly chosen (Between 10% and 100%)&lt;br /&gt;
* RUMBLE_FLAG_INITIAL_SCALE    = 0x0040 // Data is the initial scale to start this effect (* 100)&lt;br /&gt;
&lt;br /&gt;
== CloseCaption ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaption|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{hl2msg|string|cctoken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaptionDirect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaptionDirect|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendAudio|string}}&lt;br /&gt;
{{hl2msg|string|radio_sound|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RawAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RawAudio|string}}&lt;br /&gt;
{{hl2msg|int32|pitch|}}&lt;br /&gt;
{{hl2msg|int32|ent_index|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{hl2msg|string|voice_filename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoiceMask ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask.PlayerMask|string}}&lt;br /&gt;
{{hl2msg|int32|game_rules_mask|}}&lt;br /&gt;
{{hl2msg|int32|ban_masks|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask|string}}&lt;br /&gt;
{{hl2msg|repeated VoiceMask.PlayerMask|player_masks|}}&lt;br /&gt;
{{hl2msg|bool|player_mod_enable|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Damage ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Damage|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{hl2msg|CMsgVector|inflictor_world_pos|}}&lt;br /&gt;
{{hl2msg|int32|victim_entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RadioText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RadioText|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|int32|client|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HintText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KeyHintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KeyHintText|string}}&lt;br /&gt;
{{hl2msg|string|hints|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ProcessSpottedEntityUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|gurjeets - Message below is slightly bigger in size than the non-protobuf version, by around 8 bits. }}&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate.SpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|entity_idx|}}&lt;br /&gt;
{{hl2msg|int32|class_id|}}&lt;br /&gt;
{{hl2msg|int32|origin_x|}}&lt;br /&gt;
{{hl2msg|int32|origin_y|}}&lt;br /&gt;
{{hl2msg|int32|origin_z|}}&lt;br /&gt;
{{hl2msg|int32|angle_y|}}&lt;br /&gt;
{{hl2msg|bool|defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_c4|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|bool|new_update|}}&lt;br /&gt;
{{hl2msg|repeated ProcessSpottedEntityUpdate.SpottedEntityUpdate|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemDrops ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemDrops|string}}&lt;br /&gt;
{{hl2msg|repeated ?|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemFound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemFound|string}}&lt;br /&gt;
{{hl2msg|?|iteminfo|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardList ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardList|string}}&lt;br /&gt;
{{hl2msg|bool|defuse_kit|}}&lt;br /&gt;
{{hl2msg|repeated int32|round_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|card_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|type_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_round_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_card_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_extra_utility|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardSelection ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardSelection|string}}&lt;br /&gt;
{{hl2msg|int32|round_idx|}}&lt;br /&gt;
{{hl2msg|int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|card_idx|}}&lt;br /&gt;
{{hl2msg|int32|type_idx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReloadEffect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReloadEffect|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|int32|actanim|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WeaponSound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WeaponSound|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{hl2msg|string|sound|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== UpdateScreenHealthBar ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|UpdateScreenHealthBar|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|healthratio_old|}}&lt;br /&gt;
{{hl2msg|float|healthratio_new|}}&lt;br /&gt;
{{hl2msg|int32|style|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EntityOutlineHighlight ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EntityOutlineHighlight|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|bool|removehighlight|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AdjustMoney ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AdjustMoney|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReportHit ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReportHit|string}}&lt;br /&gt;
{{hl2msg|float|pos_x|}}&lt;br /&gt;
{{hl2msg|float|pos_y|}}&lt;br /&gt;
{{hl2msg|float|pos_z|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KillCam ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KillCam|string}}&lt;br /&gt;
{{hl2msg|int32|obs_mode|}}&lt;br /&gt;
{{hl2msg|int32|first_target|}}&lt;br /&gt;
{{hl2msg|int32|second_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DesiredTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DesiredTimescale|string}}&lt;br /&gt;
{{hl2msg|float|desired_timescale|}}&lt;br /&gt;
{{hl2msg|float|duration_realtime_sec|}}&lt;br /&gt;
{{hl2msg|int32|interpolator_type|}}&lt;br /&gt;
{{hl2msg|float|start_blend_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentTimescale|string}}&lt;br /&gt;
{{hl2msg|float|cur_timescale|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AchievementEvent ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AchievementEvent|string}}&lt;br /&gt;
{{hl2msg|int32|achievement|}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchEndConditions ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchEndConditions|string}}&lt;br /&gt;
{{hl2msg|int32|fraglimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_maxrounds|}}&lt;br /&gt;
{{hl2msg|int32|mp_winlimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_timelimit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate.Stat|string}}&lt;br /&gt;
{{hl2msg|int32|idx|}}&lt;br /&gt;
{{hl2msg|int32|delta|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|version|}}&lt;br /&gt;
{{hl2msg|repeated PlayerStatsUpdate.Stat|stats|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{hl2msg|int32|crc|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisplayInventory ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisplayInventory|string}}&lt;br /&gt;
{{hl2msg|bool|display|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== QuestProgress ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|QuestProgress|string}}&lt;br /&gt;
{{hl2msg|uint32|quest_id|}}&lt;br /&gt;
{{hl2msg|uint32|normal_points|}}&lt;br /&gt;
{{hl2msg|uint32|bonus_points|}}&lt;br /&gt;
{{hl2msg|bool|is_event_quest|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ScoreLeaderboardData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ScoreLeaderboardData|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerDecalDigitalSignature ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerDecalDigitalSignature|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankGet ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Get ELO Rank Value from Client}}&lt;br /&gt;
{{begin-hl2msg|XRankGet|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankUpd ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Update ELO Rank Value on Client}}&lt;br /&gt;
{{begin-hl2msg|XRankUpd|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{hl2msg|int32|ranking|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CallVoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CallVoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{hl2msg|int32|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteStart ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteStart|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{hl2msg|string|other_team_str|}}&lt;br /&gt;
{{hl2msg|bool|is_yes_no_vote|}}&lt;br /&gt;
{{hl2msg|int32|entidx_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VotePass ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VotePass|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteSetup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteSetup|string}}&lt;br /&gt;
{{hl2msg|repeated string|potential_issues|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendLastKillerDamageToClient ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendLastKillerDamageToClient|string}}&lt;br /&gt;
{{hl2msg|int32|num_hits_given|}}&lt;br /&gt;
{{hl2msg|int32|damage_given|}}&lt;br /&gt;
{{hl2msg|int32|num_hits_taken|}}&lt;br /&gt;
{{hl2msg|int32|damage_taken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate.RankUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|account_id|}}&lt;br /&gt;
{{hl2msg|int32|rank_old|}}&lt;br /&gt;
{{hl2msg|int32|rank_new|}}&lt;br /&gt;
{{hl2msg|int32|num_wins|}}&lt;br /&gt;
{{hl2msg|float|rank_change|}}&lt;br /&gt;
{{hl2msg|int32|rank_type_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate|string}}&lt;br /&gt;
{{hl2msg|repeated ServerRankUpdate.RankUpdate|rank_update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XpUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|XpUpdate|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemPickup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemPickup|string}}&lt;br /&gt;
{{hl2msg|string|item|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ShowMenu ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|show hud menu}}&lt;br /&gt;
{{begin-hl2msg|ShowMenu|string}}&lt;br /&gt;
{{hl2msg|int32|bits_valid_slots|}}&lt;br /&gt;
{{hl2msg|int32|display_time|}}&lt;br /&gt;
{{hl2msg|string|menu_string|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== BarTime ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|For the C4 progress bar}}&lt;br /&gt;
{{begin-hl2msg|BarTime|string}}&lt;br /&gt;
{{hl2msg|string|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AmmoDenied ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AmmoDenied|string}}&lt;br /&gt;
{{hl2msg|int32|ammoIdx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MarkAchievement ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MarkAchievement|string}}&lt;br /&gt;
{{hl2msg|string|achievement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|string|update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemDrop ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemDrop|string}}&lt;br /&gt;
{{hl2msg|int64|itemid|}}&lt;br /&gt;
{{hl2msg|bool|death|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GlowPropTurnOff ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GlowPropTurnOff|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundBackupFilenames ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundBackupFilenames|string}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|string|filename|}}&lt;br /&gt;
{{hl2msg|string|nicename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SSUI ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SSUI|string}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|float|start_time|}}&lt;br /&gt;
{{hl2msg|float|end_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SurvivalStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Fact|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{hl2msg|int32|display|}}&lt;br /&gt;
{{hl2msg|int32|value|}}&lt;br /&gt;
{{hl2msg|float|interestingness|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Placement|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|int32|placement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Damage|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|to|}}&lt;br /&gt;
{{hl2msg|int32|to_hits|}}&lt;br /&gt;
{{hl2msg|int32|from|}}&lt;br /&gt;
{{hl2msg|int32|from_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Fact|facts|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Placement|users|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Damage|damages|}}&lt;br /&gt;
{{hl2msg|int32|ticknumber|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EndOfMatchAllPlayersData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.Accolade|string}}&lt;br /&gt;
{{hl2msg|int32|eaccolade|}}&lt;br /&gt;
{{hl2msg|float|value|}}&lt;br /&gt;
{{hl2msg|int32|position|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.PlayerData|string}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|EndOfMatchAllPlayersData.Accolade|nomination|}}&lt;br /&gt;
{{hl2msg|repeated ?|items|}}&lt;br /&gt;
{{hl2msg|int32|playercolor|}}&lt;br /&gt;
{{hl2msg|bool|isbot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData|string}}&lt;br /&gt;
{{hl2msg|repeated EndOfMatchAllPlayersData.PlayerData|allplayerdata|}}&lt;br /&gt;
{{hl2msg|int32|scene|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundImpactScoreData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Victim|string}}&lt;br /&gt;
{{hl2msg|int32|team_number|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|color|}}&lt;br /&gt;
{{hl2msg|bool|is_bot|}}&lt;br /&gt;
{{hl2msg|bool|is_dead|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Objective|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Damage|string}}&lt;br /&gt;
{{hl2msg|int32|target_entindex|}}&lt;br /&gt;
{{hl2msg|uint64|target_xuid|}}&lt;br /&gt;
{{hl2msg|int32|health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_hits|}}&lt;br /&gt;
{{hl2msg|int32|return_health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_return_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent|string}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{hl2msg|int32|ct_alive|}}&lt;br /&gt;
{{hl2msg|int32|t_alive|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Victim|victim_data|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Objective|objective_data|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent.Damage|all_damage_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.InitialConditions|string}}&lt;br /&gt;
{{hl2msg|int32|ct_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|t_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData|string}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.InitialConditions|init_conditions|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent|all_ris_event_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentRoundOdds ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentRoundOdds|string}}&lt;br /&gt;
{{hl2msg|int32|odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DeepStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DeepStats|string}}&lt;br /&gt;
{{hl2msg|?|stats|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ResetHud ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ResetHud|string}}&lt;br /&gt;
{{hl2msg|bool|reset|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GameTitle ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GameTitle|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RequestState ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RequestState|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== StopSpectatorMode ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|StopSpectatorMode|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisconnectToLobby ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisconnectToLobby|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WarmupHasEnded ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WarmupHasEnded|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ClientInfo ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ClientInfo|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankRevealAll ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankRevealAll|string}}&lt;br /&gt;
{{hl2msg|int32|seconds_till_shutdown|}}&lt;br /&gt;
{{hl2msg|?|reservation|}}&lt;br /&gt;
{{end-hl2msg}}&lt;/div&gt;</summary>
		<author><name>Micapat</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11135</id>
		<title>Counter-Strike: Global Offensive UserMessages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11135"/>
		<updated>2020-12-19T19:59:58Z</updated>

		<summary type="html">&lt;p&gt;Micapat: More comments for Fade&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Counter-Strike: Global Offensive uses Google's [[Protobuf|Protocol Buffers]] instead of Valve's traditional UserMessages.&lt;br /&gt;
&lt;br /&gt;
The data on this page was read from [https://github.com/SteamDatabase/GameTracking-CSGO/blob/master/Protobufs/cstrike15_usermessages.proto].&lt;br /&gt;
The initial versions of these files were provided by Valve and updated by the AlliedModders staff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;//====== Copyright (c) 2013, Valve Corporation, All rights reserved. ========//&lt;br /&gt;
//&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without &lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
//&lt;br /&gt;
// Redistributions of source code must retain the above copyright notice, this&lt;br /&gt;
// list of conditions and the following disclaimer.&lt;br /&gt;
// Redistributions in binary form must reproduce the above copyright notice, &lt;br /&gt;
// this list of conditions and the following disclaimer in the documentation &lt;br /&gt;
// and/or other materials provided with the distribution.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot;&lt;br /&gt;
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE &lt;br /&gt;
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE &lt;br /&gt;
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE &lt;br /&gt;
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR &lt;br /&gt;
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF &lt;br /&gt;
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS &lt;br /&gt;
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN &lt;br /&gt;
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) &lt;br /&gt;
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;br /&gt;
// THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//===========================================================================//&lt;br /&gt;
//&lt;br /&gt;
// Purpose: The file defines our Google Protocol Buffers which are used in over &lt;br /&gt;
// the wire messages for the Source engine.&lt;br /&gt;
//&lt;br /&gt;
//=============================================================================&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VGUIMenu ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu.SubKey|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|string|str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|repeated VGUIMenu.SubKey|subkeys|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Geiger ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Geiger|string}}&lt;br /&gt;
{{hl2msg|int32|range|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Train ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Train|string}}&lt;br /&gt;
{{hl2msg|int32|train|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SayText|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText2 ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|As of this writing, params requires four empty strings or it will crash the client}}&lt;br /&gt;
{{begin-hl2msg|SayText2|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== TextMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|TextMsg|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudMsg|string}}&lt;br /&gt;
{{hl2msg|int32|channel|}}&lt;br /&gt;
{{hl2msg|CMsgVector2D|pos|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr1|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr2|}}&lt;br /&gt;
{{hl2msg|int32|effect|}}&lt;br /&gt;
{{hl2msg|float|fade_in_time|}}&lt;br /&gt;
{{hl2msg|float|fade_out_time|}}&lt;br /&gt;
{{hl2msg|float|hold_time|}}&lt;br /&gt;
{{hl2msg|float|fx_time|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Shake ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Shake|string}}&lt;br /&gt;
{{hl2msg|int32|command|}}&lt;br /&gt;
{{hl2msg|float|local_amplitude|}}&lt;br /&gt;
{{hl2msg|float|frequency|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Command:'''&lt;br /&gt;
&lt;br /&gt;
* SHAKE_START            = 0 // Starts the screen shake for all players within the radius&lt;br /&gt;
* SHAKE_STOP             = 1 // Stops the screen shake for all players within the radius&lt;br /&gt;
* SHAKE_AMPLITUDE        = 2 // Modifies the amplitude of an active screen shake for all players within the radius&lt;br /&gt;
* SHAKE_FREQUENCY        = 3 // Modifies the frequency of an active screen shake for all players within the radius&lt;br /&gt;
* SHAKE_START_RUMBLEONLY = 4 // Starts a shake effect that only rumbles the controller, no screen effect&lt;br /&gt;
* SHAKE_START_NORUMBLE   = 5 // Starts a shake that does NOT rumble the controller&lt;br /&gt;
&lt;br /&gt;
== Fade ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Fade|string}}&lt;br /&gt;
{{hl2msg|int32|duration|Time that it will take to fade the screen in or out}}&lt;br /&gt;
{{hl2msg|int32|hold_time|Time to hold the faded in/out state}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Duration:'''&lt;br /&gt;
&lt;br /&gt;
Even if an int32 is requested, the value must NOT be superior to 65535 and inferior to 0 (-&amp;gt; like an uint16) ! &amp;lt;br&amp;gt;&lt;br /&gt;
The value is in seconds and divided into two parts: a fractional one (b0...b8) and an integer one (b9...b15). &amp;lt;br&amp;gt;&lt;br /&gt;
-&amp;gt; If for example you want to set '''3.5''' seconds, use &amp;quot;RoundFloat('''3.5''' * (1 &amp;lt;&amp;lt; 9))&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Hold Time:'''&lt;br /&gt;
&lt;br /&gt;
Even if an int32 is requested, the value must NOT be superior to 65535 and inferior to 0 (-&amp;gt; like an uint16) ! &amp;lt;br&amp;gt;&lt;br /&gt;
The value is in seconds and divided into two parts: a fractional one (b0...b8) and an integer one (b9...b15). &amp;lt;br&amp;gt;&lt;br /&gt;
-&amp;gt; If for example you want to set '''3.5''' seconds, use &amp;quot;RoundFloat('''3.5''' * (1 &amp;lt;&amp;lt; 9))&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Flags:'''&lt;br /&gt;
&lt;br /&gt;
* FFADE_IN       = 0x0001 // Fade in&lt;br /&gt;
* FFADE_OUT      = 0x0002 // Fade out&lt;br /&gt;
* FFADE_MODULATE = 0x0004 // Modulate (Don't blend)&lt;br /&gt;
* FFADE_STAYOUT  = 0x0008 // Ignores the duration, stays faded out until a new fade message is received&lt;br /&gt;
* FFADE_PURGE    = 0x0010 // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
== Rumble ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Rumble|string}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|int32|data|}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaption ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaption|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{hl2msg|string|cctoken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaptionDirect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaptionDirect|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendAudio|string}}&lt;br /&gt;
{{hl2msg|string|radio_sound|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RawAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RawAudio|string}}&lt;br /&gt;
{{hl2msg|int32|pitch|}}&lt;br /&gt;
{{hl2msg|int32|ent_index|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{hl2msg|string|voice_filename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoiceMask ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask.PlayerMask|string}}&lt;br /&gt;
{{hl2msg|int32|game_rules_mask|}}&lt;br /&gt;
{{hl2msg|int32|ban_masks|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask|string}}&lt;br /&gt;
{{hl2msg|repeated VoiceMask.PlayerMask|player_masks|}}&lt;br /&gt;
{{hl2msg|bool|player_mod_enable|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Damage ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Damage|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{hl2msg|CMsgVector|inflictor_world_pos|}}&lt;br /&gt;
{{hl2msg|int32|victim_entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RadioText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RadioText|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|int32|client|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HintText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KeyHintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KeyHintText|string}}&lt;br /&gt;
{{hl2msg|string|hints|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ProcessSpottedEntityUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|gurjeets - Message below is slightly bigger in size than the non-protobuf version, by around 8 bits. }}&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate.SpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|entity_idx|}}&lt;br /&gt;
{{hl2msg|int32|class_id|}}&lt;br /&gt;
{{hl2msg|int32|origin_x|}}&lt;br /&gt;
{{hl2msg|int32|origin_y|}}&lt;br /&gt;
{{hl2msg|int32|origin_z|}}&lt;br /&gt;
{{hl2msg|int32|angle_y|}}&lt;br /&gt;
{{hl2msg|bool|defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_c4|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|bool|new_update|}}&lt;br /&gt;
{{hl2msg|repeated ProcessSpottedEntityUpdate.SpottedEntityUpdate|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemDrops ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemDrops|string}}&lt;br /&gt;
{{hl2msg|repeated ?|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemFound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemFound|string}}&lt;br /&gt;
{{hl2msg|?|iteminfo|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardList ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardList|string}}&lt;br /&gt;
{{hl2msg|bool|defuse_kit|}}&lt;br /&gt;
{{hl2msg|repeated int32|round_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|card_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|type_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_round_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_card_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_extra_utility|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardSelection ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardSelection|string}}&lt;br /&gt;
{{hl2msg|int32|round_idx|}}&lt;br /&gt;
{{hl2msg|int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|card_idx|}}&lt;br /&gt;
{{hl2msg|int32|type_idx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReloadEffect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReloadEffect|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|int32|actanim|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WeaponSound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WeaponSound|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{hl2msg|string|sound|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== UpdateScreenHealthBar ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|UpdateScreenHealthBar|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|healthratio_old|}}&lt;br /&gt;
{{hl2msg|float|healthratio_new|}}&lt;br /&gt;
{{hl2msg|int32|style|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EntityOutlineHighlight ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EntityOutlineHighlight|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|bool|removehighlight|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AdjustMoney ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AdjustMoney|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReportHit ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReportHit|string}}&lt;br /&gt;
{{hl2msg|float|pos_x|}}&lt;br /&gt;
{{hl2msg|float|pos_y|}}&lt;br /&gt;
{{hl2msg|float|pos_z|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KillCam ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KillCam|string}}&lt;br /&gt;
{{hl2msg|int32|obs_mode|}}&lt;br /&gt;
{{hl2msg|int32|first_target|}}&lt;br /&gt;
{{hl2msg|int32|second_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DesiredTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DesiredTimescale|string}}&lt;br /&gt;
{{hl2msg|float|desired_timescale|}}&lt;br /&gt;
{{hl2msg|float|duration_realtime_sec|}}&lt;br /&gt;
{{hl2msg|int32|interpolator_type|}}&lt;br /&gt;
{{hl2msg|float|start_blend_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentTimescale|string}}&lt;br /&gt;
{{hl2msg|float|cur_timescale|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AchievementEvent ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AchievementEvent|string}}&lt;br /&gt;
{{hl2msg|int32|achievement|}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchEndConditions ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchEndConditions|string}}&lt;br /&gt;
{{hl2msg|int32|fraglimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_maxrounds|}}&lt;br /&gt;
{{hl2msg|int32|mp_winlimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_timelimit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate.Stat|string}}&lt;br /&gt;
{{hl2msg|int32|idx|}}&lt;br /&gt;
{{hl2msg|int32|delta|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|version|}}&lt;br /&gt;
{{hl2msg|repeated PlayerStatsUpdate.Stat|stats|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{hl2msg|int32|crc|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisplayInventory ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisplayInventory|string}}&lt;br /&gt;
{{hl2msg|bool|display|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== QuestProgress ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|QuestProgress|string}}&lt;br /&gt;
{{hl2msg|uint32|quest_id|}}&lt;br /&gt;
{{hl2msg|uint32|normal_points|}}&lt;br /&gt;
{{hl2msg|uint32|bonus_points|}}&lt;br /&gt;
{{hl2msg|bool|is_event_quest|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ScoreLeaderboardData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ScoreLeaderboardData|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerDecalDigitalSignature ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerDecalDigitalSignature|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankGet ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Get ELO Rank Value from Client}}&lt;br /&gt;
{{begin-hl2msg|XRankGet|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankUpd ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Update ELO Rank Value on Client}}&lt;br /&gt;
{{begin-hl2msg|XRankUpd|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{hl2msg|int32|ranking|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CallVoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CallVoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{hl2msg|int32|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteStart ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteStart|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{hl2msg|string|other_team_str|}}&lt;br /&gt;
{{hl2msg|bool|is_yes_no_vote|}}&lt;br /&gt;
{{hl2msg|int32|entidx_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VotePass ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VotePass|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteSetup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteSetup|string}}&lt;br /&gt;
{{hl2msg|repeated string|potential_issues|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendLastKillerDamageToClient ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendLastKillerDamageToClient|string}}&lt;br /&gt;
{{hl2msg|int32|num_hits_given|}}&lt;br /&gt;
{{hl2msg|int32|damage_given|}}&lt;br /&gt;
{{hl2msg|int32|num_hits_taken|}}&lt;br /&gt;
{{hl2msg|int32|damage_taken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate.RankUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|account_id|}}&lt;br /&gt;
{{hl2msg|int32|rank_old|}}&lt;br /&gt;
{{hl2msg|int32|rank_new|}}&lt;br /&gt;
{{hl2msg|int32|num_wins|}}&lt;br /&gt;
{{hl2msg|float|rank_change|}}&lt;br /&gt;
{{hl2msg|int32|rank_type_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate|string}}&lt;br /&gt;
{{hl2msg|repeated ServerRankUpdate.RankUpdate|rank_update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XpUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|XpUpdate|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemPickup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemPickup|string}}&lt;br /&gt;
{{hl2msg|string|item|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ShowMenu ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|show hud menu}}&lt;br /&gt;
{{begin-hl2msg|ShowMenu|string}}&lt;br /&gt;
{{hl2msg|int32|bits_valid_slots|}}&lt;br /&gt;
{{hl2msg|int32|display_time|}}&lt;br /&gt;
{{hl2msg|string|menu_string|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== BarTime ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|For the C4 progress bar}}&lt;br /&gt;
{{begin-hl2msg|BarTime|string}}&lt;br /&gt;
{{hl2msg|string|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AmmoDenied ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AmmoDenied|string}}&lt;br /&gt;
{{hl2msg|int32|ammoIdx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MarkAchievement ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MarkAchievement|string}}&lt;br /&gt;
{{hl2msg|string|achievement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|string|update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemDrop ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemDrop|string}}&lt;br /&gt;
{{hl2msg|int64|itemid|}}&lt;br /&gt;
{{hl2msg|bool|death|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GlowPropTurnOff ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GlowPropTurnOff|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundBackupFilenames ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundBackupFilenames|string}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|string|filename|}}&lt;br /&gt;
{{hl2msg|string|nicename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SSUI ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SSUI|string}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|float|start_time|}}&lt;br /&gt;
{{hl2msg|float|end_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SurvivalStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Fact|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{hl2msg|int32|display|}}&lt;br /&gt;
{{hl2msg|int32|value|}}&lt;br /&gt;
{{hl2msg|float|interestingness|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Placement|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|int32|placement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Damage|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|to|}}&lt;br /&gt;
{{hl2msg|int32|to_hits|}}&lt;br /&gt;
{{hl2msg|int32|from|}}&lt;br /&gt;
{{hl2msg|int32|from_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Fact|facts|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Placement|users|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Damage|damages|}}&lt;br /&gt;
{{hl2msg|int32|ticknumber|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EndOfMatchAllPlayersData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.Accolade|string}}&lt;br /&gt;
{{hl2msg|int32|eaccolade|}}&lt;br /&gt;
{{hl2msg|float|value|}}&lt;br /&gt;
{{hl2msg|int32|position|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.PlayerData|string}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|EndOfMatchAllPlayersData.Accolade|nomination|}}&lt;br /&gt;
{{hl2msg|repeated ?|items|}}&lt;br /&gt;
{{hl2msg|int32|playercolor|}}&lt;br /&gt;
{{hl2msg|bool|isbot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData|string}}&lt;br /&gt;
{{hl2msg|repeated EndOfMatchAllPlayersData.PlayerData|allplayerdata|}}&lt;br /&gt;
{{hl2msg|int32|scene|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundImpactScoreData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Victim|string}}&lt;br /&gt;
{{hl2msg|int32|team_number|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|color|}}&lt;br /&gt;
{{hl2msg|bool|is_bot|}}&lt;br /&gt;
{{hl2msg|bool|is_dead|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Objective|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Damage|string}}&lt;br /&gt;
{{hl2msg|int32|target_entindex|}}&lt;br /&gt;
{{hl2msg|uint64|target_xuid|}}&lt;br /&gt;
{{hl2msg|int32|health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_hits|}}&lt;br /&gt;
{{hl2msg|int32|return_health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_return_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent|string}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{hl2msg|int32|ct_alive|}}&lt;br /&gt;
{{hl2msg|int32|t_alive|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Victim|victim_data|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Objective|objective_data|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent.Damage|all_damage_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.InitialConditions|string}}&lt;br /&gt;
{{hl2msg|int32|ct_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|t_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData|string}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.InitialConditions|init_conditions|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent|all_ris_event_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentRoundOdds ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentRoundOdds|string}}&lt;br /&gt;
{{hl2msg|int32|odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DeepStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DeepStats|string}}&lt;br /&gt;
{{hl2msg|?|stats|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ResetHud ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ResetHud|string}}&lt;br /&gt;
{{hl2msg|bool|reset|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GameTitle ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GameTitle|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RequestState ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RequestState|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== StopSpectatorMode ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|StopSpectatorMode|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisconnectToLobby ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisconnectToLobby|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WarmupHasEnded ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WarmupHasEnded|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ClientInfo ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ClientInfo|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankRevealAll ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankRevealAll|string}}&lt;br /&gt;
{{hl2msg|int32|seconds_till_shutdown|}}&lt;br /&gt;
{{hl2msg|?|reservation|}}&lt;br /&gt;
{{end-hl2msg}}&lt;/div&gt;</summary>
		<author><name>Micapat</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11134</id>
		<title>Counter-Strike: Global Offensive UserMessages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11134"/>
		<updated>2020-12-19T19:56:48Z</updated>

		<summary type="html">&lt;p&gt;Micapat: Small update of Fade &amp;amp; Shake&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Counter-Strike: Global Offensive uses Google's [[Protobuf|Protocol Buffers]] instead of Valve's traditional UserMessages.&lt;br /&gt;
&lt;br /&gt;
The data on this page was read from [https://github.com/SteamDatabase/GameTracking-CSGO/blob/master/Protobufs/cstrike15_usermessages.proto].&lt;br /&gt;
The initial versions of these files were provided by Valve and updated by the AlliedModders staff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;//====== Copyright (c) 2013, Valve Corporation, All rights reserved. ========//&lt;br /&gt;
//&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without &lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
//&lt;br /&gt;
// Redistributions of source code must retain the above copyright notice, this&lt;br /&gt;
// list of conditions and the following disclaimer.&lt;br /&gt;
// Redistributions in binary form must reproduce the above copyright notice, &lt;br /&gt;
// this list of conditions and the following disclaimer in the documentation &lt;br /&gt;
// and/or other materials provided with the distribution.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot;&lt;br /&gt;
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE &lt;br /&gt;
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE &lt;br /&gt;
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE &lt;br /&gt;
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR &lt;br /&gt;
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF &lt;br /&gt;
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS &lt;br /&gt;
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN &lt;br /&gt;
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) &lt;br /&gt;
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;br /&gt;
// THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//===========================================================================//&lt;br /&gt;
//&lt;br /&gt;
// Purpose: The file defines our Google Protocol Buffers which are used in over &lt;br /&gt;
// the wire messages for the Source engine.&lt;br /&gt;
//&lt;br /&gt;
//=============================================================================&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VGUIMenu ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu.SubKey|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|string|str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|repeated VGUIMenu.SubKey|subkeys|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Geiger ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Geiger|string}}&lt;br /&gt;
{{hl2msg|int32|range|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Train ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Train|string}}&lt;br /&gt;
{{hl2msg|int32|train|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SayText|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText2 ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|As of this writing, params requires four empty strings or it will crash the client}}&lt;br /&gt;
{{begin-hl2msg|SayText2|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== TextMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|TextMsg|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudMsg|string}}&lt;br /&gt;
{{hl2msg|int32|channel|}}&lt;br /&gt;
{{hl2msg|CMsgVector2D|pos|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr1|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr2|}}&lt;br /&gt;
{{hl2msg|int32|effect|}}&lt;br /&gt;
{{hl2msg|float|fade_in_time|}}&lt;br /&gt;
{{hl2msg|float|fade_out_time|}}&lt;br /&gt;
{{hl2msg|float|hold_time|}}&lt;br /&gt;
{{hl2msg|float|fx_time|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Shake ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Shake|string}}&lt;br /&gt;
{{hl2msg|int32|command|}}&lt;br /&gt;
{{hl2msg|float|local_amplitude|}}&lt;br /&gt;
{{hl2msg|float|frequency|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Command:'''&lt;br /&gt;
&lt;br /&gt;
* SHAKE_START            = 0 // Starts the screen shake for all players within the radius&lt;br /&gt;
* SHAKE_STOP             = 1 // Stops the screen shake for all players within the radius&lt;br /&gt;
* SHAKE_AMPLITUDE        = 2 // Modifies the amplitude of an active screen shake for all players within the radius&lt;br /&gt;
* SHAKE_FREQUENCY        = 3 // Modifies the frequency of an active screen shake for all players within the radius&lt;br /&gt;
* SHAKE_START_RUMBLEONLY = 4 // Starts a shake effect that only rumbles the controller, no screen effect&lt;br /&gt;
* SHAKE_START_NORUMBLE   = 5 // Starts a shake that does NOT rumble the controller&lt;br /&gt;
&lt;br /&gt;
== Fade ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Fade|string}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|int32|hold_time|}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Duration:'''&lt;br /&gt;
&lt;br /&gt;
Even if an int32 is requested, the value must NOT be superior to 65535 and inferior to 0 (-&amp;gt; like an uint16) ! &amp;lt;br&amp;gt;&lt;br /&gt;
The value is in seconds and divided into two parts: a fractional one (b0...b8) and an integer one (b9...b15). &amp;lt;br&amp;gt;&lt;br /&gt;
-&amp;gt; If for example you want to set '''3.5''' seconds, use &amp;quot;RoundFloat('''3.5''' * (1 &amp;lt;&amp;lt; 9))&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Hold Time:'''&lt;br /&gt;
&lt;br /&gt;
Even if an int32 is requested, the value must NOT be superior to 65535 and inferior to 0 (-&amp;gt; like an uint16) ! &amp;lt;br&amp;gt;&lt;br /&gt;
The value is in seconds and divided into two parts: a fractional one (b0...b8) and an integer one (b9...b15). &amp;lt;br&amp;gt;&lt;br /&gt;
-&amp;gt; If for example you want to set '''3.5''' seconds, use &amp;quot;RoundFloat('''3.5''' * (1 &amp;lt;&amp;lt; 9))&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Flags:'''&lt;br /&gt;
&lt;br /&gt;
* FFADE_IN       = 0x0001 // Fade in&lt;br /&gt;
* FFADE_OUT      = 0x0002 // Fade out&lt;br /&gt;
* FFADE_MODULATE = 0x0004 // Modulate (Don't blend)&lt;br /&gt;
* FFADE_STAYOUT  = 0x0008 // Ignores the duration, stays faded out until a new fade message is received&lt;br /&gt;
* FFADE_PURGE    = 0x0010 // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
== Rumble ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Rumble|string}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|int32|data|}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaption ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaption|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{hl2msg|string|cctoken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaptionDirect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaptionDirect|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendAudio|string}}&lt;br /&gt;
{{hl2msg|string|radio_sound|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RawAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RawAudio|string}}&lt;br /&gt;
{{hl2msg|int32|pitch|}}&lt;br /&gt;
{{hl2msg|int32|ent_index|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{hl2msg|string|voice_filename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoiceMask ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask.PlayerMask|string}}&lt;br /&gt;
{{hl2msg|int32|game_rules_mask|}}&lt;br /&gt;
{{hl2msg|int32|ban_masks|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask|string}}&lt;br /&gt;
{{hl2msg|repeated VoiceMask.PlayerMask|player_masks|}}&lt;br /&gt;
{{hl2msg|bool|player_mod_enable|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Damage ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Damage|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{hl2msg|CMsgVector|inflictor_world_pos|}}&lt;br /&gt;
{{hl2msg|int32|victim_entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RadioText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RadioText|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|int32|client|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HintText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KeyHintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KeyHintText|string}}&lt;br /&gt;
{{hl2msg|string|hints|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ProcessSpottedEntityUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|gurjeets - Message below is slightly bigger in size than the non-protobuf version, by around 8 bits. }}&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate.SpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|entity_idx|}}&lt;br /&gt;
{{hl2msg|int32|class_id|}}&lt;br /&gt;
{{hl2msg|int32|origin_x|}}&lt;br /&gt;
{{hl2msg|int32|origin_y|}}&lt;br /&gt;
{{hl2msg|int32|origin_z|}}&lt;br /&gt;
{{hl2msg|int32|angle_y|}}&lt;br /&gt;
{{hl2msg|bool|defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_c4|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|bool|new_update|}}&lt;br /&gt;
{{hl2msg|repeated ProcessSpottedEntityUpdate.SpottedEntityUpdate|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemDrops ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemDrops|string}}&lt;br /&gt;
{{hl2msg|repeated ?|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemFound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemFound|string}}&lt;br /&gt;
{{hl2msg|?|iteminfo|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardList ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardList|string}}&lt;br /&gt;
{{hl2msg|bool|defuse_kit|}}&lt;br /&gt;
{{hl2msg|repeated int32|round_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|card_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|type_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_round_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_card_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_extra_utility|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardSelection ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardSelection|string}}&lt;br /&gt;
{{hl2msg|int32|round_idx|}}&lt;br /&gt;
{{hl2msg|int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|card_idx|}}&lt;br /&gt;
{{hl2msg|int32|type_idx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReloadEffect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReloadEffect|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|int32|actanim|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WeaponSound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WeaponSound|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{hl2msg|string|sound|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== UpdateScreenHealthBar ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|UpdateScreenHealthBar|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|healthratio_old|}}&lt;br /&gt;
{{hl2msg|float|healthratio_new|}}&lt;br /&gt;
{{hl2msg|int32|style|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EntityOutlineHighlight ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EntityOutlineHighlight|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|bool|removehighlight|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AdjustMoney ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AdjustMoney|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReportHit ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReportHit|string}}&lt;br /&gt;
{{hl2msg|float|pos_x|}}&lt;br /&gt;
{{hl2msg|float|pos_y|}}&lt;br /&gt;
{{hl2msg|float|pos_z|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KillCam ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KillCam|string}}&lt;br /&gt;
{{hl2msg|int32|obs_mode|}}&lt;br /&gt;
{{hl2msg|int32|first_target|}}&lt;br /&gt;
{{hl2msg|int32|second_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DesiredTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DesiredTimescale|string}}&lt;br /&gt;
{{hl2msg|float|desired_timescale|}}&lt;br /&gt;
{{hl2msg|float|duration_realtime_sec|}}&lt;br /&gt;
{{hl2msg|int32|interpolator_type|}}&lt;br /&gt;
{{hl2msg|float|start_blend_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentTimescale|string}}&lt;br /&gt;
{{hl2msg|float|cur_timescale|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AchievementEvent ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AchievementEvent|string}}&lt;br /&gt;
{{hl2msg|int32|achievement|}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchEndConditions ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchEndConditions|string}}&lt;br /&gt;
{{hl2msg|int32|fraglimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_maxrounds|}}&lt;br /&gt;
{{hl2msg|int32|mp_winlimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_timelimit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate.Stat|string}}&lt;br /&gt;
{{hl2msg|int32|idx|}}&lt;br /&gt;
{{hl2msg|int32|delta|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|version|}}&lt;br /&gt;
{{hl2msg|repeated PlayerStatsUpdate.Stat|stats|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{hl2msg|int32|crc|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisplayInventory ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisplayInventory|string}}&lt;br /&gt;
{{hl2msg|bool|display|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== QuestProgress ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|QuestProgress|string}}&lt;br /&gt;
{{hl2msg|uint32|quest_id|}}&lt;br /&gt;
{{hl2msg|uint32|normal_points|}}&lt;br /&gt;
{{hl2msg|uint32|bonus_points|}}&lt;br /&gt;
{{hl2msg|bool|is_event_quest|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ScoreLeaderboardData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ScoreLeaderboardData|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerDecalDigitalSignature ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerDecalDigitalSignature|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankGet ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Get ELO Rank Value from Client}}&lt;br /&gt;
{{begin-hl2msg|XRankGet|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankUpd ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Update ELO Rank Value on Client}}&lt;br /&gt;
{{begin-hl2msg|XRankUpd|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{hl2msg|int32|ranking|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CallVoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CallVoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{hl2msg|int32|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteStart ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteStart|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{hl2msg|string|other_team_str|}}&lt;br /&gt;
{{hl2msg|bool|is_yes_no_vote|}}&lt;br /&gt;
{{hl2msg|int32|entidx_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VotePass ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VotePass|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteSetup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteSetup|string}}&lt;br /&gt;
{{hl2msg|repeated string|potential_issues|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendLastKillerDamageToClient ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendLastKillerDamageToClient|string}}&lt;br /&gt;
{{hl2msg|int32|num_hits_given|}}&lt;br /&gt;
{{hl2msg|int32|damage_given|}}&lt;br /&gt;
{{hl2msg|int32|num_hits_taken|}}&lt;br /&gt;
{{hl2msg|int32|damage_taken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate.RankUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|account_id|}}&lt;br /&gt;
{{hl2msg|int32|rank_old|}}&lt;br /&gt;
{{hl2msg|int32|rank_new|}}&lt;br /&gt;
{{hl2msg|int32|num_wins|}}&lt;br /&gt;
{{hl2msg|float|rank_change|}}&lt;br /&gt;
{{hl2msg|int32|rank_type_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate|string}}&lt;br /&gt;
{{hl2msg|repeated ServerRankUpdate.RankUpdate|rank_update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XpUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|XpUpdate|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemPickup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemPickup|string}}&lt;br /&gt;
{{hl2msg|string|item|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ShowMenu ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|show hud menu}}&lt;br /&gt;
{{begin-hl2msg|ShowMenu|string}}&lt;br /&gt;
{{hl2msg|int32|bits_valid_slots|}}&lt;br /&gt;
{{hl2msg|int32|display_time|}}&lt;br /&gt;
{{hl2msg|string|menu_string|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== BarTime ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|For the C4 progress bar}}&lt;br /&gt;
{{begin-hl2msg|BarTime|string}}&lt;br /&gt;
{{hl2msg|string|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AmmoDenied ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AmmoDenied|string}}&lt;br /&gt;
{{hl2msg|int32|ammoIdx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MarkAchievement ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MarkAchievement|string}}&lt;br /&gt;
{{hl2msg|string|achievement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|string|update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemDrop ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemDrop|string}}&lt;br /&gt;
{{hl2msg|int64|itemid|}}&lt;br /&gt;
{{hl2msg|bool|death|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GlowPropTurnOff ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GlowPropTurnOff|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundBackupFilenames ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundBackupFilenames|string}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|string|filename|}}&lt;br /&gt;
{{hl2msg|string|nicename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SSUI ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SSUI|string}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|float|start_time|}}&lt;br /&gt;
{{hl2msg|float|end_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SurvivalStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Fact|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{hl2msg|int32|display|}}&lt;br /&gt;
{{hl2msg|int32|value|}}&lt;br /&gt;
{{hl2msg|float|interestingness|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Placement|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|int32|placement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Damage|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|to|}}&lt;br /&gt;
{{hl2msg|int32|to_hits|}}&lt;br /&gt;
{{hl2msg|int32|from|}}&lt;br /&gt;
{{hl2msg|int32|from_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Fact|facts|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Placement|users|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Damage|damages|}}&lt;br /&gt;
{{hl2msg|int32|ticknumber|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EndOfMatchAllPlayersData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.Accolade|string}}&lt;br /&gt;
{{hl2msg|int32|eaccolade|}}&lt;br /&gt;
{{hl2msg|float|value|}}&lt;br /&gt;
{{hl2msg|int32|position|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.PlayerData|string}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|EndOfMatchAllPlayersData.Accolade|nomination|}}&lt;br /&gt;
{{hl2msg|repeated ?|items|}}&lt;br /&gt;
{{hl2msg|int32|playercolor|}}&lt;br /&gt;
{{hl2msg|bool|isbot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData|string}}&lt;br /&gt;
{{hl2msg|repeated EndOfMatchAllPlayersData.PlayerData|allplayerdata|}}&lt;br /&gt;
{{hl2msg|int32|scene|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundImpactScoreData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Victim|string}}&lt;br /&gt;
{{hl2msg|int32|team_number|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|color|}}&lt;br /&gt;
{{hl2msg|bool|is_bot|}}&lt;br /&gt;
{{hl2msg|bool|is_dead|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Objective|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Damage|string}}&lt;br /&gt;
{{hl2msg|int32|target_entindex|}}&lt;br /&gt;
{{hl2msg|uint64|target_xuid|}}&lt;br /&gt;
{{hl2msg|int32|health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_hits|}}&lt;br /&gt;
{{hl2msg|int32|return_health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_return_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent|string}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{hl2msg|int32|ct_alive|}}&lt;br /&gt;
{{hl2msg|int32|t_alive|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Victim|victim_data|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Objective|objective_data|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent.Damage|all_damage_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.InitialConditions|string}}&lt;br /&gt;
{{hl2msg|int32|ct_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|t_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData|string}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.InitialConditions|init_conditions|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent|all_ris_event_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentRoundOdds ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentRoundOdds|string}}&lt;br /&gt;
{{hl2msg|int32|odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DeepStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DeepStats|string}}&lt;br /&gt;
{{hl2msg|?|stats|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ResetHud ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ResetHud|string}}&lt;br /&gt;
{{hl2msg|bool|reset|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GameTitle ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GameTitle|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RequestState ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RequestState|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== StopSpectatorMode ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|StopSpectatorMode|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisconnectToLobby ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisconnectToLobby|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WarmupHasEnded ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WarmupHasEnded|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ClientInfo ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ClientInfo|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankRevealAll ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankRevealAll|string}}&lt;br /&gt;
{{hl2msg|int32|seconds_till_shutdown|}}&lt;br /&gt;
{{hl2msg|?|reservation|}}&lt;br /&gt;
{{end-hl2msg}}&lt;/div&gt;</summary>
		<author><name>Micapat</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11133</id>
		<title>Counter-Strike: Global Offensive UserMessages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11133"/>
		<updated>2020-12-19T18:35:31Z</updated>

		<summary type="html">&lt;p&gt;Micapat: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Counter-Strike: Global Offensive uses Google's [[Protobuf|Protocol Buffers]] instead of Valve's traditional UserMessages.&lt;br /&gt;
&lt;br /&gt;
The data on this page was read from [https://github.com/SteamDatabase/GameTracking-CSGO/blob/master/Protobufs/cstrike15_usermessages.proto].&lt;br /&gt;
The initial versions of these files were provided by Valve and updated by the AlliedModders staff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;//====== Copyright (c) 2013, Valve Corporation, All rights reserved. ========//&lt;br /&gt;
//&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without &lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
//&lt;br /&gt;
// Redistributions of source code must retain the above copyright notice, this&lt;br /&gt;
// list of conditions and the following disclaimer.&lt;br /&gt;
// Redistributions in binary form must reproduce the above copyright notice, &lt;br /&gt;
// this list of conditions and the following disclaimer in the documentation &lt;br /&gt;
// and/or other materials provided with the distribution.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot;&lt;br /&gt;
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE &lt;br /&gt;
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE &lt;br /&gt;
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE &lt;br /&gt;
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR &lt;br /&gt;
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF &lt;br /&gt;
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS &lt;br /&gt;
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN &lt;br /&gt;
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) &lt;br /&gt;
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;br /&gt;
// THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//===========================================================================//&lt;br /&gt;
//&lt;br /&gt;
// Purpose: The file defines our Google Protocol Buffers which are used in over &lt;br /&gt;
// the wire messages for the Source engine.&lt;br /&gt;
//&lt;br /&gt;
//=============================================================================&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VGUIMenu ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu.SubKey|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|string|str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|repeated VGUIMenu.SubKey|subkeys|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Geiger ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Geiger|string}}&lt;br /&gt;
{{hl2msg|int32|range|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Train ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Train|string}}&lt;br /&gt;
{{hl2msg|int32|train|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SayText|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText2 ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|As of this writing, params requires four empty strings or it will crash the client}}&lt;br /&gt;
{{begin-hl2msg|SayText2|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== TextMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|TextMsg|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudMsg|string}}&lt;br /&gt;
{{hl2msg|int32|channel|}}&lt;br /&gt;
{{hl2msg|CMsgVector2D|pos|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr1|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr2|}}&lt;br /&gt;
{{hl2msg|int32|effect|}}&lt;br /&gt;
{{hl2msg|float|fade_in_time|}}&lt;br /&gt;
{{hl2msg|float|fade_out_time|}}&lt;br /&gt;
{{hl2msg|float|hold_time|}}&lt;br /&gt;
{{hl2msg|float|fx_time|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Shake ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Shake|string}}&lt;br /&gt;
{{hl2msg|int32|command|}}&lt;br /&gt;
{{hl2msg|float|local_amplitude|}}&lt;br /&gt;
{{hl2msg|float|frequency|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Commands:'''&lt;br /&gt;
* SHAKE_START            = 0 // Starts the screen shake for all players within the radius&lt;br /&gt;
* SHAKE_STOP             = 1 // Stops the screen shake for all players within the radius&lt;br /&gt;
* SHAKE_AMPLITUDE        = 2 // Modifies the amplitude of an active screen shake for all players within the radius&lt;br /&gt;
* SHAKE_FREQUENCY        = 3 // Modifies the frequency of an active screen shake for all players within the radius&lt;br /&gt;
* SHAKE_START_RUMBLEONLY = 4 // Starts a shake effect that only rumbles the controller, no screen effect&lt;br /&gt;
* SHAKE_START_NORUMBLE   = 5 // Starts a shake that does NOT rumble the controller&lt;br /&gt;
&lt;br /&gt;
== Fade ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Fade|string}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|int32|hold_time|}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
'''Duration:'''&lt;br /&gt;
&lt;br /&gt;
Only the 16 LSBs are used. The value is divided into two parts:&lt;br /&gt;
* Bit #00 to Bit #08 : Fractional part&lt;br /&gt;
* Bit #09 to Bit #15 : Integer part&lt;br /&gt;
&lt;br /&gt;
For example, to set a duration of 1 second, use: &amp;quot;1 &amp;lt;&amp;lt; 9&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Hold Time:'''&lt;br /&gt;
&lt;br /&gt;
Only the 16 LSBs are used. The value is divided into two parts:&lt;br /&gt;
* Bit #00 to Bit #08 : Fractional part&lt;br /&gt;
* Bit #09 to Bit #15 : Integer part&lt;br /&gt;
&lt;br /&gt;
For example, to set a duration of 1 second, use: &amp;quot;1 &amp;lt;&amp;lt; 9&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''Flags:'''&lt;br /&gt;
* FFADE_IN       = 0x0001 // Just here so we don't pass 0 into the function&lt;br /&gt;
* FFADE_OUT      = 0x0002 // Fade out (not in)&lt;br /&gt;
* FFADE_MODULATE = 0x0004 // Modulate (don't blend)&lt;br /&gt;
* FFADE_STAYOUT  = 0x0008 // Ignores the duration, stays faded out until a new fade message is received&lt;br /&gt;
* FFADE_PURGE    = 0x0010 // Purges all other fades, replacing them with this one&lt;br /&gt;
&lt;br /&gt;
== Rumble ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Rumble|string}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|int32|data|}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaption ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaption|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{hl2msg|string|cctoken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaptionDirect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaptionDirect|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendAudio|string}}&lt;br /&gt;
{{hl2msg|string|radio_sound|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RawAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RawAudio|string}}&lt;br /&gt;
{{hl2msg|int32|pitch|}}&lt;br /&gt;
{{hl2msg|int32|ent_index|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{hl2msg|string|voice_filename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoiceMask ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask.PlayerMask|string}}&lt;br /&gt;
{{hl2msg|int32|game_rules_mask|}}&lt;br /&gt;
{{hl2msg|int32|ban_masks|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask|string}}&lt;br /&gt;
{{hl2msg|repeated VoiceMask.PlayerMask|player_masks|}}&lt;br /&gt;
{{hl2msg|bool|player_mod_enable|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Damage ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Damage|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{hl2msg|CMsgVector|inflictor_world_pos|}}&lt;br /&gt;
{{hl2msg|int32|victim_entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RadioText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RadioText|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|int32|client|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HintText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KeyHintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KeyHintText|string}}&lt;br /&gt;
{{hl2msg|string|hints|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ProcessSpottedEntityUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|gurjeets - Message below is slightly bigger in size than the non-protobuf version, by around 8 bits. }}&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate.SpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|entity_idx|}}&lt;br /&gt;
{{hl2msg|int32|class_id|}}&lt;br /&gt;
{{hl2msg|int32|origin_x|}}&lt;br /&gt;
{{hl2msg|int32|origin_y|}}&lt;br /&gt;
{{hl2msg|int32|origin_z|}}&lt;br /&gt;
{{hl2msg|int32|angle_y|}}&lt;br /&gt;
{{hl2msg|bool|defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_c4|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|bool|new_update|}}&lt;br /&gt;
{{hl2msg|repeated ProcessSpottedEntityUpdate.SpottedEntityUpdate|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemDrops ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemDrops|string}}&lt;br /&gt;
{{hl2msg|repeated ?|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemFound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemFound|string}}&lt;br /&gt;
{{hl2msg|?|iteminfo|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardList ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardList|string}}&lt;br /&gt;
{{hl2msg|bool|defuse_kit|}}&lt;br /&gt;
{{hl2msg|repeated int32|round_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|card_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|type_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_round_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_card_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_extra_utility|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardSelection ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardSelection|string}}&lt;br /&gt;
{{hl2msg|int32|round_idx|}}&lt;br /&gt;
{{hl2msg|int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|card_idx|}}&lt;br /&gt;
{{hl2msg|int32|type_idx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReloadEffect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReloadEffect|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|int32|actanim|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WeaponSound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WeaponSound|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{hl2msg|string|sound|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== UpdateScreenHealthBar ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|UpdateScreenHealthBar|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|healthratio_old|}}&lt;br /&gt;
{{hl2msg|float|healthratio_new|}}&lt;br /&gt;
{{hl2msg|int32|style|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EntityOutlineHighlight ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EntityOutlineHighlight|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|bool|removehighlight|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AdjustMoney ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AdjustMoney|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReportHit ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReportHit|string}}&lt;br /&gt;
{{hl2msg|float|pos_x|}}&lt;br /&gt;
{{hl2msg|float|pos_y|}}&lt;br /&gt;
{{hl2msg|float|pos_z|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KillCam ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KillCam|string}}&lt;br /&gt;
{{hl2msg|int32|obs_mode|}}&lt;br /&gt;
{{hl2msg|int32|first_target|}}&lt;br /&gt;
{{hl2msg|int32|second_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DesiredTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DesiredTimescale|string}}&lt;br /&gt;
{{hl2msg|float|desired_timescale|}}&lt;br /&gt;
{{hl2msg|float|duration_realtime_sec|}}&lt;br /&gt;
{{hl2msg|int32|interpolator_type|}}&lt;br /&gt;
{{hl2msg|float|start_blend_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentTimescale|string}}&lt;br /&gt;
{{hl2msg|float|cur_timescale|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AchievementEvent ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AchievementEvent|string}}&lt;br /&gt;
{{hl2msg|int32|achievement|}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchEndConditions ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchEndConditions|string}}&lt;br /&gt;
{{hl2msg|int32|fraglimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_maxrounds|}}&lt;br /&gt;
{{hl2msg|int32|mp_winlimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_timelimit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate.Stat|string}}&lt;br /&gt;
{{hl2msg|int32|idx|}}&lt;br /&gt;
{{hl2msg|int32|delta|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|version|}}&lt;br /&gt;
{{hl2msg|repeated PlayerStatsUpdate.Stat|stats|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{hl2msg|int32|crc|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisplayInventory ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisplayInventory|string}}&lt;br /&gt;
{{hl2msg|bool|display|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== QuestProgress ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|QuestProgress|string}}&lt;br /&gt;
{{hl2msg|uint32|quest_id|}}&lt;br /&gt;
{{hl2msg|uint32|normal_points|}}&lt;br /&gt;
{{hl2msg|uint32|bonus_points|}}&lt;br /&gt;
{{hl2msg|bool|is_event_quest|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ScoreLeaderboardData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ScoreLeaderboardData|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerDecalDigitalSignature ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerDecalDigitalSignature|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankGet ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Get ELO Rank Value from Client}}&lt;br /&gt;
{{begin-hl2msg|XRankGet|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankUpd ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Update ELO Rank Value on Client}}&lt;br /&gt;
{{begin-hl2msg|XRankUpd|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{hl2msg|int32|ranking|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CallVoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CallVoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{hl2msg|int32|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteStart ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteStart|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{hl2msg|string|other_team_str|}}&lt;br /&gt;
{{hl2msg|bool|is_yes_no_vote|}}&lt;br /&gt;
{{hl2msg|int32|entidx_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VotePass ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VotePass|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteSetup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteSetup|string}}&lt;br /&gt;
{{hl2msg|repeated string|potential_issues|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendLastKillerDamageToClient ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendLastKillerDamageToClient|string}}&lt;br /&gt;
{{hl2msg|int32|num_hits_given|}}&lt;br /&gt;
{{hl2msg|int32|damage_given|}}&lt;br /&gt;
{{hl2msg|int32|num_hits_taken|}}&lt;br /&gt;
{{hl2msg|int32|damage_taken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate.RankUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|account_id|}}&lt;br /&gt;
{{hl2msg|int32|rank_old|}}&lt;br /&gt;
{{hl2msg|int32|rank_new|}}&lt;br /&gt;
{{hl2msg|int32|num_wins|}}&lt;br /&gt;
{{hl2msg|float|rank_change|}}&lt;br /&gt;
{{hl2msg|int32|rank_type_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate|string}}&lt;br /&gt;
{{hl2msg|repeated ServerRankUpdate.RankUpdate|rank_update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XpUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|XpUpdate|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemPickup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemPickup|string}}&lt;br /&gt;
{{hl2msg|string|item|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ShowMenu ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|show hud menu}}&lt;br /&gt;
{{begin-hl2msg|ShowMenu|string}}&lt;br /&gt;
{{hl2msg|int32|bits_valid_slots|}}&lt;br /&gt;
{{hl2msg|int32|display_time|}}&lt;br /&gt;
{{hl2msg|string|menu_string|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== BarTime ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|For the C4 progress bar}}&lt;br /&gt;
{{begin-hl2msg|BarTime|string}}&lt;br /&gt;
{{hl2msg|string|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AmmoDenied ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AmmoDenied|string}}&lt;br /&gt;
{{hl2msg|int32|ammoIdx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MarkAchievement ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MarkAchievement|string}}&lt;br /&gt;
{{hl2msg|string|achievement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|string|update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemDrop ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemDrop|string}}&lt;br /&gt;
{{hl2msg|int64|itemid|}}&lt;br /&gt;
{{hl2msg|bool|death|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GlowPropTurnOff ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GlowPropTurnOff|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundBackupFilenames ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundBackupFilenames|string}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|string|filename|}}&lt;br /&gt;
{{hl2msg|string|nicename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SSUI ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SSUI|string}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|float|start_time|}}&lt;br /&gt;
{{hl2msg|float|end_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SurvivalStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Fact|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{hl2msg|int32|display|}}&lt;br /&gt;
{{hl2msg|int32|value|}}&lt;br /&gt;
{{hl2msg|float|interestingness|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Placement|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|int32|placement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Damage|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|to|}}&lt;br /&gt;
{{hl2msg|int32|to_hits|}}&lt;br /&gt;
{{hl2msg|int32|from|}}&lt;br /&gt;
{{hl2msg|int32|from_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Fact|facts|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Placement|users|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Damage|damages|}}&lt;br /&gt;
{{hl2msg|int32|ticknumber|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EndOfMatchAllPlayersData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.Accolade|string}}&lt;br /&gt;
{{hl2msg|int32|eaccolade|}}&lt;br /&gt;
{{hl2msg|float|value|}}&lt;br /&gt;
{{hl2msg|int32|position|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.PlayerData|string}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|EndOfMatchAllPlayersData.Accolade|nomination|}}&lt;br /&gt;
{{hl2msg|repeated ?|items|}}&lt;br /&gt;
{{hl2msg|int32|playercolor|}}&lt;br /&gt;
{{hl2msg|bool|isbot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData|string}}&lt;br /&gt;
{{hl2msg|repeated EndOfMatchAllPlayersData.PlayerData|allplayerdata|}}&lt;br /&gt;
{{hl2msg|int32|scene|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundImpactScoreData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Victim|string}}&lt;br /&gt;
{{hl2msg|int32|team_number|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|color|}}&lt;br /&gt;
{{hl2msg|bool|is_bot|}}&lt;br /&gt;
{{hl2msg|bool|is_dead|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Objective|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Damage|string}}&lt;br /&gt;
{{hl2msg|int32|target_entindex|}}&lt;br /&gt;
{{hl2msg|uint64|target_xuid|}}&lt;br /&gt;
{{hl2msg|int32|health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_hits|}}&lt;br /&gt;
{{hl2msg|int32|return_health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_return_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent|string}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{hl2msg|int32|ct_alive|}}&lt;br /&gt;
{{hl2msg|int32|t_alive|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Victim|victim_data|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Objective|objective_data|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent.Damage|all_damage_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.InitialConditions|string}}&lt;br /&gt;
{{hl2msg|int32|ct_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|t_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData|string}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.InitialConditions|init_conditions|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent|all_ris_event_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentRoundOdds ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentRoundOdds|string}}&lt;br /&gt;
{{hl2msg|int32|odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DeepStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DeepStats|string}}&lt;br /&gt;
{{hl2msg|?|stats|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ResetHud ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ResetHud|string}}&lt;br /&gt;
{{hl2msg|bool|reset|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GameTitle ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GameTitle|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RequestState ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RequestState|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== StopSpectatorMode ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|StopSpectatorMode|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisconnectToLobby ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisconnectToLobby|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WarmupHasEnded ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WarmupHasEnded|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ClientInfo ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ClientInfo|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankRevealAll ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankRevealAll|string}}&lt;br /&gt;
{{hl2msg|int32|seconds_till_shutdown|}}&lt;br /&gt;
{{hl2msg|?|reservation|}}&lt;br /&gt;
{{end-hl2msg}}&lt;/div&gt;</summary>
		<author><name>Micapat</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11132</id>
		<title>Counter-Strike: Global Offensive UserMessages</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_UserMessages&amp;diff=11132"/>
		<updated>2020-12-19T15:43:20Z</updated>

		<summary type="html">&lt;p&gt;Micapat: Update to the last CS:GO version (17 december 2020)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Counter-Strike: Global Offensive uses Google's [[Protobuf|Protocol Buffers]] instead of Valve's traditional UserMessages.&lt;br /&gt;
&lt;br /&gt;
The data on this page was read from [https://github.com/SteamDatabase/GameTracking-CSGO/blob/master/Protobufs/cstrike15_usermessages.proto].&lt;br /&gt;
The initial versions of these files were provided by Valve and updated by the AlliedModders staff.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;//====== Copyright (c) 2013, Valve Corporation, All rights reserved. ========//&lt;br /&gt;
//&lt;br /&gt;
// Redistribution and use in source and binary forms, with or without &lt;br /&gt;
// modification, are permitted provided that the following conditions are met:&lt;br /&gt;
//&lt;br /&gt;
// Redistributions of source code must retain the above copyright notice, this&lt;br /&gt;
// list of conditions and the following disclaimer.&lt;br /&gt;
// Redistributions in binary form must reproduce the above copyright notice, &lt;br /&gt;
// this list of conditions and the following disclaimer in the documentation &lt;br /&gt;
// and/or other materials provided with the distribution.&lt;br /&gt;
//&lt;br /&gt;
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS IS&amp;quot;&lt;br /&gt;
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE &lt;br /&gt;
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE &lt;br /&gt;
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE &lt;br /&gt;
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR &lt;br /&gt;
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF &lt;br /&gt;
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS &lt;br /&gt;
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN &lt;br /&gt;
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) &lt;br /&gt;
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF &lt;br /&gt;
// THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
//===========================================================================//&lt;br /&gt;
//&lt;br /&gt;
// Purpose: The file defines our Google Protocol Buffers which are used in over &lt;br /&gt;
// the wire messages for the Source engine.&lt;br /&gt;
//&lt;br /&gt;
//=============================================================================&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VGUIMenu ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu.SubKey|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|string|str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VGUIMenu|string}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|repeated VGUIMenu.SubKey|subkeys|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Geiger ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Geiger|string}}&lt;br /&gt;
{{hl2msg|int32|range|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Train ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Train|string}}&lt;br /&gt;
{{hl2msg|int32|train|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SayText|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SayText2 ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|As of this writing, params requires four empty strings or it will crash the client}}&lt;br /&gt;
{{begin-hl2msg|SayText2|string}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|bool|chat|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{hl2msg|bool|textallchat|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== TextMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|TextMsg|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HudMsg ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HudMsg|string}}&lt;br /&gt;
{{hl2msg|int32|channel|}}&lt;br /&gt;
{{hl2msg|CMsgVector2D|pos|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr1|}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr2|}}&lt;br /&gt;
{{hl2msg|int32|effect|}}&lt;br /&gt;
{{hl2msg|float|fade_in_time|}}&lt;br /&gt;
{{hl2msg|float|fade_out_time|}}&lt;br /&gt;
{{hl2msg|float|hold_time|}}&lt;br /&gt;
{{hl2msg|float|fx_time|}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Shake ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Shake|string}}&lt;br /&gt;
{{hl2msg|int32|command|}}&lt;br /&gt;
{{hl2msg|float|local_amplitude|}}&lt;br /&gt;
{{hl2msg|float|frequency|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Fade ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|fade HUD in/out}}&lt;br /&gt;
{{begin-hl2msg|Fade|string}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|int32|hold_time|}}&lt;br /&gt;
{{hl2msg|int32|flags|fade type (in / out)}}&lt;br /&gt;
{{hl2msg|CMsgRGBA|clr|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Rumble ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Rumble|string}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|int32|data|}}&lt;br /&gt;
{{hl2msg|int32|flags|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaption ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaption|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{hl2msg|string|cctoken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CloseCaptionDirect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CloseCaptionDirect|string}}&lt;br /&gt;
{{hl2msg|uint32|hash|}}&lt;br /&gt;
{{hl2msg|int32|duration|}}&lt;br /&gt;
{{hl2msg|bool|from_player|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendAudio|string}}&lt;br /&gt;
{{hl2msg|string|radio_sound|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RawAudio ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RawAudio|string}}&lt;br /&gt;
{{hl2msg|int32|pitch|}}&lt;br /&gt;
{{hl2msg|int32|ent_index|}}&lt;br /&gt;
{{hl2msg|float|duration|}}&lt;br /&gt;
{{hl2msg|string|voice_filename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoiceMask ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask.PlayerMask|string}}&lt;br /&gt;
{{hl2msg|int32|game_rules_mask|}}&lt;br /&gt;
{{hl2msg|int32|ban_masks|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoiceMask|string}}&lt;br /&gt;
{{hl2msg|repeated VoiceMask.PlayerMask|player_masks|}}&lt;br /&gt;
{{hl2msg|bool|player_mod_enable|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== Damage ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|Damage|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{hl2msg|CMsgVector|inflictor_world_pos|}}&lt;br /&gt;
{{hl2msg|int32|victim_entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RadioText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RadioText|string}}&lt;br /&gt;
{{hl2msg|int32|msg_dst|}}&lt;br /&gt;
{{hl2msg|int32|client|}}&lt;br /&gt;
{{hl2msg|string|msg_name|}}&lt;br /&gt;
{{hl2msg|repeated string|params|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== HintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|HintText|string}}&lt;br /&gt;
{{hl2msg|string|text|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KeyHintText ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KeyHintText|string}}&lt;br /&gt;
{{hl2msg|string|hints|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ProcessSpottedEntityUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|gurjeets - Message below is slightly bigger in size than the non-protobuf version, by around 8 bits. }}&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate.SpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|entity_idx|}}&lt;br /&gt;
{{hl2msg|int32|class_id|}}&lt;br /&gt;
{{hl2msg|int32|origin_x|}}&lt;br /&gt;
{{hl2msg|int32|origin_y|}}&lt;br /&gt;
{{hl2msg|int32|origin_z|}}&lt;br /&gt;
{{hl2msg|int32|angle_y|}}&lt;br /&gt;
{{hl2msg|bool|defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_defuser|}}&lt;br /&gt;
{{hl2msg|bool|player_has_c4|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ProcessSpottedEntityUpdate|string}}&lt;br /&gt;
{{hl2msg|bool|new_update|}}&lt;br /&gt;
{{hl2msg|repeated ProcessSpottedEntityUpdate.SpottedEntityUpdate|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemDrops ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemDrops|string}}&lt;br /&gt;
{{hl2msg|repeated ?|entity_updates|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendPlayerItemFound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendPlayerItemFound|string}}&lt;br /&gt;
{{hl2msg|?|iteminfo|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardList ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardList|string}}&lt;br /&gt;
{{hl2msg|bool|defuse_kit|}}&lt;br /&gt;
{{hl2msg|repeated int32|round_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|card_idx|}}&lt;br /&gt;
{{hl2msg|repeated int32|type_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_round_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_card_idx|}}&lt;br /&gt;
{{hl2msg|int32|mvp_boost_extra_utility|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RetakeUpdatePlayerCardSelection ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RetakeUpdatePlayerCardSelection|string}}&lt;br /&gt;
{{hl2msg|int32|round_idx|}}&lt;br /&gt;
{{hl2msg|int32|loadout_idx|}}&lt;br /&gt;
{{hl2msg|int32|card_idx|}}&lt;br /&gt;
{{hl2msg|int32|type_idx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReloadEffect ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReloadEffect|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|int32|actanim|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WeaponSound ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WeaponSound|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|origin_x|}}&lt;br /&gt;
{{hl2msg|float|origin_y|}}&lt;br /&gt;
{{hl2msg|float|origin_z|}}&lt;br /&gt;
{{hl2msg|string|sound|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== UpdateScreenHealthBar ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|UpdateScreenHealthBar|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|float|healthratio_old|}}&lt;br /&gt;
{{hl2msg|float|healthratio_new|}}&lt;br /&gt;
{{hl2msg|int32|style|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EntityOutlineHighlight ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EntityOutlineHighlight|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{hl2msg|bool|removehighlight|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AdjustMoney ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AdjustMoney|string}}&lt;br /&gt;
{{hl2msg|int32|amount|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ReportHit ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ReportHit|string}}&lt;br /&gt;
{{hl2msg|float|pos_x|}}&lt;br /&gt;
{{hl2msg|float|pos_y|}}&lt;br /&gt;
{{hl2msg|float|pos_z|}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== KillCam ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|KillCam|string}}&lt;br /&gt;
{{hl2msg|int32|obs_mode|}}&lt;br /&gt;
{{hl2msg|int32|first_target|}}&lt;br /&gt;
{{hl2msg|int32|second_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DesiredTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DesiredTimescale|string}}&lt;br /&gt;
{{hl2msg|float|desired_timescale|}}&lt;br /&gt;
{{hl2msg|float|duration_realtime_sec|}}&lt;br /&gt;
{{hl2msg|int32|interpolator_type|}}&lt;br /&gt;
{{hl2msg|float|start_blend_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentTimescale ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentTimescale|string}}&lt;br /&gt;
{{hl2msg|float|cur_timescale|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AchievementEvent ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AchievementEvent|string}}&lt;br /&gt;
{{hl2msg|int32|achievement|}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchEndConditions ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchEndConditions|string}}&lt;br /&gt;
{{hl2msg|int32|fraglimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_maxrounds|}}&lt;br /&gt;
{{hl2msg|int32|mp_winlimit|}}&lt;br /&gt;
{{hl2msg|int32|mp_timelimit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate.Stat|string}}&lt;br /&gt;
{{hl2msg|int32|idx|}}&lt;br /&gt;
{{hl2msg|int32|delta|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|version|}}&lt;br /&gt;
{{hl2msg|repeated PlayerStatsUpdate.Stat|stats|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{hl2msg|int32|crc|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisplayInventory ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisplayInventory|string}}&lt;br /&gt;
{{hl2msg|bool|display|}}&lt;br /&gt;
{{hl2msg|int32|user_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== QuestProgress ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|QuestProgress|string}}&lt;br /&gt;
{{hl2msg|uint32|quest_id|}}&lt;br /&gt;
{{hl2msg|uint32|normal_points|}}&lt;br /&gt;
{{hl2msg|uint32|bonus_points|}}&lt;br /&gt;
{{hl2msg|bool|is_event_quest|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ScoreLeaderboardData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ScoreLeaderboardData|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== PlayerDecalDigitalSignature ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|PlayerDecalDigitalSignature|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankGet ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Get ELO Rank Value from Client}}&lt;br /&gt;
{{begin-hl2msg|XRankGet|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XRankUpd ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|Update ELO Rank Value on Client}}&lt;br /&gt;
{{begin-hl2msg|XRankUpd|string}}&lt;br /&gt;
{{hl2msg|int32|mode_idx|}}&lt;br /&gt;
{{hl2msg|int32|controller|}}&lt;br /&gt;
{{hl2msg|int32|ranking|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CallVoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CallVoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{hl2msg|int32|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteStart ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteStart|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|ent_idx|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{hl2msg|string|other_team_str|}}&lt;br /&gt;
{{hl2msg|bool|is_yes_no_vote|}}&lt;br /&gt;
{{hl2msg|int32|entidx_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VotePass ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VotePass|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|vote_type|}}&lt;br /&gt;
{{hl2msg|string|disp_str|}}&lt;br /&gt;
{{hl2msg|string|details_str|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteFailed ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteFailed|string}}&lt;br /&gt;
{{hl2msg|int32|team|}}&lt;br /&gt;
{{hl2msg|int32|reason|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== VoteSetup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|VoteSetup|string}}&lt;br /&gt;
{{hl2msg|repeated string|potential_issues|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SendLastKillerDamageToClient ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SendLastKillerDamageToClient|string}}&lt;br /&gt;
{{hl2msg|int32|num_hits_given|}}&lt;br /&gt;
{{hl2msg|int32|damage_given|}}&lt;br /&gt;
{{hl2msg|int32|num_hits_taken|}}&lt;br /&gt;
{{hl2msg|int32|damage_taken|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate.RankUpdate|string}}&lt;br /&gt;
{{hl2msg|int32|account_id|}}&lt;br /&gt;
{{hl2msg|int32|rank_old|}}&lt;br /&gt;
{{hl2msg|int32|rank_new|}}&lt;br /&gt;
{{hl2msg|int32|num_wins|}}&lt;br /&gt;
{{hl2msg|float|rank_change|}}&lt;br /&gt;
{{hl2msg|int32|rank_type_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankUpdate|string}}&lt;br /&gt;
{{hl2msg|repeated ServerRankUpdate.RankUpdate|rank_update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== XpUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|XpUpdate|string}}&lt;br /&gt;
{{hl2msg|?|data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemPickup ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemPickup|string}}&lt;br /&gt;
{{hl2msg|string|item|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ShowMenu ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|show hud menu}}&lt;br /&gt;
{{begin-hl2msg|ShowMenu|string}}&lt;br /&gt;
{{hl2msg|int32|bits_valid_slots|}}&lt;br /&gt;
{{hl2msg|int32|display_time|}}&lt;br /&gt;
{{hl2msg|string|menu_string|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== BarTime ==&lt;br /&gt;
&lt;br /&gt;
{{qnotice|For the C4 progress bar}}&lt;br /&gt;
{{begin-hl2msg|BarTime|string}}&lt;br /&gt;
{{hl2msg|string|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== AmmoDenied ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|AmmoDenied|string}}&lt;br /&gt;
{{hl2msg|int32|ammoIdx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MarkAchievement ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MarkAchievement|string}}&lt;br /&gt;
{{hl2msg|string|achievement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== MatchStatsUpdate ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|MatchStatsUpdate|string}}&lt;br /&gt;
{{hl2msg|string|update|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ItemDrop ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ItemDrop|string}}&lt;br /&gt;
{{hl2msg|int64|itemid|}}&lt;br /&gt;
{{hl2msg|bool|death|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GlowPropTurnOff ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GlowPropTurnOff|string}}&lt;br /&gt;
{{hl2msg|int32|entidx|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundBackupFilenames ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundBackupFilenames|string}}&lt;br /&gt;
{{hl2msg|int32|count|}}&lt;br /&gt;
{{hl2msg|int32|index|}}&lt;br /&gt;
{{hl2msg|string|filename|}}&lt;br /&gt;
{{hl2msg|string|nicename|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SSUI ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SSUI|string}}&lt;br /&gt;
{{hl2msg|bool|show|}}&lt;br /&gt;
{{hl2msg|float|start_time|}}&lt;br /&gt;
{{hl2msg|float|end_time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== SurvivalStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Fact|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{hl2msg|int32|display|}}&lt;br /&gt;
{{hl2msg|int32|value|}}&lt;br /&gt;
{{hl2msg|float|interestingness|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Placement|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|int32|placement|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats.Damage|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|to|}}&lt;br /&gt;
{{hl2msg|int32|to_hits|}}&lt;br /&gt;
{{hl2msg|int32|from|}}&lt;br /&gt;
{{hl2msg|int32|from_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|SurvivalStats|string}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Fact|facts|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Placement|users|}}&lt;br /&gt;
{{hl2msg|repeated SurvivalStats.Damage|damages|}}&lt;br /&gt;
{{hl2msg|int32|ticknumber|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== EndOfMatchAllPlayersData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.Accolade|string}}&lt;br /&gt;
{{hl2msg|int32|eaccolade|}}&lt;br /&gt;
{{hl2msg|float|value|}}&lt;br /&gt;
{{hl2msg|int32|position|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData.PlayerData|string}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|string|name|}}&lt;br /&gt;
{{hl2msg|int32|teamnumber|}}&lt;br /&gt;
{{hl2msg|EndOfMatchAllPlayersData.Accolade|nomination|}}&lt;br /&gt;
{{hl2msg|repeated ?|items|}}&lt;br /&gt;
{{hl2msg|int32|playercolor|}}&lt;br /&gt;
{{hl2msg|bool|isbot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|EndOfMatchAllPlayersData|string}}&lt;br /&gt;
{{hl2msg|repeated EndOfMatchAllPlayersData.PlayerData|allplayerdata|}}&lt;br /&gt;
{{hl2msg|int32|scene|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RoundImpactScoreData ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Victim|string}}&lt;br /&gt;
{{hl2msg|int32|team_number|}}&lt;br /&gt;
{{hl2msg|int32|entindex|}}&lt;br /&gt;
{{hl2msg|uint64|xuid|}}&lt;br /&gt;
{{hl2msg|int32|color|}}&lt;br /&gt;
{{hl2msg|bool|is_bot|}}&lt;br /&gt;
{{hl2msg|bool|is_dead|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Objective|string}}&lt;br /&gt;
{{hl2msg|int32|type|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent.Damage|string}}&lt;br /&gt;
{{hl2msg|int32|target_entindex|}}&lt;br /&gt;
{{hl2msg|uint64|target_xuid|}}&lt;br /&gt;
{{hl2msg|int32|health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_hits|}}&lt;br /&gt;
{{hl2msg|int32|return_health_removed|}}&lt;br /&gt;
{{hl2msg|int32|num_return_hits|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.RisEvent|string}}&lt;br /&gt;
{{hl2msg|float|timestamp|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{hl2msg|int32|ct_alive|}}&lt;br /&gt;
{{hl2msg|int32|t_alive|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Victim|victim_data|}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.RisEvent.Objective|objective_data|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent.Damage|all_damage_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData.InitialConditions|string}}&lt;br /&gt;
{{hl2msg|int32|ct_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|t_equip_value|}}&lt;br /&gt;
{{hl2msg|int32|terrorist_odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RoundImpactScoreData|string}}&lt;br /&gt;
{{hl2msg|RoundImpactScoreData.InitialConditions|init_conditions|}}&lt;br /&gt;
{{hl2msg|repeated RoundImpactScoreData.RisEvent|all_ris_event_data|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== CurrentRoundOdds ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|CurrentRoundOdds|string}}&lt;br /&gt;
{{hl2msg|int32|odds|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DeepStats ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DeepStats|string}}&lt;br /&gt;
{{hl2msg|?|stats|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ResetHud ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ResetHud|string}}&lt;br /&gt;
{{hl2msg|bool|reset|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== GameTitle ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|GameTitle|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== RequestState ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|RequestState|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== StopSpectatorMode ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|StopSpectatorMode|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== DisconnectToLobby ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|DisconnectToLobby|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== WarmupHasEnded ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|WarmupHasEnded|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ClientInfo ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ClientInfo|string}}&lt;br /&gt;
{{hl2msg|int32|dummy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
== ServerRankRevealAll ==&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|ServerRankRevealAll|string}}&lt;br /&gt;
{{hl2msg|int32|seconds_till_shutdown|}}&lt;br /&gt;
{{hl2msg|?|reservation|}}&lt;br /&gt;
{{end-hl2msg}}&lt;/div&gt;</summary>
		<author><name>Micapat</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_Events&amp;diff=11131</id>
		<title>Counter-Strike: Global Offensive Events</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_Events&amp;diff=11131"/>
		<updated>2020-12-19T13:58:29Z</updated>

		<summary type="html">&lt;p&gt;Micapat: Small fix of the ressource list at the beginning&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:''Refer back to [[Game Events (Source)]] for more events.''&lt;br /&gt;
The following events can be found in '''csgo\pak01_dir.vpk''' in the file '''resource\modevents.res'''.&lt;br /&gt;
&lt;br /&gt;
Other events not listed here can be found in: &lt;br /&gt;
&lt;br /&gt;
* resource\gameevents.res&lt;br /&gt;
* resource\demoimportantevents.res&lt;br /&gt;
* resource\serverevents.res&lt;br /&gt;
* resource\hltvevents.res&lt;br /&gt;
* resource\replayevents.res&lt;br /&gt;
&lt;br /&gt;
=== player_death ===&lt;br /&gt;
{{qnotice|When a client dies}}&lt;br /&gt;
{{begin-hl2msg|player_death|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID who died}}&lt;br /&gt;
{{hl2msg|short|attacker|user ID who killed}}&lt;br /&gt;
{{hl2msg|short|assister|user ID who assisted in the kill}}&lt;br /&gt;
{{hl2msg|bool|assistedflash|assister helped with a flash}}&lt;br /&gt;
{{hl2msg|string|weapon|weapon name killer used}}&lt;br /&gt;
{{hl2msg|string|weapon_itemid|inventory item id of weapon killer used}}&lt;br /&gt;
{{hl2msg|string|weapon_fauxitemid|faux item id of weapon killer used}}&lt;br /&gt;
{{hl2msg|string|weapon_originalowner_xuid|}}&lt;br /&gt;
{{hl2msg|bool|headshot|signals a headshot}}&lt;br /&gt;
{{hl2msg|short|dominated|did killer dominate victim with this kill}}&lt;br /&gt;
{{hl2msg|short|revenge|did killer get revenge on victim with this kill}}&lt;br /&gt;
{{hl2msg|short|wipe|To do: check if indicates on a squad wipeout in Danger Zone}}&lt;br /&gt;
{{hl2msg|short|penetrated|number of objects shot penetrated before killing target}}&lt;br /&gt;
{{hl2msg|bool|noreplay|if replay data is unavailable, this will be present and set to false}}&lt;br /&gt;
{{hl2msg|bool|noscope|kill happened without a scope, used for death notice icon}}&lt;br /&gt;
{{hl2msg|bool|thrusmoke|hitscan weapon went through smoke grenade}}&lt;br /&gt;
{{hl2msg|bool|attackerblind|attacker was blind from flashbang}}&lt;br /&gt;
{{hl2msg|float|distance|distance to victim in meters}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== other_death ===&lt;br /&gt;
{{qnotice|As far as I know only used for chicken deaths at the moment}}&lt;br /&gt;
{{begin-hl2msg|other_death|string}}&lt;br /&gt;
{{hl2msg|short|otherid|}}&lt;br /&gt;
{{hl2msg|string|othertype|}}&lt;br /&gt;
{{hl2msg|short|attacker|user ID who attacked}}&lt;br /&gt;
{{hl2msg|string|weapon|weapon name attacker used, if not the world}}&lt;br /&gt;
{{hl2msg|string|weapon_itemid|inventory item id of weapon killer used}}&lt;br /&gt;
{{hl2msg|string|weapon_fauxitemid|faux item id of weapon killer used}}&lt;br /&gt;
{{hl2msg|string|weapon_originalowner_xuid|}}&lt;br /&gt;
{{hl2msg|bool|headshot|signals a headshot}}&lt;br /&gt;
{{hl2msg|short|penetrated|number of objects shot penetrated before killing target}}&lt;br /&gt;
{{hl2msg|bool|noscope|kill happened without a scope, used for death notice icon}}&lt;br /&gt;
{{hl2msg|bool|thrusmoke|hitscan weapon went through smoke grenade}}&lt;br /&gt;
{{hl2msg|bool|attackerblind|attacker was blind from flashbang}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_hurt ===&lt;br /&gt;
{{begin-hl2msg|player_hurt|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID of who was hurt}}&lt;br /&gt;
{{hl2msg|short|attacker|user ID of who attacked}}&lt;br /&gt;
{{hl2msg|byte|health|remaining health points}}&lt;br /&gt;
{{hl2msg|byte|armor|remaining armor points}}&lt;br /&gt;
{{hl2msg|string|weapon|weapon name attacker used, if not the world}}&lt;br /&gt;
{{hl2msg|short|dmg_health|damage done to health}}&lt;br /&gt;
{{hl2msg|byte|dmg_armor|damage done to armor}}&lt;br /&gt;
{{hl2msg|byte|hitgroup|hitgroup that was damaged}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_purchase ===&lt;br /&gt;
{{begin-hl2msg|item_purchase|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|team|}}&lt;br /&gt;
{{hl2msg|short|loadout|}}&lt;br /&gt;
{{hl2msg|string|weapon|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_beginplant ===&lt;br /&gt;
{{qnotice|When the bomb is starting to get planted}}&lt;br /&gt;
{{begin-hl2msg|bomb_beginplant|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who is planting the bomb}}&lt;br /&gt;
{{hl2msg|short|site|bombsite index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_abortplant ===&lt;br /&gt;
{{qnotice|When the bomb planter stops planting the bomb}}&lt;br /&gt;
{{begin-hl2msg|bomb_abortplant|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who is planting the bomb}}&lt;br /&gt;
{{hl2msg|short|site|bombsite index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_planted ===&lt;br /&gt;
{{qnotice|When the bomb has been planted}}&lt;br /&gt;
{{begin-hl2msg|bomb_planted|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who planted the bomb}}&lt;br /&gt;
{{hl2msg|short|site|bombsite index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_defused ===&lt;br /&gt;
{{qnotice|When the bomb has been defused}}&lt;br /&gt;
{{begin-hl2msg|bomb_defused|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who defused the bomb}}&lt;br /&gt;
{{hl2msg|short|site|bombsite index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_exploded ===&lt;br /&gt;
{{qnotice|When the bomb explodes}}&lt;br /&gt;
{{begin-hl2msg|bomb_exploded|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who planted the bomb}}&lt;br /&gt;
{{hl2msg|short|site|bombsite index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_dropped ===&lt;br /&gt;
{{qnotice|When the bomb is dropped by a client}}&lt;br /&gt;
{{begin-hl2msg|bomb_dropped|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who dropped the bomb}}&lt;br /&gt;
{{hl2msg|long|entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_pickup ===&lt;br /&gt;
{{qnotice|When the bomb is picked up by a client}}&lt;br /&gt;
{{begin-hl2msg|bomb_pickup|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who picked up the bomb}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== defuser_dropped ===&lt;br /&gt;
{{qnotice|When the defuser is dropped by a client}}&lt;br /&gt;
{{begin-hl2msg|defuser_dropped|string}}&lt;br /&gt;
{{hl2msg|long|entityid|defuser's entity ID}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== defuser_pickup ===&lt;br /&gt;
{{qnotice|When the defuser is picked up by a client}}&lt;br /&gt;
{{begin-hl2msg|defuser_pickup|string}}&lt;br /&gt;
{{hl2msg|long|entityid|defuser's entity ID}}&lt;br /&gt;
{{hl2msg|short|userid|player who picked up the defuser}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== announce_phase_end ===&lt;br /&gt;
{{begin-hl2msg|announce_phase_end|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_intermission ===&lt;br /&gt;
{{begin-hl2msg|cs_intermission|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_begindefuse ===&lt;br /&gt;
{{qnotice|When the bomb is started to be defused}}&lt;br /&gt;
{{begin-hl2msg|bomb_begindefuse|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who is defusing}}&lt;br /&gt;
{{hl2msg|bool|haskit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_abortdefuse ===&lt;br /&gt;
{{qnotice|When the bomb defusal is stopped}}&lt;br /&gt;
{{begin-hl2msg|bomb_abortdefuse|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who was defusing}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_follows ===&lt;br /&gt;
{{qnotice|When the hostage begins following a client}}&lt;br /&gt;
{{begin-hl2msg|hostage_follows|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who touched the hostage}}&lt;br /&gt;
{{hl2msg|short|hostage|hostage entity index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_hurt ===&lt;br /&gt;
{{qnotice|When a hostage is damaged}}&lt;br /&gt;
{{begin-hl2msg|hostage_hurt|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who hurt the hostage}}&lt;br /&gt;
{{hl2msg|short|hostage|hostage entity index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_killed ===&lt;br /&gt;
{{qnotice|When a hostage is killed}}&lt;br /&gt;
{{begin-hl2msg|hostage_killed|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who killed the hostage}}&lt;br /&gt;
{{hl2msg|short|hostage|hostage entity index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_rescued ===&lt;br /&gt;
{{qnotice|When a hostage is rescued}}&lt;br /&gt;
{{begin-hl2msg|hostage_rescued|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who rescued the hostage}}&lt;br /&gt;
{{hl2msg|short|hostage|hostage entity index}}&lt;br /&gt;
{{hl2msg|short|site|rescue site index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_stops_following ===&lt;br /&gt;
{{qnotice|When a hostage stops following a client}}&lt;br /&gt;
{{begin-hl2msg|hostage_stops_following|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who rescued the hostage}}&lt;br /&gt;
{{hl2msg|short|hostage|hostage entity index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_rescued_all ===&lt;br /&gt;
{{qnotice|When all the hostages are rescued}}&lt;br /&gt;
{{begin-hl2msg|hostage_rescued_all|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_call_for_help ===&lt;br /&gt;
{{qnotice|When the hostage calls for help}}&lt;br /&gt;
{{begin-hl2msg|hostage_call_for_help|string}}&lt;br /&gt;
{{hl2msg|short|hostage|hostage entity index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== vip_escaped ===&lt;br /&gt;
{{qnotice|When the VIP escapes}}&lt;br /&gt;
{{begin-hl2msg|vip_escaped|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who was the VIP}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== vip_killed ===&lt;br /&gt;
{{qnotice|When the VIP is killed}}&lt;br /&gt;
{{begin-hl2msg|vip_killed|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who was the VIP}}&lt;br /&gt;
{{hl2msg|short|attacker|user ID who killed the VIP}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_radio ===&lt;br /&gt;
{{qnotice|When the player uses radio commands}}&lt;br /&gt;
{{begin-hl2msg|player_radio|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|slot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_beep ===&lt;br /&gt;
{{qnotice|Every time the bomb beep sound happens}}&lt;br /&gt;
{{begin-hl2msg|bomb_beep|string}}&lt;br /&gt;
{{hl2msg|long|entindex|c4 entity}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_fire ===&lt;br /&gt;
{{qnotice|Every time a client fires their weapon}}&lt;br /&gt;
{{begin-hl2msg|weapon_fire|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|weapon|weapon name used}}&lt;br /&gt;
{{hl2msg|bool|silenced|is weapon silenced}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_fire_on_empty ===&lt;br /&gt;
{{qnotice|Every time a client fires their weapon and it's empty}}&lt;br /&gt;
{{begin-hl2msg|weapon_fire_on_empty|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|weapon|weapon name used}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== grenade_thrown ===&lt;br /&gt;
{{qnotice|Every time a client throws their grenade}}&lt;br /&gt;
{{begin-hl2msg|weapon_fire_on_empty|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|weapon|weapon name used}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_outofammo ===&lt;br /&gt;
{{begin-hl2msg|weapon_outofammo|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_reload ===&lt;br /&gt;
{{qnotice|Every time a client reloads their weapon}}&lt;br /&gt;
{{begin-hl2msg|weapon_reload|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_zoom ===&lt;br /&gt;
{{qnotice|Every time a client zooms a scoped weapon}}&lt;br /&gt;
{{begin-hl2msg|weapon_zoom|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== silencer_detach ===&lt;br /&gt;
{{begin-hl2msg|silencer_detach|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== inspect_weapon ===&lt;br /&gt;
{{begin-hl2msg|inspect_weapon|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_zoom_rifle ===&lt;br /&gt;
{{qnotice|exists for the game instructor to let it know when the player zoomed in with a regular rifle. Different from the above weapon_zoom because we don't use this event to notify bots}}&lt;br /&gt;
{{begin-hl2msg|weapon_zoom_rifle|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_spawned ===&lt;br /&gt;
{{begin-hl2msg|player_spawned|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|bool|inrestart|true if restart is pending}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_pickup ===&lt;br /&gt;
{{qnotice|Every time an item is picked up (generally weapons)}}&lt;br /&gt;
{{begin-hl2msg|item_pickup|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|item|either a weapon such as 'tmp' or 'hegrenade', or an item such as 'nvgs'}}&lt;br /&gt;
{{hl2msg|bool|silent|}}&lt;br /&gt;
{{hl2msg|long|defindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_pickup_slerp ===&lt;br /&gt;
{{begin-hl2msg|item_pickup_slerp|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|index|}}&lt;br /&gt;
{{hl2msg|short|behavior|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_pickup_failed ===&lt;br /&gt;
{{begin-hl2msg|item_pickup_failed|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|item|}}&lt;br /&gt;
{{hl2msg|short|reason|}}&lt;br /&gt;
{{hl2msg|short|limit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_remove ===&lt;br /&gt;
{{begin-hl2msg|item_remove|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|item|either a weapon such as 'tmp' or 'hegrenade', or an item such as 'nvgs'}}&lt;br /&gt;
{{hl2msg|long|defindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== ammo_pickup ===&lt;br /&gt;
{{begin-hl2msg|ammo_pickup|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|item|either a weapon such as 'tmp' or 'hegrenade', or an item such as 'nvgs'}}&lt;br /&gt;
{{hl2msg|long|index|the weapon entindex}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_equip ===&lt;br /&gt;
{{begin-hl2msg|item_equip|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|item|either a weapon such as 'tmp' or 'hegrenade', or an item such as 'nvgs'}}&lt;br /&gt;
{{hl2msg|long|defindex|}}&lt;br /&gt;
{{hl2msg|bool|canzoom|}}&lt;br /&gt;
{{hl2msg|bool|hassilencer|}}&lt;br /&gt;
{{hl2msg|bool|issilenced|}}&lt;br /&gt;
{{hl2msg|bool|hastracers|}}&lt;br /&gt;
{{hl2msg|short|weptype|see below}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_UNKNOWN		&amp;amp;#61;	-1}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_KNIFE			&amp;amp;#61;	0}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_PISTOL		&amp;amp;#61;	1}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_SUBMACHINEGUN	&amp;amp;#61;	2}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_RIFLE			&amp;amp;#61;	3}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_SHOTGUN		&amp;amp;#61;	4}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_SNIPER_RIFLE	&amp;amp;#61;	5}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_MACHINEGUN	&amp;amp;#61;	6}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_C4			&amp;amp;#61;	7}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_TASER		&amp;amp;#61;	8}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_GRENADE		&amp;amp;#61;	9}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_HEALTHSHOT		&amp;amp;#61;	11}}&lt;br /&gt;
{{hl2msg|bool|ispainted|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== enter_buyzone ===&lt;br /&gt;
{{begin-hl2msg|enter_buyzone|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|bool|canbuy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== exit_buyzone ===&lt;br /&gt;
{{begin-hl2msg|exit_buyzone|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|bool|canbuy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== buytime_ended ===&lt;br /&gt;
{{begin-hl2msg|buytime_ended|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== enter_bombzone ===&lt;br /&gt;
{{begin-hl2msg|enter_bombzone|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|bool|hasbomb|}}&lt;br /&gt;
{{hl2msg|bool|isplanted|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== exit_bombzone ===&lt;br /&gt;
{{begin-hl2msg|exit_bombzone|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|bool|hasbomb|}}&lt;br /&gt;
{{hl2msg|bool|isplanted|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== enter_rescue_zone ===&lt;br /&gt;
{{begin-hl2msg|enter_rescue_zone|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== exit_rescue_zone ===&lt;br /&gt;
{{begin-hl2msg|exit_rescue_zone|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== silencer_off ===&lt;br /&gt;
{{begin-hl2msg|silencer_off|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== silencer_on ===&lt;br /&gt;
{{begin-hl2msg|silencer_on|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== buymenu_open ===&lt;br /&gt;
{{begin-hl2msg|buymenu_open|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== buymenu_close ===&lt;br /&gt;
{{begin-hl2msg|buymenu_close|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_prestart ===&lt;br /&gt;
{{qnotice|sent before all other round restart actions}}&lt;br /&gt;
{{begin-hl2msg|round_prestart|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_poststart ===&lt;br /&gt;
{{qnotice|sent after all other round restart actions}}&lt;br /&gt;
{{begin-hl2msg|round_poststart|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_start ===&lt;br /&gt;
{{begin-hl2msg|round_start|string}}&lt;br /&gt;
{{hl2msg|long|timelimit|round time limit in seconds}}&lt;br /&gt;
{{hl2msg|long|fraglimit|frag limit in seconds}}&lt;br /&gt;
{{hl2msg|string|objective|round objective}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_end ===&lt;br /&gt;
{{begin-hl2msg|round_end|string}}&lt;br /&gt;
{{hl2msg|byte|winner|winner team/user id}}&lt;br /&gt;
{{hl2msg|byte|reason|reason why team won}}&lt;br /&gt;
{{hl2msg|string|message|end round message}}&lt;br /&gt;
{{hl2msg|byte|legacy|server-generated legacy value}}&lt;br /&gt;
{{hl2msg|short|player_count|total number of players alive at the end of round, used for statistics gathering, computed on the server in the event client is in replay when receiving this message}}&lt;br /&gt;
{{hl2msg|byte|nomusic|if set, don't play round end music, because action is still on-going}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== grenade_bounce ===&lt;br /&gt;
{{qnotice|Every time a grenade bounces}}&lt;br /&gt;
{{begin-hl2msg|grenade_bounce|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hegrenade_detonate ===&lt;br /&gt;
{{qnotice|Every time a hegrenade explodes}}&lt;br /&gt;
{{begin-hl2msg|hegrenade_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== flashbang_detonate ===&lt;br /&gt;
{{qnotice|Every time a flashbang detonates}}&lt;br /&gt;
{{begin-hl2msg|flashbang_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== smokegrenade_detonate ===&lt;br /&gt;
{{qnotice|Every time a smokegrenade detonates}}&lt;br /&gt;
{{begin-hl2msg|smokegrenade_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== smokegrenade_expired ===&lt;br /&gt;
{{begin-hl2msg|smokegrenade_expired|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== molotov_detonate ===&lt;br /&gt;
{{begin-hl2msg|molotov_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== decoy_detonate ===&lt;br /&gt;
{{begin-hl2msg|decoy_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== decoy_started ===&lt;br /&gt;
{{begin-hl2msg|decoy_started|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tagrenade_detonate ===&lt;br /&gt;
{{qnotice|Every time a tagrenade explodes}}&lt;br /&gt;
{{begin-hl2msg|tagrenade_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== inferno_startburn ===&lt;br /&gt;
{{begin-hl2msg|inferno_startburn|string}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== inferno_expire ===&lt;br /&gt;
{{qnotice|}}&lt;br /&gt;
{{begin-hl2msg|inferno_expire|string}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== inferno_extinguish ===&lt;br /&gt;
{{qnotice|}}&lt;br /&gt;
{{begin-hl2msg|inferno_extinguish|string}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== decoy_firing ===&lt;br /&gt;
{{qnotice|}}&lt;br /&gt;
{{begin-hl2msg|decoy_firing|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bullet_impact ===&lt;br /&gt;
{{qnotice|Every time a bullet hits something}}&lt;br /&gt;
{{begin-hl2msg|bullet_impact|}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_footstep ===&lt;br /&gt;
{{qnotice|Every time a player takes a step}}&lt;br /&gt;
{{begin-hl2msg|player_footstep|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_jump ===&lt;br /&gt;
{{qnotice|Every time a player jumps}}&lt;br /&gt;
{{begin-hl2msg|player_jump|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_blind ===&lt;br /&gt;
{{qnotice|Every time a player is blinded by a flashbang}}&lt;br /&gt;
{{begin-hl2msg|player_blind|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|attacker|user ID who threw the flash}}&lt;br /&gt;
{{hl2msg|short|entityid|the flashbang going off}}&lt;br /&gt;
{{hl2msg|float|blind_duration|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_falldamage ===&lt;br /&gt;
{{qnotice|Every time a player takes damage due to a fall}}&lt;br /&gt;
{{begin-hl2msg|player_falldamage|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|float|damage|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== door_moving ===&lt;br /&gt;
{{qnotice|Every time a door is put in motion (opened)}}&lt;br /&gt;
{{begin-hl2msg|door_moving|string}}&lt;br /&gt;
{{hl2msg|long|entindex|}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_freeze_end ===&lt;br /&gt;
{{qnotice|When the round's mp_freezetime is up}}&lt;br /&gt;
{{begin-hl2msg|round_freeze_end|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== mb_input_lock_success ===&lt;br /&gt;
{{begin-hl2msg|mb_input_lock_success|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== mb_input_lock_cancel ===&lt;br /&gt;
{{begin-hl2msg|mb_input_lock_cancel|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== nav_blocked ===&lt;br /&gt;
{{qnotice|''Guess: Called when an area is blocked by the nav of a map''}}&lt;br /&gt;
{{begin-hl2msg|nav_blocked|string}}&lt;br /&gt;
{{hl2msg|long|area|}}&lt;br /&gt;
{{hl2msg|bool|blocked|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== nav_generate ===&lt;br /&gt;
{{qnotice|Called when a nav file does not exist for a map and bots are added}}&lt;br /&gt;
{{begin-hl2msg|nav_generate|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_stats_updated ===&lt;br /&gt;
{{qnotice|''Guess: Called when the player stats (achievments) are sent to valve''}}&lt;br /&gt;
{{begin-hl2msg|player_stats_updated|string}}&lt;br /&gt;
{{hl2msg|bool|forceupload|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== achievement_info_loaded ===&lt;br /&gt;
{{begin-hl2msg|achievement_info_loaded|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== spec_target_updated ===&lt;br /&gt;
{{begin-hl2msg|spec_target_updated|string}}&lt;br /&gt;
{{hl2msg|byte|userid|entindex of the player}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== spec_mode_updated ===&lt;br /&gt;
{{begin-hl2msg|spec_target_updated|string}}&lt;br /&gt;
{{hl2msg|byte|userid|entindex of the player}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hltv_changed_mode ===&lt;br /&gt;
{{begin-hl2msg|hltv_changed_mode|string}}&lt;br /&gt;
{{hl2msg|long|oldmode|}}&lt;br /&gt;
{{hl2msg|long|newmode|}}&lt;br /&gt;
{{hl2msg|long|obs_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_game_disconnected ===&lt;br /&gt;
{{begin-hl2msg|cs_game_disconnected|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_win_panel_round ===&lt;br /&gt;
{{begin-hl2msg|cs_win_panel_round|string}}&lt;br /&gt;
{{hl2msg|bool|show_timer_defend|}}&lt;br /&gt;
{{hl2msg|bool|show_timer_attack|}}&lt;br /&gt;
{{hl2msg|short|timer_time|}}&lt;br /&gt;
{{hl2msg|byte|final_event|defined in cs_gamerules.h}}&lt;br /&gt;
{{hl2msg|string|funfact_token|}}&lt;br /&gt;
{{hl2msg|short|funfact_player|}}&lt;br /&gt;
{{hl2msg|long|funfact_data1|}}&lt;br /&gt;
{{hl2msg|long|funfact_data2|}}&lt;br /&gt;
{{hl2msg|long|funfact_data3|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_win_panel_match ===&lt;br /&gt;
{{begin-hl2msg|cs_win_panel_match|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_match_end_restart ===&lt;br /&gt;
{{begin-hl2msg|cs_match_end_restart|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_pre_restart ===&lt;br /&gt;
{{begin-hl2msg|cs_pre_restart|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== show_freezepanel ===&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|show_freezepanel|string}}&lt;br /&gt;
{{hl2msg|short|victim|endindex of the one who was killed}}&lt;br /&gt;
{{hl2msg|short|killer|entindex of the killer entity}}&lt;br /&gt;
{{hl2msg|short|hits_taken|}}&lt;br /&gt;
{{hl2msg|short|damage_taken|}}&lt;br /&gt;
{{hl2msg|short|hits_given|}}&lt;br /&gt;
{{hl2msg|short|damage_given|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hide_freezepanel ===&lt;br /&gt;
{{begin-hl2msg|hide_freezepanel|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== freezecam_started ===&lt;br /&gt;
{{begin-hl2msg|freezecam_started|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_avenged_teammate ===&lt;br /&gt;
{{begin-hl2msg|player_avenged_teammate|string}}&lt;br /&gt;
{{hl2msg|short|avenger_id|}}&lt;br /&gt;
{{hl2msg|short|avenged_player_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== achievement_earned ===&lt;br /&gt;
{{begin-hl2msg|achievement_earned|string}}&lt;br /&gt;
{{hl2msg|byte|player|entindex of the player}}&lt;br /&gt;
{{hl2msg|short|achievement|achievement ID}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== achievement_earned_local ===&lt;br /&gt;
{{begin-hl2msg|achievement_earned_local|string}}&lt;br /&gt;
{{hl2msg|short|achievement|achievement ID}}&lt;br /&gt;
{{hl2msg|short|splitscreenplayer|splitscreen ID}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_found ===&lt;br /&gt;
{{begin-hl2msg|item_found|string}}&lt;br /&gt;
{{hl2msg|byte|player|entindex of the player}}&lt;br /&gt;
{{hl2msg|byte|quality|quality of the item}}&lt;br /&gt;
{{hl2msg|byte|method|method by which we acquired the item}}&lt;br /&gt;
{{hl2msg|long|itemdef|the item definition index}}&lt;br /&gt;
{{hl2msg|long|itemid|the item id in the players inventory}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== items_gifted ===&lt;br /&gt;
{{begin-hl2msg|items_gifted|string}}&lt;br /&gt;
{{hl2msg|byte|player|entindex of the player who sent the gift}}&lt;br /&gt;
{{hl2msg|long|itemdef|the item definition index of the gift that was opened}}&lt;br /&gt;
{{hl2msg|byte|numgifts|how many recipients got the gifts in this gift batch}}&lt;br /&gt;
{{hl2msg|byte|giftidx|index of recipient in this gift batch (0 for the first recipient, 1 for second, and so on...)}}&lt;br /&gt;
{{hl2msg|long|accountid|gift recipient's account ID}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== repost_xbox_achievements ===&lt;br /&gt;
{{begin-hl2msg|repost_xbox_achievements|string}}&lt;br /&gt;
{{hl2msg|short|splitscreenplayer|splitscreen ID}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== match_end_conditions ===&lt;br /&gt;
{{begin-hl2msg|match_end_conditions|string}}&lt;br /&gt;
{{hl2msg|long|frags|}}&lt;br /&gt;
{{hl2msg|long|max_rounds|}}&lt;br /&gt;
{{hl2msg|long|win_rounds|}}&lt;br /&gt;
{{hl2msg|long|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_mvp ===&lt;br /&gt;
{{begin-hl2msg|round_mvp|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|reason|}}&lt;br /&gt;
{{hl2msg|long|value|}}&lt;br /&gt;
{{hl2msg|long|musickitmvps|}}&lt;br /&gt;
{{hl2msg|byte|nomusic|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_decal ===&lt;br /&gt;
{{begin-hl2msg|player_decal|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== teamplay_round_start ===&lt;br /&gt;
{{begin-hl2msg|teamplay_round_start|string}}&lt;br /&gt;
{{hl2msg|bool|full_reset|is this a full reset of the map}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== show_survival_respawn_status ===&lt;br /&gt;
{{begin-hl2msg|show_survival_respawn_status|string}}&lt;br /&gt;
{{hl2msg|string|loc_token|}}&lt;br /&gt;
{{hl2msg|long|duration|}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== client_disconnect===&lt;br /&gt;
{{begin-hl2msg|client_disconnect|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_player_levelup ===&lt;br /&gt;
{{begin-hl2msg|gg_player_levelup|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who leveled up}}&lt;br /&gt;
{{hl2msg|short|weaponrank|}}&lt;br /&gt;
{{hl2msg|string|weaponname|name of weapon being awarded}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== ggtr_player_levelup ===&lt;br /&gt;
{{begin-hl2msg|ggtr_player_levelup|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who leveled up}}&lt;br /&gt;
{{hl2msg|short|weaponrank|}}&lt;br /&gt;
{{hl2msg|string|weaponname|name of weapon being awarded}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== assassination_target_killed ===&lt;br /&gt;
{{begin-hl2msg|assassination_target_killed|string}}&lt;br /&gt;
{{hl2msg|short|target|player killed}}&lt;br /&gt;
{{hl2msg|short|killer|killing player (with the quest)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== ggprogressive_player_levelup ===&lt;br /&gt;
{{begin-hl2msg|ggprogressive_player_levelup|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who leveled up}}&lt;br /&gt;
{{hl2msg|short|weaponrank|}}&lt;br /&gt;
{{hl2msg|string|weaponname|name of weapon being awarded}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_killed_enemy ===&lt;br /&gt;
{{begin-hl2msg|gg_killed_enemy|string}}&lt;br /&gt;
{{hl2msg|short|victimid|user ID who died}}&lt;br /&gt;
{{hl2msg|short|attackerid|user ID who killed}}&lt;br /&gt;
{{hl2msg|short|dominated|did killer dominate victim with this kill}}&lt;br /&gt;
{{hl2msg|short|revenge|did killer get revenge on victim with this kill}}&lt;br /&gt;
{{hl2msg|bool|bonus|did killer kill with a bonus weapon?}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_final_weapon_achieved ===&lt;br /&gt;
{{begin-hl2msg|gg_final_weapon_achieved|string}}&lt;br /&gt;
{{hl2msg|short|playerid|user ID who achieved the final gun game weapon}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_bonus_grenade_achieved ===&lt;br /&gt;
{{begin-hl2msg|gg_bonus_grenade_achieved|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID who achieved the bonus grenade}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== switch_team ===&lt;br /&gt;
{{begin-hl2msg|switch_team|string}}&lt;br /&gt;
{{hl2msg|short|numPlayers|number of active players on both T and CT}}&lt;br /&gt;
{{hl2msg|short|numSpectators|number of spectators}}&lt;br /&gt;
{{hl2msg|short|avg_rank|average rank of human players}}&lt;br /&gt;
{{hl2msg|short|numTSlotsFree|}}&lt;br /&gt;
{{hl2msg|short|numCTSlotsFree|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_leader ===&lt;br /&gt;
{{begin-hl2msg|gg_leader|string}}&lt;br /&gt;
{{hl2msg|short|playerid|user ID that is currently in the lead}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_team_leader ===&lt;br /&gt;
{{begin-hl2msg|gg_team_leader|string}}&lt;br /&gt;
{{hl2msg|short|playerid|user ID that is currently in the lead}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_player_impending_upgrade ===&lt;br /&gt;
{{begin-hl2msg|gg_player_impending_upgrade|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who will be leveling up}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== write_profile_data ===&lt;br /&gt;
{{begin-hl2msg|write_profile_data|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== trial_time_expired ===&lt;br /&gt;
{{qnotice|fired when a player runs out of time in trial mode}}&lt;br /&gt;
{{begin-hl2msg|trial_time_expired|string}}&lt;br /&gt;
{{hl2msg|short|slot|player whose time has expired}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== update_matchmaking_stats ===&lt;br /&gt;
{{begin-hl2msg|update_matchmaking_stats|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_reset_vote ===&lt;br /&gt;
{{begin-hl2msg|player_reset_vote|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|vote|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== enable_restart_voting ===&lt;br /&gt;
{{begin-hl2msg|enable_restart_voting|string}}&lt;br /&gt;
{{hl2msg|bool|enable|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== sfuievent ===&lt;br /&gt;
{{begin-hl2msg|sfuievent|string}}&lt;br /&gt;
{{hl2msg|string|action|}}&lt;br /&gt;
{{hl2msg|string|data|}}&lt;br /&gt;
{{hl2msg|byte|slot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== start_vote ===&lt;br /&gt;
{{begin-hl2msg|start_vote|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID on server}}&lt;br /&gt;
{{hl2msg|byte|type|}}&lt;br /&gt;
{{hl2msg|short|vote_parameter|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_given_c4 ===&lt;br /&gt;
{{begin-hl2msg|player_given_c4|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID who received the c4}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_become_ghost ===&lt;br /&gt;
{{begin-hl2msg|player_become_ghost|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID who became a ghost}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_reset_round_start_sounds ===&lt;br /&gt;
{{begin-hl2msg|gg_reset_round_start_sounds|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID who should have round start sounds reset}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tr_player_flashbanged ===&lt;br /&gt;
{{begin-hl2msg|tr_player_flashbanged|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID of the player banged}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tr_mark_complete ===&lt;br /&gt;
{{begin-hl2msg|tr_mark_complete|string}}&lt;br /&gt;
{{hl2msg|short|complete|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tr_mark_best_time ===&lt;br /&gt;
{{begin-hl2msg|tr_mark_best_time|string}}&lt;br /&gt;
{{hl2msg|long|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tr_exit_hint_trigger ===&lt;br /&gt;
{{begin-hl2msg|tr_exit_hint_trigger|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bot_takeover ===&lt;br /&gt;
{{begin-hl2msg|bot_takeover|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|botid|}}&lt;br /&gt;
{{hl2msg|short|index|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tr_show_finish_msgbox ===&lt;br /&gt;
{{begin-hl2msg|tr_show_finish_msgbox|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID of the player}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tr_show_exit_msgbox ===&lt;br /&gt;
{{begin-hl2msg|tr_show_exit_msgbox|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID of the player}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== reset_player_controls ===&lt;br /&gt;
{{qnotice|used for demos}}&lt;br /&gt;
{{begin-hl2msg|reset_player_controls|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== jointeam_failed ===&lt;br /&gt;
{{begin-hl2msg|jointeam_failed|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|byte|reason|0: team_full}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== teamchange_pending ===&lt;br /&gt;
{{begin-hl2msg|teamchange_pending|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|byte|toteam|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== material_default_complete ===&lt;br /&gt;
{{begin-hl2msg|material_default_complete|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_prev_next_spectator ===&lt;br /&gt;
{{begin-hl2msg|cs_prev_next_spectator|string}}&lt;br /&gt;
{{hl2msg|bool|next|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_handle_ime_event ===&lt;br /&gt;
{{begin-hl2msg|cs_handle_ime_event|string}}&lt;br /&gt;
{{hl2msg|1|local|}}&lt;br /&gt;
{{hl2msg|string|eventtype|}}&lt;br /&gt;
{{hl2msg|wstring|eventdata|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== nextlevel_changed ===&lt;br /&gt;
{{qnotice|a game event, name may be 32 characters long}}&lt;br /&gt;
{{begin-hl2msg|nextlevel_changed|string}}&lt;br /&gt;
{{hl2msg|string|nextlevel|}}&lt;br /&gt;
{{hl2msg|string|mapgroup|}}&lt;br /&gt;
{{hl2msg|string|skirmishmode|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== seasoncoin_levelup ===&lt;br /&gt;
{{begin-hl2msg|seasoncoin_levelup|string}}&lt;br /&gt;
{{hl2msg|short|player|entindex of the player}}&lt;br /&gt;
{{hl2msg|short|category|}}&lt;br /&gt;
{{hl2msg|short|rank|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tournament_reward ===&lt;br /&gt;
{{begin-hl2msg|tournament_reward|string}}&lt;br /&gt;
{{hl2msg|long|defindex|}}&lt;br /&gt;
{{hl2msg|long|totalrewards|}}&lt;br /&gt;
{{hl2msg|long|accountid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== start_halftime ===&lt;br /&gt;
{{begin-hl2msg|start_halftime|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== ammo_refill ===&lt;br /&gt;
{{begin-hl2msg|ammo_refill|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|bool|success|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== parachute_pickup ===&lt;br /&gt;
{{begin-hl2msg|parachute_pickup|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== parachute_deploy ===&lt;br /&gt;
{{begin-hl2msg|parachute_deploy|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== dronegun_attack ===&lt;br /&gt;
{{begin-hl2msg|dronegun_attack|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== drone_dispatched ===&lt;br /&gt;
{{begin-hl2msg|drone_dispatched|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|priority|}}&lt;br /&gt;
{{hl2msg|short|drone_dispatched|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== loot_crate_visible ===&lt;br /&gt;
{{begin-hl2msg|loot_crate_visible|string}}&lt;br /&gt;
{{hl2msg|short|userid|player entindex}}&lt;br /&gt;
{{hl2msg|short|subject|crate entindex}}&lt;br /&gt;
{{hl2msg|string|type|type of crate (metal, wood, or paradrop)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== loot_crate_opened ===&lt;br /&gt;
{{begin-hl2msg|loot_crate_opened|string}}&lt;br /&gt;
{{hl2msg|short|userid|player entindex}}&lt;br /&gt;
{{hl2msg|string|type|type of crate (metal, wood, or paradrop)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== open_crate_instr ===&lt;br /&gt;
{{begin-hl2msg|open_crate_instr|string}}&lt;br /&gt;
{{hl2msg|short|userid|player entindex}}&lt;br /&gt;
{{hl2msg|short|subject|crate entindex}}&lt;br /&gt;
{{hl2msg|string|type|type of crate (metal, wood, or paradrop)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== smoke_beacon_paradrop ===&lt;br /&gt;
{{begin-hl2msg|smoke_beacon_paradrop|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|paradrop|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== survival_paradrop_spawn ===&lt;br /&gt;
{{begin-hl2msg|survival_paradrop_spawn|string}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== survival_paradrop_break ===&lt;br /&gt;
{{begin-hl2msg|survival_paradrop_break|string}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== drone_cargo_detached ===&lt;br /&gt;
{{begin-hl2msg|drone_cargo_detached|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|cargo|}}&lt;br /&gt;
{{hl2msg|bool|delivered|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== drone_above_roof ===&lt;br /&gt;
{{begin-hl2msg|drone_above_roof|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|cargo|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== choppers_incoming_warning ===&lt;br /&gt;
{{begin-hl2msg|choppers_incoming_warning|string}}&lt;br /&gt;
{{hl2msg|bool|global|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== firstbombs_incoming_warning ===&lt;br /&gt;
{{begin-hl2msg|firstbombs_incoming_warning|string}}&lt;br /&gt;
{{hl2msg|bool|global|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== dz_item_interaction ===&lt;br /&gt;
{{begin-hl2msg|dz_item_interaction|string}}&lt;br /&gt;
{{hl2msg|short|userid|player entindex}}&lt;br /&gt;
{{hl2msg|short|subject|crate entindex}}&lt;br /&gt;
{{hl2msg|string|type|type of crate (metal, wood, or paradrop)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== snowball_hit_player_face ===&lt;br /&gt;
{{begin-hl2msg|snowball_hit_player_face|string}}&lt;br /&gt;
{{hl2msg|short|userid|player userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== survival_teammate_respawn ===&lt;br /&gt;
{{begin-hl2msg|survival_teammate_respawn|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== survival_no_respawns_warning ===&lt;br /&gt;
{{begin-hl2msg|survival_no_respawns_warning|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== survival_no_respawns_final ===&lt;br /&gt;
{{begin-hl2msg|survival_no_respawns_final|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_ping ===&lt;br /&gt;
{{begin-hl2msg|player_ping|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{hl2msg|bool|urgent|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_ping_stop ===&lt;br /&gt;
{{begin-hl2msg|player_ping_stop|string}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== guardian_wave_restart ===&lt;br /&gt;
{{begin-hl2msg|guardian_wave_restart|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;/div&gt;</summary>
		<author><name>Micapat</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_Events&amp;diff=11130</id>
		<title>Counter-Strike: Global Offensive Events</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Counter-Strike:_Global_Offensive_Events&amp;diff=11130"/>
		<updated>2020-12-19T13:57:38Z</updated>

		<summary type="html">&lt;p&gt;Micapat: Update to the last CS:GO version (17 december 2020)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:''Refer back to [[Game Events (Source)]] for more events.''&lt;br /&gt;
The following events can be found in '''csgo\pak01_dir.vpk''' in the file '''resource\modevents.res'''.&lt;br /&gt;
&lt;br /&gt;
Other events not listed here can be found in: &lt;br /&gt;
&lt;br /&gt;
- resource\gameevents.res&lt;br /&gt;
- resource\demoimportantevents.res&lt;br /&gt;
- resource\serverevents.res&lt;br /&gt;
- resource\hltvevents.res&lt;br /&gt;
- resource\replayevents.res&lt;br /&gt;
&lt;br /&gt;
=== player_death ===&lt;br /&gt;
{{qnotice|When a client dies}}&lt;br /&gt;
{{begin-hl2msg|player_death|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID who died}}&lt;br /&gt;
{{hl2msg|short|attacker|user ID who killed}}&lt;br /&gt;
{{hl2msg|short|assister|user ID who assisted in the kill}}&lt;br /&gt;
{{hl2msg|bool|assistedflash|assister helped with a flash}}&lt;br /&gt;
{{hl2msg|string|weapon|weapon name killer used}}&lt;br /&gt;
{{hl2msg|string|weapon_itemid|inventory item id of weapon killer used}}&lt;br /&gt;
{{hl2msg|string|weapon_fauxitemid|faux item id of weapon killer used}}&lt;br /&gt;
{{hl2msg|string|weapon_originalowner_xuid|}}&lt;br /&gt;
{{hl2msg|bool|headshot|signals a headshot}}&lt;br /&gt;
{{hl2msg|short|dominated|did killer dominate victim with this kill}}&lt;br /&gt;
{{hl2msg|short|revenge|did killer get revenge on victim with this kill}}&lt;br /&gt;
{{hl2msg|short|wipe|To do: check if indicates on a squad wipeout in Danger Zone}}&lt;br /&gt;
{{hl2msg|short|penetrated|number of objects shot penetrated before killing target}}&lt;br /&gt;
{{hl2msg|bool|noreplay|if replay data is unavailable, this will be present and set to false}}&lt;br /&gt;
{{hl2msg|bool|noscope|kill happened without a scope, used for death notice icon}}&lt;br /&gt;
{{hl2msg|bool|thrusmoke|hitscan weapon went through smoke grenade}}&lt;br /&gt;
{{hl2msg|bool|attackerblind|attacker was blind from flashbang}}&lt;br /&gt;
{{hl2msg|float|distance|distance to victim in meters}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== other_death ===&lt;br /&gt;
{{qnotice|As far as I know only used for chicken deaths at the moment}}&lt;br /&gt;
{{begin-hl2msg|other_death|string}}&lt;br /&gt;
{{hl2msg|short|otherid|}}&lt;br /&gt;
{{hl2msg|string|othertype|}}&lt;br /&gt;
{{hl2msg|short|attacker|user ID who attacked}}&lt;br /&gt;
{{hl2msg|string|weapon|weapon name attacker used, if not the world}}&lt;br /&gt;
{{hl2msg|string|weapon_itemid|inventory item id of weapon killer used}}&lt;br /&gt;
{{hl2msg|string|weapon_fauxitemid|faux item id of weapon killer used}}&lt;br /&gt;
{{hl2msg|string|weapon_originalowner_xuid|}}&lt;br /&gt;
{{hl2msg|bool|headshot|signals a headshot}}&lt;br /&gt;
{{hl2msg|short|penetrated|number of objects shot penetrated before killing target}}&lt;br /&gt;
{{hl2msg|bool|noscope|kill happened without a scope, used for death notice icon}}&lt;br /&gt;
{{hl2msg|bool|thrusmoke|hitscan weapon went through smoke grenade}}&lt;br /&gt;
{{hl2msg|bool|attackerblind|attacker was blind from flashbang}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_hurt ===&lt;br /&gt;
{{begin-hl2msg|player_hurt|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID of who was hurt}}&lt;br /&gt;
{{hl2msg|short|attacker|user ID of who attacked}}&lt;br /&gt;
{{hl2msg|byte|health|remaining health points}}&lt;br /&gt;
{{hl2msg|byte|armor|remaining armor points}}&lt;br /&gt;
{{hl2msg|string|weapon|weapon name attacker used, if not the world}}&lt;br /&gt;
{{hl2msg|short|dmg_health|damage done to health}}&lt;br /&gt;
{{hl2msg|byte|dmg_armor|damage done to armor}}&lt;br /&gt;
{{hl2msg|byte|hitgroup|hitgroup that was damaged}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_purchase ===&lt;br /&gt;
{{begin-hl2msg|item_purchase|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|team|}}&lt;br /&gt;
{{hl2msg|short|loadout|}}&lt;br /&gt;
{{hl2msg|string|weapon|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_beginplant ===&lt;br /&gt;
{{qnotice|When the bomb is starting to get planted}}&lt;br /&gt;
{{begin-hl2msg|bomb_beginplant|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who is planting the bomb}}&lt;br /&gt;
{{hl2msg|short|site|bombsite index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_abortplant ===&lt;br /&gt;
{{qnotice|When the bomb planter stops planting the bomb}}&lt;br /&gt;
{{begin-hl2msg|bomb_abortplant|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who is planting the bomb}}&lt;br /&gt;
{{hl2msg|short|site|bombsite index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_planted ===&lt;br /&gt;
{{qnotice|When the bomb has been planted}}&lt;br /&gt;
{{begin-hl2msg|bomb_planted|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who planted the bomb}}&lt;br /&gt;
{{hl2msg|short|site|bombsite index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_defused ===&lt;br /&gt;
{{qnotice|When the bomb has been defused}}&lt;br /&gt;
{{begin-hl2msg|bomb_defused|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who defused the bomb}}&lt;br /&gt;
{{hl2msg|short|site|bombsite index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_exploded ===&lt;br /&gt;
{{qnotice|When the bomb explodes}}&lt;br /&gt;
{{begin-hl2msg|bomb_exploded|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who planted the bomb}}&lt;br /&gt;
{{hl2msg|short|site|bombsite index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_dropped ===&lt;br /&gt;
{{qnotice|When the bomb is dropped by a client}}&lt;br /&gt;
{{begin-hl2msg|bomb_dropped|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who dropped the bomb}}&lt;br /&gt;
{{hl2msg|long|entindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_pickup ===&lt;br /&gt;
{{qnotice|When the bomb is picked up by a client}}&lt;br /&gt;
{{begin-hl2msg|bomb_pickup|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who picked up the bomb}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== defuser_dropped ===&lt;br /&gt;
{{qnotice|When the defuser is dropped by a client}}&lt;br /&gt;
{{begin-hl2msg|defuser_dropped|string}}&lt;br /&gt;
{{hl2msg|long|entityid|defuser's entity ID}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== defuser_pickup ===&lt;br /&gt;
{{qnotice|When the defuser is picked up by a client}}&lt;br /&gt;
{{begin-hl2msg|defuser_pickup|string}}&lt;br /&gt;
{{hl2msg|long|entityid|defuser's entity ID}}&lt;br /&gt;
{{hl2msg|short|userid|player who picked up the defuser}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== announce_phase_end ===&lt;br /&gt;
{{begin-hl2msg|announce_phase_end|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_intermission ===&lt;br /&gt;
{{begin-hl2msg|cs_intermission|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_begindefuse ===&lt;br /&gt;
{{qnotice|When the bomb is started to be defused}}&lt;br /&gt;
{{begin-hl2msg|bomb_begindefuse|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who is defusing}}&lt;br /&gt;
{{hl2msg|bool|haskit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_abortdefuse ===&lt;br /&gt;
{{qnotice|When the bomb defusal is stopped}}&lt;br /&gt;
{{begin-hl2msg|bomb_abortdefuse|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who was defusing}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_follows ===&lt;br /&gt;
{{qnotice|When the hostage begins following a client}}&lt;br /&gt;
{{begin-hl2msg|hostage_follows|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who touched the hostage}}&lt;br /&gt;
{{hl2msg|short|hostage|hostage entity index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_hurt ===&lt;br /&gt;
{{qnotice|When a hostage is damaged}}&lt;br /&gt;
{{begin-hl2msg|hostage_hurt|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who hurt the hostage}}&lt;br /&gt;
{{hl2msg|short|hostage|hostage entity index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_killed ===&lt;br /&gt;
{{qnotice|When a hostage is killed}}&lt;br /&gt;
{{begin-hl2msg|hostage_killed|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who killed the hostage}}&lt;br /&gt;
{{hl2msg|short|hostage|hostage entity index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_rescued ===&lt;br /&gt;
{{qnotice|When a hostage is rescued}}&lt;br /&gt;
{{begin-hl2msg|hostage_rescued|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who rescued the hostage}}&lt;br /&gt;
{{hl2msg|short|hostage|hostage entity index}}&lt;br /&gt;
{{hl2msg|short|site|rescue site index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_stops_following ===&lt;br /&gt;
{{qnotice|When a hostage stops following a client}}&lt;br /&gt;
{{begin-hl2msg|hostage_stops_following|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who rescued the hostage}}&lt;br /&gt;
{{hl2msg|short|hostage|hostage entity index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_rescued_all ===&lt;br /&gt;
{{qnotice|When all the hostages are rescued}}&lt;br /&gt;
{{begin-hl2msg|hostage_rescued_all|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hostage_call_for_help ===&lt;br /&gt;
{{qnotice|When the hostage calls for help}}&lt;br /&gt;
{{begin-hl2msg|hostage_call_for_help|string}}&lt;br /&gt;
{{hl2msg|short|hostage|hostage entity index}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== vip_escaped ===&lt;br /&gt;
{{qnotice|When the VIP escapes}}&lt;br /&gt;
{{begin-hl2msg|vip_escaped|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who was the VIP}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== vip_killed ===&lt;br /&gt;
{{qnotice|When the VIP is killed}}&lt;br /&gt;
{{begin-hl2msg|vip_killed|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who was the VIP}}&lt;br /&gt;
{{hl2msg|short|attacker|user ID who killed the VIP}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_radio ===&lt;br /&gt;
{{qnotice|When the player uses radio commands}}&lt;br /&gt;
{{begin-hl2msg|player_radio|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|slot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bomb_beep ===&lt;br /&gt;
{{qnotice|Every time the bomb beep sound happens}}&lt;br /&gt;
{{begin-hl2msg|bomb_beep|string}}&lt;br /&gt;
{{hl2msg|long|entindex|c4 entity}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_fire ===&lt;br /&gt;
{{qnotice|Every time a client fires their weapon}}&lt;br /&gt;
{{begin-hl2msg|weapon_fire|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|weapon|weapon name used}}&lt;br /&gt;
{{hl2msg|bool|silenced|is weapon silenced}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_fire_on_empty ===&lt;br /&gt;
{{qnotice|Every time a client fires their weapon and it's empty}}&lt;br /&gt;
{{begin-hl2msg|weapon_fire_on_empty|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|weapon|weapon name used}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== grenade_thrown ===&lt;br /&gt;
{{qnotice|Every time a client throws their grenade}}&lt;br /&gt;
{{begin-hl2msg|weapon_fire_on_empty|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|weapon|weapon name used}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_outofammo ===&lt;br /&gt;
{{begin-hl2msg|weapon_outofammo|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_reload ===&lt;br /&gt;
{{qnotice|Every time a client reloads their weapon}}&lt;br /&gt;
{{begin-hl2msg|weapon_reload|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_zoom ===&lt;br /&gt;
{{qnotice|Every time a client zooms a scoped weapon}}&lt;br /&gt;
{{begin-hl2msg|weapon_zoom|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== silencer_detach ===&lt;br /&gt;
{{begin-hl2msg|silencer_detach|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== inspect_weapon ===&lt;br /&gt;
{{begin-hl2msg|inspect_weapon|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== weapon_zoom_rifle ===&lt;br /&gt;
{{qnotice|exists for the game instructor to let it know when the player zoomed in with a regular rifle. Different from the above weapon_zoom because we don't use this event to notify bots}}&lt;br /&gt;
{{begin-hl2msg|weapon_zoom_rifle|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_spawned ===&lt;br /&gt;
{{begin-hl2msg|player_spawned|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|bool|inrestart|true if restart is pending}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_pickup ===&lt;br /&gt;
{{qnotice|Every time an item is picked up (generally weapons)}}&lt;br /&gt;
{{begin-hl2msg|item_pickup|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|item|either a weapon such as 'tmp' or 'hegrenade', or an item such as 'nvgs'}}&lt;br /&gt;
{{hl2msg|bool|silent|}}&lt;br /&gt;
{{hl2msg|long|defindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_pickup_slerp ===&lt;br /&gt;
{{begin-hl2msg|item_pickup_slerp|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|index|}}&lt;br /&gt;
{{hl2msg|short|behavior|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_pickup_failed ===&lt;br /&gt;
{{begin-hl2msg|item_pickup_failed|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|item|}}&lt;br /&gt;
{{hl2msg|short|reason|}}&lt;br /&gt;
{{hl2msg|short|limit|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_remove ===&lt;br /&gt;
{{begin-hl2msg|item_remove|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|item|either a weapon such as 'tmp' or 'hegrenade', or an item such as 'nvgs'}}&lt;br /&gt;
{{hl2msg|long|defindex|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== ammo_pickup ===&lt;br /&gt;
{{begin-hl2msg|ammo_pickup|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|item|either a weapon such as 'tmp' or 'hegrenade', or an item such as 'nvgs'}}&lt;br /&gt;
{{hl2msg|long|index|the weapon entindex}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_equip ===&lt;br /&gt;
{{begin-hl2msg|item_equip|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|string|item|either a weapon such as 'tmp' or 'hegrenade', or an item such as 'nvgs'}}&lt;br /&gt;
{{hl2msg|long|defindex|}}&lt;br /&gt;
{{hl2msg|bool|canzoom|}}&lt;br /&gt;
{{hl2msg|bool|hassilencer|}}&lt;br /&gt;
{{hl2msg|bool|issilenced|}}&lt;br /&gt;
{{hl2msg|bool|hastracers|}}&lt;br /&gt;
{{hl2msg|short|weptype|see below}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_UNKNOWN		&amp;amp;#61;	-1}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_KNIFE			&amp;amp;#61;	0}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_PISTOL		&amp;amp;#61;	1}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_SUBMACHINEGUN	&amp;amp;#61;	2}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_RIFLE			&amp;amp;#61;	3}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_SHOTGUN		&amp;amp;#61;	4}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_SNIPER_RIFLE	&amp;amp;#61;	5}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_MACHINEGUN	&amp;amp;#61;	6}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_C4			&amp;amp;#61;	7}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_TASER		&amp;amp;#61;	8}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_GRENADE		&amp;amp;#61;	9}}&lt;br /&gt;
{{hl2msg|||WEAPONTYPE_HEALTHSHOT		&amp;amp;#61;	11}}&lt;br /&gt;
{{hl2msg|bool|ispainted|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== enter_buyzone ===&lt;br /&gt;
{{begin-hl2msg|enter_buyzone|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|bool|canbuy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== exit_buyzone ===&lt;br /&gt;
{{begin-hl2msg|exit_buyzone|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|bool|canbuy|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== buytime_ended ===&lt;br /&gt;
{{begin-hl2msg|buytime_ended|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== enter_bombzone ===&lt;br /&gt;
{{begin-hl2msg|enter_bombzone|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|bool|hasbomb|}}&lt;br /&gt;
{{hl2msg|bool|isplanted|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== exit_bombzone ===&lt;br /&gt;
{{begin-hl2msg|exit_bombzone|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|bool|hasbomb|}}&lt;br /&gt;
{{hl2msg|bool|isplanted|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== enter_rescue_zone ===&lt;br /&gt;
{{begin-hl2msg|enter_rescue_zone|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== exit_rescue_zone ===&lt;br /&gt;
{{begin-hl2msg|exit_rescue_zone|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== silencer_off ===&lt;br /&gt;
{{begin-hl2msg|silencer_off|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== silencer_on ===&lt;br /&gt;
{{begin-hl2msg|silencer_on|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== buymenu_open ===&lt;br /&gt;
{{begin-hl2msg|buymenu_open|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== buymenu_close ===&lt;br /&gt;
{{begin-hl2msg|buymenu_close|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_prestart ===&lt;br /&gt;
{{qnotice|sent before all other round restart actions}}&lt;br /&gt;
{{begin-hl2msg|round_prestart|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_poststart ===&lt;br /&gt;
{{qnotice|sent after all other round restart actions}}&lt;br /&gt;
{{begin-hl2msg|round_poststart|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_start ===&lt;br /&gt;
{{begin-hl2msg|round_start|string}}&lt;br /&gt;
{{hl2msg|long|timelimit|round time limit in seconds}}&lt;br /&gt;
{{hl2msg|long|fraglimit|frag limit in seconds}}&lt;br /&gt;
{{hl2msg|string|objective|round objective}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_end ===&lt;br /&gt;
{{begin-hl2msg|round_end|string}}&lt;br /&gt;
{{hl2msg|byte|winner|winner team/user id}}&lt;br /&gt;
{{hl2msg|byte|reason|reason why team won}}&lt;br /&gt;
{{hl2msg|string|message|end round message}}&lt;br /&gt;
{{hl2msg|byte|legacy|server-generated legacy value}}&lt;br /&gt;
{{hl2msg|short|player_count|total number of players alive at the end of round, used for statistics gathering, computed on the server in the event client is in replay when receiving this message}}&lt;br /&gt;
{{hl2msg|byte|nomusic|if set, don't play round end music, because action is still on-going}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== grenade_bounce ===&lt;br /&gt;
{{qnotice|Every time a grenade bounces}}&lt;br /&gt;
{{begin-hl2msg|grenade_bounce|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hegrenade_detonate ===&lt;br /&gt;
{{qnotice|Every time a hegrenade explodes}}&lt;br /&gt;
{{begin-hl2msg|hegrenade_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== flashbang_detonate ===&lt;br /&gt;
{{qnotice|Every time a flashbang detonates}}&lt;br /&gt;
{{begin-hl2msg|flashbang_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== smokegrenade_detonate ===&lt;br /&gt;
{{qnotice|Every time a smokegrenade detonates}}&lt;br /&gt;
{{begin-hl2msg|smokegrenade_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== smokegrenade_expired ===&lt;br /&gt;
{{begin-hl2msg|smokegrenade_expired|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== molotov_detonate ===&lt;br /&gt;
{{begin-hl2msg|molotov_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== decoy_detonate ===&lt;br /&gt;
{{begin-hl2msg|decoy_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== decoy_started ===&lt;br /&gt;
{{begin-hl2msg|decoy_started|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tagrenade_detonate ===&lt;br /&gt;
{{qnotice|Every time a tagrenade explodes}}&lt;br /&gt;
{{begin-hl2msg|tagrenade_detonate|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== inferno_startburn ===&lt;br /&gt;
{{begin-hl2msg|inferno_startburn|string}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== inferno_expire ===&lt;br /&gt;
{{qnotice|}}&lt;br /&gt;
{{begin-hl2msg|inferno_expire|string}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== inferno_extinguish ===&lt;br /&gt;
{{qnotice|}}&lt;br /&gt;
{{begin-hl2msg|inferno_extinguish|string}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== decoy_firing ===&lt;br /&gt;
{{qnotice|}}&lt;br /&gt;
{{begin-hl2msg|decoy_firing|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bullet_impact ===&lt;br /&gt;
{{qnotice|Every time a bullet hits something}}&lt;br /&gt;
{{begin-hl2msg|bullet_impact|}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_footstep ===&lt;br /&gt;
{{qnotice|Every time a player takes a step}}&lt;br /&gt;
{{begin-hl2msg|player_footstep|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_jump ===&lt;br /&gt;
{{qnotice|Every time a player jumps}}&lt;br /&gt;
{{begin-hl2msg|player_jump|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_blind ===&lt;br /&gt;
{{qnotice|Every time a player is blinded by a flashbang}}&lt;br /&gt;
{{begin-hl2msg|player_blind|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|attacker|user ID who threw the flash}}&lt;br /&gt;
{{hl2msg|short|entityid|the flashbang going off}}&lt;br /&gt;
{{hl2msg|float|blind_duration|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_falldamage ===&lt;br /&gt;
{{qnotice|Every time a player takes damage due to a fall}}&lt;br /&gt;
{{begin-hl2msg|player_falldamage|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|float|damage|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== door_moving ===&lt;br /&gt;
{{qnotice|Every time a door is put in motion (opened)}}&lt;br /&gt;
{{begin-hl2msg|door_moving|string}}&lt;br /&gt;
{{hl2msg|long|entindex|}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_freeze_end ===&lt;br /&gt;
{{qnotice|When the round's mp_freezetime is up}}&lt;br /&gt;
{{begin-hl2msg|round_freeze_end|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== mb_input_lock_success ===&lt;br /&gt;
{{begin-hl2msg|mb_input_lock_success|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== mb_input_lock_cancel ===&lt;br /&gt;
{{begin-hl2msg|mb_input_lock_cancel|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== nav_blocked ===&lt;br /&gt;
{{qnotice|''Guess: Called when an area is blocked by the nav of a map''}}&lt;br /&gt;
{{begin-hl2msg|nav_blocked|string}}&lt;br /&gt;
{{hl2msg|long|area|}}&lt;br /&gt;
{{hl2msg|bool|blocked|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== nav_generate ===&lt;br /&gt;
{{qnotice|Called when a nav file does not exist for a map and bots are added}}&lt;br /&gt;
{{begin-hl2msg|nav_generate|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_stats_updated ===&lt;br /&gt;
{{qnotice|''Guess: Called when the player stats (achievments) are sent to valve''}}&lt;br /&gt;
{{begin-hl2msg|player_stats_updated|string}}&lt;br /&gt;
{{hl2msg|bool|forceupload|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== achievement_info_loaded ===&lt;br /&gt;
{{begin-hl2msg|achievement_info_loaded|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== spec_target_updated ===&lt;br /&gt;
{{begin-hl2msg|spec_target_updated|string}}&lt;br /&gt;
{{hl2msg|byte|userid|entindex of the player}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== spec_mode_updated ===&lt;br /&gt;
{{begin-hl2msg|spec_target_updated|string}}&lt;br /&gt;
{{hl2msg|byte|userid|entindex of the player}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hltv_changed_mode ===&lt;br /&gt;
{{begin-hl2msg|hltv_changed_mode|string}}&lt;br /&gt;
{{hl2msg|long|oldmode|}}&lt;br /&gt;
{{hl2msg|long|newmode|}}&lt;br /&gt;
{{hl2msg|long|obs_target|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_game_disconnected ===&lt;br /&gt;
{{begin-hl2msg|cs_game_disconnected|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_win_panel_round ===&lt;br /&gt;
{{begin-hl2msg|cs_win_panel_round|string}}&lt;br /&gt;
{{hl2msg|bool|show_timer_defend|}}&lt;br /&gt;
{{hl2msg|bool|show_timer_attack|}}&lt;br /&gt;
{{hl2msg|short|timer_time|}}&lt;br /&gt;
{{hl2msg|byte|final_event|defined in cs_gamerules.h}}&lt;br /&gt;
{{hl2msg|string|funfact_token|}}&lt;br /&gt;
{{hl2msg|short|funfact_player|}}&lt;br /&gt;
{{hl2msg|long|funfact_data1|}}&lt;br /&gt;
{{hl2msg|long|funfact_data2|}}&lt;br /&gt;
{{hl2msg|long|funfact_data3|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_win_panel_match ===&lt;br /&gt;
{{begin-hl2msg|cs_win_panel_match|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_match_end_restart ===&lt;br /&gt;
{{begin-hl2msg|cs_match_end_restart|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_pre_restart ===&lt;br /&gt;
{{begin-hl2msg|cs_pre_restart|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== show_freezepanel ===&lt;br /&gt;
&lt;br /&gt;
{{begin-hl2msg|show_freezepanel|string}}&lt;br /&gt;
{{hl2msg|short|victim|endindex of the one who was killed}}&lt;br /&gt;
{{hl2msg|short|killer|entindex of the killer entity}}&lt;br /&gt;
{{hl2msg|short|hits_taken|}}&lt;br /&gt;
{{hl2msg|short|damage_taken|}}&lt;br /&gt;
{{hl2msg|short|hits_given|}}&lt;br /&gt;
{{hl2msg|short|damage_given|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== hide_freezepanel ===&lt;br /&gt;
{{begin-hl2msg|hide_freezepanel|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== freezecam_started ===&lt;br /&gt;
{{begin-hl2msg|freezecam_started|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_avenged_teammate ===&lt;br /&gt;
{{begin-hl2msg|player_avenged_teammate|string}}&lt;br /&gt;
{{hl2msg|short|avenger_id|}}&lt;br /&gt;
{{hl2msg|short|avenged_player_id|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== achievement_earned ===&lt;br /&gt;
{{begin-hl2msg|achievement_earned|string}}&lt;br /&gt;
{{hl2msg|byte|player|entindex of the player}}&lt;br /&gt;
{{hl2msg|short|achievement|achievement ID}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== achievement_earned_local ===&lt;br /&gt;
{{begin-hl2msg|achievement_earned_local|string}}&lt;br /&gt;
{{hl2msg|short|achievement|achievement ID}}&lt;br /&gt;
{{hl2msg|short|splitscreenplayer|splitscreen ID}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== item_found ===&lt;br /&gt;
{{begin-hl2msg|item_found|string}}&lt;br /&gt;
{{hl2msg|byte|player|entindex of the player}}&lt;br /&gt;
{{hl2msg|byte|quality|quality of the item}}&lt;br /&gt;
{{hl2msg|byte|method|method by which we acquired the item}}&lt;br /&gt;
{{hl2msg|long|itemdef|the item definition index}}&lt;br /&gt;
{{hl2msg|long|itemid|the item id in the players inventory}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== items_gifted ===&lt;br /&gt;
{{begin-hl2msg|items_gifted|string}}&lt;br /&gt;
{{hl2msg|byte|player|entindex of the player who sent the gift}}&lt;br /&gt;
{{hl2msg|long|itemdef|the item definition index of the gift that was opened}}&lt;br /&gt;
{{hl2msg|byte|numgifts|how many recipients got the gifts in this gift batch}}&lt;br /&gt;
{{hl2msg|byte|giftidx|index of recipient in this gift batch (0 for the first recipient, 1 for second, and so on...)}}&lt;br /&gt;
{{hl2msg|long|accountid|gift recipient's account ID}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== repost_xbox_achievements ===&lt;br /&gt;
{{begin-hl2msg|repost_xbox_achievements|string}}&lt;br /&gt;
{{hl2msg|short|splitscreenplayer|splitscreen ID}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== match_end_conditions ===&lt;br /&gt;
{{begin-hl2msg|match_end_conditions|string}}&lt;br /&gt;
{{hl2msg|long|frags|}}&lt;br /&gt;
{{hl2msg|long|max_rounds|}}&lt;br /&gt;
{{hl2msg|long|win_rounds|}}&lt;br /&gt;
{{hl2msg|long|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== round_mvp ===&lt;br /&gt;
{{begin-hl2msg|round_mvp|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|reason|}}&lt;br /&gt;
{{hl2msg|long|value|}}&lt;br /&gt;
{{hl2msg|long|musickitmvps|}}&lt;br /&gt;
{{hl2msg|byte|nomusic|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_decal ===&lt;br /&gt;
{{begin-hl2msg|player_decal|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== teamplay_round_start ===&lt;br /&gt;
{{begin-hl2msg|teamplay_round_start|string}}&lt;br /&gt;
{{hl2msg|bool|full_reset|is this a full reset of the map}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== show_survival_respawn_status ===&lt;br /&gt;
{{begin-hl2msg|show_survival_respawn_status|string}}&lt;br /&gt;
{{hl2msg|string|loc_token|}}&lt;br /&gt;
{{hl2msg|long|duration|}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== client_disconnect===&lt;br /&gt;
{{begin-hl2msg|client_disconnect|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_player_levelup ===&lt;br /&gt;
{{begin-hl2msg|gg_player_levelup|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who leveled up}}&lt;br /&gt;
{{hl2msg|short|weaponrank|}}&lt;br /&gt;
{{hl2msg|string|weaponname|name of weapon being awarded}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== ggtr_player_levelup ===&lt;br /&gt;
{{begin-hl2msg|ggtr_player_levelup|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who leveled up}}&lt;br /&gt;
{{hl2msg|short|weaponrank|}}&lt;br /&gt;
{{hl2msg|string|weaponname|name of weapon being awarded}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== assassination_target_killed ===&lt;br /&gt;
{{begin-hl2msg|assassination_target_killed|string}}&lt;br /&gt;
{{hl2msg|short|target|player killed}}&lt;br /&gt;
{{hl2msg|short|killer|killing player (with the quest)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== ggprogressive_player_levelup ===&lt;br /&gt;
{{begin-hl2msg|ggprogressive_player_levelup|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who leveled up}}&lt;br /&gt;
{{hl2msg|short|weaponrank|}}&lt;br /&gt;
{{hl2msg|string|weaponname|name of weapon being awarded}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_killed_enemy ===&lt;br /&gt;
{{begin-hl2msg|gg_killed_enemy|string}}&lt;br /&gt;
{{hl2msg|short|victimid|user ID who died}}&lt;br /&gt;
{{hl2msg|short|attackerid|user ID who killed}}&lt;br /&gt;
{{hl2msg|short|dominated|did killer dominate victim with this kill}}&lt;br /&gt;
{{hl2msg|short|revenge|did killer get revenge on victim with this kill}}&lt;br /&gt;
{{hl2msg|bool|bonus|did killer kill with a bonus weapon?}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_final_weapon_achieved ===&lt;br /&gt;
{{begin-hl2msg|gg_final_weapon_achieved|string}}&lt;br /&gt;
{{hl2msg|short|playerid|user ID who achieved the final gun game weapon}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_bonus_grenade_achieved ===&lt;br /&gt;
{{begin-hl2msg|gg_bonus_grenade_achieved|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID who achieved the bonus grenade}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== switch_team ===&lt;br /&gt;
{{begin-hl2msg|switch_team|string}}&lt;br /&gt;
{{hl2msg|short|numPlayers|number of active players on both T and CT}}&lt;br /&gt;
{{hl2msg|short|numSpectators|number of spectators}}&lt;br /&gt;
{{hl2msg|short|avg_rank|average rank of human players}}&lt;br /&gt;
{{hl2msg|short|numTSlotsFree|}}&lt;br /&gt;
{{hl2msg|short|numCTSlotsFree|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_leader ===&lt;br /&gt;
{{begin-hl2msg|gg_leader|string}}&lt;br /&gt;
{{hl2msg|short|playerid|user ID that is currently in the lead}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_team_leader ===&lt;br /&gt;
{{begin-hl2msg|gg_team_leader|string}}&lt;br /&gt;
{{hl2msg|short|playerid|user ID that is currently in the lead}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_player_impending_upgrade ===&lt;br /&gt;
{{begin-hl2msg|gg_player_impending_upgrade|string}}&lt;br /&gt;
{{hl2msg|short|userid|player who will be leveling up}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== write_profile_data ===&lt;br /&gt;
{{begin-hl2msg|write_profile_data|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== trial_time_expired ===&lt;br /&gt;
{{qnotice|fired when a player runs out of time in trial mode}}&lt;br /&gt;
{{begin-hl2msg|trial_time_expired|string}}&lt;br /&gt;
{{hl2msg|short|slot|player whose time has expired}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== update_matchmaking_stats ===&lt;br /&gt;
{{begin-hl2msg|update_matchmaking_stats|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_reset_vote ===&lt;br /&gt;
{{begin-hl2msg|player_reset_vote|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|vote|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== enable_restart_voting ===&lt;br /&gt;
{{begin-hl2msg|enable_restart_voting|string}}&lt;br /&gt;
{{hl2msg|bool|enable|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== sfuievent ===&lt;br /&gt;
{{begin-hl2msg|sfuievent|string}}&lt;br /&gt;
{{hl2msg|string|action|}}&lt;br /&gt;
{{hl2msg|string|data|}}&lt;br /&gt;
{{hl2msg|byte|slot|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== start_vote ===&lt;br /&gt;
{{begin-hl2msg|start_vote|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID on server}}&lt;br /&gt;
{{hl2msg|byte|type|}}&lt;br /&gt;
{{hl2msg|short|vote_parameter|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_given_c4 ===&lt;br /&gt;
{{begin-hl2msg|player_given_c4|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID who received the c4}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_become_ghost ===&lt;br /&gt;
{{begin-hl2msg|player_become_ghost|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID who became a ghost}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== gg_reset_round_start_sounds ===&lt;br /&gt;
{{begin-hl2msg|gg_reset_round_start_sounds|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID who should have round start sounds reset}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tr_player_flashbanged ===&lt;br /&gt;
{{begin-hl2msg|tr_player_flashbanged|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID of the player banged}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tr_mark_complete ===&lt;br /&gt;
{{begin-hl2msg|tr_mark_complete|string}}&lt;br /&gt;
{{hl2msg|short|complete|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tr_mark_best_time ===&lt;br /&gt;
{{begin-hl2msg|tr_mark_best_time|string}}&lt;br /&gt;
{{hl2msg|long|time|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tr_exit_hint_trigger ===&lt;br /&gt;
{{begin-hl2msg|tr_exit_hint_trigger|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== bot_takeover ===&lt;br /&gt;
{{begin-hl2msg|bot_takeover|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|botid|}}&lt;br /&gt;
{{hl2msg|short|index|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tr_show_finish_msgbox ===&lt;br /&gt;
{{begin-hl2msg|tr_show_finish_msgbox|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID of the player}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tr_show_exit_msgbox ===&lt;br /&gt;
{{begin-hl2msg|tr_show_exit_msgbox|string}}&lt;br /&gt;
{{hl2msg|short|userid|user ID of the player}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== reset_player_controls ===&lt;br /&gt;
{{qnotice|used for demos}}&lt;br /&gt;
{{begin-hl2msg|reset_player_controls|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== jointeam_failed ===&lt;br /&gt;
{{begin-hl2msg|jointeam_failed|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|byte|reason|0: team_full}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== teamchange_pending ===&lt;br /&gt;
{{begin-hl2msg|teamchange_pending|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|byte|toteam|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== material_default_complete ===&lt;br /&gt;
{{begin-hl2msg|material_default_complete|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_prev_next_spectator ===&lt;br /&gt;
{{begin-hl2msg|cs_prev_next_spectator|string}}&lt;br /&gt;
{{hl2msg|bool|next|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== cs_handle_ime_event ===&lt;br /&gt;
{{begin-hl2msg|cs_handle_ime_event|string}}&lt;br /&gt;
{{hl2msg|1|local|}}&lt;br /&gt;
{{hl2msg|string|eventtype|}}&lt;br /&gt;
{{hl2msg|wstring|eventdata|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== nextlevel_changed ===&lt;br /&gt;
{{qnotice|a game event, name may be 32 characters long}}&lt;br /&gt;
{{begin-hl2msg|nextlevel_changed|string}}&lt;br /&gt;
{{hl2msg|string|nextlevel|}}&lt;br /&gt;
{{hl2msg|string|mapgroup|}}&lt;br /&gt;
{{hl2msg|string|skirmishmode|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== seasoncoin_levelup ===&lt;br /&gt;
{{begin-hl2msg|seasoncoin_levelup|string}}&lt;br /&gt;
{{hl2msg|short|player|entindex of the player}}&lt;br /&gt;
{{hl2msg|short|category|}}&lt;br /&gt;
{{hl2msg|short|rank|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== tournament_reward ===&lt;br /&gt;
{{begin-hl2msg|tournament_reward|string}}&lt;br /&gt;
{{hl2msg|long|defindex|}}&lt;br /&gt;
{{hl2msg|long|totalrewards|}}&lt;br /&gt;
{{hl2msg|long|accountid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== start_halftime ===&lt;br /&gt;
{{begin-hl2msg|start_halftime|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== ammo_refill ===&lt;br /&gt;
{{begin-hl2msg|ammo_refill|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|bool|success|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== parachute_pickup ===&lt;br /&gt;
{{begin-hl2msg|parachute_pickup|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== parachute_deploy ===&lt;br /&gt;
{{begin-hl2msg|parachute_deploy|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== dronegun_attack ===&lt;br /&gt;
{{begin-hl2msg|dronegun_attack|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== drone_dispatched ===&lt;br /&gt;
{{begin-hl2msg|drone_dispatched|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|priority|}}&lt;br /&gt;
{{hl2msg|short|drone_dispatched|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== loot_crate_visible ===&lt;br /&gt;
{{begin-hl2msg|loot_crate_visible|string}}&lt;br /&gt;
{{hl2msg|short|userid|player entindex}}&lt;br /&gt;
{{hl2msg|short|subject|crate entindex}}&lt;br /&gt;
{{hl2msg|string|type|type of crate (metal, wood, or paradrop)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== loot_crate_opened ===&lt;br /&gt;
{{begin-hl2msg|loot_crate_opened|string}}&lt;br /&gt;
{{hl2msg|short|userid|player entindex}}&lt;br /&gt;
{{hl2msg|string|type|type of crate (metal, wood, or paradrop)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== open_crate_instr ===&lt;br /&gt;
{{begin-hl2msg|open_crate_instr|string}}&lt;br /&gt;
{{hl2msg|short|userid|player entindex}}&lt;br /&gt;
{{hl2msg|short|subject|crate entindex}}&lt;br /&gt;
{{hl2msg|string|type|type of crate (metal, wood, or paradrop)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== smoke_beacon_paradrop ===&lt;br /&gt;
{{begin-hl2msg|smoke_beacon_paradrop|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|paradrop|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== survival_paradrop_spawn ===&lt;br /&gt;
{{begin-hl2msg|survival_paradrop_spawn|string}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== survival_paradrop_break ===&lt;br /&gt;
{{begin-hl2msg|survival_paradrop_break|string}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== drone_cargo_detached ===&lt;br /&gt;
{{begin-hl2msg|drone_cargo_detached|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|cargo|}}&lt;br /&gt;
{{hl2msg|bool|delivered|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== drone_above_roof ===&lt;br /&gt;
{{begin-hl2msg|drone_above_roof|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|cargo|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== choppers_incoming_warning ===&lt;br /&gt;
{{begin-hl2msg|choppers_incoming_warning|string}}&lt;br /&gt;
{{hl2msg|bool|global|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== firstbombs_incoming_warning ===&lt;br /&gt;
{{begin-hl2msg|firstbombs_incoming_warning|string}}&lt;br /&gt;
{{hl2msg|bool|global|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== dz_item_interaction ===&lt;br /&gt;
{{begin-hl2msg|dz_item_interaction|string}}&lt;br /&gt;
{{hl2msg|short|userid|player entindex}}&lt;br /&gt;
{{hl2msg|short|subject|crate entindex}}&lt;br /&gt;
{{hl2msg|string|type|type of crate (metal, wood, or paradrop)}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== snowball_hit_player_face ===&lt;br /&gt;
{{begin-hl2msg|snowball_hit_player_face|string}}&lt;br /&gt;
{{hl2msg|short|userid|player userid}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== survival_teammate_respawn ===&lt;br /&gt;
{{begin-hl2msg|survival_teammate_respawn|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== survival_no_respawns_warning ===&lt;br /&gt;
{{begin-hl2msg|survival_no_respawns_warning|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== survival_no_respawns_final ===&lt;br /&gt;
{{begin-hl2msg|survival_no_respawns_final|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_ping ===&lt;br /&gt;
{{begin-hl2msg|player_ping|string}}&lt;br /&gt;
{{hl2msg|short|userid|}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{hl2msg|float|x|}}&lt;br /&gt;
{{hl2msg|float|y|}}&lt;br /&gt;
{{hl2msg|float|z|}}&lt;br /&gt;
{{hl2msg|bool|urgent|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== player_ping_stop ===&lt;br /&gt;
{{begin-hl2msg|player_ping_stop|string}}&lt;br /&gt;
{{hl2msg|short|entityid|}}&lt;br /&gt;
{{end-hl2msg}}&lt;br /&gt;
&lt;br /&gt;
=== guardian_wave_restart ===&lt;br /&gt;
{{begin-hl2msg|guardian_wave_restart|string}}&lt;br /&gt;
{{end-hl2msg}}&lt;/div&gt;</summary>
		<author><name>Micapat</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=Function_Calling_API_(SourceMod_Scripting)&amp;diff=10231</id>
		<title>Function Calling API (SourceMod Scripting)</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=Function_Calling_API_(SourceMod_Scripting)&amp;diff=10231"/>
		<updated>2016-11-30T23:11:57Z</updated>

		<summary type="html">&lt;p&gt;Micapat: Update examples: RegPluginLibrary is mandatory &amp;amp; GetNativeFunction() must be used instead of a view_as&amp;lt;&amp;gt; cast.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SourceMod provides plugins with an API for calling functions.  This API can be used to call public functions in any plugin, including public functions in the same plugin.  &lt;br /&gt;
&lt;br /&gt;
This article is split into two sections.  The first is on generic function calling, which is used for single function calls.  The second is on Forwards, which is used for calling multiple functions in one operation.&lt;br /&gt;
&lt;br /&gt;
For more information on forwards, readers should see [[Writing_Extensions#Creating_Events.2FForwards|forwards in extensions]].&lt;br /&gt;
&lt;br /&gt;
=Generic Calling=&lt;br /&gt;
There are four steps to calling a function in a plugin:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Obtaining a &amp;quot;call Handle.&amp;quot;  This is either in the form of a function ID, tagged with &amp;lt;tt&amp;gt;Function&amp;lt;/tt&amp;gt;, or a Forward Handle, tagged with &amp;lt;tt&amp;gt;Handle&amp;lt;/tt&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Starting the call.&lt;br /&gt;
 &amp;lt;li&amp;gt;Pushing parameters in increasing order in a way that matches the function prototype.&amp;lt;/li&amp;gt;&lt;br /&gt;
 &amp;lt;li&amp;gt;Ending the the call, which performs the call operation and returns the result.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For simplicity, let's consider calling a function in our own plugin.  We have the following function:&lt;br /&gt;
&amp;lt;pawn&amp;gt;public void OnClientDied(int attacker, int victim, const char[] weapon, bool headshot)&lt;br /&gt;
{&lt;br /&gt;
   char name[MAX_NAME_LENGTH];&lt;br /&gt;
   GetClientName(victim, name, sizeof(name))&lt;br /&gt;
   &lt;br /&gt;
   if (attacker != victim)&lt;br /&gt;
   {&lt;br /&gt;
      char other[MAX_NAME_LENGTH];&lt;br /&gt;
      GetClientName(attacker, other, sizeof(other))&lt;br /&gt;
      PrintToServer(&amp;quot;&amp;lt;\&amp;quot;%s\&amp;quot;&amp;gt; killed by &amp;lt;\&amp;quot;%s\&amp;quot;&amp;gt; with \&amp;quot;%s\&amp;quot; (headshot: %d)&amp;quot;, name, other, weapon, headshot)&lt;br /&gt;
   } else if (!attacker) {&lt;br /&gt;
      PrintToServer(&amp;quot;&amp;lt;\&amp;quot;%s\&amp;quot;&amp;gt; killed by \&amp;quot;world\&amp;quot; with \&amp;quot;%s\&amp;quot; (headshot: %d)&amp;quot;, name, weapon, headshot)&lt;br /&gt;
   } else {&lt;br /&gt;
      PrintToServer(&amp;quot;&amp;lt;\&amp;quot;%s\&amp;quot;&amp;gt; killed by \&amp;quot;self\&amp;quot; with \&amp;quot;%s\&amp;quot; (headshot: %d)&amp;quot;, name, weapon, headshot)&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An indirect way to call this function would be:&lt;br /&gt;
&amp;lt;pawn&amp;gt;&lt;br /&gt;
public void EventHandler(Event event, const char[] name, bool dontBroadcast)&lt;br /&gt;
{&lt;br /&gt;
   if (StrEqual(name, &amp;quot;player_death&amp;quot;))&lt;br /&gt;
   {&lt;br /&gt;
      char weapon[64];&lt;br /&gt;
      int result;&lt;br /&gt;
&lt;br /&gt;
      event.GetString(&amp;quot;weapon&amp;quot;, weapon, sizeof(weapon));&lt;br /&gt;
&lt;br /&gt;
      /* Start function call */&lt;br /&gt;
      Call_StartFunction(null, OnClientDied);&lt;br /&gt;
&lt;br /&gt;
      /* Push parameters one at a time */&lt;br /&gt;
      Call_PushCell(GetClientOfUserId(event.GetInt(&amp;quot;attacker&amp;quot;)));&lt;br /&gt;
      Call_PushCell(GetClientOfUserId(event.GetInt(&amp;quot;userid&amp;quot;)));&lt;br /&gt;
      Call_PushString(weapon);&lt;br /&gt;
      Call_PushCell(GetEventInt(event, &amp;quot;headshot&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
      /* Finish the call, get the result */&lt;br /&gt;
      Call_Finish(result);&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This basic example shows starting and completing a function call.  However, the real use of function calling is with forwards, which is covered in the next section.&lt;br /&gt;
&lt;br /&gt;
=Forwards=&lt;br /&gt;
Forwards are much more advantageous over single function calls.  They are expandable containers, so you can store and complete many calls with very little action.  Furthermore, they also adjust themselves when contained plugins are unloaded.  Lastly, they are type-checked; each forward's parameter types must be known in advance, and if you push a mismatching type, the call will not complete.&lt;br /&gt;
&lt;br /&gt;
Forwards must be created using the following types:&lt;br /&gt;
*&amp;lt;tt&amp;gt;Param_Any&amp;lt;/tt&amp;gt; - Any parameter type can be pushed&lt;br /&gt;
*&amp;lt;tt&amp;gt;Param_Cell&amp;lt;/tt&amp;gt; - A non-Float cell can be pushed&lt;br /&gt;
*&amp;lt;tt&amp;gt;Param_Float&amp;lt;/tt&amp;gt; - A Float cell can be pushed&lt;br /&gt;
*&amp;lt;tt&amp;gt;Param_String&amp;lt;/tt&amp;gt; - A string can be pushed&lt;br /&gt;
*&amp;lt;tt&amp;gt;Param_Array&amp;lt;/tt&amp;gt; - An array can be pushed&lt;br /&gt;
*&amp;lt;tt&amp;gt;Param_VarArgs&amp;lt;/tt&amp;gt; - This and all further parameters can be any type, but will be by reference.  This cannot be the first parameter type, and if it is used, it must be the last parameter type.&lt;br /&gt;
*&amp;lt;tt&amp;gt;Param_CellByRef&amp;lt;/tt&amp;gt; - A non-Float cell by reference&lt;br /&gt;
*&amp;lt;tt&amp;gt;Param_FloatByRef&amp;lt;/tt&amp;gt; - A Float cell by reference&lt;br /&gt;
&lt;br /&gt;
Strings and arrays are implicitly by-reference.  When pushing variable argument parameters, if anything is pushed by-value, it will be internally automatically converted to by-reference.&lt;br /&gt;
&lt;br /&gt;
Since Forwards will call multiple functions in a row, it needs to know how to interpret the return values of functions.  There are four predefined methods:&lt;br /&gt;
*&amp;lt;tt&amp;gt;ET_Ignore&amp;lt;/tt&amp;gt; - All return values will be ignored; 0 will be returned at the end.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ET_Single&amp;lt;/tt&amp;gt; - Only the last return value will be returned.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ET_Event&amp;lt;/tt&amp;gt; - Function should return an &amp;lt;tt&amp;gt;Action&amp;lt;/tt&amp;gt; value (&amp;lt;tt&amp;gt;core.inc&amp;lt;/tt&amp;gt;).  &amp;lt;tt&amp;gt;Plugin_Stop&amp;lt;/tt&amp;gt; acts as &amp;lt;tt&amp;gt;Plugin_Handled&amp;lt;/tt&amp;gt;.  The highest value is returned.&lt;br /&gt;
*&amp;lt;tt&amp;gt;ET_Hook&amp;lt;/tt&amp;gt; - Function should return an &amp;lt;tt&amp;gt;Action&amp;lt;/tt&amp;gt; value.  &amp;lt;tt&amp;gt;Plugin_Stop&amp;lt;/tt&amp;gt; ends the forward call immediately.&lt;br /&gt;
&lt;br /&gt;
Let's write a simple example.  Our plugin, Plugin A, wants to tell other plugins when a player dies.  It has two ways of doing this, either via a ''global'' forward or a ''private'' forward.  A global forward acts upon all functions in all plugins that match a single name.  A private forward lets you explicitly manage which functions are in the container.&lt;br /&gt;
&lt;br /&gt;
==Global Forwards==&lt;br /&gt;
Global forwards are very simple to use.  After creation, they do not need to be maintained.  An example plugin below creates a global forward with the following prototype:&lt;br /&gt;
&amp;lt;pawn&amp;gt;forward void OnClientDied(int attacker, int victim, const char[] weapon, bool headshot);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Implementation:&lt;br /&gt;
&amp;lt;pawn&amp;gt;Handle g_DeathForward;&lt;br /&gt;
&lt;br /&gt;
public void OnPluginStart()&lt;br /&gt;
{&lt;br /&gt;
   g_DeathForward = CreateGlobalForward(&amp;quot;OnClientDied&amp;quot;, ET_Event, Param_Cell, Param_Cell, Param_String, Param_Cell)&lt;br /&gt;
   HookEvent(&amp;quot;player_death&amp;quot;, EventHandler)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public APLRes AskPluginLoad2(Handle plugin, bool late, char[] error, int err_max)&lt;br /&gt;
{&lt;br /&gt;
   RegPluginLibrary(&amp;quot;my_plugin&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public Action EventHandler(Event event, const char[] name, bool dontBroadcast)&lt;br /&gt;
{&lt;br /&gt;
   char weapon[64];&lt;br /&gt;
   Action result;&lt;br /&gt;
&lt;br /&gt;
   event.GetString(&amp;quot;weapon&amp;quot;, weapon, sizeof(weapon));&lt;br /&gt;
&lt;br /&gt;
   /* Start function call */&lt;br /&gt;
   Call_StartForward(g_DeathForward);&lt;br /&gt;
&lt;br /&gt;
   /* Push parameters one at a time */&lt;br /&gt;
   Call_PushCell(GetClientOfUserId(event.GetInt(&amp;quot;attacker&amp;quot;)));&lt;br /&gt;
   Call_PushCell(GetClientOfUserId(event.GetInt(&amp;quot;userid&amp;quot;)));&lt;br /&gt;
   Call_PushString(weapon);&lt;br /&gt;
   Call_PushCell(GetEventInt(event, &amp;quot;headshot&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
   /* Finish the call, get the result */&lt;br /&gt;
   Call_Finish(result);&lt;br /&gt;
  &lt;br /&gt;
   return result;&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Private Forwards==&lt;br /&gt;
Private forwards require you to manually add functions to its container.  This can leave you with much more flexibility.  Like global forwards, they automatically remove functions from unloaded plugins.  &lt;br /&gt;
&lt;br /&gt;
Usually, this is done using dynamic natives; a plugin will expose a function to add to its own forwards.  For example:&lt;br /&gt;
&amp;lt;pawn&amp;gt;typedef OnClientDiedFunc = function Action (int attacker, int victim, const char[] weapon, bool headshot);&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Calls the target function when a client dies.&lt;br /&gt;
 *&lt;br /&gt;
 * @param func      OnClientDiedFunc function.&lt;br /&gt;
 * @noreturn&lt;br /&gt;
 */&lt;br /&gt;
native void HookClientDeath(OnClientDiedFunc func);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An implementation of this might look like:&lt;br /&gt;
&amp;lt;pawn&amp;gt;public void OnPluginStart()&lt;br /&gt;
{&lt;br /&gt;
   g_DeathForward = CreateForward(ET_Event, Param_Cell, Param_Cell, Param_String, Param_Cell)&lt;br /&gt;
   CreateNative(&amp;quot;HookClientDeath&amp;quot;, Native_HookClientDeath)&lt;br /&gt;
   HookEvent(&amp;quot;player_death&amp;quot;, EventHandler)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public int Native_HookClientDeath(Handle plugin, int numParams)&lt;br /&gt;
{&lt;br /&gt;
   AddToForward(g_DeathForward, plugin, GetNativeFunction(1))&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the code to call the forward does not need to change at all.&lt;br /&gt;
&lt;br /&gt;
A complete implementation of a private forward may look like this:&lt;br /&gt;
&amp;lt;pawn&amp;gt;typedef MyFunction = function void (int client);&lt;br /&gt;
native void My_NativeEx(MyFunction func);&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pawn&amp;gt;Handle g_hDeathFwd;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// typedef MyFunction = function void (int client);&lt;br /&gt;
// native void My_NativeEx(MyFunction func);&lt;br /&gt;
public APLRes AskPluginLoad2(Handle plugin, bool late, const char[] error, int err_max)&lt;br /&gt;
{&lt;br /&gt;
   RegPluginLibrary(&amp;quot;MyPlugin&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
   CreateNative(&amp;quot;My_NativeEx&amp;quot;, My_Native);&lt;br /&gt;
   return APLRes_Success;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void OnPluginStart()&lt;br /&gt;
{&lt;br /&gt;
   HookEvent(&amp;quot;player_death&amp;quot;, Event_Death);&lt;br /&gt;
   g_hDeathFwd = CreateForward(ET_Ignore, Param_Cell);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public int My_Native(Handle plugin, int numParams)&lt;br /&gt;
{&lt;br /&gt;
   AddToForward(g_hDeathFwd, plugin, GetNativeFunction(1));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public Action Event_Death(Event event, const char[] name, bool dontBroadcast)&lt;br /&gt;
{&lt;br /&gt;
   int client = GetClientOfUserId(event.GetInt(&amp;quot;userid&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
   Call_StartForward(g_hDeathFwd);&lt;br /&gt;
   Call_PushCell(client);&lt;br /&gt;
   Call_Finish();&lt;br /&gt;
}&amp;lt;/pawn&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SourceMod Scripting]]&lt;/div&gt;</summary>
		<author><name>Micapat</name></author>
		
	</entry>
</feed>