nyuuzyou/wikis huggingface dataset:
VCD

Valve Choreography Data (VCD) is a proprietary file format used to store choreography data.
VCDs are authored in Faceposer and played in your map via the entity. The filename should contain only one period before the file extension; otherwise, the scene file cannot be found.
== Format ==
VCD uses a plain-text format that superficially resembles a simplified version of and can be edited with any text editor. Each file contains a nested list of objects that each have properties of their own. Properties can be text, numbers, or other objects and are denoted using a simple system of key-value pairs without separators.
The basic notation is as follows:
 // comment
 object_type (parameters) "name"
 {
 property "value"
 property value
 object_type "name"
 {
 property 1
 }
 }
=== Objects ===
Each object is denoted using the syntax type parameters "name". Names and paremeters may be optional depending on object type; the most simple declaration possible consists solely of an object type, such as with scalesettings. Common objects are actors, channels, and events.
==== Object types ====
An incomplete list of object types follows. This list is incomplete and based on ongoing examination of the format. You can help expand it.
Type 	Assumed function 	Known parameters 	Example
actor 	A single actor, with channels and events as children 	name 	actor "Alyx" { ... }
channel 	A single channel, as child of an actor object, containing events	name 	channel "look at" { ... }
event 	A single event on the Faceposer timeline. 	event type (i.e. "lookat", name	event lookat "look_player" { ... }
event_ramp 	Unknown, possibly for blending animations 	none known 	
scalesettings	Unknown, possibly for saving Faceposer UI preferences 	none known 	
 scalesettings
 {
 "CChoreoView" "25"
 "ExpressionTool" "100"
 "GestureTool" "100"
 "RampTool" "52"
 "SceneRampTool" "100"
 }
=== Properties ===
Properties of objects are denoted using their name (key) without parentheses, followed by a one or more values separated by spaces. Text is enclosed in double quotes (" "), numbers are not. Properties may be other objects, each with their own properties. The amount and type of available or required properties depend on the object type.
A few properties are common across many object types, such as time (float) (float) and param (string), indicating time codes and parameters that are to be passed to certain events. One such example is the lookat type event, which takes two time values for its position and duration or end point on the timeline and one param value to determine the entity an actor should look at:
 // from scenes/eli_lab/al_cmon.vcd
 ...
 event lookat "look_player"
 {
 time 0.053333 2.553333
 param "!player"
 ...
 }
=== Comments ===
Single-line comments may be created by prefacing a line with two slashes, for example:
 // this is a comment
 channel "look_at"
 {
 ...
 }
Category:Choreography
Category:File formats
VCD Blocking Tool

The VCD Blocking Tool is a broken, practically-unreleased in-game tool that would have been used to place, name, move, and delete info_targets in the map, while in game. Likely to aide in creating choreography scenes. It was supposed to also be able to create save files in .vle files, as well as export all changes into a vmf, but these both seem to be broken.
It was mistakenly released during the 2007 Team Fortress 2 beta, though nobody seems to have got it working before the whole tools system was deactivated and it is incompatible with the current build of the engine. However, it was actually released with Black Mesa, as it runs on the TF2 branch.
By default, trying to open a bsp file or vle file will result in an error printing in console, that it was unable to open the specified file. To get it to open .bsps at all, you need to place them in a directory that has all three of the following folders: game, content, and maps. An example directory would be: Black Mesa\bms\game\content\maps.
Once the bsp is in the maps folder, you can open it in game by loading up the tool and doing File > new > bsp.
As stated above, the export functionality of the tool to a vmf file seems to be broken, so this tool is just a neat novelty.
Category:Tools
Category: Official Tools
VCFG

Valve Configuration file (or VCFG) is a games text file used to execute a newline-delimited list of console commands to the Developer Console. The .vcfg file extension can be found everywhere and is not specific to Source. Some Source 2 games (such as ), still features file extension in some files (such as ).
== File format ==
* Each line is considered a command. Note that each command can still consist of multiple commands delimited with the semicolon ;.
* Comments can be added by using //. These two characters and everything following after them is ignored by the engine until the next line starts.
* Cheat commands require enabled, otherwise they have no effect. To configure a mod's default cheat convars, VScript or can achieve this on map start without having to enable sv_cheats.
==Files==
The folder <game>/cfg/ is usually dedicated to CFG files and can be further organized in subdirectories, and referred in by relative path.
This is a table listing common CFG files found in mods and games alike.
CFG 	Description
autoexec.vcfg 	Ran on game start up, so one can easily create the file and put any commands that one doesn't want to type each time.
game.vcfg 	Ran every time a map is loaded.
modsettings.vcfg 	Ran on game start up, unless not found in mod folder.
listenserver.vcfg 	Ran when a listen server is being started, and runs every time the map is changed.
user_keys_default.vcfg 	Ran when the following file is not present:
 (in )</br>
 (in )</br>
 (in )</br>
 </br>
or when player reset Keyboard settings in game Settings/Options.
user_keys_dev_default.vcfg	Ran when no user_keys_default.vcfg is present or when player clicks the 'Use Defaults' button in the keyboard tab in the options panel, see Customizing Options: Keyboard.
valve.rc 	Special vcfg file with the .rc extension, it's ran on game start up and executes autoexec.cfg along with a few other commands.
Category:File formats
VCS

The Valve Compiled Shader (.vcs) file format stores all shader bytecode for a given pixel or vertex shader.
== Format ==
Some of the structure is publicly available in the SDK. 
====Header====
Type 	Meaning 	Description
int32 	Version 	1 to 6. Version 6 is the latest and most common one
int32 	Total Combos 	
int32 	Dynamic Combo Count	
uint32	Flags 	
uint32	Centroid Mask 	
uint32	Static Combo Count 	
uint32	Source CRC32 	CRC32 checksum of the original source file
Category:File formats
VDF

VDF or Valve Data File is file format used in source games to store various types of game-related metadata. VDF files store information data for resources, installation scripts, configuration scripts, and visualization elements.They can often be seen when installing games distributed through Valve's Steam game client, such as Half-Life 2 and Counter-Strike.VDF also holds a filter plugin for virtual dub video capture and processing software application.
==VDF file format==
 "keyvalue 1"
 {
 "keyvalue_2"
 {
 "keyvalue.3"
 "keyvalue4"
 }
 }
==Example==
An example for controller motion from half-life 2 controller_motion_steamcontroller_gordon.vdf
 "controller_mappings"
 {
 	"version"		"3"
 	"revision"		"25"
 	"title"		"#Title_Portal_Motion"
 	"description"		"#Description_Portal_Motion"
 	"creator"		"76561198042570256"
 	"progenitor"		"default://400"
 	"export_type"		"unknown"
 	"controller_type"		"controller_steamcontroller_gordon"
 	"major_revision"		"1"
 	"major_revision_affects_mousekb" "1"
 	"major_revision_affects_xinput" "1"
 	"minor_revision"		"0"
 	"Timestamp"		"0"
 	"actions"
 	{
 		"GameControls"
 		{
another example hammer.vdf
 "UserConfigData"
 {
 	"resource"
 	{
 		"mdlpicker.res"
 		{
 			"FileBrowserSplitter"
 			{
 				"child0"
 				{
 					"AssetSplitter"
 					{
 						"child1"
 						{
 							"AssetBrowser"
 							{
 								"lastBarWidth"		"532"
 								"0_hidden"		"0"
 								"0_width"		"52"
 								"1_hidden"		"0"
 								"1_width"		"481"
 							}
 						}
 						"0_splitter_pos"		"296.500000"
 						"1_splitter_pos"		"593.000000"
 					}
 				}
 		...
category:File_formats
VERTEX BUFFER SIZE

The VERTEX_BUFFER_SIZE is the limit on the size of a single vertex buffer. Multiple buffers are rendered per scene, so this isn't a limit that you should ever encounter. If you are hitting it, you've most likely got a bug in your mod's code or content.
==Resolution to VERTEX_BUFFER_SIZE==
This happens when your map is clogged up with too many brushes/brushes with many vertices. Try making small brushes that are close to each other a func_detail. Do this to as much of the map as possible to stop this occuring.
Category:Level Design
Category:Modding
Category:Errors
Category:Constants
VGUI2: Hardcoded Controls

Category:TutorialsC
==Requirements==
Have read and understood (or understand):
*VGUI Documentation
*VGUI2:_Creating_a_panel
Can code:
*C++
*Script
This tutorial is a continuation on Creating A Panel
In Half-Life 1, controls were added via code from the Server and Client libraries and are still supported by the source
engine. There are more options for these controls to be customized rather then in RES files.
This is very useful if you do not want people to modify your panel controls via RES files.
You have the choice in-between 50 elements, individually stored in the vgui_controls folder.
First start off by adding our header file.
===MyPanel.cpp===
 //The following include files are necessary to allow your MyPanel.cpp to compile.
 #include "cbase.h"
 #include "IMyPanel.h"
 using namespace vgui;
 #include <vgui/IVGui.h>
 #include <vgui_controls/Frame.h>
 // Non RES-File Control Tutorial
 #include <vgui_controls/Button.h>
 //------------------------------
 //CMyPanel class: Tutorial example class
 class CMyPanel : public vgui::Frame
 {
 	DECLARE_CLASS_SIMPLE(CMyPanel, vgui::Frame); 
 	//CMyPanel : This Class / vgui::Frame : BaseClass
 
 	CMyPanel(vgui::VPANEL parent); 	// Constructor
 	~CMyPanel(){};				// Destructor
 
 protected:
 	//VGUI overrides:
 	virtual void OnTick();
 	virtual void OnCommand(const char* pcCommand);
 
 private:
 	//Other used VGUI control Elements:
 // Our Code Defined Control
 Button *m_pCloseButton;
 };
The control is defined, now we need to create it here but you can still have both the res file and code defined controls at the same time but if SetScheme is called after you call any control manipulation functions, the res file will overwrite the operations performed in the code. Anyways, we are going to be assigning a click and release sound to this button.
// Constuctor: Initializes the Panel
CMyPanel::CMyPanel(vgui::VPANEL parent) : BaseClass(NULL, "MyPanel")
{
	SetParent( parent );
	
	SetKeyBoardInputEnabled( true );
	SetMouseInputEnabled( true );
	
	SetProportional( false );
	SetTitleBarVisible( true );
	SetMinimizeButtonVisible( false );
	SetMaximizeButtonVisible( false );
	SetCloseButtonVisible( false );
	SetSizeable( false );
	SetMoveable( false );
	SetVisible( true );
	SetScheme(vgui::scheme()->LoadSchemeFromFile("resource/SourceScheme.res", "SourceScheme"));
	LoadControlSettings("resource/UI/MyPanel.res");
	vgui::ivgui()->AddTickSignal( GetVPanel(), 100 );
 // Code Defined Control Creation
 m_pCloseButton = new Button(this, "", "Close", this, "turnoff");
 m_pCloseButton->SetPos(314, 162);
	m_pCloseButton->SetDepressedSound("common/bugreporter_succeeded.wav");
 m_pCloseButton->SetReleadedSound("ui/buttonclick.wav");
 //------------------------------	
}
VGUI:Custom Title Screen FAQ

This page hopes to resolve some frequently asked questions regarding customization of the title screen.
The title screen/main menu isn't defined in the Source SDK. It's defined in GameUI.dll. Modders are unable to edit this file, so customizing the main menu requires a few hacks.
==How do I get a panel on the main menu?==
Set its parent as the GAMEUI base panel.
 vgui::VPANEL GameUIRoot = enginevgui->GetPanel( PANEL_GAMEUIDLL );
 SetParent( GameUIRoot );
==I can't interact with buttons on my GameUI panel!==
This requires some hacking. First of all you need to make your panel a popup. In your panel's constructor do:
 MakePopup();
It'll now act like a window/frame. You will be able to interact with it but when you open a new window, like the console, you will be able to push it behind this panel.
The best way I've found to prevent this is to always force it to the back by putting this in your panels Think function
 vgui::surface()->MovePopupToBack( GetVPanel() );
Bold text
C
VGUI Button

==Description==
A button can be pressed to perform an action. Buttons in current Source games are usually 24 pixels high, and have an additional ~30 pixels or blank space to the right of any text.
==Example & Accepted Values==
 	"Button"
 	{
 		"ControlName"		"Button"
 		"fieldName"		"Button"
 		"xpos"			"120"
 		"ypos"			"20"
 		"wide"			"82"
 		"tall"			"24"
 		"autoResize"		"0"
 		"pinCorner"		"3"
 		"visible"		"1"
 		"enabled"		"1"
 		"tabPosition"		"2"
 		"labelText"		"#Button_Text"
 		"textAlignment"		"west"
 		"dulltext"		"0"
 		"brighttext"		"0"
 		"wrap"			"0"
 	}
Category:VGUI Controls
VGUI Grid

VGUI Grid is a vgui2 control. In Episodic mods, it is defined in src\cl_dll\vgui_grid.cpp. Grid is used to group multiple control panels into a single grid.
== Example Usage ==
Before creating anything, we first need to include the header file and use the vgui namespace:
 //(Episodic only)
 #include "vgui_grid.h"
 using namespace vgui;
Grids can be created via the c++ keyword new with a simple call to CGrid:
 CGrid* pGrid = new CGrid();
Once created, we now need to configure it:
 pGrid->SetDimensions(5,5); //columns, rows
 pGrid->SetSpacing(10,10); //xSpacing, ySpacing
 pGrid->SetPos(100,100);
 pGrid->SetVisible(true);
Now we can add control elements to it, for this example we'll use an ImagePanel.
 ImagePanel* img = new ImagePanel(this, "img");
 img->SetImage(scheme()->GetImage("vgui/eye", false));
 img->SetVisible(true);
 
 pGrid->SetEntry(0,0,img);
Category:VGUI Controls
VGUI HTML Screen/IHTMLView.h

Category:Programming
Category:VGUI
See also: VGUI HTML Screen/HTMLView.cpp VGUI HTML Screen/HTMLView.res
//========= Public Domain 2006, Julian 'Daedalus' Thatcher. =====================//
//
// Purpose: Header file for HTMLView window
//
//
// $NoKeywords: $
//=============================================================================//
// IHTMLView.h
#include <vgui_controls/Frame.h>
#include <vgui_controls/HTML.h>
#include "EntHTML.h"
using namespace vgui;
class IHTMLView
{
public:
	virtual void		Create( vgui::VPANEL parent ) = 0;
	virtual void		Destroy( void ) = 0;
	virtual void		Activate( void ) = 0;
	virtual void		UpdateHTML ( void ) = 0;
};
//CHTMLView_Panel class: Our HTMLView Frame example class
class CHTMLView_Panel : public vgui::Frame
{
	DECLARE_CLASS_SIMPLE(CHTMLView_Panel, vgui::Frame); 
	//CHTMLView_Panel : This Class / vgui::Frame : BaseClass
	CHTMLView_Panel(vgui::VPANEL parent); 	// Constructor
	~CHTMLView_Panel(){};					// Destructor
protected:
	//VGUI overrides:
	virtual void OnTick();
	virtual void OnCommand(const char* pcCommand);
private:
	//Other used VGUI control Elements:
	vgui::Button *m_exit;
	vgui::Image *m_img;
public:
	EntHTML *m_HTML;
};
extern IHTMLView* htmlview;
#define CenterThisPanelOnScreen()\
 int x,w,h;\
 GetBounds(x,x,w,h);\
 SetPos((ScreenWidth()-w)/2,(ScreenHeight()-h)/2)
#define CenterPanelOnScreen(panel)\
 int x,w,h;\
 panel->GetBounds(x,x,w,h);\
 panel->SetPos((panel->ScreenWidth()-w)/2,(panel->ScreenHeight()-h)/2)
VGUI HTML Screen In Multiplayer/IHTMLView.h

//========= Public Domain 2006, Julian 'Daedalus' Thatcher. =====================//
//
// Purpose: Header file for HTMLView window
//
//
// $NoKeywords: $
//=============================================================================//
// IHTMLView.h
#include <vgui_controls/Frame.h>
#include <vgui_controls/HTML.h>
#include "EntHTML.h"
using namespace vgui;
class IHTMLView
{
public:
	virtual void		Create( vgui::VPANEL parent ) = 0;
	virtual void		Destroy( void ) = 0;
	virtual void		Activate( void ) = 0;
	virtual void		UpdateHTML ( void ) = 0;
};
//CHTMLView_Panel class: Our HTMLView Frame example class
class CHTMLView_Panel : public vgui::Frame
{
	DECLARE_CLASS_SIMPLE(CHTMLView_Panel, vgui::Frame); 
	//CHTMLView_Panel : This Class / vgui::Frame : BaseClass
	CHTMLView_Panel(vgui::VPANEL parent); 	// Constructor
	~CHTMLView_Panel(){};					// Destructor
protected:
	//VGUI overrides:
	virtual void OnTick();
	virtual void OnCommand(const char* pcCommand);
private:
	//Other used VGUI control Elements:
	vgui::Button *m_exit;
	vgui::Image *m_img;
public:
	EntHTML *m_HTML;
};
extern IHTMLView* htmlview;
#define CenterThisPanelOnScreen()\
 int x,w,h;\
 GetBounds(x,x,w,h);\
 SetPos((ScreenWidth()-w)/2,(ScreenHeight()-h)/2)
#define CenterPanelOnScreen(panel)\
 int x,w,h;\
 panel->GetBounds(x,x,w,h);\
 panel->SetPos((panel->ScreenWidth()-w)/2,(panel->ScreenHeight()-h)/2)
Category:Programming
Category:VGUI
VGUI HTML Screen In Multiplayer/sv htmlview support.cpp

//========= Public Domain 2007, Julian 'Daedalus' Thatcher. =====================//
//
// Purpose: HTMLView Server Entity Triggering implementation
//
// Ingame Usage Commands:
// sv_ent_fire entity [action] [parameter]		Functions as ent_fire command
// 
// $Created: Thursday, 26 April 2007
// $LastUpdated: Monday, 21 May 2007
// $Author: Julian 'Daedalus' Thatcher (daedalus.raistlin@gmail.com)
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
#include "EventQueue.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
void CC_sv_ent_fire_f(void)
{
	// fires a command from the console
	CBasePlayer *pPlayer = ToBasePlayer( UTIL_GetCommandClient() );
	if(!pPlayer)
	{
		// If we can't get it, use this class
		pPlayer = NULL;
	}
	if ( engine->Cmd_Argc() < 2 )
	{
		ClientPrint( pPlayer, HUD_PRINTCONSOLE, "Usage:\n ent_fire <target> [action] [value] [delay]\n" );
	}
	else
	{
		const char *target = "", *action = "Trigger";
		variant_t value;
		int delay = 0;
		target = STRING( AllocPooledString(engine->Cmd_Argv(1)) );
		if ( engine->Cmd_Argc() >= 3 )
		{
			action = STRING( AllocPooledString(engine->Cmd_Argv(2)) );
		}
		if ( engine->Cmd_Argc() >= 4 )
		{
			value.SetString( AllocPooledString(engine->Cmd_Argv(3)) );
		}
		if ( engine->Cmd_Argc() >= 5 )
		{
			delay = atoi( engine->Cmd_Argv(4) );
		}
		g_EventQueue.AddEvent( target, action, value, delay, pPlayer, pPlayer );
	}
}
static ConCommand sv_ent_fire("sv_ent_fire", CC_sv_ent_fire_f, "Fires an entity serverside", 0);
Category:VGUI
Category:Programming
VGUI HTML Screen In Orange Box

This tutorial is an add-on to the VGUI HTML Screen and VGUI HTML Screen In Multiplayer articles, providing details on implementing the VGUI HTML Screens in the Orange Box.
Please read either of the above articles in full, as this article simply provides replacements for a few areas.
NOTICE!
A problem has been reported, where setting cl_htmltarget :www.google.com would cut off part of the URL.
To fix this, simply comment line 140:
139: n_target++; if(!*n_target) { return ; } // Buffer check
140: n_target++;
Becomes:
139: n_target++; if(!*n_target) { return ; } // Buffer check
140: //n_target++;
The source code has been updated to reflect these changes.
= Files =
Several files need to be added to existing projects.
If you have completed either of the above articles, you will probably be replacing these files.
== Everything_SDK - Building the HTML entity ==
1. Add the following files to the vgui_controls project:
:
:* EntHTML.h
:: src\public\vgui_controls\EntHTML.h
:: Note: If you have followed either of the original articles, this file merely needs to be moved.
:
:* EntHTML.cpp
:: src\vgui2\vgui_controls\EntHTML.cpp
:
2. Right click the vgui_controls project, and select Build.
:Warning: Do not select Build Solution, as not all the projects build, and this would leave your mod in an uncompilable state.
== Game Project ==
Open the Game_HL-200x project, and add the following files to the project:
=== Client (HL2 or HL2MP) Project ===
* HTMLView.cpp 
: src\game\client\htmlview.cpp
* IHTMLView.h
: src\game\client\ihtmlview.h
=== Server (HL2 or HL2MP) Project ===
* sv_htmlview_support.cpp
: src\game\server\sv_htmlview_support.cpp
=== Finishing Up ===
One of the game files needs to be modified. 
* In the Client (HL2 or HL2MP) project, find and open the vgui_int.cpp file.
* Near the top of the file, locate the line: #include "FileSystem.h"
* Add a line below this: #include "IHTMLView.h"
* Go to line 159
* Add the following lines:
 VPANEL gameParent = enginevgui->GetPanel( PANEL_INGAMESCREENS );
 	htmlview->Create(gameParent);
* Go down to the next function, and find the line: VGUI_DestroyClientDLLRootPanel();
* Add the following line:
 htmlview->Destroy();
* Build your solution, and if everything goes fine, you should be able to use the HTML VGUI Screens in the Orange Box.
* Post any issues on the Discussion page, or email me.
Category:ProgrammingCategory:TutorialsH
VGUI HTML Screen In Orange Box/IHTMLView.h

//========= Public Domain 2009, Julian 'Daedalus' Thatcher. =====================//
//
// Purpose: Header file for HTMLView window
//
//
// $NoKeywords: $
//=============================================================================//
// IHTMLView.h
#include <vgui_controls/Frame.h>
#include <vgui_controls/HTML.h>
// JT: OB
#include <vgui_controls/EntHTML.h>
using namespace vgui;
class IHTMLView
{
public:
	virtual void		Create( vgui::VPANEL parent ) = 0;
	virtual void		Destroy( void ) = 0;
	virtual void		Activate( void ) = 0;
	virtual void		UpdateHTML ( void ) = 0;
};
//CHTMLView_Panel class: Our HTMLView Frame example class
class CHTMLView_Panel : public vgui::Frame
{
	DECLARE_CLASS_SIMPLE(CHTMLView_Panel, vgui::Frame); 
	//CHTMLView_Panel : This Class / vgui::Frame : BaseClass
	CHTMLView_Panel(vgui::VPANEL parent); 	// Constructor
	~CHTMLView_Panel(){};					// Destructor
protected:
	//VGUI overrides:
	virtual void OnTick();
	virtual void OnCommand(const char* pcCommand);
private:
	//Other used VGUI control Elements:
	vgui::Button *m_exit;
	vgui::Image *m_img;
public:
	EntHTML *m_HTML;
};
extern IHTMLView* htmlview;
#define CenterThisPanelOnScreen()\
 int x,w,h;\
 GetBounds(x,x,w,h);\
 SetPos((ScreenWidth()-w)/2,(ScreenHeight()-h)/2)
#define CenterPanelOnScreen(panel)\
 int x,w,h;\
 panel->GetBounds(x,x,w,h);\
 panel->SetPos((panel->ScreenWidth()-w)/2,(panel->ScreenHeight()-h)/2)
Category:Programming
Category:VGUI
VGUI HTML Screen In Orange Box/sv htmlview support.cpp

//========= Public Domain 2009, Julian 'Daedalus' Thatcher. =====================//
 //
 // Purpose: HTMLView Server Entity Triggering implementation
 //
 // Ingame Usage Commands:
 // sv_ent_fire entity [action] [parameter]		Functions as ent_fire command
 // 
 // $Created: Thursday, 26 April 2007
 // $LastUpdated: Thursday, 5th February 2007
 // $Author: Julian 'Daedalus' Thatcher (daedalus.raistlin@gmail.com)
 // $NoKeywords: $
 //=============================================================================//
 
 #include "cbase.h"
 #include "EventQueue.h"
 
 // memdbgon must be the last include file in a .cpp file!!!
 #include "tier0/memdbgon.h"
 
 void CC_sv_ent_fire_f (const CCommand& args)
 {
 	// fires a command from the console
 	CBasePlayer *pPlayer = ToBasePlayer( UTIL_GetCommandClient() );
 
 	if(!pPlayer)
 	{
 		// If we can't get it, use this class
 		pPlayer = NULL;
 	}
 
 
 	if ( args.ArgC() < 2 )
 	{
 		ClientPrint( pPlayer, HUD_PRINTCONSOLE, "Usage:\n ent_fire <target> [action] [value] [delay]\n" );
 	}
 	else
 	{
 		const char *target = "", *action = "Trigger";
 		variant_t value;
 		int delay = 0;
 
 		target = STRING( AllocPooledString(args[1]) );
 		if ( args.ArgC() >= 3 )
 		{
 			action = STRING( AllocPooledString(args[2]) );
 		}
 		if ( args.ArgC() >= 4 )
 		{
 			value.SetString( AllocPooledString(args[3]) );
 		}
 		if ( args.ArgC() >= 5 )
 		{
 			delay = atoi( args[4] );
 		}
 
 		g_EventQueue.AddEvent( target, action, value, delay, pPlayer, pPlayer );
 	}
 }
 static ConCommand sv_ent_fire("sv_ent_fire", CC_sv_ent_fire_f, "Fires an entity serverside", 0);