nyuuzyou/wikis huggingface dataset:
MDLDecompiler

is a tool written by Cannonfodder for decompiling Source models back into their component parts; namely SMD, VTA and QC files.
You don't have to change anything in Hooch's fixed version, link at the bottom of page
Animations: Certain mdl's only have animations in them, but come with a .ani file. Same procedure: Change the .mdl's header to and the .ani's header to NOTE THE COMMAS
Some issues with the original Cannonfodder decompiler were fixed by Erix920 but some bugs still remain.
==Cannonfodder's other source engine tools==
*
*
*
*
== See also ==
* Crowbar - A more up-to-date tool for decompiling models
* XBLAH's Modding Tool - Integrated model decompiling feature
* Studiocompiler
* Source model skin editor
== External links ==	 
You can download working versions of the tools from the links below.	 
* Hooch's fixed version of MDL Decompiler (2013) (No need to change "IDST0" to "IDST," and no more AppId error)
* Cannonfodder's original MDLDecompiler (for an updated version use studiocompiler)
* Erik's fixed version of MDLDecompiler (internet archive / wayback machine)
* StudioCompiler (updated 2011) - the official website.
* Crowbar MDL Decompiler
Category:Modeling
Category:Third Party Tools
MDLUnpack

MDL Unpack is a web-based service used to decompile/convert models used in Valve's Source Engine back to their compilable components.
=== Features ===
* Creates QC Script — Creates a QC script from the models binaries.
* Creates Reference SMD — Converts model binary data to SMD syntax.
=== Limitations ===
This web-service will not decompile: Animations/Sequences, Vertex Animations, LoD meshes, Bodygroup meshes and Collision mesh.
QC interpreter is incomplete and will miss some info or it may be incorrect.
These features may be added/fixed at a later date.
=== Known Bugs ===
Bone weights on models with more than one bone will be wrong in some cases.
== External links ==
* MDL Unpack Website - Dead link, redirects to https://www.hamaloo.co.uk/mdlunpack/ which redirects to an advertisement service
Category:Third Party Tools
Category:Modeling
MDL (GoldSrc)

MDL (sometimes referred to as Half-Life MDL or HLMDL) is a model format used by to store dynamically lit models which can be animated using skeletal animation, along with their associated textures. It is a heavily modified version of the Quake MDL format.
== Overview ==
=== Limits ===
HLMDL has the following limits per input SMD:
* 1 mesh
** 2048 vertices (and vertex normals) per mesh
** 4080 triangles per mesh
* 1 animation sequence
** 512 keyframes per sequence
* 128 bones
Additionally, the following limits apply to the whole MDL:
* 4 bone attachments
* 8 bone controllers
* 32 meshes across all submodels
* 256 animation sequences.
Textures must:
* Be 8-bit uncompressed BMP files.
* Have a resolution which is a multiple of 8 (multiples of 16 are preferred).
* Have a resolution which does not exceed 512x512 (soft limit; raised to 1024x1024 in and other engines like ).
* Have a file name which is not longer than 64 characters (including the extension).
== Flags ==
=== Model flags ===
Particle effects cannot be combined, but all others can.
Bit 	Flag name 	Particle effect?	Description
1 	EF_ROCKET 	Yes 	rocket trail particles and dynamic light
2 	EF_GRENADE 	Yes 	grenade trail smoke particles
4 	EF_GIB 	Yes 	gib blood trail particles
8 	EF_ROTATE 	No 	Rotate this model around its origin, like the weapon pickups in ; requires supported game code.
16 	EF_TRACER 	Yes 	skrag spit particles
32 	EF_ZOMGIB 	Yes 	zombie blood; like EF_GIB, but darker
64 	EF_TRACER2 	Yes 	death knight slashing particles
128 	EF_TRACER3 	Yes 	Like EF_GRENADE, but only has one trail
256 	EF_NOSHADELIGHT 	No 	Reduces intensity of shadows on the model, without making the model flat
512 	EF_HITBOXCOLLISIONS	No 	Use hitbox for collision instead of bounding box
1024	EF_FORCESKYLIGHT 	No 	Always use skybox lighting, regardless of model location
=== Texture flags ===
Bit	Flag name 	Description
1 	STUDIO_NF_FLATSHADE 	Shade the model a single tint, without any shadowing, resulting in the model looking "flat" like a cartoon character.
2 	STUDIO_NF_CHROME 	Use matcap environment mapping to render the texture as a sphere map.
4 	STUDIO_NF_FULLBRIGHT	Display texture at maximum brightness, ignoring lighting.
8 	STUDIO_NF_MIPMAPS 	Generates mipmaps for the texture, greatly reducing texture aliasing at a distance. No effect in , which always generates mipmaps for models, regardless of this flag.
16 	STUDIO_NF_ALPHA 	Unused?
32 	STUDIO_NF_ADDITIVE 	Use additive translucency. Still affected by entity lighting; use the Additive rendermode on an entity to ignore lighting.
64 	STUDIO_NF_MASKED 	Use binary alphatest transparency, wherein the last palette entry of the texture is transparent.
== In other engines ==
Half-Life MDLs are supported by and the game .
== External links ==
* The303's GoldSrc model tutorials and documentation
* Assimp documentation for HLMDL
== References ==
 From the GoldSrc Model Export Tutorial by The303:
Category:File formats
MESA

https://puppet-master.net/wp-content/uploads/2015/09/mesa21-logo.png
----
__toc__
= Description =
 2.0 is a suite of MEL Scripts to export and import 3d models for the Valve Source Engine with Autodesk Maya. This is the short name for Maya Exporter for Source Absolute.
The objective of MESA, is about to make the full asset creation process within Maya interface.
It includes static, physics, breakable, dynamic and ragdoll models, and supported bodygroups , It become easy to use maya to export to the source engine the NPCs (Monsters and Humanoid), Vehicles, Weapons and Items for your game.
MESA is Mel scripts bases exporter and importer Tools. This scripts are the rewritten / edited Scripts from Valve, and originally designed for maya 4.5, that was also deeply rewritten by Prall .
MESA is compatible with all recent version of Maya ( 2011/2012/2013/2014 with x86 and x64 bits )
== Download MESA ==
 MESA - Maya Exporter for Source Absolute
Release Date	MESA Version	Download Link 	Compatibility
04 Nov 2015 	MESA v2.1 	MESA v 2.1 	Tested on x86 and x64 version of : 
* Maya 2016 
* Maya 2015
* Maya 2014
* Maya 2013
* Maya 2012
* Maya 2011
06 Oct 2013 	MESA v2.0 	MESA v 2.0 (396ko)	Tested on x86 and x64 version of : 
* Maya 2016 
* Maya 2015
* Maya 2014
* Maya 2013
* Maya 2012
* Maya 2011
23 Apr 2013 	MESA v1.1 	MESA v 1.1 (127ko)	Tested on x86 and x64 version of : 
* Maya 2016 
* Maya 2015
* Maya 2014
* Maya 2013
* Maya 2012
* Maya 2011
= Documentation =
{| 
|-
| style= "vertical-align:top;" | 
| 
== Features list ==
The main interest of MESA exporter, is the easy way to compile and convert the assets in few clicks within Maya Interface.
Support / Usage	Documentation
* Maya Workspace
* SMD Import
* SMD Export
* SMD Animations
* LODS ( level of detail )
* Physic / Ragdoll Model
* VTA export
* Ref break
* Phys_break
* BodyGroups
* QC export
* VMT export
* VTF Export
* MDL Compile	
Install Guide :
* Installation Guide
* MESA Setup
* Project Setup
* How the resource must to be structured
* How to install the MESA shelf manually
* Verify the user environment variables
Export Guide :
* Export Guide
* Installation Video Tutorials
* Export Video Tutorials
* Issues and Common Errors
* StudioMDL common errors
* Dota 2 Assets Creation Guide
* Maya Setting for Source
* Create Source Engine Mod
== Links ==
* MESA - Maya Exporter for Source Assets
Category:Maya Category:Third_Party_Tools
MINERVA

Pervasive. Literary. Brutal. Experimental.
MINERVA is not a conventional modification, but was instead an ongoing, episodic series of single-player Half-Life 2 maps under development by Adam Foster. The mod was suspended when Adam was hired by Valve.
The maps are linked by a common plotline, based in the Half-Life 2 universe but with ... extensions. Significantly influenced by games such as the Marathon and System Shock series, each map will feature enigmatic directions and instructions from an unknown third party, continuous with the well-received Half-Life map Someplace Else.
The first full chapter, Metastasis, was completed on October 1, 2007. It requires Half-Life 2: Episode One to play and contains five maps, including updated versions of the two originally released on September 2, 2005 and the second on March 3, 2006. Updates include improved graphics, AI, scripting and HDR lighting.
== See also ==
; Official
: Website
: Development blog
: Forum - plot speculation, gameplay discussion, troubleshooting and walkthroughs
; Reviews
: Ten Four Maps review (giving it their renowned Gold Award)
: Rock, Paper, Shotgun review
; Other
: Wikipedia:MINERVA (video game)
: 
: LocWorks, the team which provided the various language packs (formerly the Sarmatia Project)
: Joseph Toscano: composer of additional music for MINERVA.
MOTD Removal

This is a simple code removal to stop the MOTD (Message Of The Day) Panel showing every time you load a map.
==hl2mp_client.cpp==
In the Server folder of the source, look for and open hl2mp_client.cpp.
Search for const ConVar *hostname = cvar->FindVar( "hostname" ); at line 66 and comment out or delete the following code block:
const ConVar *hostname = cvar->FindVar( "hostname" );
const char *title = (hostname) ? hostname->GetString() : "MESSAGE OF THE DAY";
KeyValues *data = new KeyValues("data");
data->SetString( "title", title );		// info panel title
data->SetString( "type", "1" );			// show userdata from stringtable entry
data->SetString( "msg",	"motd" );		// use this stringtable entry
pPlayer->ShowViewPortPanel( PANEL_INFO, true, data );
data->deleteThis();
The MOTD should now no longer appear every time you load a map.
Category:Programming Category:VGUI
MP3

MP3 is a lossy-compressed audio file format used by all of Valve's engines, and is available in all first-party titles. While engine limitations prevent it from being used for everything that WAV files can be used for, its smaller file sizes make it suitable for non-looping music or incidental ambient sounds in a soundscape.
== Recommended minimum bitrates ==
Unlike WAV, MP3 supports arbitrary bitrates, independent of sample rate and channel count. While this improves scalability, going below certain bitrates will result in noticeable quality degradation. Below are recommended minimum bitrates for the sample rates supported by ( supports ).
Sample rate	Mono (1 channel)	Stereo (2 channels)
11025 Hz 	32 kbps 	64 kbps
22050 Hz 	32 kbps 	64 kbps
44100 Hz 	64 kbps 	128 kbps
== See also ==
* WAV
* VSND
== External links ==
* 
Category:Audio formats
M PlayerAnimState

The m_PlayerAnimState object maintains a player's animation state. It is shared code.
There are two versions: CBasePlayerAnimState and CMultiPlayerAnimState.
== Usage ==
; Update( float eyeYaw, float eyePitch )
: Manages ambient, looping animations (running/swimming, aiming, breathing) based on player velocity and look direction every frame. 
; DoAnimationEvent( PlayerAnimEvent_t event, int nData = 0 )
: Begins a discrete, event-based animation (crouching, shooting, reloading) whenever called. PlayerAnimEvent_t is an enum value that defines what type of animation event this is; it is translated into an activity elsewhere depending on the status of the player (weapon held, swimming, etc).
== Implementation ==
Implementation is complex, and requires editing several classes. See SDK Skeleton's multiplayer components for a finished product.
=== Dispatching to clients ===
In multiplayer you must dispatch animation events to all onlooking clients, a job which is not performed by CBasePlayer. See m_PlayerAnimState/TempEnt for the temporary entity used by Valve.
Category:CBasePlayer
M PlayerAnimState/TempEnt

This temporary entity will dispatch player animation events to onlooking clients in the animating player's PVS. It is not needed in singleplayer.
The code can go anywhere, but your player CPP files are the best location. Dispatch it from your player's DoAnimationEvent() function (before or after calling into the serverside AnimState).
== Server ==
class CTEPlayerAnimEvent : public CBaseTempEntity
{
public:
	DECLARE_CLASS( CTEPlayerAnimEvent, CBaseTempEntity );
	DECLARE_SERVERCLASS();
	CTEPlayerAnimEvent( const char* name ) : CBaseTempEntity( name ) {}
	CNetworkHandle( CBasePlayer, m_hPlayer );
	CNetworkVar( int, m_iEvent );
	CNetworkVar( int, m_nData );
};
IMPLEMENT_SERVERCLASS_ST_NOBASE( CTEPlayerAnimEvent, DT_TEPlayerAnimEvent )
	SendPropEHandle( SENDINFO( m_hPlayer ) ),
	SendPropInt( SENDINFO( m_iEvent ), Q_log2( PLAYERANIMEVENT_COUNT ) + 1, SPROP_UNSIGNED ),
	SendPropInt( SENDINFO( m_nData ), 32 )
END_SEND_TABLE()
static CTEPlayerAnimEvent g_TEPlayerAnimEvent( "PlayerAnimEvent" );
void TE_PlayerAnimEvent( CBasePlayer* pPlayer, PlayerAnimEvent_t event, int nData )
{
	CPVSFilter filter( (const Vector&)pPlayer->EyePosition() );
	//Tony; use prediction rules.
	filter.UsePredictionRules();
	
	g_TEPlayerAnimEvent.m_hPlayer = pPlayer;
	g_TEPlayerAnimEvent.m_iEvent = event;
	g_TEPlayerAnimEvent.m_nData = nData;
	g_TEPlayerAnimEvent.Create( filter, 0 );
}
== Client ==
#include "c_basetempentity.h"
#include "prediction.h"
class C_TEPlayerAnimEvent : public C_BaseTempEntity
{
public:
	DECLARE_CLASS( C_TEPlayerAnimEvent, C_BaseTempEntity );
	DECLARE_CLIENTCLASS();
	virtual void PostDataUpdate( DataUpdateType_t updateType )
	{
		// Create the effect.
		C_MyPlayer* pPlayer = (C_MyPlayer*)m_hPlayer.Get();
		if ( pPlayer && !pPlayer->IsDormant() )
			pPlayer->DoAnimationEvent( (PlayerAnimEvent_t)m_iEvent.Get(), m_nData )	
	}
public:
	CNetworkHandle( CBasePlayer, m_hPlayer );
	CNetworkVar( int, m_iEvent );
	CNetworkVar( int, m_nData );
};
IMPLEMENT_CLIENTCLASS_EVENT( C_TEPlayerAnimEvent, DT_TEPlayerAnimEvent, CTEPlayerAnimEvent );
BEGIN_RECV_TABLE_NOBASE( C_TEPlayerAnimEvent, DT_TEPlayerAnimEvent )
	RecvPropEHandle( RECVINFO( m_hPlayer ) ),
	RecvPropInt( RECVINFO( m_iEvent ) ),
	RecvPropInt( RECVINFO( m_nData ) )
END_RECV_TABLE()
<< Return to m_PlayerAnimState
Machinima

Machinima is a term used to refer mainly to videos with a purpose made in video games. There is a firm distinction between a machinima and an ordinary video of gameplay, normally being that machinima is associated with acting, and game characters talking to each other rather than fighting. One of the most well-known examples of a machinima is Red vs Blue, a series created in Halo 2 (originally in Halo 1), and distributed freely on the internet.
Machinima has used to be widely popular form of video, and many games are used to create it, including and . (See more in Machinima in Source. Many examples of machinima videos can be found at websites such as Machinima.com (defunct, no longer available).
== Legal issues ==
Technically, the materials and models used in creating machinima videos belong to the game's creator, so they cannot be published with a price tag, and it is debatable whether most machinima violates copyright laws. Red vs Blue, for instance, was contacted by Bungie, the developers of Halo, in their early years, but thankfully Bungie was willing to work with them to divide profits. Red vs Blue has now extended its presence to Xbox Live, and is known worldwide.
== Valve's point of view ==
Category:Valve
Making Icons and Integrating

icon tells Steam where the icon can be found; In this case, in the resource folder: resource\game It should default to looking for icon.tga
== Making an icon for your mod ==
For the icon of your mod to show, there are two places it can be displayed: In your steam library and on your desktop. (right)
To make your icon you will need either:
*Adobe Photoshop
*GIMP
*Paint.NET
== Making the Steam Library Icon ==
To start open an image editor and create a new file with the dimensions 256x256 pixels. Then save your image as a .png in a folder (For example ) and name it icon_huge.
Copy the icon_huge and rename it to icon_big and scale it down to 32x32 and do it again but name it icon and scale it to 16x16.
After creating the icons, Open the icon file and save it as a targa file (.tga) in the folder, do the same with icon_big and NOT with icon_huge.
Now once you have done all of that, the next step is to show the icon in the steam library. Go to your mods folder and open gameinfo.txt.
Below game, title, title2, and/or type, type icon "resource/icon", example:
"GameInfo"
{
	game		"My First HL2MP Mod"
	title		"HALF+LIFE'"
	title2		"deathmatch mod"
	type 		multiplayer_only
	icon		"resource/icon"
	nomodels 	0
	nohimodel 	1
	nocrosshair
	...
Now save and restart Steam and your icon should appear in the library.
== Making the hl2.exe Icon ==
*Take your 256px icon and save it as an interlaced .png.
*Find a .ico converting website and make convert the .png to .ico.
*Download and save the .ico in as "game.ico".
Now you can the mod in your steam library and create a desktop shortcut.
== Editing the icon with XBLAH's Modding Tool ==
The mod icon can be edited with XBLAH's Modding Tool through a comprehensive UI without requiring the modder to mess with text files or resources.
Where to find it
This can be accessed within the tool through Mod > Game info.
How to use it
Right click the picture box next to the Icon label and click Load. Select the file path and extension and the tool will generate the icons at the correct sizes, add them to the resource path and update the gameinfo.
Making a Black Mesa Mod

This article will discuss the creation of a Black mesa mod
==Creating a mod==
Head to the local variation of C:\Program Files (x86)\Steam\steamapps\common\Black Mesa then create a folder with the mod's name, and modders can name it anything they want. Examples like: "MyMod"
===Setting up the files===
Navigate into the directory and create the following folders and subfolders:
* resource
* scripts
* mapsrc
* mapsrc/instances
* campaigns
* ui
Now open located in 
Take the following files:
Add these files in the same directories as the mod, for example: MyMod/resource/...
Also take located in 
==Setting up the chapters==
Create a scripts/chapter_manifest.txt inside the newly created scripts folder
It should be something like this: Edit it to replace with the map names / the number of chapters that exist
Next up create a blackmesa.json file inside myfirstmod/campaigns/, it can be modified to perfection.
	
Make sure to replace each #key in the file with the corresponding one in the corresponding localization file (See the next step)
==Setting up the text for chapters==
Create a myfirstmod_english.txt in myfirstmod/resource/
It should look something like this, modify it to perfection
==Creating the gameinfo.txt file==
Now modders will need to create the gameinfo file inside the main folder.
Use the following one as a template and modify it to perfection:
==Creating the BAT file==
Create a file, call it something like myfirstmod.bat
This is so users can launch the mod.
Also create one for the people who want to launch with oldgameui:
==Creating the SH file==
Create a file, call it something like myfirstmod.sh
This is so users can launch the mod.
Also create one for the people who want to launch with oldgameui:
==Final polish==
This should be just enough to get the mod working, the modders will need to add things like sound manifests, models etc aswell.
modders could customize the UI further, for example by changing the colors or the actual layout by editing the .qml inside ui/ of bms_misc_dir.vpkCategory:Modding
Category:Glossary
Category:Tutorials
Making a headcrab xen teleport

This guide will teach you how to make an npc (in this case a headcrab) teleport in-front of the player as seen throughout the campaign.
==Step 1==
===Step 1a===
Start by creating a brush that uses the tools/toolstrigger texture
Next tie it to a trigger_once by pressing control + T
===Step 1b===
Now in the outputs add the following:
	OnStartTouch	xen_spawner	Spawn	 	0.00	No
==Step 2==
Place a env_xen_portal with the following properties:
Property Name 	Value
Name 	xen_spawner
Frequency 	-1
Max Live NPCs 	1
Class name of spawned NPC	npc_headcrab
 	
You may edit the Class name of spawned NPC parameter to change the desired npc, they are usually xen creatures.
== Final Setup ==
Your final setup should look like this;
Category:TutorialsCategory:Black Mesa level design
Making a wall of water

Sometimes, a wall of water is a nice (or required) feature of a map. However, the Water shader can not do that; it is limited to flat, horizontal surfaces. The LightmappedGeneric shader can be used to mimic most of the Water shader's features instead.
You can simulate reflections with cubemaps and fog, with the material's "bottom". However, refractions are not possible. Like the Water shader you have to use two VMT files. The normal $bumpmap will be used.
== VMT Top ==
For $basetexture, an image created in Photoshop with a cloud filter should make an alpha channel using the desired transparency. You can then export to a Source VTF file with the right tools.
 LightmappedGeneric
 {
 	%compilewater 1
 	$abovewater 1
 	$surfaceprop water
 	$bottommaterial ...
 	$basetexture dev/water_moving	// base texture that you made earlier
 	$bumpmap dev/water_normal	// bump map
 	$translucent 1
 	$envmap env_cubemap
 	$envmaptint "[1 .9 .8]"
 	$envmapcontrast 1
 	$fogenable 1
 	$fogcolor "[1 1 1]"
 	$fogstart 0
 	$fogend 50
 
 	Proxies
 	{
 		AnimatedTexture
 		{
 			animatedtexturevar $basetexture
 			animatedtextureframenumvar $frame
 			animatedtextureframerate 21
 		}
 		AnimatedTexture
 		{
 			animatedtexturevar $bumpmap
 			animatedtextureframenumvar $bumpframe
 			animatedtextureframerate 21
 		}
 	}
 }
You will notice that the still-image $basetexture is set to be animated in the VMT. This is necessary to get $bumpmap animated too.
== VMT Bottom ==
 LightmappedGeneric
 {
 	$basetexture ...
 	$translucent 1
 	$fogenable 1
 	$fogcolor "[1 1 1]"
 	$fogstart 0
 	$fogend 300
 }
Category:Material System
Making lights turn on and off with a "trigger multiple"

In this section of the tutorial, we'll be making a light turn on when you walk into a room and turn off when you leave it.
===Setting Up The Trigger.===
Create a brush using the trigger texture in the doorway of the room you want to apply this effect to,
Whilst selecting the brush that we just created, Press "Control T" tie it to an entity and select trigger_multiple.
After creating the entity, name it what ever you want, I chose to call it "Trigger".
Next, set the time before reset to "0" (This will come in handy later).
Property 	Value
Name 	Trigger
Parent 	Blank
Origin 	Depends on the location of the Trigger
Start Disabled 	No
Global Entity 	Blank
Filter Name 	Blank
Delay Before Reset	0
===Setting Up The Light.===
Create a "Light_Spot" entity and name it what every you want, I've named it "Light_Spot".
You can edit any of the properties of the light that effect how it looks in game.
Next, navigate to the "Flags" tab and set "initially dark" to yes.
===Setting Up The Input's And Outputs.===
Open the properties window of the "trigger_multiple" we created earlier and navigate to the
outputs tab, then click on the "add" button.
Here is a table showing what you need to do.
Parameters 	Value
My Output Named 	OnEndTouch
Target entities named	Light_Spot
Via This Input 	Toggle
Parameter Override 	None
Delay This Output 	0.00
Fire Once Only 	No
Assuming that you followed the tutorial correctly,
A light should turn on when you enter an area and turn off when you leave it.
Category:IO System
Category:Tutorials
Making scientists always follow

When playing vanilla , you might notice. That scientists often back off when faced with an obstacle. This article offers a solution to this ailment.
== Action ==
Comment out the following line in Task_t tlFollow[] (scientist.cpp):
 { TASK_SET_FAIL_SCHEDULE,(float SCHED_CANT_FOLLOW }, 
Category:GoldSrc_Programming
Category:GoldSrc_Tutorials