var SMfunctions=new Array()
var SMconstant=new Array()
var SMfiles=new Array()
var SMfiledata=new Array()
SMfiles[1] = "functions"
SMfiles[11] = "version"
SMfiles[5] = "halflife"
SMfiles[53] = "nextmap"
SMfiles[41] = "topmenus"
SMfiles[57] = "sdktools_hooks"
SMfiles[15] = "handles"
SMfiles[36] = "core"
SMfiles[8] = "lang"
SMfiles[49] = "tf2"
SMfiles[54] = "clientprefs"
SMfiles[30] = "sdktools_tempents"
SMfiles[12] = "sdktools_engine"
SMfiles[33] = "bitbuffer"
SMfiles[18] = "profiler"
SMfiles[32] = "string"
SMfiles[24] = "sdktools_tempents_stocks"
SMfiles[31] = "sourcemod"
SMfiles[7] = "helpers"
SMfiles[48] = "logging"
SMfiles[45] = "commandfilters"
SMfiles[20] = "sorting"
SMfiles[9] = "timers"
SMfiles[16] = "files"
SMfiles[51] = "sdktools_entoutput"
SMfiles[44] = "sdktools_stocks"
SMfiles[29] = "vector"
SMfiles[26] = "textparse"
SMfiles[38] = "events"
SMfiles[39] = "banning"
SMfiles[42] = "adminmenu"
SMfiles[34] = "sdktools_sound"
SMfiles[28] = "admin"
SMfiles[22] = "dbi"
SMfiles[19] = "geoip"
SMfiles[43] = "sdktools_entinput"
SMfiles[46] = "adt_trie"
SMfiles[21] = "sdktools_stringtables"
SMfiles[0] = "sdktools_voice"
SMfiles[10] = "datapack"
SMfiles[55] = "adt_stack"
SMfiles[47] = "entity_prop_stocks"
SMfiles[23] = "sdktools"
SMfiles[50] = "tf2_stocks"
SMfiles[3] = "adt"
SMfiles[17] = "keyvalues"
SMfiles[25] = "clients"
SMfiles[13] = "menus"
SMfiles[40] = "cstrike"
SMfiles[56] = "mapchooser"
SMfiles[27] = "console"
SMfiles[35] = "adt_array"
SMfiles[37] = "float"
SMfiles[14] = "sdktools_trace"
SMfiles[4] = "entity"
SMfiles[2] = "sdktools_functions"
SMfiles[52] = "regex"
SMfiles[6] = "usermessages"
SMfunctions[4] = Array ("GetFunctionByName","Gets a function id from a function name.");
SMfunctions[5] = Array ("CreateGlobalForward","Creates a global forward.");
SMfunctions[6] = Array ("CreateForward","Creates a private forward.");
SMfunctions[7] = Array ("GetForwardFunctionCount","Returns the number of functions in a global or private forward\'s call list.");
SMfunctions[8] = Array ("AddToForward","Adds a function to a private forward\'s call list.");
SMfunctions[9] = Array ("RemoveFromForward","Removes a function from a private forward\'s call list.");
SMfunctions[10] = Array ("RemoveAllFromForward","Removes all instances of a plugin from a private forward\'s call list.");
SMfunctions[11] = Array ("Call_StartForward","Starts a call to functions in a forward\'s call list.");
SMfunctions[12] = Array ("Call_StartFunction","Starts a call to a function.");
SMfunctions[13] = Array ("Call_PushCell","Pushes a cell onto the current call.");
SMfunctions[14] = Array ("Call_PushCellRef","Pushes a cell by reference onto the current call.");
SMfunctions[15] = Array ("Call_PushFloat","Pushes a float onto the current call.");
SMfunctions[16] = Array ("Call_PushFloatRef","Pushes a float by reference onto the current call.");
SMfunctions[17] = Array ("Call_PushArray","Pushes an array onto the current call.");
SMfunctions[18] = Array ("Call_PushArrayEx","Pushes an array onto the current call.");
SMfunctions[19] = Array ("Call_PushString","Pushes a string onto the current call.");
SMfunctions[20] = Array ("Call_PushStringEx","Pushes a string onto the current call.");
SMfunctions[21] = Array ("Call_Finish","Completes a call to a function or forward\'s call list.");
SMfunctions[22] = Array ("Call_Cancel","Cancels a call to a function or forward\'s call list.");
SMfunctions[860] = Array ("public NativeCall","Defines a native function.<br />It is not necessary to validate the parameter count");
SMfunctions[24] = Array ("CreateNative","Creates a dynamic native.  This should only be called in AskPluginLoad(), or<br />else you risk not having your native shared with other plugins.");
SMfunctions[25] = Array ("ThrowNativeError","Throws an error in the calling plugin of a native, instead of your own plugin.");
SMfunctions[26] = Array ("GetNativeStringLength","Retrieves the string length from a native parameter string.  This is useful<br />fetching the entire string using dynamic arrays.");
SMfunctions[27] = Array ("GetNativeString","Retrieves a string from a native parameter.");
SMfunctions[28] = Array ("SetNativeString","Sets a string in a native parameter.");
SMfunctions[29] = Array ("GetNativeCell","Gets a cell from a native parameter.");
SMfunctions[30] = Array ("GetNativeCellRef","Gets a cell from a native parameter, by reference.");
SMfunctions[31] = Array ("SetNativeCellRef","Sets a cell from a native parameter, by reference.");
SMfunctions[32] = Array ("GetNativeArray","Gets an array from a native parameter (always by reference).");
SMfunctions[33] = Array ("SetNativeArray","Copies a local array into a native parameter array (always by reference).");
SMfunctions[34] = Array ("FormatNativeString","Formats a string using parameters from a native.");
SMfunctions[93] = Array ("LogToGame","Logs a generic message to the HL2 logs.");
SMfunctions[94] = Array ("SetRandomSeed","Sets the seed value for the global Half-Life 2 Random Stream.");
SMfunctions[95] = Array ("GetRandomFloat","Returns a random floating point number from the Half-Life 2 Random Stream.");
SMfunctions[96] = Array ("GetRandomInt","Returns a random number from the Half-Life 2 Random Stream.");
SMfunctions[97] = Array ("IsMapValid","Returns whether a map is valid or not.");
SMfunctions[98] = Array ("IsDedicatedServer","Returns whether the server is dedicated.");
SMfunctions[99] = Array ("GetEngineTime","Returns a high-precision time value for profiling the engine.");
SMfunctions[100] = Array ("GetGameTime","Returns the game time based on the game tick.");
SMfunctions[101] = Array ("GetGameDescription","Returns the game description from the mod.");
SMfunctions[102] = Array ("GetGameFolderName","Returns the name of the game\'s directory.");
SMfunctions[103] = Array ("GetCurrentMap","Returns the current map name.");
SMfunctions[104] = Array ("PrecacheModel","Precaches a given model.");
SMfunctions[105] = Array ("PrecacheSentenceFile","Precaches a given sentence file.");
SMfunctions[106] = Array ("PrecacheDecal","Precaches a given decal.");
SMfunctions[107] = Array ("PrecacheGeneric","Precaches a given generic file.");
SMfunctions[108] = Array ("IsModelPrecached","Returns if a given model is precached.");
SMfunctions[109] = Array ("IsDecalPrecached","Returns if a given decal is precached.");
SMfunctions[110] = Array ("IsGenericPrecached","Returns if a given generic file is precached.");
SMfunctions[111] = Array ("PrecacheSound","Precaches a given sound.");
SMfunctions[112] = Array ("IsSoundPrecached","Returns if a given sound is precached.");
SMfunctions[113] = Array ("CreateDialog","Creates different types of ingame messages.");
SMfunctions[830] = Array ("GuessSDKVersion","Guesses the SDK version a mod was compiled against.  If nothing<br />specific is known about the game, the engine version is used instead.<br />The return values are guaranteed to increase chronologically (that is,<br />a later release will have a higher value).");
SMfunctions[114] = Array ("PrintToChat","Prints a message to a specific client in the chat area.");
SMfunctions[115] = Array ("PrintToChatAll","Prints a message to all clients in the chat area.");
SMfunctions[116] = Array ("PrintCenterText","Prints a message to a specific client in the center of the screen.");
SMfunctions[117] = Array ("PrintCenterTextAll","Prints a message to all clients in the center of the screen.");
SMfunctions[118] = Array ("PrintHintText","Prints a message to a specific client with a hint box.");
SMfunctions[119] = Array ("PrintHintTextToAll","Prints a message to all clients with a hint box.");
SMfunctions[120] = Array ("ShowVGUIPanel","Shows a VGUI panel to a specific client.");
SMfunctions[841] = Array ("CreateHudSynchronizer","Creates a HUD synchronization object.  This object is used to automatically assign and<br />re-use channels for a set of messages.<br />The HUD has a hardcoded number of channels (usually 6) for displaying<br />text.  You can use any channel for any area of the screen.  Text on<br />different channels can overlap, but text on the same channel will<br />erase the old text first.  This overlapping and overwriting gets problematic.<br />A HUD synchronization object automatically selects channels for you based on<br />the following heuristics:<br />- If channel X was last used by the object, and hasn\'t been modified again,<br />channel X gets re-used.<br />- Otherwise, a new channel is chosen based on the least-recently-used channel.<br />This ensures that if you display text on a sync object, that the previous text<br />displayed on it will always be cleared first.  This is because your new text<br />will either overwrite the old text on the same channel, or because another<br />channel has already erased your text.<br />Note that messages can still overlap if they are on different synchronization<br />objects, or they are displayed to manual channels.<br />These are particularly useful for displaying repeating or refreshing HUD text, in<br />addition to displaying multiple message sets in one area of the screen (for example,<br />center-say messages that may pop up randomly that you don\'t want to overlap each<br />other).");
SMfunctions[842] = Array ("SetHudTextParams","Sets the HUD parameters for drawing text.  These parameters are stored<br />globally, although nothing other than this function and SetHudTextParamsEx<br />modify them.<br />You must call this function before drawing text.  If you are drawing<br />text to multiple clients, you can set the parameters once, since<br />they won\'t be modified.  However, as soon as you pass control back<br />to other plugins, you must reset the parameters next time you draw.");
SMfunctions[843] = Array ("SetHudTextParamsEx","Sets the HUD parameters for drawing text.  These parameters are stored<br />globally, although nothing other than this function and SetHudTextParams<br />modify them.<br />This is the same as SetHudTextParams(), except it lets you set the alternate<br />color for when effects require it.");
SMfunctions[844] = Array ("ShowSyncHudText","Shows a synchronized HUD message to a client.<br />As of this writing, only TF, HL2MP, and SourceForts support HUD Text.");
SMfunctions[845] = Array ("ClearSyncHud","Clears the text on a synchronized HUD channel.<br />This is not the same as sending \\\"\\\" because it guarantees that it won\'t<br />overwrite text on another channel.  For example, consider the scenario:<br />1. Your synchronized message goes to channel 3.<br />2. Someone else\'s non-synchronized message goes to channel 3.<br />If you were to simply send \\\"\\\" on your synchronized message,<br />then someone else\'s text could be overwritten.");
SMfunctions[846] = Array ("ShowHudText","Shows a HUD message to a client on the given channel.<br />As of this writing, only TF, HL2MP, and SourceForts support HUD Text.");
SMfunctions[121] = Array ("ShowMOTDPanel","Shows a MOTD panel to a specific client.");
SMfunctions[122] = Array ("DisplayAskConnectBox","Displays a panel asking the client to connect to a specified IP.");
SMfunctions[934] = Array ("EntIndexToEntRef","Converts an entity index into a serial encoded entity reference.");
SMfunctions[935] = Array ("EntRefToEntIndex","Retrieves the entity index from a reference.");
SMfunctions[936] = Array ("MakeCompatEntRef","Converts a reference into a backwards compatible version.");
SMfunctions[877] = Array ("SetNextMap","Sets SourceMod\'s internal nextmap.<br />Equivalent to changing sm_nextmap but with an added validity check.");
SMfunctions[878] = Array ("GetNextMap","Returns SourceMod\'s internal nextmap.");
SMfunctions[879] = Array ("ForceChangeLevel","Changes the current map and records the reason for the change with maphistory");
SMfunctions[880] = Array ("GetMapHistorySize","Gets the current number of maps in the map history");
SMfunctions[881] = Array ("GetMapHistory","Retrieves a map from the map history list.");
SMfunctions[882] = Array ("public TopMenuHandler","TopMenu callback prototype.");
SMfunctions[135] = Array ("CreateTopMenu","Creates a TopMenu.");
SMfunctions[136] = Array ("LoadTopMenuConfig","Re-sorts the items in a TopMenu via a configuration file.<br />The format of the configuration file should be a Valve Key-Values<br />formatted file that SourceMod can parse.  There should be one root<br />section, and one sub-section for each category.  Each sub-section\'s<br />name should match the category name.<br />Each sub-section may only contain key/value pairs in the form of:<br />key: \\\"item\\\"<br />value: Name of the item as passed to AddToTopMenu().<br />The TopMenu will draw items in the order declared in the configuration<br />file.  If items do not appear in the configuration file, they are sorted<br />per-player based on how the handler function renders for that player.<br />These items appear after the configuration sorted items.");
SMfunctions[137] = Array ("AddToTopMenu","Adds an object to a TopMenu.");
SMfunctions[138] = Array ("GetTopMenuInfoString","Retrieves the info string of a top menu item.");
SMfunctions[757] = Array ("GetTopMenuObjName","Retrieves the name string of a top menu item.");
SMfunctions[139] = Array ("RemoveFromTopMenu","Removes an object from a TopMenu.<br />Plugins\' objects are automatically removed all TopMenus when the given<br />plugin unloads or pauses.  In the case of unpausing, all items are restored.");
SMfunctions[140] = Array ("DisplayTopMenu","Displays a TopMenu to a client.");
SMfunctions[141] = Array ("FindTopMenuCategory","Finds a category\'s object ID in a TopMenu.");
SMfunctions[937] = Array ("OnPlayerRunCmd"," Called when a clients movement buttons are being processed");
SMfunctions[241] = Array ("CloseHandle","Closes a Handle.  If the handle has multiple copies open,<br />it is not destroyed unless all copies are closed.");
SMfunctions[242] = Array ("CloneHandle","Clones a Handle.  When passing handles in between plugins, caching handles<br />can result in accidental invalidation when one plugin releases the Handle, or is its owner<br />is unloaded from memory.  To prevent this, the Handle may be \\\"cloned\\\" with a new owner.");
SMfunctions[608] = Array ("MarkNativeAsOptional","Sets a native as optional, such that if it is unloaded, removed,<br />or otherwise non-existent, the plugin will still work.  Calling<br />removed natives results in a run-time error.");
SMfunctions[150] = Array ("LoadTranslations","Loads a translation file for the plugin calling this native.<br />If no extension is specified, .txt is assumed.");
SMfunctions[151] = Array ("SetGlobalTransTarget","Sets the global language target.  This is useful for creating functions<br />that will be compatible with the %t format specifier.  Note that invalid<br />indexes can be specified but the error will occur during translation,<br />not during this function call.");
SMfunctions[152] = Array ("GetClientLanguage","Retrieves the language number of a client.<br />Currently this simply returns the server language index.");
SMfunctions[153] = Array ("GetServerLanguage","Retrieves the server\'s language.");
SMfunctions[154] = Array ("GetLanguageCount","Returns the number of languages known in languages.cfg.");
SMfunctions[155] = Array ("GetLanguageInfo","Retrieves info about a given language number.");
SMfunctions[938] = Array ("TF2_IgnitePlayer","Sets a client on fire for 10 seconds.");
SMfunctions[814] = Array ("TF2_RespawnPlayer","Respawns a client");
SMfunctions[816] = Array ("TF2_DisguisePlayer","Disguises a client to the given model and team. Only has an effect on spies.<br />Note: This only starts the disguise process and a delay occurs before the spy is fully disguised");
SMfunctions[849] = Array ("TF2_RemovePlayerDisguise","Removes the current disguise from a client. Only has an effect on spies.");
SMfunctions[850] = Array ("TF2_GetResourceEntity","Retrieves the entity index of the CPlayerResource entity");
SMfunctions[851] = Array ("TF2_GetClass","Finds the TFClassType for a given class name.");
SMfunctions[883] = Array ("TF2_CalcIsAttackCritical","Called on weapon fire to decide if the current shot should be critical.<br />Return Plugin_Continue to let the original calculation or return a higher<br />action to override the decision with the value of \'result\'");
SMfunctions[884] = Array ("RegClientCookie","Creates a new Client preference cookie.<br />Handles returned by RegClientCookie can be closed via CloseHandle() when<br />no longer needed.");
SMfunctions[885] = Array ("FindClientCookie","Searches for a Client preference cookie.<br />Handles returned by FindClientCookie can be closed via CloseHandle() when<br />no longer needed.");
SMfunctions[886] = Array ("SetClientCookie","Set the value of a Client preference cookie.");
SMfunctions[887] = Array ("GetClientCookie","Retrieve the value of a Client preference cookie.");
SMfunctions[888] = Array ("AreClientCookiesCached","Checks if a clients cookies have been loaded from the database.");
SMfunctions[889] = Array ("OnClientCookiesCached","Called once a client\'s saved cookies have been loaded from the database.");
SMfunctions[890] = Array ("public CookieMenuHandler","Cookie Menu Callback prototype");
SMfunctions[891] = Array ("SetCookiePrefabMenu","Add a new prefab item to the client cookie settings menu.<br />Note: This handles everything automatically and does not require a callback");
SMfunctions[892] = Array ("SetCookieMenuItem","Adds a new item to the client cookie settings menu.<br />Note: This only adds the top level menu item. You need to handle any submenus from the callback.");
SMfunctions[893] = Array ("ShowCookieMenu","Displays the settings menu to a client.");
SMfunctions[894] = Array ("GetCookieIterator","Gets a cookie iterator.  Must be freed with CloseHandle().");
SMfunctions[895] = Array ("ReadCookieIterator","Reads a cookie iterator, then advances to the next cookie if any.");
SMfunctions[896] = Array ("GetCookieAccess","Returns the access level of a cookie");
SMfunctions[939] = Array ("GetClientCookieTime","Returns the last updated timestamp for a client cookie");
SMfunctions[764] = Array ("TEHook","Called when a temp entity is going to be sent.");
SMfunctions[559] = Array ("AddTempEntHook","Hooks a temp entity.");
SMfunctions[560] = Array ("RemoveTempEntHook","Removes a temp entity hook.");
SMfunctions[561] = Array ("TE_Start","Starts a temp entity transmission.");
SMfunctions[562] = Array ("TE_IsValidProp","Checks if a certain TE property exists.");
SMfunctions[563] = Array ("TE_WriteNum","Sets an integer value in the current temp entity.");
SMfunctions[564] = Array ("TE_ReadNum","Reads an integer value in the current temp entity.");
SMfunctions[565] = Array ("TE_WriteFloat","Sets a floating point number in the current temp entity.");
SMfunctions[566] = Array ("TE_ReadFloat","Reads a floating point number in the current temp entity.");
SMfunctions[567] = Array ("TE_WriteVector","Sets a vector in the current temp entity.");
SMfunctions[568] = Array ("TE_ReadVector","Reads a vector in the current temp entity.");
SMfunctions[569] = Array ("TE_WriteAngles","Sets a QAngle in the current temp entity.");
SMfunctions[570] = Array ("TE_WriteFloatArray","Sets an array of floats in the current temp entity.");
SMfunctions[571] = Array ("TE_Send","Sends the current temp entity to one or more clients.");
SMfunctions[572] = Array ("TE_WriteEncodedEnt","Sets an encoded entity index in the current temp entity.<br />(This is usually used for m_nStartEntity and m_nEndEntity).");
SMfunctions[573] = Array ("TE_SendToAll","Broadcasts the current temp entity to all clients.");
SMfunctions[574] = Array ("TE_SendToClient","Sends the current TE to only a client.");
SMfunctions[177] = Array ("SetClientViewEntity","Sets a client\'s \\\"viewing entity.\\\"");
SMfunctions[178] = Array ("SetLightStyle","Sets a light style.");
SMfunctions[179] = Array ("GetClientEyePosition","Returns the client\'s eye position.");
SMfunctions[646] = Array ("BfWriteBool","Writes a single bit to a writable bitbuffer (bf_write).");
SMfunctions[647] = Array ("BfWriteByte","Writes a byte to a writable bitbuffer (bf_write).");
SMfunctions[648] = Array ("BfWriteChar","Writes a byte to a writable bitbuffer (bf_write).");
SMfunctions[649] = Array ("BfWriteShort","Writes a 16bit integer to a writable bitbuffer (bf_write).");
SMfunctions[650] = Array ("BfWriteWord","Writes a 16bit unsigned integer to a writable bitbuffer (bf_write).");
SMfunctions[651] = Array ("BfWriteNum","Writes a normal integer to a writable bitbuffer (bf_write).");
SMfunctions[652] = Array ("BfWriteFloat","Writes a floating point number to a writable bitbuffer (bf_write).");
SMfunctions[653] = Array ("BfWriteString","Writes a string to a writable bitbuffer (bf_write).");
SMfunctions[654] = Array ("BfWriteEntity","Writes an entity to a writable bitbuffer (bf_write).");
SMfunctions[655] = Array ("BfWriteAngle","Writes a bit angle to a writable bitbuffer (bf_write).");
SMfunctions[656] = Array ("BfWriteCoord","Writes a coordinate to a writable bitbuffer (bf_write).");
SMfunctions[657] = Array ("BfWriteVecCoord","Writes a 3D vector of coordinates to a writable bitbuffer (bf_write).");
SMfunctions[658] = Array ("BfWriteVecNormal","Writes a 3D normal vector to a writable bitbuffer (bf_write).");
SMfunctions[659] = Array ("BfWriteAngles","Writes a 3D angle vector to a writable bitbuffer (bf_write).");
SMfunctions[660] = Array ("BfReadBool","Reads a single bit from a readable bitbuffer (bf_read).");
SMfunctions[661] = Array ("BfReadByte","Reads a byte from a readable bitbuffer (bf_read).");
SMfunctions[662] = Array ("BfReadChar","Reads a character from a readable bitbuffer (bf_read).");
SMfunctions[663] = Array ("BfReadShort","Reads a 16bit integer from a readable bitbuffer (bf_read).");
SMfunctions[664] = Array ("BfReadWord","Reads a 16bit unsigned integer from a readable bitbuffer (bf_read).");
SMfunctions[665] = Array ("BfReadNum","Reads a normal integer to a readable bitbuffer (bf_read).");
SMfunctions[666] = Array ("BfReadFloat","Reads a floating point number from a readable bitbuffer (bf_read).");
SMfunctions[667] = Array ("BfReadString","Reads a string from a readable bitbuffer (bf_read).");
SMfunctions[668] = Array ("BfReadEntity","Reads an entity from a readable bitbuffer (bf_read).");
SMfunctions[669] = Array ("BfReadAngle","Reads a bit angle from a readable bitbuffer (bf_read).");
SMfunctions[670] = Array ("BfReadCoord","Reads a coordinate from a readable bitbuffer (bf_read).");
SMfunctions[671] = Array ("BfReadVecCoord","Reads a 3D vector of coordinates from a readable bitbuffer (bf_read).");
SMfunctions[672] = Array ("BfReadVecNormal","Reads a 3D normal vector from a readable bitbuffer (bf_read).");
SMfunctions[673] = Array ("BfReadAngles","Reads a 3D angle vector from a readable bitbuffer (bf_read).");
SMfunctions[834] = Array ("BfGetNumBytesLeft","Returns the number of bytes left in a readable bitbuffer (bf_read).");
SMfunctions[298] = Array ("CreateProfiler","Creates a new profile object.  The Handle must be freed<br />using CloseHandle().");
SMfunctions[299] = Array ("StartProfiling","Starts profiling.");
SMfunctions[300] = Array ("StopProfiling","Stops profiling.");
SMfunctions[301] = Array ("GetProfilerTime","Returns the amount of high-precision time in seconds<br />that passed during the profiler\'s last start/stop<br />cycle.");
SMfunctions[614] = Array ("strlen","Calculates the length of a string.");
SMfunctions[615] = Array ("StrContains","Tests whether a string is found inside another string.");
SMfunctions[616] = Array ("strcmp","Compares two strings lexographically.");
SMfunctions[617] = Array ("strncmp","Compares two strings parts lexographically.");
SMfunctions[618] = Array ("StrEqual","Returns whether two strings are equal.");
SMfunctions[619] = Array ("strcopy","Copies one string to another string.");
SMfunctions[620] = Array ("Format","Formats a string according to the SourceMod format rules (see documentation).");
SMfunctions[621] = Array ("FormatEx","Formats a string according to the SourceMod format rules (see documentation).");
SMfunctions[622] = Array ("VFormat","Formats a string according to the SourceMod format rules (see documentation).");
SMfunctions[623] = Array ("StringToInt","Converts a string to an integer.");
SMfunctions[624] = Array ("StringToIntEx","Converts a string to an integer with some more options.");
SMfunctions[625] = Array ("IntToString","Converts an integer to a string.");
SMfunctions[626] = Array ("StringToFloat","Converts a string to a floating point number.");
SMfunctions[627] = Array ("StringToFloatEx","Converts a string to a floating point number with some more options.");
SMfunctions[628] = Array ("FloatToString","Converts a floating point number to a string.");
SMfunctions[629] = Array ("BreakString","Finds the first \\\"argument\\\" in a string; either a set of space<br />terminated characters, or a fully quoted string.  After the<br />argument is found, whitespace is read until the next portion<br />of the string is reached.  If nothing remains, -1 is returned.<br />Otherwise, the index to the first character is returned.");
SMfunctions[630] = Array ("TrimString","Removes whitespace characters from the beginning and end of a string.");
SMfunctions[631] = Array ("SplitString","Returns text in a string up until a certain character sequence is reached.");
SMfunctions[632] = Array ("ReplaceString","Given a string, replaces all occurrences of a search string with a<br />replacement string.");
SMfunctions[633] = Array ("ReplaceStringEx","Given a string, replaces the first occurrence of a search string with a<br />replacement string.");
SMfunctions[634] = Array ("GetCharBytes","Returns the number of bytes a character is using.  This is<br />for multi-byte characters (UTF-8).  For normal ASCII characters,<br />this will return 1.");
SMfunctions[635] = Array ("IsCharAlpha","Returns whether a character is an ASCII alphabet character.");
SMfunctions[636] = Array ("IsCharNumeric","Returns whether a character is numeric.");
SMfunctions[637] = Array ("IsCharSpace","Returns whether a character is whitespace.");
SMfunctions[638] = Array ("IsCharMB","Returns if a character is multi-byte or not.");
SMfunctions[639] = Array ("IsCharUpper","Returns whether an alphabetic character is uppercase.");
SMfunctions[640] = Array ("IsCharLower","Returns whether an alphabetic character is lowercase.");
SMfunctions[866] = Array ("StripQuotes","Strips a quote pair off a string if it exists.  That is, the following<br />replace rule is applied once:  $\\\"(.*)\\\"^ -> $\\1^<br />Note that the leading and trailing quotes will only be removed if both<br />exist.  Otherwise, the string is left unmodified.  This function should<br />be considered O(k) (all characters get shifted down).");
SMfunctions[641] = Array ("CharToUpper","Returns an uppercase character to a lowercase character.");
SMfunctions[642] = Array ("CharToLower","Returns a lowercase character to an uppercase character.");
SMfunctions[867] = Array ("FindCharInString","Finds the first occurrence of a character in a string.");
SMfunctions[643] = Array ("StrCat","Concatenates one string onto another.");
SMfunctions[644] = Array ("ExplodeString","Breaks a string into pieces and stores each piece into an array of buffers.");
SMfunctions[645] = Array ("ImplodeStrings","Joins an array of strings into one string, with a \\\"join\\\" string inserted in<br />between each given string.  This function complements ExplodeString.");
SMfunctions[373] = Array ("TE_SetupSparks","Sets up a sparks effect.");
SMfunctions[374] = Array ("TE_SetupSmoke","Sets up a smoke effect.");
SMfunctions[375] = Array ("TE_SetupDust","Sets up a dust cloud effect.");
SMfunctions[376] = Array ("TE_SetupMuzzleFlash","Sets up a muzzle flash effect.");
SMfunctions[377] = Array ("TE_SetupMetalSparks","Sets up a metal sparks effect.");
SMfunctions[378] = Array ("TE_SetupEnergySplash","Sets up an energy splash effect.");
SMfunctions[379] = Array ("TE_SetupArmorRicochet","Sets up an armor ricochet effect.");
SMfunctions[380] = Array ("TE_SetupGlowSprite","Sets up a glowing sprite effect.");
SMfunctions[381] = Array ("TE_SetupExplosion","Sets up a explosion effect.");
SMfunctions[382] = Array ("TE_SetupBloodSprite","Sets up a blood sprite effect.");
SMfunctions[383] = Array ("TE_SetupBeamRingPoint","Sets up a beam ring point effect.");
SMfunctions[384] = Array ("TE_SetupBeamPoints","Sets up a point to point beam effect.");
SMfunctions[385] = Array ("TE_SetupBeamLaser","Sets up an entity to entity laser effect.");
SMfunctions[386] = Array ("TE_SetupBeamRing","Sets up a beam ring effect.");
SMfunctions[387] = Array ("TE_SetupBeamFollow","Sets up a follow beam effect.");
SMfunctions[575] = Array ("OnPluginStart","Called when the plugin is fully initialized and all known external references<br />are resolved. This is only called once in the lifetime of the plugin, and is<br />paired with OnPluginEnd().<br />If any run-time error is thrown during this callback, the plugin will be marked<br />as failed.<br />It is not necessary to close any handles or remove hooks in this function.<br />SourceMod guarantees that plugin shutdown automatically and correctly releases<br />all resources.");
SMfunctions[940] = Array ("AskPluginLoad2","Called before OnPluginStart, in case the plugin wants to check for load failure.<br />This is called even if the plugin type is \\\"private.\\\"  Any natives from modules are<br />not available at this point.  Thus, this forward should only be used for explicit<br />pre-emptive things, such as adding dynamic natives, setting certain types of load<br />filters (such as not loading the plugin for certain games).");
SMfunctions[577] = Array ("OnPluginEnd","Called when the plugin is about to be unloaded.");
SMfunctions[578] = Array ("OnPluginPauseChange","Called when the plugin\'s pause status is changing.");
SMfunctions[579] = Array ("OnGameFrame","Called before every server frame.  Note that you should avoid<br />doing expensive computations here, and you should declare large<br />local arrays using \'decl\' instead of \'new\'.");
SMfunctions[580] = Array ("OnMapStart","Called when the map is loaded.");
SMfunctions[581] = Array ("OnMapEnd","Called right before a map ends.");
SMfunctions[582] = Array ("OnConfigsExecuted","Called when the map has loaded, servercfgfile (server.cfg) has been<br />executed, and all plugin configs are done executing.  This is the best<br />place to initialize plugin functions which are based on cvar data.");
SMfunctions[852] = Array ("OnAutoConfigsBuffered","This is called once, right after OnMapStart() but any time before<br />OnConfigsExecuted().  It is called after the \\\"exec sourcemod.cfg\\\"<br />command and all AutoExecConfig() exec commands have been added to<br />the ServerCommand() buffer.<br />If you need to load per-map settings that override default values,<br />adding commands to the ServerCommand() buffer here will guarantee<br />that they\'re set before OnConfigsExecuted().<br />Unlike OnMapStart() and OnConfigsExecuted(), this is not called on<br />late loads that occur after OnMapStart().");
SMfunctions[583] = Array ("OnAllPluginsLoaded","Called after all plugins have been loaded.  This is called once for<br />every plugin.  If a plugin late loads, it will be called immediately<br />after OnPluginStart().");
SMfunctions[585] = Array ("GetMyHandle","Returns the calling plugin\'s Handle.");
SMfunctions[586] = Array ("GetPluginIterator","Returns an iterator that can be used to search through plugins.");
SMfunctions[587] = Array ("MorePlugins","Returns whether there are more plugins available in the iterator.");
SMfunctions[588] = Array ("ReadPlugin","Returns the current plugin in the iterator and advances the iterator.");
SMfunctions[589] = Array ("GetPluginStatus","Returns a plugin\'s status.");
SMfunctions[590] = Array ("GetPluginFilename","Retrieves a plugin\'s file name relative to the plugins folder.");
SMfunctions[591] = Array ("IsPluginDebugging","Retrieves whether or not a plugin is being debugged.");
SMfunctions[592] = Array ("GetPluginInfo","Retrieves a plugin\'s public info.");
SMfunctions[807] = Array ("FindPluginByNumber","Finds a plugin by its order in the list from the \\\"plugins list\\\" server<br />\\\"sm\\\" command.  You should not use this function to loop through all plugins,<br />use the iterator instead.  Looping through all plugins using this native<br />is O(n^2), whereas using the iterator is O(n).");
SMfunctions[593] = Array ("SetFailState","Causes the plugin to enter a failed state.  An error will be thrown and<br />the plugin will be paused until it is unloaded or reloaded.<br />For backwards compatibility, if no extra arguments are passed, no<br />formatting is applied.  If one or more additional arguments is passed,<br />the string is formatted using Format().  If any errors are encountered<br />during formatting, both the format specifier string and an additional<br />error message are written.<br />This function does not return, and no further code in the plugin is<br />executed.");
SMfunctions[594] = Array ("ThrowError","Aborts the current callback and throws an error.  This function<br />does not return in that no code is executed following it.");
SMfunctions[601] = Array ("GetTime","Gets the system time as a unix timestamp.");
SMfunctions[602] = Array ("FormatTime","Produces a date and/or time string value for a timestamp.<br />See this URL for valid parameters:<br />http://cplusplus.com/reference/clibrary/ctime/strftime.html");
SMfunctions[603] = Array ("LoadGameConfigFile","Loads a game config file.");
SMfunctions[604] = Array ("GameConfGetOffset","Returns an offset value.");
SMfunctions[605] = Array ("GameConfGetKeyValue","Gets the value of a key from the \\\"Keys\\\" section.");
SMfunctions[606] = Array ("GetSysTickCount","Returns the operating system\'s \\\"tick count,\\\" which is a number of<br />milliseconds since the operating system loaded.  This can be used<br />for basic benchmarks.");
SMfunctions[607] = Array ("AutoExecConfig","Specifies that the given config file should be executed after plugin load.<br />OnConfigsExecuted() will not be called until the config file has executed,<br />but it will be called if the execution fails.");
SMfunctions[609] = Array ("RegPluginLibrary","Registers a library name for identifying as a dependency to<br />other plugins.");
SMfunctions[610] = Array ("LibraryExists","Returns whether a library exists.  This function should be considered<br />expensive; it should only be called on plugin to determine availability<br />of resources.  Use OnLibraryAdded()/OnLibraryRemoved() to detect changes<br />in optional resources.");
SMfunctions[611] = Array ("GetExtensionFileStatus","Returns the status of an extension, by filename.");
SMfunctions[612] = Array ("OnLibraryAdded","Called after a library is added that the current plugin references<br />optionally. A library is either a plugin name or extension name, as<br />exposed via its include file.");
SMfunctions[613] = Array ("OnLibraryRemoved","Called right before a library is removed that the current plugin references<br />optionally.  A library is either a plugin name or extension name, as<br />exposed via its include file.");
SMfunctions[792] = Array ("ReadMapList","Loads a map list to an ADT Array.<br />A map list is a list of maps from a file.  SourceMod allows easy configuration of<br />maplists through addons/sourcemod/configs/maplists.cfg.  Each entry is given a<br />name and a file (for example, \\\"rtv\\\" => \\\"rtv.cfg\\\"), or a name and a redirection<br />(for example, \\\"rtv\\\" => \\\"default\\\").  This native will read a map list entry,<br />cache the file, and return the list of maps it holds.<br />Serial change numbers are used to identify if a map list has changed.  Thus, if<br />you pass a serial change number and it\'s equal to what SourceMod currently knows<br />about the map list, then SourceMod won\'t reparse the file.<br />If the maps end up being read from the maps folder (MAPLIST_FLAG_MAPSFOLDER), they<br />are automatically sorted in alphabetical, ascending order.<br />Arrays created by this function are temporary and must be freed via CloseHandle().<br />Modifying arrays created by this function will not affect future return values or<br />or the contents of arrays returned to other plugins.");
SMfunctions[793] = Array ("SetMapListCompatBind","Makes a compatibility binding for map lists.  For example, if a function previously used<br />\\\"clam.cfg\\\" for map lists, this function will insert a \\\"fake\\\" binding to \\\"clam.cfg\\\" that<br />will be overridden if it\'s in the maplists.cfg file.");
SMfunctions[835] = Array ("OnClientFloodCheck","Called when a client has sent chat text.  This must return either true or<br />false to indicate that a client is or is not spamming the server.<br />The return value is a hint only.  Core or another plugin may decide<br />otherwise.");
SMfunctions[837] = Array ("OnClientFloodResult","Called after a client\'s flood check has been computed.  This can be used<br />by antiflood algorithms to decay/increase flooding weights.<br />Since the result from \\\"OnClientFloodCheck\\\" isn\'t guaranteed to be the<br />final result, it is generally a good idea to use this to play with other<br />algorithms nicely.");
SMfunctions[941] = Array ("CanTestFeatures","Returns whether \\\"GetFeatureStatus\\\" will work. Using this native<br />or this function will not cause SourceMod to fail loading on older versions,<br />however, GetFeatureStatus will only work if this function returns true.");
SMfunctions[942] = Array ("GetFeatureStatus","Returns whether a feature exists, and if so, whether it is usable.");
SMfunctions[943] = Array ("RequireFeature","Requires that a given feature is available. If it is not, SetFailState()<br />is called with the given message.");
SMfunctions[142] = Array ("FormatUserLogText","Formats a user\'s info as log text.  This is usually not needed because<br />%L can be used to auto-format client information into a string.");
SMfunctions[143] = Array ("FindPluginByFile","Returns plugin handle from plugin filename.");
SMfunctions[144] = Array ("FindTarget","Wraps ProcessTargetString() and handles producing error messages for<br />bad targets.");
SMfunctions[595] = Array ("LogMessage","Logs a plugin message to the SourceMod logs.  The log message will be<br />prefixed by the plugin\'s logtag (filename).");
SMfunctions[596] = Array ("LogMessageEx","Logs a message to the SourceMod logs without any plugin logtag.  This is<br />useful for re-routing messages from other plugins, for example, messages<br />from LogAction().");
SMfunctions[597] = Array ("LogToFile","Logs a message to any file.  The log message will be in the normal<br />SourceMod format, with the plugin logtag prepended.");
SMfunctions[598] = Array ("LogToFileEx","Same as LogToFile(), except no plugin logtag is prepended.");
SMfunctions[599] = Array ("LogAction","Logs an action from a command or event whereby interception and routing may<br />be important.  This is intended to be a logging version of ShowActivity().");
SMfunctions[600] = Array ("LogError","Logs a plugin error message to the SourceMod logs.");
SMfunctions[584] = Array ("OnLogAction","Called when an action is going to be logged.");
SMfunctions[897] = Array ("GameLogHook","Called when a game log message is received.<br />Any Log*() functions called within this callback will not recursively<br />pass through.  That is, they will log directly, bypassing this callback.<br />Note that this does not capture log messages from the engine.  It only<br />captures log messages being sent from the game/mod itself.");
SMfunctions[839] = Array ("AddGameLogHook","Adds a game log hook.");
SMfunctions[840] = Array ("RemoveGameLogHook","Removes a game log hook.");
SMfunctions[703] = Array ("ProcessTargetString","Processes a generic command target string, and resolves it to a list<br />of clients or one client, based on filtering rules and a pattern.<br />Note that you should use LoadTranslations(\\\"common.phrases\\\") in OnPluginStart(),<br />as that file is guaranteed to contain all of the translatable phrases that<br />ProcessTargetString() will return.");
SMfunctions[704] = Array ("ReplyToTargetError","Replies to a client with a given message describing a targetting<br />failure reason.<br />Note: The translation phrases are found in common.phrases.txt.");
SMfunctions[305] = Array ("SortIntegers","Sorts an array of integers.");
SMfunctions[306] = Array ("SortFloats","Sorts an array of float point numbers.");
SMfunctions[307] = Array ("SortStrings","Sorts an array of strings.");
SMfunctions[898] = Array ("public SortFunc1D","Sort comparison function for 1D array elements.");
SMfunctions[309] = Array ("SortCustom1D","Sorts a custom 1D array.  You must pass in a comparison function.");
SMfunctions[310] = Array ("SortCustom2D","Sorts a custom 2D array.  You must pass in a comparison function.");
SMfunctions[761] = Array ("SortADTArray","Sort an ADT Array. Specify the type as Integer, Float, or String.");
SMfunctions[899] = Array ("public SortFuncADTArray","Sort comparison function for ADT Array elements. Function provides you with<br />indexes currently being sorted, use ADT Array functions to retrieve the<br />index values and compare.");
SMfunctions[763] = Array ("SortADTArrayCustom","Custom sorts an ADT Array. You must pass in a comparison function.");
SMfunctions[156] = Array ("CreateTimer","Creates a basic timer.  Calling CloseHandle() on a timer will end the timer.");
SMfunctions[157] = Array ("KillTimer","Kills a timer.  Use this instead of CloseHandle() if you need more options.");
SMfunctions[158] = Array ("TriggerTimer","Manually triggers a timer so its function will be called.");
SMfunctions[159] = Array ("GetTickedTime","Returns the simulated game time.<br />This time is internally maintained by SourceMod and is based on the game<br />tick count and tick rate.  Unlike GetGameTime(), it will increment past<br />map changes and while no players are connected.  Unlike GetEngineTime(),<br />it will not increment based on the system clock (i.e. it is still bound<br />to the ticking process).");
SMfunctions[160] = Array ("GetMapTimeLeft","Returns an estimate of the time left before the map ends.  If the server<br />has not processed any frames yet (i.e. no players have joined the map yet),<br />then the time left returned will always be infinite.");
SMfunctions[161] = Array ("GetMapTimeLimit","Retrieves the current map time limit.  If the server has not processed any<br />frames yet (i.e. no players have joined the map yet), then the time limit<br />returned will always be 0.");
SMfunctions[162] = Array ("ExtendMapTimeLimit","Extends the map time limit in a way that will notify all plugins.");
SMfunctions[872] = Array ("GetTickInterval","Returns the number of seconds in between game server ticks.<br />Note: A tick, in this context, is a frame.");
SMfunctions[163] = Array ("OnMapTimeLeftChanged","Notification that the map\'s time left has changed via a change in the time<br />limit or a change in the game rules (such as mp_restartgame).  This is useful<br />for plugins trying to create timers based on the time left in the map.<br />Calling ExtendMapTimeLimit() from here, without proper precaution, will<br />cause infinite recursion.<br />If the operation is not supported, this will never be called.<br />If the server has not yet processed any frames (i.e. no players have joined<br />the map yet), then this will be called once the server begins ticking, even<br />if there is no time limit set.");
SMfunctions[164] = Array ("IsServerProcessing","Returns whether or not the server is processing frames or not.<br />The server does not process frames until at least one client joins the game.<br />Once the first player has in, even if that player, leaves, the server\'s<br />timers and entities will work.");
SMfunctions[165] = Array ("CreateDataTimer","Creates a timer associated with a new datapack, and returns the datapack.");
SMfunctions[244] = Array ("BuildPath","Builds a path relative to the SourceMod folder.  This should be used instead of<br />directly referencing addons/sourcemod, in case users change the name of their<br />folder layout.");
SMfunctions[245] = Array ("OpenDirectory","Opens a directory/folder for contents enumeration.");
SMfunctions[246] = Array ("ReadDirEntry","Reads the current directory entry as a local filename, then moves to the next file.");
SMfunctions[247] = Array ("OpenFile","Opens a file.");
SMfunctions[248] = Array ("DeleteFile","Deletes a file.");
SMfunctions[249] = Array ("ReadFileLine","Reads a line from a text file.");
SMfunctions[808] = Array ("ReadFile","Reads binary data from a file.");
SMfunctions[809] = Array ("ReadFileString","Reads a UTF8 or ANSI string from a file.");
SMfunctions[810] = Array ("WriteFile","Writes binary data to a file.");
SMfunctions[811] = Array ("WriteFileString","Writes a binary string to a file.");
SMfunctions[259] = Array ("WriteFileLine","Writes a line of text to a text file.  A newline is automatically appended.");
SMfunctions[812] = Array ("ReadFileCell","Reads a single binary cell from a file.");
SMfunctions[813] = Array ("WriteFileCell","Writes a single binary cell to a file.");
SMfunctions[250] = Array ("IsEndOfFile","Tests if the end of file has been reached.");
SMfunctions[251] = Array ("FileSeek","Sets the file position indicator.");
SMfunctions[252] = Array ("FilePosition","Get current position in the file.");
SMfunctions[253] = Array ("FileExists","Checks if a file exists.");
SMfunctions[254] = Array ("RenameFile","Renames a file.");
SMfunctions[255] = Array ("DirExists","Checks if a directory exists.");
SMfunctions[256] = Array ("FileSize","Get the file size in bytes.");
SMfunctions[257] = Array ("FlushFile","Flushes a file\'s buffered output; any buffered output<br />is immediately written to the file.");
SMfunctions[258] = Array ("RemoveDir","Removes a directory.");
SMfunctions[900] = Array ("CreateDirectory","Creates a directory.");
SMfunctions[260] = Array ("GetFileTime","Returns a file timestamp as a unix timestamp.");
SMfunctions[261] = Array ("LogToOpenFile","Same as LogToFile(), except uses an open file Handle.  The file must<br />be opened in text appending mode.");
SMfunctions[262] = Array ("LogToOpenFileEx","Same as LogToFileEx(), except uses an open file Handle.  The file must<br />be opened in text appending mode.");
SMfunctions[901] = Array ("public EntityOutput","Called when an entity output is fired.");
SMfunctions[862] = Array ("HookEntityOutput","Add an entity output hook on a entity classname");
SMfunctions[863] = Array ("UnhookEntityOutput","Remove an entity output hook.");
SMfunctions[864] = Array ("HookSingleEntityOutput","Add an entity output hook on a single entity instance");
SMfunctions[865] = Array ("UnhookSingleEntityOutput","Remove a single entity output hook.");
SMfunctions[501] = Array ("FindTeamByName","Given a partial team name, attempts to find a matching team.<br />The search is performed case insensitively and only against the<br />first N characters of the team names, where N is the number of<br />characters in the search pattern.");
SMfunctions[546] = Array ("GetVectorLength","Calculates a vector\'s length.");
SMfunctions[547] = Array ("GetVectorDistance","Calculates the distance between two vectors.");
SMfunctions[548] = Array ("GetVectorDotProduct","Calculates the dot product of two vectors.");
SMfunctions[549] = Array ("GetVectorCrossProduct","Computes the cross product of two vectors.  Any input array can be the same<br />as the output array.");
SMfunctions[550] = Array ("NormalizeVector","Normalizes a vector.  The input array can be the same as the output array.");
SMfunctions[551] = Array ("GetAngleVectors","Returns vectors in the direction of an angle.");
SMfunctions[552] = Array ("GetVectorAngles","Returns angles from a vector.");
SMfunctions[553] = Array ("GetVectorVectors","Returns direction vectors from a vector.");
SMfunctions[554] = Array ("AddVectors","Adds two vectors.  It is safe to use either input buffer as an output<br />buffer.");
SMfunctions[555] = Array ("SubtractVectors","Subtracts a vector from another vector.  It is safe to use either input<br />buffer as an output buffer.");
SMfunctions[556] = Array ("ScaleVector","Scales a vector.");
SMfunctions[557] = Array ("NegateVector","Negatives a vector.");
SMfunctions[558] = Array ("MakeVectorFromPoints","Builds a vector from two points by subtracting the points.");
SMfunctions[445] = Array ("SMC_CreateParser","Creates a new SMC file format parser.  This is used to set parse hooks.");
SMfunctions[446] = Array ("SMC_ParseFile","Parses an SMC file.");
SMfunctions[447] = Array ("SMC_GetErrorString","Gets an error string for an SMCError code.");
SMfunctions[902] = Array ("public SMC_ParseStart","Called when parsing is started.");
SMfunctions[449] = Array ("SMC_SetParseStart","Sets the SMC_ParseStart function of a parse Handle.");
SMfunctions[903] = Array ("public SMC_ParseEnd","Called when parsing is halted.");
SMfunctions[451] = Array ("SMC_SetParseEnd","Sets the SMC_ParseEnd of a parse handle.");
SMfunctions[775] = Array ("SMC_NewSection","Called when the parser is entering a new section or sub-section.");
SMfunctions[776] = Array ("SMC_KeyValue","Called when the parser finds a new key/value pair.");
SMfunctions[777] = Array ("SMC_EndSection","Called when the parser finds the end of the current section.");
SMfunctions[452] = Array ("SMC_SetReaders","Sets the three main reader functions.");
SMfunctions[778] = Array ("SMC_RawLine","Called whenever a raw line is read.");
SMfunctions[453] = Array ("SMC_SetRawLine","Sets a raw line reader on an SMC parser Handle.");
SMfunctions[732] = Array ("HookEvent","Creates a hook for when a game event is fired.");
SMfunctions[733] = Array ("HookEventEx","Creates a hook for when a game event is fired.");
SMfunctions[734] = Array ("UnhookEvent","Removes a hook for when a game event is fired.");
SMfunctions[735] = Array ("CreateEvent","Creates a game event to be fired later.<br />The Handle should not be closed via CloseHandle().  It must be closed via<br />FireEvent() or CancelCreatedEvent().");
SMfunctions[736] = Array ("FireEvent","Fires a game event.<br />This function closes the event Handle after completing.");
SMfunctions[737] = Array ("CancelCreatedEvent","Cancels a previously created game event that has not been fired.");
SMfunctions[738] = Array ("GetEventBool","Returns the boolean value of a game event\'s key.");
SMfunctions[739] = Array ("SetEventBool","Sets the boolean value of a game event\'s key.");
SMfunctions[740] = Array ("GetEventInt","Returns the integer value of a game event\'s key.");
SMfunctions[741] = Array ("SetEventInt","Sets the integer value of a game event\'s key.<br />Integer value refers to anything that can be reduced to an integer.<br />The various size specifiers, such as \\\"byte\\\" and \\\"short\\\" are still<br />integers, and only refer to how much data will actually be sent<br />over the network (if applicable).");
SMfunctions[742] = Array ("GetEventFloat","Returns the floating point value of a game event\'s key.");
SMfunctions[743] = Array ("SetEventFloat","Sets the floating point value of a game event\'s key.");
SMfunctions[744] = Array ("GetEventString","Retrieves the string value of a game event\'s key.");
SMfunctions[745] = Array ("SetEventString","Sets the string value of a game event\'s key.");
SMfunctions[746] = Array ("GetEventName","Retrieves the name of a game event.");
SMfunctions[944] = Array ("SetEventBroadcast","Sets whether an event\'s broadcasting will be disabled or not.<br />This has no effect on events Handles that are not from HookEvent<br />or HookEventEx callbacks.");
SMfunctions[292] = Array ("OnBanClient","Called for calls to BanClient() with a non-empty command.");
SMfunctions[293] = Array ("OnBanIdentity","Called for calls to BanIdentity() with a non-empty command.");
SMfunctions[294] = Array ("OnRemoveBan","Called for calls to RemoveBan() with a non-empty command.");
SMfunctions[295] = Array ("BanClient","Bans a client.");
SMfunctions[296] = Array ("BanIdentity","Bans an identity (either an IP address or auth string).");
SMfunctions[297] = Array ("RemoveBan","Removes a ban that was written to the server (either in memory or on disk).");
SMfunctions[145] = Array ("OnAdminMenuCreated","Called when the admin menu is created and 3rd party plugins can grab<br />the Handle or add categories.");
SMfunctions[146] = Array ("OnAdminMenuReady","Called when the admin menu is ready to have items added.");
SMfunctions[147] = Array ("GetAdminTopMenu","Retrieves the Handle to the admin top menu.");
SMfunctions[148] = Array ("AddTargetsToMenu","Adds targets to an admin menu.<br />Each client is displayed as: name (userid)<br />Each item contains the userid as a string for its info.");
SMfunctions[822] = Array ("AddTargetsToMenu2","Adds targets to an admin menu.<br />Each client is displayed as: name (userid)<br />Each item contains the userid as a string for its info.");
SMfunctions[149] = Array ("RedisplayAdminMenu","Re-displays the admin menu to a client after selecting an item.<br />Auto-aborts if the Handle is invalid.");
SMfunctions[674] = Array ("PrefetchSound","Prefetches a sound.");
SMfunctions[676] = Array ("EmitAmbientSound","Emits an ambient sound.");
SMfunctions[677] = Array ("FadeClientVolume","Fades a client\'s volume level toward silence or a given percentage.");
SMfunctions[678] = Array ("StopSound","Stops a sound.");
SMfunctions[679] = Array ("EmitSound","Emits a sound to a list of clients.");
SMfunctions[680] = Array ("EmitSentence","Emits a sentence to a list of clients.");
SMfunctions[786] = Array ("AmbientSHook","Called when an ambient sound is about to be emitted to one or more clients.<br />NOTICE: all parameters can be overwritten to modify the default behavior.");
SMfunctions[787] = Array ("NormalSHook","Called when a sound is going to be emitted to one or more clients.<br />NOTICE: all params can be overwritten to modify the default behaviour.");
SMfunctions[788] = Array ("AddAmbientSoundHook","Hooks all played ambient sounds.");
SMfunctions[789] = Array ("AddNormalSoundHook","Hooks all played normal sounds.");
SMfunctions[790] = Array ("RemoveAmbientSoundHook","Unhooks all played ambient sounds.");
SMfunctions[791] = Array ("RemoveNormalSoundHook","Unhooks all played normal sounds.");
SMfunctions[681] = Array ("EmitSoundToClient","Wrapper to emit sound to one client.");
SMfunctions[682] = Array ("EmitSoundToAll","Wrapper to emit sound to all clients.");
SMfunctions[683] = Array ("ATTN_TO_SNDLEVEL","Converts an attenuation value to a sound level.<br />This function is from the HL2SDK.");
SMfunctions[502] = Array ("OnRebuildAdminCache","Called when part of the cache which needs to be rebuilt.");
SMfunctions[503] = Array ("DumpAdminCache","Tells the admin system to dump a portion of the cache.");
SMfunctions[504] = Array ("AddCommandOverride","Adds a global command flag override.  Any command registered with this name<br />will assume the new flag.  This is applied retroactively as well.");
SMfunctions[505] = Array ("GetCommandOverride","Returns a command override.");
SMfunctions[506] = Array ("UnsetCommandOverride","Unsets a command override.");
SMfunctions[507] = Array ("CreateAdmGroup","Adds a new group.  Name must be unique.");
SMfunctions[508] = Array ("FindAdmGroup","Finds a group by name.");
SMfunctions[509] = Array ("SetAdmGroupAddFlag","Adds or removes a flag from a group\'s flag set.");
SMfunctions[510] = Array ("GetAdmGroupAddFlag","Gets the set value of an add flag on a group\'s flag set.");
SMfunctions[511] = Array ("GetAdmGroupAddFlags","Returns the flag set that is added to a user from their group.");
SMfunctions[512] = Array ("SetAdmGroupImmuneFrom","Adds immunity to a specific group.");
SMfunctions[513] = Array ("GetAdmGroupImmuneCount","Returns the number of specific group immunities.");
SMfunctions[514] = Array ("GetAdmGroupImmuneFrom","Returns a group that this group is immune to given an index.");
SMfunctions[515] = Array ("AddAdmGroupCmdOverride","Adds a group-specific override type.");
SMfunctions[516] = Array ("GetAdmGroupCmdOverride","Retrieves a group-specific command override.");
SMfunctions[517] = Array ("RegisterAuthIdentType","Registers an authentication identity type.  You normally never need to call this except for<br />very specific systems.");
SMfunctions[518] = Array ("CreateAdmin","Creates a new admin entry in the permissions cache.");
SMfunctions[519] = Array ("GetAdminUsername","Retrieves an admin\'s user name as made with CreateAdmin().");
SMfunctions[520] = Array ("BindAdminIdentity","Binds an admin to an identity for fast lookup later on.  The bind must be unique.");
SMfunctions[521] = Array ("SetAdminFlag","Sets whether or not a flag is enabled on an admin.");
SMfunctions[522] = Array ("GetAdminFlag","Returns whether or not a flag is enabled on an admin.");
SMfunctions[523] = Array ("GetAdminFlags","Returns the bitstring of access flags on an admin.");
SMfunctions[524] = Array ("AdminInheritGroup","Adds a group to an admin\'s inherited group list.  Any flags the group has<br />will be added to the admin\'s effective flags.");
SMfunctions[525] = Array ("GetAdminGroupCount","Returns the number of groups this admin is a member of.");
SMfunctions[526] = Array ("GetAdminGroup","Returns group information from an admin.");
SMfunctions[527] = Array ("SetAdminPassword","Sets a password on an admin.");
SMfunctions[528] = Array ("GetAdminPassword","Gets an admin\'s password.");
SMfunctions[529] = Array ("FindAdminByIdentity","Attempts to find an admin by an auth method and an identity.");
SMfunctions[530] = Array ("RemoveAdmin","Removes an admin entry from the cache.");
SMfunctions[531] = Array ("FlagBitsToBitArray","Converts a flag bit string to a bit array.");
SMfunctions[532] = Array ("FlagBitArrayToBits","Converts a flag array to a bit string.");
SMfunctions[533] = Array ("FlagArrayToBits","Converts an array of flags to bits.");
SMfunctions[534] = Array ("FlagBitsToArray","Converts a bit string to an array of flags.");
SMfunctions[535] = Array ("FindFlagByName","Finds a flag by its string name.");
SMfunctions[536] = Array ("FindFlagByChar","Finds a flag by a given character.");
SMfunctions[537] = Array ("ReadFlagString","Converts a string of flag characters to a bit string.");
SMfunctions[538] = Array ("CanAdminTarget","Tests whether one admin can target another.<br />The hueristics for this check are as follows:<br />0. If the targeting AdminId is INVALID_ADMIN_ID, targeting fails.<br />1. If the targeted AdminId is INVALID_ADMIN_ID, targeting succeeds.<br />2. If the targeted AdminId is the same as the targeting AdminId,<br />(self) targeting succeeds.<br />3. If the targeting admin is root, targeting succeeds.<br />4. If the targeted admin has access higher (as interpreted by<br />(sm_immunity_mode) than the targeting admin, then targeting fails.<br />5. If the targeted admin has specific immunity from the<br />targeting admin via group immunities, targeting fails.<br />6. Targeting succeeds.");
SMfunctions[539] = Array ("CreateAuthMethod","Creates an admin auth method.  This does not need to be called more than once<br />per method, ever.");
SMfunctions[540] = Array ("SetAdmGroupImmunityLevel","Sets a group\'s immunity level.");
SMfunctions[541] = Array ("GetAdmGroupImmunityLevel","Gets a group\'s immunity level (defaults to 0).");
SMfunctions[542] = Array ("SetAdminImmunityLevel","Sets an admin\'s immunity level.");
SMfunctions[543] = Array ("GetAdminImmunityLevel","Gets an admin\'s immunity level.");
SMfunctions[544] = Array ("FlagToBit","Converts a flag to its single bit.");
SMfunctions[545] = Array ("BitToFlag","Converts a bit to an AdminFlag.");
SMfunctions[326] = Array ("SQL_Connect","Creates an SQL connection from a named configuration.");
SMfunctions[327] = Array ("SQL_DefConnect","Creates a default SQL connection.");
SMfunctions[904] = Array ("SQL_ConnectCustom","Connects to a database using key value pairs containing the database info.<br />The key/value pairs should match what would be in databases.cfg.<br />I.e. \\\"driver\\\" should be \\\"default\\\" or a driver name (or ommitted for<br />the default).  For SQLite, only the \\\"database\\\" parameter is needed in addition.<br />For drivers which require external connections, more of the parameters may be<br />needed.<br />In general it is discouraged to use this function.  Connections should go through<br />databases.cfg for greatest flexibility on behalf of users.");
SMfunctions[905] = Array ("SQLite_UseDatabase","Grabs a handle to an SQLite database, creating one if it does not exist.<br />Unless there are extenuating circumstances, you should consider using \\\"sourcemod-local\\\" as the<br />database name.  This provides some unification between plugins on behalf of users.<br />As a precaution, you should always create some sort of unique prefix to your table names so<br />there are no conflicts, and you should never drop or modify tables that you do not own.");
SMfunctions[329] = Array ("SQL_CheckConfig","Returns if a named configuration is present in databases.cfg.");
SMfunctions[330] = Array ("SQL_GetDriver","Returns a driver Handle from a name string.<br />If the driver is not found, SourceMod will attempt<br />to load an extension named dbi.<name>.ext.[dll|so].");
SMfunctions[331] = Array ("SQL_ReadDriver","Reads the driver of an opened database.");
SMfunctions[332] = Array ("SQL_GetDriverIdent","Retrieves a driver\'s identification string.<br />Example: \\\"mysql\\\", \\\"sqlite\\\"");
SMfunctions[333] = Array ("SQL_GetDriverProduct","Retrieves a driver\'s product string.<br />Example: \\\"MySQL\\\", \\\"SQLite\\\"");
SMfunctions[334] = Array ("SQL_GetAffectedRows","Returns the number of affected rows from the last query.");
SMfunctions[335] = Array ("SQL_GetInsertId","Returns the last query\'s insertion id.");
SMfunctions[336] = Array ("SQL_GetError","Returns the error reported by the last query.");
SMfunctions[838] = Array ("SQL_EscapeString","Escapes a database string for literal insertion.  This is not needed<br />for binding strings in prepared statements.<br />Generally, database strings are inserted into queries enclosed in<br />single quotes (\').  If user input has a single quote in it, the<br />quote needs to be escaped.  This function ensures that any unsafe<br />characters are safely escaped according to the database engine and<br />the database\'s character set.<br />NOTE: SourceMod only guarantees properly escaped strings when the query<br />encloses the string in \'\'. While drivers tend to allow \\\" instead, the string<br />may be not be escaped (for example, on SQLite)!");
SMfunctions[337] = Array ("SQL_QuoteString","This is a backwards compatibility stock.  You should use SQL_EscapeString()<br />instead, as this function will probably be deprecated in SourceMod 1.1.");
SMfunctions[338] = Array ("SQL_FastQuery","Executes a query and ignores the result set.");
SMfunctions[339] = Array ("SQL_Query","Executes a simple query and returns a new query Handle for<br />receiving the results.");
SMfunctions[340] = Array ("SQL_PrepareQuery","Creates a new prepared statement query.  Prepared statements can<br />be executed any number of times.  They can also have placeholder<br />parameters, similar to variables, which can be bound safely and<br />securely (for example, you do not need to quote bound strings).<br />Statement handles will work in any function that accepts a Query handle.");
SMfunctions[341] = Array ("SQL_FetchMoreResults","Advances to the next set of results.<br />In some SQL implementations, multiple result sets can exist on one query.<br />This is possible in MySQL with simple queries when executing a CALL<br />query.  If this is the case, all result sets must be processed before<br />another query is made.");
SMfunctions[342] = Array ("SQL_HasResultSet","Returns whether or not a result set exists.  This will<br />return true even if 0 results were returned, but false<br />on queries like UPDATE, INSERT, or DELETE.");
SMfunctions[343] = Array ("SQL_GetRowCount","Retrieves the number of rows in the last result set.");
SMfunctions[344] = Array ("SQL_GetFieldCount","Retrieves the number of fields in the last result set.");
SMfunctions[345] = Array ("SQL_FieldNumToName","Retrieves the name of a field by index.");
SMfunctions[346] = Array ("SQL_FieldNameToNum","Retrieves a field index by name.");
SMfunctions[347] = Array ("SQL_FetchRow","Fetches a row from the current result set.  This must be<br />successfully called before any results are fetched.<br />If this function fails, SQL_MoreResults() can be used to<br />tell if there was an error or the result set is finished.");
SMfunctions[348] = Array ("SQL_MoreRows","Returns if there are more rows.");
SMfunctions[349] = Array ("SQL_Rewind","Rewinds a result set back to the first result.");
SMfunctions[350] = Array ("SQL_FetchString","Fetches a string from a field in the current row of a result set.<br />If the result is NULL, an empty string will be returned.  A NULL<br />check can be done with the result parameter, or SQL_IsFieldNull().");
SMfunctions[351] = Array ("SQL_FetchFloat","Fetches a float from a field in the current row of a result set.<br />If the result is NULL, a value of 0.0 will be returned.  A NULL<br />check can be done with the result parameter, or SQL_IsFieldNull().");
SMfunctions[352] = Array ("SQL_FetchInt","Fetches an integer from a field in the current row of a result set.<br />If the result is NULL, a value of 0 will be returned.  A NULL<br />check can be done with the result parameter, or SQL_IsFieldNull().");
SMfunctions[353] = Array ("SQL_IsFieldNull","Returns whether a field\'s data in the current row of a result set is<br />NULL or not.  NULL is an SQL type which means \\\"no data.\\\"");
SMfunctions[354] = Array ("SQL_FetchSize","Returns the length of a field\'s data in the current row of a result<br />set.  This only needs to be called for strings to determine how many<br />bytes to use.  Note that the return value does not include the null<br />terminator.");
SMfunctions[355] = Array ("SQL_BindParamInt","Binds a parameter in a prepared statement to a given integer value.");
SMfunctions[356] = Array ("SQL_BindParamFloat","Binds a parameter in a prepared statement to a given float value.");
SMfunctions[357] = Array ("SQL_BindParamString","Binds a parameter in a prepared statement to a given string value.");
SMfunctions[358] = Array ("SQL_Execute","Executes a prepared statement.  All parameters must be bound beforehand.");
SMfunctions[359] = Array ("SQL_LockDatabase","Locks a database so threading operations will not interrupt.<br />If you are using a database Handle for both threading and non-threading,<br />this MUST be called before doing any set of non-threading DB operations.<br />Otherwise you risk corrupting the database driver\'s memory or network<br />connection.<br />Leaving a lock on a database and then executing a threaded query results<br />in a dead lock! Make sure to call SQL_UnlockDatabase()!<br />If the lock cannot be acquired, the main thread will pause until the<br />threaded operation has concluded.");
SMfunctions[360] = Array ("SQL_UnlockDatabase","Unlocks a database so threading operations may continue.");
SMfunctions[906] = Array ("public SQLTCallback","General callback for threaded SQL stuff.");
SMfunctions[362] = Array ("SQL_IsSameConnection","Tells whether two database handles both point to the same database<br />connection.");
SMfunctions[363] = Array ("SQL_TConnect","Connects to a database via a thread.  This can be used instead of<br />SQL_Connect() if you wish for non-blocking functionality.<br />It is not necessary to use this to use threaded queries.  However, if you<br />don\'t (or you mix threaded/non-threaded queries), you should see<br />SQL_LockDatabase().");
SMfunctions[364] = Array ("SQL_TQuery","Executes a simple query via a thread.  The query Handle is passed through<br />the callback.<br />The database Handle returned through the callback is always a new Handle,<br />and if necessary, SQL_IsSameConnection() should be used to test against<br />other conenctions.<br />The query Handle returned through the callback is temporary and destroyed<br />at the end of the callback.  If you need to hold onto it, use CloneHandle().");
SMfunctions[302] = Array ("GeoipCode2","Gets the two character country code from an IP address. (US, CA, etc)");
SMfunctions[303] = Array ("GeoipCode3","Gets the three character country code from an IP address. (USA, CAN, etc)");
SMfunctions[304] = Array ("GeoipCountry","Gets the full country name. (max length of output string is 45)");
SMfunctions[747] = Array ("AcceptEntityInput","Invokes a named input method on an entity.<br />After completion (successful or not), the current global variant is re-initalized.");
SMfunctions[748] = Array ("SetVariantBool","Sets a bool value in the global variant object.");
SMfunctions[749] = Array ("SetVariantString","Sets a string in the global variant object.");
SMfunctions[750] = Array ("SetVariantInt","Sets an integer value in the global variant object.");
SMfunctions[751] = Array ("SetVariantFloat","Sets a floating point value in the global variant object.");
SMfunctions[752] = Array ("SetVariantVector3D","Sets a 3D vector in the global variant object.");
SMfunctions[753] = Array ("SetVariantPosVector3D","Sets a 3D position vector in the global variant object.");
SMfunctions[754] = Array ("SetVariantColor","Sets a color in the global variant object.");
SMfunctions[755] = Array ("SetVariantEntity","Sets an entity in the global variant object.");
SMfunctions[796] = Array ("CreateTrie","Creates a Trie structure.  A trie is a data storage object that maps any value to a<br />string of text.  It features very fast lookup and deletion, but grows very slow for<br />insertion once tens of thousands of items are added.<br />Keys in Tries are unique.  That is, each key may only have one value.  Unlike arrays,<br />Tries cannot be iterated right now.  Since the contents are known to be unique, to<br />work around this, you can use ADT Arrays to store a list of keys known to be in a<br />Trie.");
SMfunctions[797] = Array ("SetTrieValue","Sets a value in a Trie, either inserting a new entry or replacing an old one.");
SMfunctions[798] = Array ("SetTrieArray","Sets an array value in a Trie, either inserting a new entry or replacing an old one.");
SMfunctions[799] = Array ("SetTrieString","Sets a string value in a Trie, either inserting a new entry or replacing an old one.");
SMfunctions[800] = Array ("GetTrieValue","Retrieves a value in a Trie.");
SMfunctions[801] = Array ("GetTrieArray","Retrieves an array in a Trie.");
SMfunctions[802] = Array ("GetTrieString","Retrieves a string in a Trie.");
SMfunctions[803] = Array ("RemoveFromTrie","Removes a key entry from a Trie.");
SMfunctions[804] = Array ("ClearTrie","Clears all entries from a Trie.");
SMfunctions[821] = Array ("GetTrieSize","Retrieves the number of elements in a trie.<br />Note that trie items are not enumerable/iteratable.  If you need to<br />retrieve the elements in a trie, store its keys in an ADT Array.");
SMfunctions[313] = Array ("FindStringTable","Searches for a string table.");
SMfunctions[314] = Array ("GetNumStringTables","Returns the number of string tables that currently exist.");
SMfunctions[315] = Array ("GetStringTableNumStrings","Returns the number of strings that currently exist in a given string table.");
SMfunctions[316] = Array ("GetStringTableMaxStrings","Returns the maximum number of strings that are allowed in a given string table.");
SMfunctions[317] = Array ("GetStringTableName","Retrieves the name of a string table.");
SMfunctions[318] = Array ("FindStringIndex","Searches for the index of a given string in a string table.");
SMfunctions[319] = Array ("ReadStringTable","Retrieves the string at a given index of a string table.");
SMfunctions[320] = Array ("GetStringTableDataLength","Returns the length of the user data associated with a given string index.");
SMfunctions[321] = Array ("GetStringTableData","Retrieves the user data associated with a given string index.");
SMfunctions[322] = Array ("SetStringTableData","Sets the user data associated with a given string index.");
SMfunctions[323] = Array ("AddToStringTable","Adds a string to a given string table.");
SMfunctions[324] = Array ("LockStringTables","Locks or unlocks the network string tables.");
SMfunctions[325] = Array ("AddFileToDownloadsTable","Adds a file to the downloadables network string table.<br />This forces a client to download the file if they do not already have it.");
SMfunctions[0] = Array ("SetClientListeningFlags","Set the client listening flags.");
SMfunctions[1] = Array ("GetClientListeningFlags","Retrieve the client current listening flags.");
SMfunctions[945] = Array ("SetListenOverride","Override the receiver\'s ability to listen to the sender.");
SMfunctions[946] = Array ("GetListenOverride","Retrieves the override of the receiver\'s ability to listen to the sender.");
SMfunctions[947] = Array ("IsClientMuted","Retrieves if the muter has muted the mutee.");
SMfunctions[166] = Array ("CreateDataPack","Creates a new data pack.");
SMfunctions[167] = Array ("WritePackCell","Packs a normal cell into a data pack.");
SMfunctions[168] = Array ("WritePackFloat","Packs a float into a data pack.");
SMfunctions[169] = Array ("WritePackString","Packs a string into a data pack.");
SMfunctions[170] = Array ("ReadPackCell","Reads a cell from a data pack.");
SMfunctions[171] = Array ("ReadPackFloat","Reads a float from a data pack.");
SMfunctions[172] = Array ("ReadPackString","Reads a string from a data pack.");
SMfunctions[173] = Array ("ResetPack","Resets the position in a data pack.");
SMfunctions[174] = Array ("GetPackPosition","Returns the read or write position in a data pack.");
SMfunctions[175] = Array ("SetPackPosition","Sets the read/write position in a data pack.");
SMfunctions[176] = Array ("IsPackReadable","Returns whether or not a specified number of bytes from the data pack<br />position to the end can be read.");
SMfunctions[907] = Array ("CreateStack","Creates a stack structure.  A stack is a LIFO (last in, first out)<br />vector (array) of items.  It has O(1) insertion and O(1) removal.<br />Stacks have two operations: Push (adding an item) and Pop (removes<br />items in reverse-push order).<br />The contents of the stack are uniform; i.e. storing a string and then<br />retrieving it as an integer is NOT the same as StringToInt()!<br />The \\\"blocksize\\\" determines how many cells each slot has; it cannot<br />be changed after creation.");
SMfunctions[908] = Array ("PushStackCell","Pushes a value onto the end of the stack, adding a new index.<br />This may safely be used even if the stack has a blocksize<br />greater than 1.");
SMfunctions[909] = Array ("PushStackString","Pushes a string onto the end of a stack, truncating it if it is<br />too big.");
SMfunctions[910] = Array ("PushStackArray","Pushes an array of cells onto the end of a stack.  The cells<br />are pushed as a block (i.e. the entire array takes up one stack slot),<br />rather than pushing each cell individually.");
SMfunctions[911] = Array ("PopStackCell","Pops a cell value from a stack.");
SMfunctions[912] = Array ("PopStackString","Pops a string value from a stack.");
SMfunctions[913] = Array ("PopStackArray","Pops an array of cells from a stack.");
SMfunctions[914] = Array ("IsStackEmpty","Checks if a stack is empty.");
SMfunctions[915] = Array ("PopStack","Pops a value off a stack, ignoring it completely.");
SMfunctions[824] = Array ("GetEntityFlags","Get an entity\'s flags.");
SMfunctions[847] = Array ("GetEntityMoveType","Gets an entity\'s movetype.");
SMfunctions[848] = Array ("SetEntityMoveType","Sets an entity\'s movetype.");
SMfunctions[826] = Array ("GetEntityRenderMode","Gets an entity\'s render mode.");
SMfunctions[827] = Array ("SetEntityRenderMode","Sets an entity\'s render mode.");
SMfunctions[828] = Array ("GetEntityRenderFx","Gets an entity\'s render Fx.");
SMfunctions[829] = Array ("SetEntityRenderFx","Sets an entity\'s render Fx.");
SMfunctions[815] = Array ("SetEntityRenderColor","Sets an entity\'s color.");
SMfunctions[817] = Array ("GetEntityGravity","Gets an entity\'s gravity.");
SMfunctions[818] = Array ("SetEntityGravity","Sets an entity\'s gravity.");
SMfunctions[819] = Array ("SetEntityHealth","Sets an entity\'s health");
SMfunctions[820] = Array ("GetClientButtons","Get\'s a users current pressed buttons");
SMfunctions[365] = Array ("StartPrepSDKCall","Starts the preparation of an SDK call.");
SMfunctions[366] = Array ("PrepSDKCall_SetVirtual","Sets the virtual index of the SDK call if it is virtual.");
SMfunctions[367] = Array ("PrepSDKCall_SetSignature","Finds an address in a library and sets it as the address to use for the SDK call.");
SMfunctions[368] = Array ("PrepSDKCall_SetFromConf","Finds an address or virtual function index in a GameConfig file and sets it as<br />the calling information for the SDK call.");
SMfunctions[369] = Array ("PrepSDKCall_SetReturnInfo","Sets the return information of an SDK call.  Do not call this if there is no return data.<br />This must be called if there is a return value (i.e. it is not necessarily safe to ignore<br />the data).");
SMfunctions[370] = Array ("PrepSDKCall_AddParameter","Adds a parameter to the calling convention.  This should be called in normal ascending order.");
SMfunctions[371] = Array ("EndPrepSDKCall","Finalizes an SDK call preparation and returns the resultant Handle.");
SMfunctions[372] = Array ("SDKCall","Calls an SDK function with the given parameters.<br />If the call type is Entity or Player, the index MUST ALWAYS be the FIRST parameter passed.<br />If the call type is GameRules, then nothing special needs to be passed.<br />If the return value is a Vector or QAngles, the SECOND parameter must be a Float[3].<br />If the return value is a string, the THIRD parameter must be a String buffer, and the<br />FOURTH parameter must be the maximum length.<br />All parameters must be passed after the above is followed.  Failure to follow these<br />rules will result in crashes or wildly unexpected behavior!<br />If the return value is a float or integer, the return value will be this value.<br />If the return value is a CBaseEntity, CBasePlayer, or edict, the return value will<br />always be the entity index, or -1 for NULL.");
SMfunctions[853] = Array ("TF2_GetPlayerClass","Get\'s a Clients current class.");
SMfunctions[854] = Array ("TF2_SetPlayerClass","Set\'s a Clients class.<br />Note: If setting player class in a player spawn hook weapons should be set to false.");
SMfunctions[855] = Array ("TF2_GetPlayerResourceData","Retrieves client data from the resource entity");
SMfunctions[856] = Array ("TF2_SetPlayerResourceData","Sets client data in the resource entity<br />Note: The game overwrites these values every frame, so changing them will have very little effect.");
SMfunctions[857] = Array ("TF2_RemoveWeaponSlot","Removes all weapons from a client\'s weapon slot");
SMfunctions[858] = Array ("TF2_RemoveAllWeapons","Removes all weapons from a client");
SMfunctions[263] = Array ("CreateKeyValues","Creates a new KeyValues structure.  The Handle must always be closed.");
SMfunctions[264] = Array ("KvSetString","Sets a string value of a KeyValues key.");
SMfunctions[265] = Array ("KvSetNum","Sets an integer value of a KeyValues key.");
SMfunctions[266] = Array ("KvSetUInt64","Sets a large integer value of a KeyValues key.");
SMfunctions[267] = Array ("KvSetFloat","Sets a floating point value of a KeyValues key.");
SMfunctions[268] = Array ("KvSetColor","Sets a set of color values of a KeyValues key.");
SMfunctions[784] = Array ("KvSetVector","Sets a vector value of a KeyValues key.");
SMfunctions[269] = Array ("KvGetString","Retrieves a string value from a KeyValues key.");
SMfunctions[270] = Array ("KvGetNum","Retrieves an integer value from a KeyValues key.");
SMfunctions[271] = Array ("KvGetFloat","Retrieves a floating point value from a KeyValues key.");
SMfunctions[272] = Array ("KvGetColor","Retrieves a set of color values from a KeyValues key.");
SMfunctions[273] = Array ("KvGetUInt64","Retrieves a large integer value from a KeyValues key.");
SMfunctions[785] = Array ("KvGetVector","Retrieves a vector value from a KeyValues key.");
SMfunctions[274] = Array ("KvJumpToKey","Sets the current position in the KeyValues tree to the given key.");
SMfunctions[759] = Array ("KvJumpToKeySymbol","Sets the current position in the KeyValues tree to the given key.");
SMfunctions[275] = Array ("KvGotoFirstSubKey","Sets the current position in the KeyValues tree to the first sub key.<br />This native adds to the internal traversal stack.");
SMfunctions[276] = Array ("KvGotoNextKey","Sets the current position in the KeyValues tree to the next sub key.<br />This native does NOT add to the internal traversal stack, and thus<br />KvGoBack() is not needed for each successive call to this function.");
SMfunctions[277] = Array ("KvSavePosition","Saves the current position in the traversal stack onto the traversal<br />stack.  This can be useful if you wish to use KvGotoNextKey() and<br />have the previous key saved for backwards traversal.");
SMfunctions[278] = Array ("KvDeleteKey","Removes the given key from the current position.");
SMfunctions[279] = Array ("KvDeleteThis","Removes the current sub-key and attempts to set the position<br />to the sub-key after the removed one.  If no such sub-key exists,<br />the position will be the parent key in the traversal stack.<br />Given the sub-key having position \\\"N\\\" in the traversal stack, the<br />removal will always take place from position \\\"N-1.\\\"");
SMfunctions[280] = Array ("KvGoBack","Jumps back to the previous position.  Returns false if there are no<br />previous positions (i.e., at the root node).  This should be called<br />once for each successful Jump call, in order to return to the top node.<br />This function pops one node off the internal traversal stack.");
SMfunctions[281] = Array ("KvRewind","Sets the position back to the top node, emptying the entire node<br />traversal history.  This can be used instead of looping KvGoBack()<br />if recursive iteration is not important.");
SMfunctions[282] = Array ("KvGetSectionName","Retrieves the current section name.");
SMfunctions[283] = Array ("KvSetSectionName","Sets the current section name.");
SMfunctions[284] = Array ("KvGetDataType","Returns the data type at a key.");
SMfunctions[285] = Array ("KeyValuesToFile","Converts a KeyValues tree to a file.  The tree is dumped<br />from the current position.");
SMfunctions[286] = Array ("FileToKeyValues","Converts a file to a KeyValues tree.  The file is read into<br />the current position of the tree.");
SMfunctions[287] = Array ("KvSetEscapeSequences","Sets whether or not the KeyValues parser will read escape sequences.<br />For example, \\n would be read as a literal newline.  This defaults<br />to false for new KeyValues structures.");
SMfunctions[288] = Array ("KvNodesInStack","Returns the position in the jump stack; I.e. the number of calls<br />required for KvGoBack to return to the root node.  If at the root node,<br />0 is returned.");
SMfunctions[289] = Array ("KvCopySubkeys","Makes a new copy of all subkeys in the origin KeyValues to<br />the destination KeyValues.<br />NOTE: All KeyValues are processed from the current location not the root one.");
SMfunctions[290] = Array ("KvFindKeyById","Finds a KeyValues name by id.");
SMfunctions[291] = Array ("KvGetNameSymbol","Finds a KeyValues id inside a KeyValues tree.");
SMfunctions[760] = Array ("KvGetSectionSymbol","Retrieves the current section id.");
SMfunctions[388] = Array ("OnClientConnect","Called on client connection.  If you return true, the client will be allowed in the server.<br />If you return false (or return nothing), the client will be rejected.  If the client is<br />rejected by this forward or any other, OnClientDisconnect will not be called.<br />Note: Do not write to rejectmsg if you plan on returning true.  If multiple plugins write<br />to the string buffer, it is not defined which plugin\'s string will be shown to the client,<br />but it is guaranteed one of them will.");
SMfunctions[916] = Array ("OnClientConnected","Called once a client successfully connects.  This callback is paired with OnClientDisconnect.");
SMfunctions[389] = Array ("OnClientPutInServer","Called when a client is entering the game.<br />Whether a client has a steamid is undefined until OnClientAuthorized<br />is called, which may occur either before or after OnClientPutInServer.<br />Similarly, use OnClientPostAdminCheck() if you need to verify whether<br />connecting players are admins.<br />GetClientCount() will include clients as they are passed through this<br />function, as clients are already in game at this point.");
SMfunctions[390] = Array ("OnClientDisconnect","Called when a client is disconnecting from the server.");
SMfunctions[391] = Array ("OnClientDisconnect_Post","Called when a client is disconnected from the server.");
SMfunctions[392] = Array ("OnClientCommand","Called when a client is sending a command.<br />As of SourceMod 1.3, the client is guaranteed to be in-game.<br />Use command listeners (console.inc) for more advanced hooks.");
SMfunctions[393] = Array ("OnClientSettingsChanged","Called whenever the client\'s settings are changed.");
SMfunctions[394] = Array ("OnClientAuthorized","Called when a client receives a Steam ID.  The state of a client\'s<br />authorization as an admin is not guaranteed here.  Use<br />OnClientPostAdminCheck() if you need a client\'s admin status.<br />This is called by bots, but the ID will be \\\"BOT\\\".");
SMfunctions[395] = Array ("OnClientPreAdminCheck","Called once a client is authorized and fully in-game, but<br />before admin checks are done.  This can be used to override<br />the default admin checks for a client.  You should only use<br />this for overriding; use OnClientPostAdminCheck() instead<br />if you want notification.<br />Note: If handled/blocked, PostAdminCheck must be signalled<br />manually via NotifyPostAdminCheck().<br />This callback is gauranteed to occur on all clients, and always<br />after each OnClientPutInServer() call.");
SMfunctions[823] = Array ("OnClientPostAdminFilter","Called directly before OnClientPostAdminCheck() as a method to<br />alter administrative permissions before plugins perform final<br />post-connect operations.<br />In general, do not use this function unless you are specifically<br />attempting to change access permissions.  Use OnClientPostAdminCheck()<br />instead if you simply want to perform post-connect authorization<br />routines.<br />See OnClientPostAdminCheck() for more information.");
SMfunctions[396] = Array ("OnClientPostAdminCheck","Called once a client is authorized and fully in-game, and<br />after all post-connection authorizations have been performed.<br />This callback is gauranteed to occur on all clients, and always<br />after each OnClientPutInServer() call.");
SMfunctions[397] = Array ("GetMaxClients","This function will be deprecated in a future release.  Use the MaxClients variable instead.<br />Returns the maximum number of clients allowed on the server.  This may<br />return 0 if called before OnMapStart(), and thus should not be called<br />in OnPluginStart().<br />You should not globally cache the value to GetMaxClients() because it can change from<br />SourceTV or TF2\'s arena mode.  Use the \\\"MaxClients\\\" dynamic variable documented at the<br />top of this file.");
SMfunctions[398] = Array ("GetClientCount","Returns the client count put in the server.");
SMfunctions[399] = Array ("GetClientName","Returns the client\'s name.");
SMfunctions[400] = Array ("GetClientIP","Retrieves a client\'s IP address.");
SMfunctions[401] = Array ("GetClientAuthString","Retrieves a client\'s authentication string (SteamID).");
SMfunctions[402] = Array ("GetClientUserId","Retrieves a client\'s user id, which is an index incremented for every client<br />that joins the server.");
SMfunctions[403] = Array ("IsClientConnected","Returns if a certain player is connected.");
SMfunctions[404] = Array ("IsClientInGame","Returns if a certain player has entered the game.");
SMfunctions[405] = Array ("IsClientInKickQueue","Returns if a client is in the \\\"kick queue\\\" (i.e. the client will be kicked<br />shortly and thus they should not appear as valid).");
SMfunctions[406] = Array ("IsClientAuthorized","Returns if a certain player has been authenticated.");
SMfunctions[407] = Array ("IsFakeClient","Returns if a certain player is a fake client.");
SMfunctions[408] = Array ("IsClientObserver","Returns if a certain player is an observer/spectator.");
SMfunctions[409] = Array ("IsPlayerAlive","Returns if the client is alive or dead.<br />Note: This function was originally in SDKTools and was moved to core.");
SMfunctions[410] = Array ("GetClientInfo","Retrieves values from client replicated keys.");
SMfunctions[411] = Array ("GetClientTeam","Retrieves a client\'s team index.");
SMfunctions[412] = Array ("SetUserAdmin","Sets a client\'s AdminId.");
SMfunctions[413] = Array ("GetUserAdmin","Retrieves a client\'s AdminId.");
SMfunctions[414] = Array ("AddUserFlags","Sets access flags on a client.  If the client is not an admin,<br />a temporary, anonymous AdminId is given.");
SMfunctions[415] = Array ("RemoveUserFlags","Removes flags from a client.  If the client is not an admin,<br />this has no effect.");
SMfunctions[416] = Array ("SetUserFlagBits","Sets access flags on a client using bits instead of flags.  If the<br />client is not an admin, and flags not 0, a temporary, anonymous AdminId is given.");
SMfunctions[417] = Array ("GetUserFlagBits","Returns client access flags.  If the client is not an admin,<br />the result is always 0.");
SMfunctions[418] = Array ("CanUserTarget","Returns whether a user can target another user.<br />This is a helper function for CanAdminTarget.");
SMfunctions[419] = Array ("RunAdminCacheChecks","Runs through the Core-defined admin authorization checks on a player.<br />Has no effect if the player is already an admin.<br />Note: This function is based on the internal cache only.");
SMfunctions[420] = Array ("NotifyPostAdminCheck","Signals that a player has completed post-connection admin checks.<br />Has no effect if the player has already had this event signalled.<br />Note: This must be sent even if no admin id was assigned.");
SMfunctions[421] = Array ("CreateFakeClient","Creates a fake client.");
SMfunctions[422] = Array ("SetFakeClientConVar","Sets a convar value on a fake client.");
SMfunctions[423] = Array ("GetClientHealth","Returns the client\'s health.");
SMfunctions[424] = Array ("GetClientModel","Returns the client\'s model name.");
SMfunctions[425] = Array ("GetClientWeapon","Returns the client\'s weapon name.");
SMfunctions[426] = Array ("GetClientMaxs","Returns the client\'s max size vector.");
SMfunctions[427] = Array ("GetClientMins","Returns the client\'s min size vector.");
SMfunctions[428] = Array ("GetClientAbsAngles","Returns the client\'s position angle.");
SMfunctions[429] = Array ("GetClientAbsOrigin","Returns the client\'s origin vector.");
SMfunctions[430] = Array ("GetClientArmor","Returns the client\'s armor.");
SMfunctions[431] = Array ("GetClientDeaths","Returns the client\'s death count.");
SMfunctions[432] = Array ("GetClientFrags","Returns the client\'s frag count.");
SMfunctions[433] = Array ("GetClientDataRate","Returns the client\'s send data rate in bytes/sec.");
SMfunctions[434] = Array ("IsClientTimingOut","Returns if a client is timing out");
SMfunctions[435] = Array ("GetClientTime","Returns the client\'s connection time in seconds.");
SMfunctions[436] = Array ("GetClientLatency","Returns the client\'s current latency (RTT), more accurate than GetAvgLatency but jittering.");
SMfunctions[437] = Array ("GetClientAvgLatency","Returns the client\'s average packet latency in seconds.");
SMfunctions[438] = Array ("GetClientAvgLoss","Returns the client\'s average packet loss, values go from 0 to 1 (for percentages).");
SMfunctions[439] = Array ("GetClientAvgChoke","Returns the client\'s average packet choke, values go from 0 to 1 (for percentages).");
SMfunctions[440] = Array ("GetClientAvgData","Returns the client\'s data flow in bytes/sec.");
SMfunctions[441] = Array ("GetClientAvgPackets","Returns the client\'s average packet frequency in packets/sec.");
SMfunctions[442] = Array ("GetClientOfUserId","Translates an userid index to the real player index.");
SMfunctions[443] = Array ("KickClient","Disconnects a client from the server as soon as the next frame starts.<br />Note: Originally, KickClient() was immediate.  The delay was introduced<br />because despite warnings, plugins were using it in ways that would crash.<br />The new safe version can break cases that rely on immediate disconnects,<br />but ensures that plugins do not accidentally cause crashes.<br />If you need immediate disconnects, use KickClientEx().<br />Note: IsClientInKickQueue() will return true before the kick occurs.");
SMfunctions[859] = Array ("KickClientEx","Immediately disconnects a client from the server.<br />Kicking clients from certain events or callbacks may cause crashes.  If in<br />doubt, create a short (0.1 second) timer to kick the client in the next<br />available frame.");
SMfunctions[444] = Array ("ChangeClientTeam","Changes a client\'s team through the mod\'s generic team changing function.<br />On CS:S, this will kill the player.");
SMfunctions[72] = Array ("GetClientSerial","Returns the clients unique serial identifier.");
SMfunctions[73] = Array ("GetClientFromSerial","Returns the client index by its serial number.");
SMfunctions[917] = Array ("public MenuHandler","Called when a menu action is completed.");
SMfunctions[181] = Array ("CreateMenu","Creates a new, empty menu using the default style.");
SMfunctions[182] = Array ("DisplayMenu","Displays a menu to a client.");
SMfunctions[183] = Array ("DisplayMenuAtItem","Displays a menu to a client, starting from the given item.");
SMfunctions[184] = Array ("AddMenuItem","Appends a new item to the end of a menu.");
SMfunctions[185] = Array ("InsertMenuItem","Inserts an item into the menu before a certain position; the new item will<br />be at the given position and all next items pushed forward.");
SMfunctions[186] = Array ("RemoveMenuItem","Removes an item from the menu.");
SMfunctions[187] = Array ("RemoveAllMenuItems","Removes all items from a menu.");
SMfunctions[188] = Array ("GetMenuItem","Retrieves information about a menu item.");
SMfunctions[189] = Array ("GetMenuSelectionPosition","Returns the first item on the page of a currently selected menu.<br />This is only valid inside a MenuAction_Select callback.");
SMfunctions[190] = Array ("GetMenuItemCount","Returns the number of items in a menu.");
SMfunctions[191] = Array ("SetMenuPagination","Sets whether the menu should be paginated or not.<br />If itemsPerPage is MENU_NO_PAGINATION, and the exit button flag is set,<br />then the exit button flag is removed.  It can be re-applied if desired.");
SMfunctions[192] = Array ("GetMenuPagination","Returns a menu\'s pagination setting.");
SMfunctions[193] = Array ("GetMenuStyle","Returns a menu\'s MenuStyle Handle.  The Handle<br />is global and cannot be freed.");
SMfunctions[194] = Array ("SetMenuTitle","Sets the menu\'s default title/instruction message.");
SMfunctions[195] = Array ("GetMenuTitle","Returns the text of a menu\'s title.");
SMfunctions[196] = Array ("CreatePanelFromMenu","Creates a raw MenuPanel based off the menu\'s style.<br />The Handle must be freed with CloseHandle().");
SMfunctions[197] = Array ("GetMenuExitButton","Returns whether or not the menu has an exit button.<br />By default, menus have an exit button.");
SMfunctions[198] = Array ("SetMenuExitButton","Sets whether or not the menu has an exit button.  By default, paginated menus<br />have an exit button.<br />If a menu\'s pagination is changed to MENU_NO_PAGINATION, and the pagination<br />was previously a different value, then the Exit button status is changed to<br />false.  It must be explicitly re-enabled afterwards.<br />If a non-paginated menu has an exit button, then at most 9 items will be<br />displayed.");
SMfunctions[199] = Array ("GetMenuExitBackButton","Returns whether or not the menu has an \\\"exit back\\\" button.  By default,<br />menus do not have an exit back button.<br />Exit Back buttons appear as \\\"Back\\\" on page 1 of paginated menus and have<br />functionality defined by the user in MenuEnd_ExitBack.");
SMfunctions[200] = Array ("SetMenuExitBackButton","Sets whether or not the menu has an \\\"exit back\\\" button. By default, menus<br />do not have an exit back button.<br />Exit Back buttons appear as \\\"Back\\\" on page 1 of paginated menus and have<br />functionality defined by the user in MenuEnd_ExitBack.");
SMfunctions[201] = Array ("CancelMenu","Cancels a menu from displaying on all clients.  While the<br />cancellation is in progress, this menu cannot be re-displayed<br />to any clients.<br />The menu may still exist on the client\'s screen after this command.<br />This simply verifies that the menu is not being used anywhere.<br />If any vote is in progress on a menu, it will be cancelled.");
SMfunctions[202] = Array ("GetMenuOptionFlags","Retrieves a menu\'s option flags.");
SMfunctions[203] = Array ("SetMenuOptionFlags","Sets a menu\'s option flags.<br />If a certain bit is not supported, it will be stripped before being set.<br />See SetMenuExitButton() for information on Exit buttons.<br />See SetMenuExitBackButton() for information on Exit Back buttons.");
SMfunctions[204] = Array ("IsVoteInProgress","Returns whether a vote is in progress.");
SMfunctions[205] = Array ("CancelVote","Cancels the vote in progress.");
SMfunctions[206] = Array ("VoteMenu","Broadcasts a menu to a list of clients.  The most selected item will be<br />returned through MenuAction_End.  On a tie, a random item will be returned<br />from a list of the tied items.<br />Note that MenuAction_VoteEnd and MenuAction_VoteStart are both<br />default callbacks and do not need to be enabled.");
SMfunctions[207] = Array ("VoteMenuToAll","Sends a vote menu to all clients.  See VoteMenu() for more information.");
SMfunctions[918] = Array ("public VoteHandler","Callback for when a vote has ended and results are available.");
SMfunctions[209] = Array ("SetVoteResultCallback","Sets an advanced vote handling callback.  If this callback is set,<br />MenuAction_VoteEnd will not be called.");
SMfunctions[210] = Array ("CheckVoteDelay","Returns the number of seconds you should \\\"wait\\\" before displaying<br />a publicly invocable menu.  This number is the time remaining until<br />(last_vote + sm_vote_delay).");
SMfunctions[919] = Array ("IsClientInVotePool","Returns whether a client is in the pool of clients allowed<br />to participate in the current vote.  This is determined by<br />the client list passed to VoteMenu().");
SMfunctions[920] = Array ("RedrawClientVoteMenu","Redraws the current vote menu to a client in the voting pool.");
SMfunctions[211] = Array ("GetMenuStyleHandle","Returns a style\'s global Handle.");
SMfunctions[212] = Array ("CreatePanel","Creates a MenuPanel from a MenuStyle.  Panels are used for drawing raw<br />menus without any extra helper functions.  The Handle must be closed<br />with CloseHandle().");
SMfunctions[213] = Array ("CreateMenuEx","Creates a Menu from a MenuStyle.  The Handle must be closed with<br />CloseHandle().");
SMfunctions[214] = Array ("GetClientMenu","Returns whether a client is viewing a menu.");
SMfunctions[215] = Array ("CancelClientMenu","Cancels a menu on a client.  This will only affect non-external menus.");
SMfunctions[216] = Array ("GetMaxPageItems","Returns a style\'s maximum items per page.");
SMfunctions[217] = Array ("GetPanelStyle","Returns a MenuPanel\'s parent style.");
SMfunctions[218] = Array ("SetPanelTitle","Sets the panel\'s title.");
SMfunctions[219] = Array ("DrawPanelItem","Draws an item on a panel.  If the item takes up a slot, the position<br />is returned.");
SMfunctions[220] = Array ("DrawPanelText","Draws a raw line of text on a panel, without any markup other than a newline.");
SMfunctions[221] = Array ("CanPanelDrawFlags","Returns whether or not the given drawing flags are supported by<br />the menu style.");
SMfunctions[222] = Array ("SetPanelKeys","Sets the selectable key map of a panel.  This is not supported by<br />all styles (only by Radio, as of this writing).");
SMfunctions[223] = Array ("SendPanelToClient","Sends a panel to a client.  Unlike full menus, the handler<br />function will only receive the following actions, both of<br />which will have INVALID_HANDLE for a menu, and the client<br />as param1.<br />MenuAction_Select (param2 will be the key pressed)<br />MenuAction_Cancel (param2 will be the reason)<br />Also, if the menu fails to display, no callbacks will be called.");
SMfunctions[224] = Array ("GetPanelTextRemaining"," Returns the amount of text the menu can still hold.  If this is limit is reached or overflowed, the text is silently truncated. Radio menus: Currently 511 characters (512 bytes). Valve menus: Currently -1 (no meaning).");
SMfunctions[225] = Array ("GetPanelCurrentKey"," Returns the current key position.");
SMfunctions[226] = Array ("SetPanelCurrentKey"," Sets the next key position.  This cannot be used to traverse backwards.");
SMfunctions[227] = Array ("RedrawMenuItem"," Redraws menu text from inside a MenuAction_DisplayItem callback.");
SMfunctions[758] = Array ("InternalShowMenu","This function is provided for legacy code only.  Some older plugins may use<br />network messages instead of the panel API.  This function wraps the panel<br />API for eased portability into the SourceMod menu system.<br />This function is only usable with the Radio Menu style.  You do not need to<br />split up your menu into multiple packets; SourceMod will break the string<br />up internally.");
SMfunctions[228] = Array ("GetMenuVoteInfo","Retrieves voting information from MenuAction_VoteEnd.");
SMfunctions[229] = Array ("IsNewVoteAllowed","Quick stock to determine whether voting is allowed.  This doesn\'t let you<br />fine-tune a reason for not voting, so it\'s not recommended for lazily<br />telling clients that voting isn\'t allowed.");
SMfunctions[311] = Array ("CS_RespawnPlayer","Respawns a player.");
SMfunctions[312] = Array ("CS_SwitchTeam","Switches the player\'s team.");
SMfunctions[921] = Array ("NominateMap","Attempt to add a map to the mapchooser map list.");
SMfunctions[922] = Array ("GetExcludeMapList","Gets the current list of excluded maps.");
SMfunctions[923] = Array ("CanMapChooserStartVote","Checks if MapChooser will allow a vote");
SMfunctions[924] = Array ("InitiateMapChooserVote","Initiates a MapChooser map vote<br />Note: If no input array is specified mapchooser will use its internal list. This includes<br />any nominations and excluded maps (as per mapchoosers convars).");
SMfunctions[925] = Array ("HasEndOfMapVoteFinished","Checks if MapChooser\'s end of map vote has completed.");
SMfunctions[926] = Array ("EndOfMapVoteEnabled","Checks if MapChooser is set to run an end of map vote.");
SMfunctions[927] = Array ("OnNominationRemoved","Called when mapchooser removes a nomination from its list.<br />Nominations cleared on map start will not trigger this forward");
SMfunctions[454] = Array ("ServerCommand","Executes a server command as if it were on the server console (or RCON)");
SMfunctions[455] = Array ("InsertServerCommand","Inserts a server command at the beginning of the server command buffer.");
SMfunctions[456] = Array ("ServerExecute","Executes every command in the server\'s command buffer, rather than once per frame.");
SMfunctions[457] = Array ("ClientCommand","Executes a client command.  Note that this will not work on clients unless<br />they have cl_restrict_server_commands set to 0.");
SMfunctions[458] = Array ("FakeClientCommand","Executes a client command on the server without being networked.<br />FakeClientCommand() overwrites the command tokenization buffer.  This can<br />cause undesired effects because future calls to GetCmdArg* will return<br />data from the FakeClientCommand(), not the parent command.  If you are in<br />a hook where this matters (for example, a \\\"say\\\" hook), you should use<br />FakeClientCommandEx() instead.");
SMfunctions[459] = Array ("FakeClientCommandEx","Executes a client command on the server without being networked.  The<br />execution of the client command is delayed by one frame to prevent any<br />re-entrancy issues that might surface with FakeClientCommand().");
SMfunctions[460] = Array ("PrintToServer","Sends a message to the server console.");
SMfunctions[461] = Array ("PrintToConsole","Sends a message to a client\'s console.");
SMfunctions[462] = Array ("ReplyToCommand","Reples to a message in a command.<br />A client index of 0 will use PrintToServer().<br />If the command was from the console, PrintToConsole() is used.<br />If the command was from chat, PrintToChat() is used.");
SMfunctions[463] = Array ("GetCmdReplySource","Returns the current reply source of a command.");
SMfunctions[464] = Array ("SetCmdReplySource","Sets the current reply source of a command.<br />Only use this if you know what you are doing.  You should save the old value<br />and restore it once you are done.");
SMfunctions[465] = Array ("IsChatTrigger","Returns whether the current say hook is a chat trigger.<br />This function is only meaningful inside say or say_team hooks.");
SMfunctions[466] = Array ("ShowActivity2","Displays usage of an admin command to users depending on the<br />setting of the sm_show_activity cvar.  All users receive a message<br />in their chat text, except for the originating client, who receives<br />the message based on the current ReplySource.");
SMfunctions[467] = Array ("ShowActivity","Displays usage of an admin command to users depending on the<br />setting of the sm_show_activity cvar.<br />This version does not display a message to the originating client<br />if used from chat triggers or menus.  If manual replies are used<br />for these cases, then this function will suffice.  Otherwise,<br />ShowActivity2() is slightly more useful.");
SMfunctions[468] = Array ("ShowActivityEx","Same as ShowActivity(), except the tag parameter is used instead of<br />\\\"[SM] \\\" (note that you must supply any spacing).");
SMfunctions[928] = Array ("FormatActivitySource","Given an originating client and a target client, returns the string<br />that describes the originating client according to the sm_show_activity cvar.<br />For example, \\\"ADMIN\\\", \\\"PLAYER\\\", or a player\'s name could be placed in this buffer.");
SMfunctions[770] = Array ("SrvCmd","Called when a server-only command is invoked.");
SMfunctions[469] = Array ("RegServerCmd","Creates a server-only console command, or hooks an already existing one.<br />Server commands are case sensitive.");
SMfunctions[771] = Array ("ConCmd","Called when a generic console command is invoked.");
SMfunctions[470] = Array ("RegConsoleCmd","Creates a console command, or hooks an already existing one.<br />Console commands are case sensitive.  However, if the command already exists in the game,<br />the a client may enter the command in any case.  SourceMod corrects for this automatically,<br />and you should only hook the \\\"real\\\" version of the command.");
SMfunctions[471] = Array ("RegAdminCmd","Creates a console command as an administrative command.  If the command does not exist,<br />it is created.  When this command is invoked, the access rights of the player are<br />automatically checked before allowing it to continue.<br />Admin commands are case sensitive from both the client and server.");
SMfunctions[472] = Array ("GetCmdArgs","Returns the number of arguments from the current console or server command.");
SMfunctions[473] = Array ("GetCmdArg","Retrieves a command argument given its index, from the current console or<br />server command.");
SMfunctions[474] = Array ("GetCmdArgString","Retrieves the entire command argument string in one lump from the current<br />console or server command.");
SMfunctions[475] = Array ("CreateConVar","Creates a new console variable.");
SMfunctions[476] = Array ("FindConVar","Searches for a console variable.");
SMfunctions[929] = Array ("public ConVarChanged","Called when a console variable\'s value is changed.");
SMfunctions[478] = Array ("HookConVarChange","Creates a hook for when a console variable\'s value is changed.");
SMfunctions[479] = Array ("UnhookConVarChange","Removes a hook for when a console variable\'s value is changed.");
SMfunctions[480] = Array ("GetConVarBool","Returns the boolean value of a console variable.");
SMfunctions[481] = Array ("SetConVarBool","Sets the boolean value of a console variable.<br />Note: The replicate and notify params are ignored on the engines for Episode 2/Orange Box<br />and Left 4 Dead. These engines automatically replicates and notifies as soon as the convar<br />is changed.");
SMfunctions[482] = Array ("GetConVarInt","Returns the integer value of a console variable.");
SMfunctions[483] = Array ("SetConVarInt","Sets the integer value of a console variable.<br />Note: The replicate and notify params are ignored on the engines for Episode 2/Orange Box<br />and Left 4 Dead. These engines automatically replicates and notifies as soon as the convar<br />is changed.");
SMfunctions[484] = Array ("GetConVarFloat","Returns the floating point value of a console variable.");
SMfunctions[485] = Array ("SetConVarFloat","Sets the floating point value of a console variable.<br />Note: The replicate and notify params are ignored on the engines for Episode 2/Orange Box<br />and Left 4 Dead. These engines automatically replicates and notifies as soon as the convar<br />is changed.");
SMfunctions[486] = Array ("GetConVarString","Retrieves the string value of a console variable.");
SMfunctions[487] = Array ("SetConVarString","Sets the string value of a console variable.<br />Note: The replicate and notify params are ignored on the engines for Episode 2/Orange Box<br />and Left 4 Dead. These engines automatically replicates and notifies as soon as the convar<br />is changed.");
SMfunctions[488] = Array ("ResetConVar","Resets the console variable to its default value.<br />Note: The replicate and notify params are ignored on the engines for Episode 2/Orange Box<br />and Left 4 Dead. These engines automatically replicates and notifies as soon as the convar<br />is changed.");
SMfunctions[489] = Array ("GetConVarFlags","Returns the bitstring of flags on a console variable.");
SMfunctions[490] = Array ("SetConVarFlags","Sets the bitstring of flags on a console variable.");
SMfunctions[491] = Array ("GetConVarBounds","Retrieves the specified bound of a console variable.");
SMfunctions[492] = Array ("SetConVarBounds","Sets the specified bound of a console variable.");
SMfunctions[493] = Array ("GetConVarName","Retrieves the name of a console variable.");
SMfunctions[494] = Array ("QueryClientConVar","Starts a query to retrieve the value of a client\'s console variable.");
SMfunctions[495] = Array ("GetCommandIterator","Gets a command iterator.  Must be freed with CloseHandle().");
SMfunctions[496] = Array ("ReadCommandIterator","Reads a command iterator, then advances to the next command if any.<br />Only SourceMod specific commands are returned.");
SMfunctions[497] = Array ("CheckCommandAccess","Returns whether a client has access to a given command string.  The string<br />can also be any override string, as overrides can be independent of<br />commands.  This important feature essentially allows you to create custom<br />flags using the override system.");
SMfunctions[498] = Array ("IsValidConVarChar","Returns true if the supplied character is valid in a ConVar name.");
SMfunctions[499] = Array ("GetCommandFlags","Returns the bitstring of flags of a command.");
SMfunctions[500] = Array ("SetCommandFlags","Sets the bitstring of flags of a command.");
SMfunctions[805] = Array ("FindFirstConCommand","Starts a ConCommandBase search, traversing the list of ConVars and<br />ConCommands.  If a Handle is returned, the next entry must be read<br />via FindNextConCommand().  The order of the list is undefined.");
SMfunctions[806] = Array ("FindNextConCommand","Reads the next entry in a ConCommandBase iterator.");
SMfunctions[833] = Array ("SendConVarValue","Replicates a convar value to a specific client. This does not change the actual convar value.");
SMfunctions[328] = Array ("AddServerTag","Adds an informational string to the server\'s public \\\"tags\\\".<br />This string should be a short, unique identifier.<br />Note: Tags are automatically removed when a plugin unloads.<br />Note: Currently, this function does nothing because of bugs in the Valve master.");
SMfunctions[932] = Array ("RemoveServerTag","Removes a tag previously added by the calling plugin.");
SMfunctions[948] = Array ("CommandListener","Callback for command listeners. This is invoked whenever any command<br />reaches the server, from the server console itself or a player.<br />Returning Plugin_Handled or Plugin_Stop will prevent the original,<br />baseline code from running.<br />-- TEXT BELOW IS IMPLEMENTATION, AND NOT GUARANTEED --<br />Even if returning Plugin_Handled or Plugin_Stop, some callbacks will still<br />trigger. These are:<br />* C++ command dispatch hooks from Metamod:Source plugins<br />* Reg*Cmd() hooks that did not create new commands.");
SMfunctions[949] = Array ("AddCommandListener","Adds a callback that will fire when a command is sent to the server.<br />Registering commands is designed to create a new command as part of the UI,<br />whereas this is a lightweight hook on a command string, existing or not.<br />Using Reg*Cmd to intercept is in poor practice, as it physically creates a<br />new command and can slow down dispatch in general.<br />To see if this feature is available, use FeatureType_Capability and<br />FEATURECAP_COMMANDLISTENER.");
SMfunctions[950] = Array ("RemoveCommandListener","Removes a previously added command listener, in reverse order of being added.");
SMfunctions[684] = Array ("ByteCountToCells","Given a maximum string size (including the null terminator),<br />returns the number of cells required to fit that string.");
SMfunctions[685] = Array ("CreateArray","Creates a dynamic global cell array.  While slower than a normal array,<br />it can be used globally AND dynamically, which is otherwise impossible.<br />The contents of the array are uniform; i.e. storing a string at index X<br />and then retrieving it as an integer is NOT the same as StringToInt()!<br />The \\\"blocksize\\\" determines how many cells each array slot has; it cannot<br />be changed after creation.");
SMfunctions[686] = Array ("ClearArray","Clears an array of all entries.  This is the same as ResizeArray(0).");
SMfunctions[687] = Array ("ResizeArray","Resizes an array.  If the size is smaller than the current size,<br />the array is truncated.");
SMfunctions[688] = Array ("GetArraySize","Returns the array size.");
SMfunctions[689] = Array ("PushArrayCell","Pushes a value onto the end of an array, adding a new index.<br />This may safely be used even if the array has a blocksize<br />greater than 1.");
SMfunctions[690] = Array ("PushArrayString","Pushes a string onto the end of an array, truncating it<br />if it is too big.");
SMfunctions[691] = Array ("PushArrayArray","Pushes an array of cells onto the end of an array.  The cells<br />are pushed as a block (i.e. the entire array sits at the index),<br />rather than pushing each cell individually.");
SMfunctions[692] = Array ("GetArrayCell","Retrieves a cell value from an array.");
SMfunctions[693] = Array ("GetArrayString","Retrieves a string value from an array.");
SMfunctions[694] = Array ("GetArrayArray","Retrieves an array of cells from an array.");
SMfunctions[695] = Array ("SetArrayCell","Sets a cell value in an array.");
SMfunctions[696] = Array ("SetArrayString","Sets a string value in an array.");
SMfunctions[697] = Array ("SetArrayArray","Sets an array of cells in an array.");
SMfunctions[698] = Array ("ShiftArrayUp","Shifts an array up.  All array contents after and including the given<br />index are shifted up by one, and the given index is then \\\"free.\\\"<br />After shifting, the contents of the given index is undefined.");
SMfunctions[699] = Array ("RemoveFromArray","Removes an array index, shifting the entire array down from that position<br />on.  For example, if item 8 of 10 is removed, the last 3 items will then be<br />(6,7,8) instead of (7,8,9), and all indexes before 8 will remain unchanged.");
SMfunctions[700] = Array ("SwapArrayItems","Swaps two items in the array.");
SMfunctions[701] = Array ("FindStringInArray","Returns the index for the first occurance of the provided string. If the string<br />cannot be located, -1 will be returned.");
SMfunctions[702] = Array ("FindValueInArray","Returns the index for the first occurance of the provided value. If the value<br />cannot be located, -1 will be returned.");
SMfunctions[705] = Array ("float","Converts an integer into a floating point value.");
SMfunctions[706] = Array ("FloatMul","Multiplies two floats together.");
SMfunctions[707] = Array ("FloatDiv","Divides the dividend by the divisor.");
SMfunctions[708] = Array ("FloatAdd","Adds two floats together.");
SMfunctions[709] = Array ("FloatSub","Subtracts oper2 from oper1.");
SMfunctions[710] = Array ("FloatFraction","Returns the decimal part of a float.");
SMfunctions[711] = Array ("RoundToZero","Rounds a float to the closest integer to zero.");
SMfunctions[712] = Array ("RoundToCeil","Rounds a float to the next highest integer value.");
SMfunctions[713] = Array ("RoundToFloor","Rounds a float to the next lowest integer value.");
SMfunctions[714] = Array ("RoundToNearest","Standard IEEE rounding.");
SMfunctions[715] = Array ("FloatCompare","Compares two floats.");
SMfunctions[716] = Array ("SquareRoot","Returns the square root of the input value, equivalent to floatpower(value, 0.5).");
SMfunctions[717] = Array ("Pow","Returns the value raised to the power of the exponent.");
SMfunctions[718] = Array ("Exponential","Returns the value of raising the input by e.");
SMfunctions[719] = Array ("Logarithm","Returns the logarithm of any base specified.");
SMfunctions[720] = Array ("Sine","Returns the sine of the argument.");
SMfunctions[721] = Array ("Cosine","Returns the cosine of the argument.");
SMfunctions[722] = Array ("Tangent","Returns the tangent of the argument.");
SMfunctions[723] = Array ("FloatAbs","Returns an absolute value.");
SMfunctions[724] = Array ("ArcTangent","Returns the arctangent of the input value.");
SMfunctions[725] = Array ("ArcCosine","Returns the arccosine of the input value.");
SMfunctions[726] = Array ("ArcSine","Returns the arcsine of the input value.");
SMfunctions[727] = Array ("ArcTangent2","Returns the arctangent2 of the input values.");
SMfunctions[728] = Array ("RoundFloat","Rounds a floating point number using the \\\"round to nearest\\\" algorithm.");
SMfunctions[729] = Array ("operator%","Forbidden operators.");
SMfunctions[730] = Array ("DegToRad","Converts degrees to radians.");
SMfunctions[731] = Array ("RadToDeg","Converts degrees to radians.");
SMfunctions[951] = Array ("GetURandomInt","Returns a random integer in the range [0, 2^31-1].<br />Note: Uniform random number streams are seeded automatically per-plugin.");
SMfunctions[952] = Array ("GetURandomFloat","Returns a uniform random float in the range [0, 1).<br />Note: Uniform random number streams are seeded automatically per-plugin.");
SMfunctions[953] = Array ("SetURandomSeed","Seeds a plugin\'s uniform random number stream. This is done automatically,<br />so normally it is totally unnecessary to call this.");
SMfunctions[954] = Array ("SetURandomSeedSimple","Seeds a plugin\'s uniform random number stream. This is done automatically,<br />so normally it is totally unnecessary to call this.");
SMfunctions[230] = Array ("TR_GetPointContents","Get the contents mask and the entity index at the given position.");
SMfunctions[231] = Array ("TR_GetPointContentsEnt","Get the point contents testing only the given entity index.");
SMfunctions[232] = Array ("TR_TraceRay","Starts up a new trace ray using a global trace result.");
SMfunctions[873] = Array ("TR_TraceHull","Starts up a new trace hull using a global trace result.");
SMfunctions[233] = Array ("TR_TraceRayFilter","Starts up a new trace ray using a global trace result and a customized<br />trace ray filter.<br />Calling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter<br />function is currently not allowed and may not work.");
SMfunctions[874] = Array ("TR_TraceHullFilter","Starts up a new trace hull using a global trace result and a customized<br />trace ray filter.<br />Calling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter<br />function is currently not allowed and may not work.");
SMfunctions[234] = Array ("TR_TraceRayEx","Starts up a new trace ray using a new trace result.");
SMfunctions[875] = Array ("TR_TraceHullEx","Starts up a new trace hull using a new trace result.");
SMfunctions[235] = Array ("TR_TraceRayFilterEx","Starts up a new trace ray using a new trace result and a customized<br />trace ray filter.<br />Calling TR_Trace*Filter or TR_TraceRay*Ex from inside a filter<br />function is currently not allowed and may not work.");
SMfunctions[876] = Array ("TR_TraceHullFilterEx","Starts up a new trace hull using a new trace result and a customized<br />trace ray filter.<br />Calling TR_Trace*Filter or TR_Trace*FilterEx from inside a filter<br />function is currently not allowed and may not work.");
SMfunctions[236] = Array ("TR_GetFraction","Returns the time fraction from a trace result (1.0 means no collision).");
SMfunctions[237] = Array ("TR_GetEndPosition","Returns the collision position of a trace result.");
SMfunctions[238] = Array ("TR_GetEntityIndex","Returns the entity index that collided with the trace.");
SMfunctions[239] = Array ("TR_DidHit","Returns if there was any kind of collision along the trace ray.");
SMfunctions[240] = Array ("TR_GetHitGroup","Returns in which body hit group the trace collided if any.");
SMfunctions[836] = Array ("TR_GetPlaneNormal","Find the normal vector to the collison plane of a trace.");
SMfunctions[955] = Array ("TR_PointOutsideWorld","Tests a point to see if it\'s outside any playable area");
SMfunctions[56] = Array ("GetMaxEntities","Returns the maximum number of entities.");
SMfunctions[57] = Array ("GetEntityCount","Returns the number of entities in the server.");
SMfunctions[58] = Array ("IsValidEntity","Returns whether or not an entity is valid.  Returns false<br />if there is no matching CBaseEntity for this edict index.");
SMfunctions[59] = Array ("IsValidEdict","Returns whether or not an edict index is valid.");
SMfunctions[60] = Array ("IsEntNetworkable","Returns whether or not an entity is a valid networkable edict.");
SMfunctions[61] = Array ("CreateEdict","Creates a new edict (the basis of a networkable entity)");
SMfunctions[62] = Array ("RemoveEdict","Removes an edict from the world.");
SMfunctions[63] = Array ("GetEdictFlags","Returns the flags on an edict.  These are not the same as entity flags.");
SMfunctions[64] = Array ("SetEdictFlags","Sets the flags on an edict.  These are not the same as entity flags.");
SMfunctions[65] = Array ("GetEdictClassname","Retrieves an edict classname.");
SMfunctions[66] = Array ("GetEntityNetClass","Retrieves an entity\'s networkable serverclass name.<br />This is not the same as the classname and is used for networkable state changes.");
SMfunctions[67] = Array ("ChangeEdictState","Marks an entity as state changed.  This can be useful if you set an offset<br />and wish for it to be immediately changed over the network.  By default this<br />is not done for offset setting functions.");
SMfunctions[68] = Array ("GetEntData","Peeks into an entity\'s object data and retrieves the integer value at<br />the given offset.");
SMfunctions[69] = Array ("SetEntData","Peeks into an entity\'s object data and sets the integer value at<br />the given offset.");
SMfunctions[70] = Array ("GetEntDataFloat","Peeks into an entity\'s object data and retrieves the float value at<br />the given offset.");
SMfunctions[71] = Array ("SetEntDataFloat","Peeks into an entity\'s object data and sets the integer value at<br />the given offset.");
SMfunctions[825] = Array ("GetEntDataEnt2","Peeks into an entity\'s object data and retrieves the entity index<br />at the given offset.<br />Note: This will only work on offsets that are stored as \\\"entity<br />handles\\\" (which usually looks like m_h* in properties).  These<br />are not SourceMod Handles, but internal Source structures.");
SMfunctions[831] = Array ("SetEntDataEnt2","Peeks into an entity\'s object data and sets the entity index at the<br />given offset.<br />Note: This will only work on offsets that are stored as \\\"entity<br />handles\\\" (which usually looks like m_h* in properties).  These<br />are not SourceMod Handles, but internal Source structures.");
SMfunctions[74] = Array ("GetEntDataVector","Peeks into an entity\'s object data and retrieves the vector at the<br />given offset.");
SMfunctions[75] = Array ("SetEntDataVector","Peeks into an entity\'s object data and sets the vector at the given<br />offset.");
SMfunctions[76] = Array ("GetEntDataString","Peeks into an entity\'s object data and retrieves the string at<br />the given offset.");
SMfunctions[77] = Array ("SetEntDataString","Peeks into an entity\'s object data and sets the string at<br />the given offset.");
SMfunctions[78] = Array ("FindSendPropOffs","Given a ServerClass name, finds a networkable send property offset.<br />This information is cached for future calls.<br />Note, this function may return offsets that do not work!<br />If a property is nested beneath a parent object, the resulting offset<br />will be invalid for direct use with data functions.  Therefore, you<br />should use FindSendPropInfo() instead.  An example of such a property is<br />CTFPlayer::DT_LocalPlayer.m_nDisguiseClass on Team Fortress.");
SMfunctions[832] = Array ("FindSendPropInfo","Given a ServerClass name, finds a networkable send property offset.<br />This information is cached for future calls.<br />Note: This function will correctly compute nested offsets, unlike<br />FindSendPropOffs().  YOU SHOULD NOT use this function to self-compute<br />nested offsets.  For example, it is okay to add indexes for arrays,<br />but not to add DT_LocalPlayer to m_nDisguiseClass.");
SMfunctions[79] = Array ("FindDataMapOffs","Given an entity, finds a datamap property offset.<br />This information is cached for future calls.");
SMfunctions[80] = Array ("GetEntSendPropOffs","Wrapper function for finding a send property for a particular entity.");
SMfunctions[81] = Array ("GetEntProp","Retrieves an integer value from an entity\'s property.<br />This function is considered safer and more robust over GetEntData,<br />because it performs strict offset checking and typing rules.");
SMfunctions[82] = Array ("SetEntProp","Sets an integer value in an entity\'s property.<br />This function is considered safer and more robust over SetEntData,<br />because it performs strict offset checking and typing rules.");
SMfunctions[83] = Array ("GetEntPropFloat","Retrieves a float value from an entity\'s property.<br />This function is considered safer and more robust over GetEntDataFloat,<br />because it performs strict offset checking and typing rules.");
SMfunctions[84] = Array ("SetEntPropFloat","Sets a float value in an entity\'s property.<br />This function is considered safer and more robust over SetEntDataFloat,<br />because it performs strict offset checking and typing rules.");
SMfunctions[85] = Array ("GetEntPropEnt","Retrieves an entity index from an entity\'s property.<br />This function is considered safer and more robust over GetEntDataEnt*,<br />because it performs strict offset checking and typing rules.");
SMfunctions[86] = Array ("SetEntPropEnt","Sets an entity index in an entity\'s property.<br />This function is considered safer and more robust over SetEntDataEnt*,<br />because it performs strict offset checking and typing rules.");
SMfunctions[87] = Array ("GetEntPropVector","Retrieves a vector of floats from an entity, given a named network property.<br />This function is considered safer and more robust over GetEntDataVector,<br />because it performs strict offset checking and typing rules.");
SMfunctions[88] = Array ("SetEntPropVector","Sets a vector of floats in an entity, given a named network property.<br />This function is considered safer and more robust over SetEntDataVector,<br />because it performs strict offset checking and typing rules.");
SMfunctions[89] = Array ("GetEntPropString","Gets a network property as a string.");
SMfunctions[90] = Array ("SetEntPropString","Sets a network property as a string.<br />This cannot set property fields of type PropField_String_T (such as \\\"m_target\\\").<br />To set such fields, you should use DispatchKeyValue() from SDKTools.");
SMfunctions[91] = Array ("GetEntDataArray","Copies an array of cells from an entity at a given offset.");
SMfunctions[92] = Array ("SetEntDataArray","Copies an array of cells to an entity at a given offset.");
SMfunctions[35] = Array ("RemovePlayerItem","Removes a player\'s item.");
SMfunctions[36] = Array ("GivePlayerItem","Gives a named item to a player.");
SMfunctions[37] = Array ("GetPlayerWeaponSlot","Returns the weapon in a player\'s slot.");
SMfunctions[38] = Array ("IgniteEntity","Ignites an entity on fire.");
SMfunctions[39] = Array ("ExtinguishEntity","Extinguishes a player that is on fire.");
SMfunctions[40] = Array ("TeleportEntity","Teleports an entity.");
SMfunctions[41] = Array ("ForcePlayerSuicide","Forces a player to commit suicide.");
SMfunctions[42] = Array ("SlapPlayer","Slaps a player in a random direction.");
SMfunctions[43] = Array ("FindEntityByClassname","Searches for an entity by classname.");
SMfunctions[44] = Array ("GetClientEyeAngles","Returns the client\'s eye angles.");
SMfunctions[45] = Array ("CreateEntityByName","Creates an entity by string name, but does not spawn it (see DispatchSpawn).<br />If ForceEdictIndex is not -1, then it will use the edict by that index. If the index is<br />invalid or there is already an edict using that index, it will error out.");
SMfunctions[46] = Array ("DispatchSpawn","Spawns an entity into the game.");
SMfunctions[47] = Array ("DispatchKeyValue","Dispatches a KeyValue into given entity using a string value.");
SMfunctions[48] = Array ("DispatchKeyValueFloat","Dispatches a KeyValue into given entity using a floating point value.");
SMfunctions[49] = Array ("DispatchKeyValueVector","Dispatches a KeyValue into given entity using a vector value.");
SMfunctions[50] = Array ("GetClientAimTarget","Returns the entity a client is aiming at.");
SMfunctions[51] = Array ("GetTeamCount","Returns the total number of teams in a game.<br />Note: This native should not be called before OnMapStart.");
SMfunctions[52] = Array ("GetTeamName","Retrieves the team name based on a team index.<br />Note: This native should not be called before OnMapStart.");
SMfunctions[53] = Array ("GetTeamScore","Returns the score of a team based on a team index.<br />Note: This native should not be called before OnMapStart.");
SMfunctions[54] = Array ("SetTeamScore","Sets the score of a team based on a team index.<br />Note: This native should not be called before OnMapStart.");
SMfunctions[55] = Array ("GetTeamClientCount","Retrieves the number of players in a certain team.<br />Note: This native should not be called before OnMapStart.");
SMfunctions[756] = Array ("SetEntityModel","Sets the model to a given entity.");
SMfunctions[794] = Array ("GetPlayerDecalFile","Retrieves the decal file name associated to a given client.");
SMfunctions[795] = Array ("GetServerNetStats","Returns the average server network traffic in bytes/sec.");
SMfunctions[243] = Array ("EquipPlayerWeapon","Equip\'s a player\'s weapon.");
SMfunctions[675] = Array ("ActivateEntity","Activates an entity (CBaseAnimating::Activate)");
SMfunctions[930] = Array ("SetClientInfo","Sets values to client info buffer keys and notifies the engine of the change.<br />The change does not get propogated to mods until the next frame.");
SMfunctions[868] = Array ("CompileRegex","Precompile a regular expression.  Use this if you intend on using the<br />same expression multiple times.  Pass the regex handle returned here to<br />MatchRegex to check for matches.");
SMfunctions[869] = Array ("MatchRegex","Matches a string against a pre-compiled regular expression pattern.");
SMfunctions[870] = Array ("GetRegexSubString","Returns a matched substring from a regex handle.<br />Substring ids start at 0 and end at substrings-1, where substrings is the number returned<br />by MatchRegex");
SMfunctions[871] = Array ("SimpleRegexMatch","Matches a string against a regular expression pattern.");
SMfunctions[123] = Array ("GetUserMessageId","Returns the ID of a given message, or -1 on failure.");
SMfunctions[124] = Array ("GetUserMessageName","Retrieves the name of a message by ID.");
SMfunctions[125] = Array ("StartMessage","Starts a usermessage (network message).");
SMfunctions[126] = Array ("StartMessageEx","Starts a usermessage (network message).");
SMfunctions[127] = Array ("EndMessage","Ends a previously started user message (network message).");
SMfunctions[765] = Array ("MsgHook","Called when a message is hooked");
SMfunctions[933] = Array ("public MsgPostHook","Called when a message hook has completed.");
SMfunctions[130] = Array ("HookUserMessage","Hooks a user message.");
SMfunctions[131] = Array ("UnhookUserMessage","Removes one usermessage hook.");
SMfunctions[132] = Array ("StartMessageAll","Starts a usermessage (network message) that broadcasts to all clients.");
SMfunctions[133] = Array ("StartMessageOne","Starts a simpler usermessage (network message) for one client.");
SMfiledata[1] = Array (4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,860,24,25,26,27,28,29,30,31,32,33,34);
SMfiledata[5] = Array (93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,830,114,115,116,117,118,119,120,841,842,843,844,845,846,121,122,934,935,936);
SMfiledata[53] = Array (877,878,879,880,881);
SMfiledata[41] = Array (882,135,136,137,138,757,139,140,141);
SMfiledata[57] = Array (937);
SMfiledata[15] = Array (241,242);
SMfiledata[36] = Array (608);
SMfiledata[8] = Array (150,151,152,153,154,155);
SMfiledata[49] = Array (938,814,816,849,850,851,883);
SMfiledata[54] = Array (884,885,886,887,888,889,890,891,892,893,894,895,896,939);
SMfiledata[30] = Array (764,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574);
SMfiledata[12] = Array (177,178,179);
SMfiledata[33] = Array (646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,834);
SMfiledata[18] = Array (298,299,300,301);
SMfiledata[32] = Array (614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,866,641,642,867,643,644,645);
SMfiledata[24] = Array (373,374,375,376,377,378,379,380,381,382,383,384,385,386,387);
SMfiledata[31] = Array (575,940,577,578,579,580,581,582,852,583,585,586,587,588,589,590,591,592,807,593,594,601,602,603,604,605,606,607,609,610,611,612,613,792,793,835,837,941,942,943);
SMfiledata[7] = Array (142,143,144);
SMfiledata[48] = Array (595,596,597,598,599,600,584,897,839,840);
SMfiledata[45] = Array (703,704);
SMfiledata[20] = Array (305,306,307,898,309,310,761,899,763);
SMfiledata[9] = Array (156,157,158,159,160,161,162,872,163,164,165);
SMfiledata[16] = Array (244,245,246,247,248,249,808,809,810,811,259,812,813,250,251,252,253,254,255,256,257,258,900,260,261,262);
SMfiledata[51] = Array (901,862,863,864,865);
SMfiledata[44] = Array (501);
SMfiledata[29] = Array (546,547,548,549,550,551,552,553,554,555,556,557,558);
SMfiledata[26] = Array (445,446,447,902,449,903,451,775,776,777,452,778,453);
SMfiledata[38] = Array (732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,944);
SMfiledata[39] = Array (292,293,294,295,296,297);
SMfiledata[42] = Array (145,146,147,148,822,149);
SMfiledata[34] = Array (674,676,677,678,679,680,786,787,788,789,790,791,681,682,683);
SMfiledata[28] = Array (502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545);
SMfiledata[22] = Array (326,327,904,905,329,330,331,332,333,334,335,336,838,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,906,362,363,364);
SMfiledata[19] = Array (302,303,304);
SMfiledata[43] = Array (747,748,749,750,751,752,753,754,755);
SMfiledata[46] = Array (796,797,798,799,800,801,802,803,804,821);
SMfiledata[21] = Array (313,314,315,316,317,318,319,320,321,322,323,324,325);
SMfiledata[0] = Array (0,1,945,946,947);
SMfiledata[10] = Array (166,167,168,169,170,171,172,173,174,175,176);
SMfiledata[55] = Array (907,908,909,910,911,912,913,914,915);
SMfiledata[47] = Array (824,847,848,826,827,828,829,815,817,818,819,820);
SMfiledata[23] = Array (365,366,367,368,369,370,371,372);
SMfiledata[50] = Array (853,854,855,856,857,858);
SMfiledata[17] = Array (263,264,265,266,267,268,784,269,270,271,272,273,785,274,759,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,760);
SMfiledata[25] = Array (388,916,389,390,391,392,393,394,395,823,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,859,444,72,73);
SMfiledata[13] = Array (917,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,918,209,210,919,920,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,758,228,229);
SMfiledata[40] = Array (311,312);
SMfiledata[56] = Array (921,922,923,924,925,926,927);
SMfiledata[27] = Array (454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,928,770,469,771,470,471,472,473,474,475,476,929,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,805,806,833,328,932,948,949,950);
SMfiledata[35] = Array (684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702);
SMfiledata[37] = Array (705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,951,952,953,954);
SMfiledata[14] = Array (230,231,232,873,233,874,234,875,235,876,236,237,238,239,240,836,955);
SMfiledata[4] = Array (56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,825,831,74,75,76,77,78,832,79,80,81,82,83,84,85,86,87,88,89,90,91,92);
SMfiledata[2] = Array (35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,756,794,795,243,675,930);
SMfiledata[52] = Array (868,869,870,871);
SMfiledata[6] = Array (123,124,125,126,127,765,933,130,131,132,133);
SMconstant[0] = Array ("SP_PARAMFLAG_BYREF","(1<<0)","Internal use only.");
SMconstant[1] = Array ("SM_PARAM_COPYBACK","(1<<0)","Copy an array/reference back after call");
SMconstant[2] = Array ("SM_PARAM_STRING_UTF8","(1<<0)","String should be UTF-8 handled");
SMconstant[3] = Array ("SM_PARAM_STRING_COPY","(1<<1)","String should be copied into the plugin");
SMconstant[4] = Array ("SM_PARAM_STRING_BINARY","(1<<2)","Treat the string as a binary string");
SMconstant[5] = Array ("SP_ERROR_NONE","0","No error occurred");
SMconstant[6] = Array ("SP_ERROR_FILE_FORMAT","1","File format unrecognized");
SMconstant[7] = Array ("SP_ERROR_DECOMPRESSOR","2","A decompressor was not found");
SMconstant[8] = Array ("SP_ERROR_HEAPLOW","3","Not enough space left on the heap");
SMconstant[9] = Array ("SP_ERROR_PARAM","4","Invalid parameter or parameter type");
SMconstant[10] = Array ("SP_ERROR_INVALID_ADDRESS","5","A memory address was not valid");
SMconstant[11] = Array ("SP_ERROR_NOT_FOUND","6","The object in question was not found");
SMconstant[12] = Array ("SP_ERROR_INDEX","7","Invalid index parameter");
SMconstant[13] = Array ("SP_ERROR_STACKLOW","8","Nnot enough space left on the stack");
SMconstant[14] = Array ("SP_ERROR_NOTDEBUGGING","9","Debug mode was not on or debug section not found");
SMconstant[15] = Array ("SP_ERROR_INVALID_INSTRUCTION","10","Invalid instruction was encountered");
SMconstant[16] = Array ("SP_ERROR_MEMACCESS","11","Invalid memory access");
SMconstant[17] = Array ("SP_ERROR_STACKMIN","12","Stack went beyond its minimum value");
SMconstant[18] = Array ("SP_ERROR_HEAPMIN","13","Heap went beyond its minimum value");
SMconstant[19] = Array ("SP_ERROR_DIVIDE_BY_ZERO","14","Division by zero");
SMconstant[20] = Array ("SP_ERROR_ARRAY_BOUNDS","15","Array index is out of bounds");
SMconstant[21] = Array ("SP_ERROR_INSTRUCTION_PARAM","16","Instruction had an invalid parameter");
SMconstant[22] = Array ("SP_ERROR_STACKLEAK","17","A native leaked an item on the stack");
SMconstant[23] = Array ("SP_ERROR_HEAPLEAK","18","A native leaked an item on the heap");
SMconstant[24] = Array ("SP_ERROR_ARRAY_TOO_BIG","19","A dynamic array is too big");
SMconstant[25] = Array ("SP_ERROR_TRACKER_BOUNDS","20","Tracker stack is out of bounds");
SMconstant[26] = Array ("SP_ERROR_INVALID_NATIVE","21","Native was pending or invalid");
SMconstant[27] = Array ("SP_ERROR_PARAMS_MAX","22","Maximum number of parameters reached");
SMconstant[28] = Array ("SP_ERROR_NATIVE","23","Error originates from a native");
SMconstant[29] = Array ("SP_ERROR_NOT_RUNNABLE","24","Function or plugin is not runnable");
SMconstant[30] = Array ("SP_ERROR_ABORTED","25","Function call was aborted");
SMconstant[31] = Array ("SOURCEMOD_V_MAJOR","1","SourceMod Major version");
SMconstant[32] = Array ("SOURCEMOD_V_MINOR","3","SourceMod Minor version");
SMconstant[33] = Array ("SOURCEMOD_V_RELEASE","0","SourceMod Release version");
SMconstant[34] = Array ("SOURCEMOD_VERSION","\\\"1.3.0\\\"","SourceMod version string (major.minor.release.build)");
SMconstant[35] = Array ("SOURCE_SDK_UNKNOWN","0","Could not determine the engine version");
SMconstant[36] = Array ("SOURCE_SDK_ORIGINAL","10","Original Source engine (still used by \\\"The Ship\\\")");
SMconstant[37] = Array ("SOURCE_SDK_DARKMESSIAH","15","Modified version of original engine used by Dark Messiah (no SDK)");
SMconstant[38] = Array ("SOURCE_SDK_EPISODE1","20","SDK+Engine released after Episode 1");
SMconstant[39] = Array ("SOURCE_SDK_EPISODE2","30","SDK+Engine released after Episode 2/Orange Box");
SMconstant[40] = Array ("SOURCE_SDK_EPISODE2VALVE","35","SDK+Engine released after Episode 2/Orange Box");
SMconstant[41] = Array ("SOURCE_SDK_LEFT4DEAD","40","Engine released after Left 4 Dead (no SDK yet)");
SMconstant[42] = Array ("SOURCE_SDK_LEFT4DEAD2","50","Engine released after Left 4 Dead 2 (no SDK yet)");
SMconstant[43] = Array ("MOTDPANEL_TYPE_TEXT","0","Treat msg as plain text");
SMconstant[44] = Array ("MOTDPANEL_TYPE_INDEX","1","Msg is auto determined by the engine");
SMconstant[45] = Array ("MOTDPANEL_TYPE_URL","2","Treat msg as an URL link");
SMconstant[46] = Array ("MOTDPANEL_TYPE_FILE","3","Treat msg as a filename to be openned");
SMconstant[47] = Array ("INVALID_ENT_REFERENCE","0xFFFFFFFF","");
SMconstant[48] = Array ("SOURCEMOD_PLUGINAPI_VERSION","5","");
SMconstant[49] = Array ("LANG_SERVER","0","Translate using the server\'s language");
SMconstant[50] = Array ("MAX_LIGHTSTYLES","64","");
SMconstant[51] = Array ("TE_EXPLFLAG_NONE","0x0","all flags clear makes default Half-Life explosion");
SMconstant[52] = Array ("TE_EXPLFLAG_NOADDITIVE","0x1","sprite will be drawn opaque (ensure that the sprite you send is a non-additive sprite)");
SMconstant[53] = Array ("TE_EXPLFLAG_NODLIGHTS","0x2","do not render dynamic lights");
SMconstant[54] = Array ("TE_EXPLFLAG_NOSOUND","0x4","do not play client explosion sound");
SMconstant[55] = Array ("TE_EXPLFLAG_NOPARTICLES","0x8","do not draw particles");
SMconstant[56] = Array ("TE_EXPLFLAG_DRAWALPHA","0x10","sprite will be drawn alpha");
SMconstant[57] = Array ("TE_EXPLFLAG_ROTATE","0x20","rotate the sprite randomly");
SMconstant[58] = Array ("TE_EXPLFLAG_NOFIREBALL","0x40","do not draw a fireball");
SMconstant[59] = Array ("TE_EXPLFLAG_NOFIREBALLSMOKE","0x80","do not draw smoke with the fireball");
SMconstant[60] = Array ("FBEAM_STARTENTITY","0x00000001","");
SMconstant[61] = Array ("FBEAM_ENDENTITY","0x00000002","");
SMconstant[62] = Array ("FBEAM_FADEIN","0x00000004","");
SMconstant[63] = Array ("FBEAM_FADEOUT","0x00000008","");
SMconstant[64] = Array ("FBEAM_SINENOISE","0x00000010","");
SMconstant[65] = Array ("FBEAM_SOLID","0x00000020","");
SMconstant[66] = Array ("FBEAM_SHADEIN","0x00000040","");
SMconstant[67] = Array ("FBEAM_SHADEOUT","0x00000080","");
SMconstant[68] = Array ("FBEAM_ONLYNOISEONCE","0x00000100","Only calculate our noise once");
SMconstant[69] = Array ("FBEAM_NOTILE","0x00000200","");
SMconstant[70] = Array ("FBEAM_USE_HITBOXES","0x00000400","Attachment indices represent hitbox indices instead when this is set.");
SMconstant[71] = Array ("FBEAM_STARTVISIBLE","0x00000800","Has this client actually seen this beam\'s start entity yet?");
SMconstant[72] = Array ("FBEAM_ENDVISIBLE","0x00001000","Has this client actually seen this beam\'s end entity yet?");
SMconstant[73] = Array ("FBEAM_ISACTIVE","0x00002000","");
SMconstant[74] = Array ("FBEAM_FOREVER","0x00004000","");
SMconstant[75] = Array ("FBEAM_HALOBEAM","0x00008000","When drawing a beam with a halo, don\'t ignore the segments and endwidth");
SMconstant[76] = Array ("MAPLIST_FLAG_MAPSFOLDER","(1<<0)","On failure, use all maps in the maps folder.");
SMconstant[77] = Array ("MAPLIST_FLAG_CLEARARRAY","(1<<1)","If an input array is specified, clear it before adding.");
SMconstant[78] = Array ("MAPLIST_FLAG_NO_DEFAULT","(1<<2)","Do not read \\\"default\\\" or \\\"mapcyclefile\\\" on failure.");
SMconstant[79] = Array ("MAX_TARGET_LENGTH","64","");
SMconstant[80] = Array ("COMMAND_FILTER_ALIVE","(1<<0)","Only allow alive players");
SMconstant[81] = Array ("COMMAND_FILTER_DEAD","(1<<1)","Only filter dead players");
SMconstant[82] = Array ("COMMAND_FILTER_CONNECTED","(1<<2)","Allow players not fully in-game");
SMconstant[83] = Array ("COMMAND_FILTER_NO_IMMUNITY","(1<<3)","Ignore immunity rules");
SMconstant[84] = Array ("COMMAND_FILTER_NO_MULTI","(1<<4)","Do not allow multiple target patterns");
SMconstant[85] = Array ("COMMAND_FILTER_NO_BOTS","(1<<5)","Do not allow bots to be targetted");
SMconstant[86] = Array ("COMMAND_TARGET_NONE","0","No target was found");
SMconstant[87] = Array ("COMMAND_TARGET_NOT_ALIVE","-1","Single client is not alive");
SMconstant[88] = Array ("COMMAND_TARGET_NOT_DEAD","-2","Single client is not dead");
SMconstant[89] = Array ("COMMAND_TARGET_NOT_IN_GAME","-3","Single client is not in game");
SMconstant[90] = Array ("COMMAND_TARGET_IMMUNE","-4","Single client is immune");
SMconstant[91] = Array ("COMMAND_TARGET_EMPTY_FILTER","-5","A multi-filter (such as @all) had no targets");
SMconstant[92] = Array ("COMMAND_TARGET_NOT_HUMAN","-6","Target was not human");
SMconstant[93] = Array ("COMMAND_TARGET_AMBIGUOUS","-7","Partial name had too many targets");
SMconstant[94] = Array ("TIMER_REPEAT","(1<<0)","Timer will repeat until it returns Plugin_Stop");
SMconstant[95] = Array ("TIMER_FLAG_NO_MAPCHANGE","(1<<1)","Timer will not carry over mapchanges");
SMconstant[96] = Array ("TIMER_HNDL_CLOSE","(1<<9)","Deprecated define, replaced by below");
SMconstant[97] = Array ("TIMER_DATA_HNDL_CLOSE","(1<<9)","Timer will automatically call CloseHandle() on its data when finished");
SMconstant[98] = Array ("PLATFORM_MAX_PATH","256","Maximum path length.");
SMconstant[99] = Array ("SEEK_SET","0","Seek from start.");
SMconstant[100] = Array ("SEEK_CUR","1","Seek from current position.");
SMconstant[101] = Array ("SEEK_END","2","Seek from end position.");
SMconstant[102] = Array ("FPERM_U_READ","0x0100	/* User can read.","");
SMconstant[103] = Array ("FPERM_U_WRITE","0x0080	/* User can write.","");
SMconstant[104] = Array ("FPERM_U_EXEC","0x0040	/* User can exec.","");
SMconstant[105] = Array ("FPERM_G_READ","0x0020	/* Group can read.","");
SMconstant[106] = Array ("FPERM_G_WRITE","0x0010	/* Group can write.","");
SMconstant[107] = Array ("FPERM_G_EXEC","0x0008	/* Group can exec.","");
SMconstant[108] = Array ("FPERM_O_READ","0x0004	/* Anyone can read.","");
SMconstant[109] = Array ("FPERM_O_WRITE","0x0002	/* Anyone can write.","");
SMconstant[110] = Array ("FPERM_O_EXEC","0x0001	/* Anyone can exec.","");
SMconstant[111] = Array ("BANFLAG_AUTO","(1<<0)","Auto-detects whether to ban by steamid or IP");
SMconstant[112] = Array ("BANFLAG_IP","(1<<1)","Always ban by IP address");
SMconstant[113] = Array ("BANFLAG_AUTHID","(1<<2)","Always ban by authstring (for BanIdentity) if possible");
SMconstant[114] = Array ("BANFLAG_NOKICK","(1<<3)","Does not kick the client");
SMconstant[115] = Array ("ADMINMENU_PLAYERCOMMANDS","\\\"PlayerCommands\\\"","");
SMconstant[116] = Array ("ADMINMENU_SERVERCOMMANDS","\\\"ServerCommands\\\"","");
SMconstant[117] = Array ("ADMINMENU_VOTINGCOMMANDS","\\\"VotingCommands\\\"","");
SMconstant[118] = Array ("SOUND_FROM_PLAYER","-2","");
SMconstant[119] = Array ("SOUND_FROM_LOCAL_PLAYER","-1","");
SMconstant[120] = Array ("SOUND_FROM_WORLD","0","");
SMconstant[121] = Array ("SNDVOL_NORMAL","1.0","Normal volume");
SMconstant[122] = Array ("SNDPITCH_NORMAL","100","Normal pitch");
SMconstant[123] = Array ("SNDPITCH_LOW","95","A low pitch");
SMconstant[124] = Array ("SNDPITCH_HIGH","120","A high pitch");
SMconstant[125] = Array ("SNDATTN_NONE","0.0","No attenuation");
SMconstant[126] = Array ("SNDATTN_NORMAL","0.8","Normal attenuation");
SMconstant[127] = Array ("SNDATTN_STATIC","1.25","Static attenuation?");
SMconstant[128] = Array ("SNDATTN_RICOCHET","1.5","Ricochet effect");
SMconstant[129] = Array ("SNDATTN_IDLE","2.0","Idle attenuation?");
SMconstant[130] = Array ("AdminFlags_TOTAL","21","Total number of admin flags");
SMconstant[131] = Array ("ADMFLAG_RESERVATION","(1<<0)","Convenience macro for Admin_Reservation as a FlagBit");
SMconstant[132] = Array ("ADMFLAG_GENERIC","(1<<1)","Convenience macro for Admin_Generic as a FlagBit");
SMconstant[133] = Array ("ADMFLAG_KICK","(1<<2)","Convenience macro for Admin_Kick as a FlagBit");
SMconstant[134] = Array ("ADMFLAG_BAN","(1<<3)","Convenience macro for Admin_Ban as a FlagBit");
SMconstant[135] = Array ("ADMFLAG_UNBAN","(1<<4)","Convenience macro for Admin_Unban as a FlagBit");
SMconstant[136] = Array ("ADMFLAG_SLAY","(1<<5)","Convenience macro for Admin_Slay as a FlagBit");
SMconstant[137] = Array ("ADMFLAG_CHANGEMAP","(1<<6)","Convenience macro for Admin_Changemap as a FlagBit");
SMconstant[138] = Array ("ADMFLAG_CONVARS","(1<<7)","Convenience macro for Admin_Convars as a FlagBit");
SMconstant[139] = Array ("ADMFLAG_CONFIG","(1<<8)","Convenience macro for Admin_Config as a FlagBit");
SMconstant[140] = Array ("ADMFLAG_CHAT","(1<<9)","Convenience macro for Admin_Chat as a FlagBit");
SMconstant[141] = Array ("ADMFLAG_VOTE","(1<<10)","Convenience macro for Admin_Vote as a FlagBit");
SMconstant[142] = Array ("ADMFLAG_PASSWORD","(1<<11)","Convenience macro for Admin_Password as a FlagBit");
SMconstant[143] = Array ("ADMFLAG_RCON","(1<<12)","Convenience macro for Admin_RCON as a FlagBit");
SMconstant[144] = Array ("ADMFLAG_CHEATS","(1<<13)","Convenience macro for Admin_Cheats as a FlagBit");
SMconstant[145] = Array ("ADMFLAG_ROOT","(1<<14)","Convenience macro for Admin_Root as a FlagBit");
SMconstant[146] = Array ("ADMFLAG_CUSTOM1","(1<<15)","Convenience macro for Admin_Custom1 as a FlagBit");
SMconstant[147] = Array ("ADMFLAG_CUSTOM2","(1<<16)","Convenience macro for Admin_Custom2 as a FlagBit");
SMconstant[148] = Array ("ADMFLAG_CUSTOM3","(1<<17)","Convenience macro for Admin_Custom3 as a FlagBit");
SMconstant[149] = Array ("ADMFLAG_CUSTOM4","(1<<18)","Convenience macro for Admin_Custom4 as a FlagBit");
SMconstant[150] = Array ("ADMFLAG_CUSTOM5","(1<<19)","Convenience macro for Admin_Custom5 as a FlagBit");
SMconstant[151] = Array ("ADMFLAG_CUSTOM6","(1<<20)","Convenience macro for Admin_Custom6 as a FlagBit");
SMconstant[152] = Array ("AUTHMETHOD_STEAM","\\\"steam\\\"","SteamID based authentication");
SMconstant[153] = Array ("AUTHMETHOD_IP","\\\"ip\\\"","IP based authentication");
SMconstant[154] = Array ("AUTHMETHOD_NAME","\\\"name\\\"","Name based authentication");
SMconstant[155] = Array ("INVALID_STRING_TABLE","-1","An invalid string table index");
SMconstant[156] = Array ("INVALID_STRING_INDEX","-1","An invalid string index in a table");
SMconstant[157] = Array ("VOICE_NORMAL","0","Allow the client to listen and speak normally.");
SMconstant[158] = Array ("VOICE_MUTED","1","Mutes the client from speaking to everyone.");
SMconstant[159] = Array ("VOICE_SPEAKALL","2","Allow the client to speak to everyone.");
SMconstant[160] = Array ("VOICE_LISTENALL","4","Allow the client to listen to everyone.");
SMconstant[161] = Array ("VOICE_TEAM","8","Allow the client to always speak to team, even when dead.");
SMconstant[162] = Array ("VOICE_LISTENTEAM","16","Allow the client to always hear teammates, including dead ones.");
SMconstant[163] = Array ("IN_ATTACK","(1 << 0)","");
SMconstant[164] = Array ("IN_JUMP","(1 << 1)","");
SMconstant[165] = Array ("IN_DUCK","(1 << 2)","");
SMconstant[166] = Array ("IN_FORWARD","(1 << 3)","");
SMconstant[167] = Array ("IN_BACK","(1 << 4)","");
SMconstant[168] = Array ("IN_USE","(1 << 5)","");
SMconstant[169] = Array ("IN_CANCEL","(1 << 6)","");
SMconstant[170] = Array ("IN_LEFT","(1 << 7)","");
SMconstant[171] = Array ("IN_RIGHT","(1 << 8)","");
SMconstant[172] = Array ("IN_MOVELEFT","(1 << 9)","");
SMconstant[173] = Array ("IN_MOVERIGHT","(1 << 10)","");
SMconstant[174] = Array ("IN_ATTACK2","(1 << 11)","");
SMconstant[175] = Array ("IN_RUN","(1 << 12)","");
SMconstant[176] = Array ("IN_RELOAD","(1 << 13)","");
SMconstant[177] = Array ("IN_ALT1","(1 << 14)","");
SMconstant[178] = Array ("IN_ALT2","(1 << 15)","");
SMconstant[179] = Array ("IN_SCORE","(1 << 16)   	// Used by client.dll for when scoreboard is held down","");
SMconstant[180] = Array ("IN_SPEED","(1 << 17)	// Player is holding the speed key","");
SMconstant[181] = Array ("IN_WALK","(1 << 18)	// Player holding walk key","");
SMconstant[182] = Array ("IN_ZOOM","(1 << 19)	// Zoom key for HUD zoom","");
SMconstant[183] = Array ("IN_WEAPON1","(1 << 20)	// weapon defines these bits","");
SMconstant[184] = Array ("IN_WEAPON2","(1 << 21)	// weapon defines these bits","");
SMconstant[185] = Array ("IN_BULLRUSH","(1 << 22)","");
SMconstant[186] = Array ("IN_GRENADE1","(1 << 23)	// grenade 1","");
SMconstant[187] = Array ("IN_GRENADE2","(1 << 24)	// grenade 2","");
SMconstant[188] = Array ("FL_ONGROUND","(1 << 0)	// At rest / on the ground","");
SMconstant[189] = Array ("FL_DUCKING","(1 << 1)	// Player flag -- Player is fully crouched","");
SMconstant[190] = Array ("FL_WATERJUMP","(1 << 2)	// player jumping out of water","");
SMconstant[191] = Array ("FL_ONTRAIN","(1 << 3)	// Player is _controlling_ a train, so movement commands should be ignored on client during prediction.","");
SMconstant[192] = Array ("FL_INRAIN","(1 << 4)	// Indicates the entity is standing in rain","");
SMconstant[193] = Array ("FL_FROZEN","(1 << 5)	// Player is frozen for 3rd person camera","");
SMconstant[194] = Array ("FL_ATCONTROLS","(1 << 6)	// Player can\'t move, but keeps key inputs for controlling another entity","");
SMconstant[195] = Array ("FL_CLIENT","(1 << 7)	// Is a player","");
SMconstant[196] = Array ("FL_FAKECLIENT","(1 << 8)	// Fake client, simulated server side; don\'t send network messages to them","");
SMconstant[197] = Array ("PLAYER_FLAG_BITS","9","");
SMconstant[198] = Array ("FL_INWATER","(1 << 9)	// In water","");
SMconstant[199] = Array ("FL_FLY","(1 << 10)	// Changes the SV_Movestep() behavior to not need to be on ground","");
SMconstant[200] = Array ("FL_SWIM","(1 << 11)	// Changes the SV_Movestep() behavior to not need to be on ground (but stay in water)","");
SMconstant[201] = Array ("FL_CONVEYOR","(1 << 12)","");
SMconstant[202] = Array ("FL_NPC","(1 << 13)","");
SMconstant[203] = Array ("FL_GODMODE","(1 << 14)","");
SMconstant[204] = Array ("FL_NOTARGET","(1 << 15)","");
SMconstant[205] = Array ("FL_AIMTARGET","(1 << 16)	// set if the crosshair needs to aim onto the entity","");
SMconstant[206] = Array ("FL_PARTIALGROUND","(1 << 17)	// not all corners are valid","");
SMconstant[207] = Array ("FL_STATICPROP","(1 << 18)	// Eetsa static prop!","");
SMconstant[208] = Array ("FL_GRAPHED","(1 << 19)	// worldgraph has this ent listed as something that blocks a connection","");
SMconstant[209] = Array ("FL_GRENADE","(1 << 20)","");
SMconstant[210] = Array ("FL_STEPMOVEMENT","(1 << 21)	// Changes the SV_Movestep() behavior to not do any processing","");
SMconstant[211] = Array ("FL_DONTTOUCH","(1 << 22)	// Doesn\'t generate touch functions, generates Untouch() for anything it was touching when this flag was set","");
SMconstant[212] = Array ("FL_BASEVELOCITY","(1 << 23)	// Base velocity has been applied this frame (used to convert base velocity into momentum)","");
SMconstant[213] = Array ("FL_WORLDBRUSH","(1 << 24)	// Not moveable/removeable brush entity (really part of the world, but represented as an entity for transparency or something)","");
SMconstant[214] = Array ("FL_OBJECT","(1 << 25)	// Terrible name. This is an object that NPCs should see. Missiles, for example.","");
SMconstant[215] = Array ("FL_KILLME","(1 << 26)	// This entity is marked for death -- will be freed by game DLL","");
SMconstant[216] = Array ("FL_ONFIRE","(1 << 27)	// You know...","");
SMconstant[217] = Array ("FL_DISSOLVING","(1 << 28)	// We\'re dissolving!","");
SMconstant[218] = Array ("FL_TRANSRAGDOLL","(1 << 29)	// In the process of turning into a client side ragdoll.","");
SMconstant[219] = Array ("FL_UNBLOCKABLE_BY_PLAYER","(1 << 30)	// pusher that can\'t be blocked by the player","");
SMconstant[220] = Array ("VDECODE_FLAG_ALLOWNULL","(1<<0)","Allow NULL for pointers");
SMconstant[221] = Array ("VDECODE_FLAG_ALLOWNOTINGAME","(1<<1)","Allow players not in game");
SMconstant[222] = Array ("VDECODE_FLAG_ALLOWWORLD","(1<<2)","Allow World entity");
SMconstant[223] = Array ("VDECODE_FLAG_BYREF","(1<<3)","Floats/ints by reference");
SMconstant[224] = Array ("VENCODE_FLAG_COPYBACK","(1<<0)","Copy back data once done");
SMconstant[225] = Array ("MAXPLAYERS","64","Maximum number of players SourceMod supports");
SMconstant[226] = Array ("MAX_NAME_LENGTH","32","Maximum buffer required to store a client name");
SMconstant[227] = Array ("MENU_ACTIONS_DEFAULT","MenuAction_Select|MenuAction_Cancel |MenuAction_End","");
SMconstant[228] = Array ("MENU_ACTIONS_ALL","MenuAction:0xFFFFFFFF","");
SMconstant[229] = Array ("MENU_NO_PAGINATION","0","Menu should not be paginated (10 items max)");
SMconstant[230] = Array ("MENU_TIME_FOREVER","0","Menu should be displayed as long as possible");
SMconstant[231] = Array ("ITEMDRAW_DEFAULT","(0)","Item should be drawn normally");
SMconstant[232] = Array ("ITEMDRAW_DISABLED","(1<<0)","Item is drawn but not selectable");
SMconstant[233] = Array ("ITEMDRAW_RAWLINE","(1<<1)","Item should be a raw line, without a slot");
SMconstant[234] = Array ("ITEMDRAW_NOTEXT","(1<<2)","No text should be drawn");
SMconstant[235] = Array ("ITEMDRAW_SPACER","(1<<3)","Item should be drawn as a spacer, if possible");
SMconstant[236] = Array ("ITEMDRAW_IGNORE","((1<<1)|(1<<2))","Item should be completely ignored (rawline + notext)");
SMconstant[237] = Array ("ITEMDRAW_CONTROL","(1<<4)","Item is control text (back/next/exit)");
SMconstant[238] = Array ("MENUFLAG_BUTTON_EXIT","(1<<0)","Menu has an \\\"exit\\\" button (default if paginated)");
SMconstant[239] = Array ("MENUFLAG_BUTTON_EXITBACK","(1<<1)","Menu has an \\\"exit back\\\" button");
SMconstant[240] = Array ("MENUFLAG_NO_SOUND","(1<<2)","Menu will not have any select sounds");
SMconstant[241] = Array ("VOTEINFO_CLIENT_INDEX","0","Client index");
SMconstant[242] = Array ("VOTEINFO_CLIENT_ITEM","1","Item the client selected, or -1 for none");
SMconstant[243] = Array ("VOTEINFO_ITEM_INDEX","0","Item index");
SMconstant[244] = Array ("VOTEINFO_ITEM_VOTES","1","Number of votes for the item");
SMconstant[245] = Array ("VOTEFLAG_NO_REVOTES","(1<<0)","Players cannot change their votes");
SMconstant[246] = Array ("CS_TEAM_NONE","0","No team yet.");
SMconstant[247] = Array ("CS_TEAM_SPECTATOR","1","Spectators.");
SMconstant[248] = Array ("CS_TEAM_T","2","Terrorists.");
SMconstant[249] = Array ("CS_TEAM_CT","3","Counter-Terrorists.");
SMconstant[250] = Array ("CS_SLOT_PRIMARY","0","Primary weapon slot.");
SMconstant[251] = Array ("CS_SLOT_SECONDARY","1","Secondary weapon slot.");
SMconstant[252] = Array ("CS_SLOT_GRENADE","3","Grenade slot (will only return one grenade).");
SMconstant[253] = Array ("CS_SLOT_C4","4","C4 slot.");
SMconstant[254] = Array ("INVALID_FCVAR_FLAGS","(-1)","");
SMconstant[255] = Array ("FCVAR_NONE","0","The default, no flags at all");
SMconstant[256] = Array ("FCVAR_UNREGISTERED","(1<<0)","If this is set, don\'t add to linked list, etc.");
SMconstant[257] = Array ("FCVAR_LAUNCHER","(1<<1)","Defined by launcher.");
SMconstant[258] = Array ("FCVAR_GAMEDLL","(1<<2)","Defined by the game DLL.");
SMconstant[259] = Array ("FCVAR_CLIENTDLL","(1<<3)","Defined by the client DLL.");
SMconstant[260] = Array ("FCVAR_MATERIAL_SYSTEM","(1<<4)","Defined by the material system.");
SMconstant[261] = Array ("FCVAR_PROTECTED","(1<<5)","It\'s a server cvar, but we don\'t send the data since it\'s a password, etc. Sends 1 if it\'s not bland/zero, 0 otherwise as value.");
SMconstant[262] = Array ("FCVAR_SPONLY","(1<<6)","This cvar cannot be changed by clients connected to a multiplayer server.");
SMconstant[263] = Array ("FCVAR_ARCHIVE","(1<<7)","Set to cause it to be saved to vars.rc");
SMconstant[264] = Array ("FCVAR_NOTIFY","(1<<8)","Notifies players when changed.");
SMconstant[265] = Array ("FCVAR_USERINFO","(1<<9)","Changes the client\'s info string.");
SMconstant[266] = Array ("FCVAR_PRINTABLEONLY","(1<<10)","This cvar\'s string cannot contain unprintable characters (e.g., used for player name, etc.)");
SMconstant[267] = Array ("FCVAR_UNLOGGED","(1<<11)","If this is a FCVAR_SERVER, don\'t log changes to the log file / console if we are creating a log");
SMconstant[268] = Array ("FCVAR_NEVER_AS_STRING","(1<<12)","Never try to print that cvar.");
SMconstant[269] = Array ("FCVAR_REPLICATED","(1<<13)","Server setting enforced on clients.");
SMconstant[270] = Array ("FCVAR_CHEAT","(1<<14)","Only useable in singleplayer / debug / multiplayer & sv_cheats");
SMconstant[271] = Array ("FCVAR_STUDIORENDER","(1<<15)","Defined by the studiorender system.");
SMconstant[272] = Array ("FCVAR_DEMO","(1<<16)","Record this cvar when starting a demo file.");
SMconstant[273] = Array ("FCVAR_DONTRECORD","(1<<17)","Don\'t record these command in demo files.");
SMconstant[274] = Array ("FCVAR_PLUGIN","(1<<18)","Defined by a 3rd party plugin.");
SMconstant[275] = Array ("FCVAR_DATACACHE","(1<<19)","Defined by the datacache system.");
SMconstant[276] = Array ("FCVAR_TOOLSYSTEM","(1<<20)","Defined by an IToolSystem library");
SMconstant[277] = Array ("FCVAR_FILESYSTEM","(1<<21)","Defined by the file system.");
SMconstant[278] = Array ("FCVAR_NOT_CONNECTED","(1<<22)","Cvar cannot be changed by a client that is connected to a server.");
SMconstant[279] = Array ("FCVAR_SOUNDSYSTEM","(1<<23)","Defined by the soundsystem library.");
SMconstant[280] = Array ("FCVAR_ARCHIVE_XBOX","(1<<24)","Cvar written to config.cfg on the Xbox.");
SMconstant[281] = Array ("FCVAR_INPUTSYSTEM","(1<<25)","Defined by the inputsystem DLL.");
SMconstant[282] = Array ("FCVAR_NETWORKSYSTEM","(1<<26)","Defined by the network system.");
SMconstant[283] = Array ("FCVAR_VPHYSICS","(1<<27)","Defined by vphysics.");
SMconstant[284] = Array ("FEATURECAP_COMMANDLISTENER","\\\"command listener\\\"","");
SMconstant[285] = Array ("FLOAT_PI","3.1415926535897932384626433832795","");
SMconstant[286] = Array ("CONTENTS_EMPTY","0","No contents.");
SMconstant[287] = Array ("CONTENTS_SOLID","0x1","an eye is never valid in a solid .");
SMconstant[288] = Array ("CONTENTS_WINDOW","0x2","translucent, but not watery (glass).");
SMconstant[289] = Array ("CONTENTS_AUX","0x4","");
SMconstant[290] = Array ("CONTENTS_GRATE","0x8","alpha-tested \\\"grate\\\" textures.  Bullets/sight pass through, but solids don\'t.");
SMconstant[291] = Array ("CONTENTS_SLIME","0x10","");
SMconstant[292] = Array ("CONTENTS_WATER","0x20","");
SMconstant[293] = Array ("CONTENTS_MIST","0x40","");
SMconstant[294] = Array ("CONTENTS_OPAQUE","0x80","things that cannot be seen through (may be non-solid though).");
SMconstant[295] = Array ("LAST_VISIBLE_CONTENTS","0x80","");
SMconstant[296] = Array ("ALL_VISIBLE_CONTENTS","(LAST_VISIBLE_CONTENTS | (LAST_VISIBLE_CONTENTS-1))","");
SMconstant[297] = Array ("CONTENTS_TESTFOGVOLUME","0x100","");
SMconstant[298] = Array ("CONTENTS_UNUSED5","0x200","");
SMconstant[299] = Array ("CONTENTS_UNUSED6","0x4000","");
SMconstant[300] = Array ("CONTENTS_TEAM1","0x800","per team contents used to differentiate collisions.");
SMconstant[301] = Array ("CONTENTS_TEAM2","0x1000","between players and objects on different teams.");
SMconstant[302] = Array ("CONTENTS_IGNORE_NODRAW_OPAQUE","0x2000","ignore CONTENTS_OPAQUE on surfaces that have SURF_NODRAW.");
SMconstant[303] = Array ("CONTENTS_MOVEABLE","0x4000","hits entities which are MOVETYPE_PUSH (doors, plats, etc)");
SMconstant[304] = Array ("CONTENTS_AREAPORTAL","0x8000","remaining contents are non-visible, and don\'t eat brushes.");
SMconstant[305] = Array ("CONTENTS_PLAYERCLIP","0x10000","");
SMconstant[306] = Array ("CONTENTS_MONSTERCLIP","0x20000","");
SMconstant[307] = Array ("CONTENTS_CURRENT_0","0x40000","");
SMconstant[308] = Array ("CONTENTS_CURRENT_90","0x80000","");
SMconstant[309] = Array ("CONTENTS_CURRENT_180","0x100000","");
SMconstant[310] = Array ("CONTENTS_CURRENT_270","0x200000","");
SMconstant[311] = Array ("CONTENTS_CURRENT_UP","0x400000","");
SMconstant[312] = Array ("CONTENTS_CURRENT_DOWN","0x800000","");
SMconstant[313] = Array ("CONTENTS_ORIGIN","0x1000000","removed before bsping an entity.");
SMconstant[314] = Array ("CONTENTS_MONSTER","0x2000000","should never be on a brush, only in game.");
SMconstant[315] = Array ("CONTENTS_DEBRIS","0x4000000","");
SMconstant[316] = Array ("CONTENTS_DETAIL","0x8000000","brushes to be added after vis leafs.");
SMconstant[317] = Array ("CONTENTS_TRANSLUCENT","0x10000000","auto set if any surface has trans.");
SMconstant[318] = Array ("CONTENTS_LADDER","0x20000000","");
SMconstant[319] = Array ("CONTENTS_HITBOX","0x40000000","use accurate hitboxes on trace.");
SMconstant[320] = Array ("MASK_ALL","(0xFFFFFFFF)","");
SMconstant[321] = Array ("MASK_SOLID","(CONTENTS_SOLID|CONTENTS_MOVEABLE|C ONTENTS_WINDOW|CONTENTS_MONSTER|CON TENTS_GRATE)","everything that is normally solid");
SMconstant[322] = Array ("MASK_PLAYERSOLID","(CONTENTS_SOLID|CONTENTS_MOVEABLE|C ONTENTS_PLAYERCLIP|CONTENTS_WINDOW| CONTENTS_MONSTER|CONTENTS_GRATE)","everything that blocks player movement");
SMconstant[323] = Array ("MASK_NPCSOLID","(CONTENTS_SOLID|CONTENTS_MOVEABLE|C ONTENTS_MONSTERCLIP|CONTENTS_WINDOW |CONTENTS_MONSTER|CONTENTS_GRATE)","blocks npc movement");
SMconstant[324] = Array ("MASK_WATER","(CONTENTS_WATER|CONTENTS_MOVEABLE|C ONTENTS_SLIME)","water physics in these contents");
SMconstant[325] = Array ("MASK_OPAQUE","(CONTENTS_SOLID|CONTENTS_MOVEABLE|C ONTENTS_OPAQUE)","everything that blocks line of sight for AI, lighting, etc");
SMconstant[326] = Array ("MASK_OPAQUE_AND_NPCS","(MASK_OPAQUE|CONTENTS_MONSTER)","everything that blocks line of sight for AI, lighting, etc, but with monsters added.");
SMconstant[327] = Array ("MASK_VISIBLE","(MASK_OPAQUE|CONTENTS_IGNORE_NODRAW _OPAQUE)","everything that blocks line of sight for players");
SMconstant[328] = Array ("MASK_VISIBLE_AND_NPCS","(MASK_OPAQUE_AND_NPCS|CONTENTS_IGNO RE_NODRAW_OPAQUE)","everything that blocks line of sight for players, but with monsters added.");
SMconstant[329] = Array ("MASK_SHOT","(CONTENTS_SOLID|CONTENTS_MOVEABLE|C ONTENTS_MONSTER|CONTENTS_WINDOW|CON TENTS_DEBRIS|CONTENTS_HITBOX)","bullets see these as solid");
SMconstant[330] = Array ("MASK_SHOT_HULL","(CONTENTS_SOLID|CONTENTS_MOVEABLE|C ONTENTS_MONSTER|CONTENTS_WINDOW|CON TENTS_DEBRIS|CONTENTS_GRATE)","non-raycasted weapons see this as solid (includes grates)");
SMconstant[331] = Array ("MASK_SHOT_PORTAL","(CONTENTS_SOLID|CONTENTS_MOVEABLE|C ONTENTS_WINDOW)","hits solids (not grates) and passes through everything else");
SMconstant[332] = Array ("MASK_SOLID_BRUSHONLY","(CONTENTS_SOLID|CONTENTS_MOVEABLE|C ONTENTS_WINDOW|CONTENTS_GRATE)","everything normally solid, except monsters (world+brush only)");
SMconstant[333] = Array ("MASK_PLAYERSOLID_BRUSHONLY","(CONTENTS_SOLID|CONTENTS_MOVEABLE|C ONTENTS_WINDOW|CONTENTS_PLAYERCLIP| CONTENTS_GRATE)","everything normally solid for player movement, except monsters (world+brush only)");
SMconstant[334] = Array ("MASK_NPCSOLID_BRUSHONLY","(CONTENTS_SOLID|CONTENTS_MOVEABLE|C ONTENTS_WINDOW|CONTENTS_MONSTERCLIP |CONTENTS_GRATE)","everything normally solid for npc movement, except monsters (world+brush only)");
SMconstant[335] = Array ("MASK_NPCWORLDSTATIC","(CONTENTS_SOLID|CONTENTS_WINDOW|CON TENTS_MONSTERCLIP|CONTENTS_GRATE)","just the world, used for route rebuilding");
SMconstant[336] = Array ("MASK_SPLITAREAPORTAL","(CONTENTS_WATER|CONTENTS_SLIME)","These are things that can split areaportals");
SMconstant[337] = Array ("FL_EDICT_CHANGED","(1<<0)","Game DLL sets this when the entity state changes");
SMconstant[338] = Array ("FL_EDICT_FREE","(1<<1)","this edict if free for reuse");
SMconstant[339] = Array ("FL_EDICT_FULL","(1<<2)","this is a full server entity");
SMconstant[340] = Array ("FL_EDICT_FULLCHECK","(0<<0)","call ShouldTransmit() each time, this is a fake flag");
SMconstant[341] = Array ("FL_EDICT_ALWAYS","(1<<3)","always transmit this entity");
SMconstant[342] = Array ("FL_EDICT_DONTSEND","(1<<4)","don\'t transmit this entity");
SMconstant[343] = Array ("FL_EDICT_PVSCHECK","(1<<5)","always transmit entity, but cull against PVS");
SMconstant[344] = Array ("FL_EDICT_PENDING_DORMANT_CHECK","(1<<6)","");
SMconstant[345] = Array ("FL_EDICT_DIRTY_PVS_INFORMATION","(1<<7)","");
SMconstant[346] = Array ("FL_FULL_EDICT_CHANGED","(1<<8)","");
SMconstant[347] = Array ("PCRE_CASELESS","0x00000001 /* Ignore Case","");
SMconstant[348] = Array ("PCRE_MULTILINE","0x00000002 /* Multilines (affects ^ and $ so that they match the start/end of a line rather than matching the start/end of the string).","");
SMconstant[349] = Array ("PCRE_DOTALL","0x00000004 /* Single line (affects . so that it matches any character, even new line characters).","");
SMconstant[350] = Array ("PCRE_EXTENDED","0x00000008 /* Pattern extension (ignore whitespace and # comments).","");
SMconstant[351] = Array ("PCRE_UNGREEDY","0x00000200 /* Invert greediness of quantifiers","");
SMconstant[352] = Array ("PCRE_UTF8","0x00000800 /* Use UTF-8 Chars","");
SMconstant[353] = Array ("PCRE_NO_UTF8_CHECK","0x00002000 /* Do not check the pattern for UTF-8 validity (only relevant if PCRE_UTF8 is set)","");
SMconstant[354] = Array ("USERMSG_RELIABLE","(1<<2)","Message will be set on the reliable stream");
SMconstant[355] = Array ("USERMSG_INITMSG","(1<<3)","Message will be considered to be an initmsg");
SMconstant[356] = Array ("USERMSG_BLOCKHOOKS","(1<<7)","Prevents the message from triggering SourceMod and Metamod hooks");
